def _openUrl(url): """ Opens given url. :param url: Url to open. :type url: str """ cmds.launch(web=url)
def openWebPage(url): """ Opens a webpage with the given URL. Args: url (str): full web address with any http:// and such Returns: None """ cmds.launch(web=url)
def launchAnimHelp(*args): toolsPath = cmds.internalVar(usd = True) + "mayaTools.txt" if os.path.exists(toolsPath): f = open(toolsPath, 'r') mayaToolsDir = f.readline() f.close() if os.path.exists(mayaToolsDir + "/General/ART/Help/ART_AnimHelp.pdf"): cmds.launch(pdfFile = mayaToolsDir + "/General/ART/Help/ART_AnimHelp.pdf")
def launchAnimHelp(*args): toolsPath = cmds.internalVar(usd=True) + "mayaTools.txt" if os.path.exists(toolsPath): f = open(toolsPath, 'r') mayaToolsDir = f.readline() f.close() if os.path.exists(mayaToolsDir + "/General/ART/Help/ART_AnimHelp.pdf"): cmds.launch(pdfFile=mayaToolsDir + "/General/ART/Help/ART_AnimHelp.pdf")
def loadHint2(self, *args): value = cmds.confirmDialog(title='Type in Keyword Help', message= 'Make sure the attribute you selected in the left node outliner above should drive or animate other geometry'+ '\n '+ ' '+ 'The keyword you type in the first line will be replaced by the input of second line to form a new names, and program will use them to navigagte to the right geometries.'+ '\n '+ ' '+ 'For example, the attribute you choose in the left node outliner above can drive two geometries named by "eye_l_", "ear_l_"'+ '\n '+ ' '+ 'Type in "_l_" in the first line, and "_r_" in the second line'+ '\n '+ ' '+ 'The result of this example will be: "eye_r", "ear_r_" in the scene will be animated by the attibute you choose in the right node outliner above.' , button=['OK','Tutorial'], ds = 'Tutorial', defaultButton='OK') if value == 'Tutorial': cmds.launch(web = 'http://yunhaohuofiea.blogspot.com/2017/04/maya-mirror-driven-key-tool-guide.html')
def aboutMeOpenBrowser(self, site, *args): if site == 'Website': mc.launch(web="https://karianoriy.wixsite.com/home") elif site == 'Artstation': mc.launch(web="https://www.artstation.com/knoriy") elif site == 'Facebook': mc.launch(web="https://www.facebook.com/TheArtOfKariANoriy")
def loadHint(self, *args): value = cmds.confirmDialog(title='Load Driver Help', message='Follow procedures below to load your driven key source controller and target controller:'+ '\n '+ ' '+ '1. In your viewport, select a controller whose attribute has driven keys connections.'+ ' (the final controller will be chosen if multiple are selected).'+ '\n '+ ' 2. Then click on Load Source Contriller button.'+ '\n '+ ' 3. Select a controller you want to set(mirror) driven key on'+ ', this controller should has the attribute that you want to set driven key on. '+ '\n '+ ' '+ '4. Click on Load Target Driver button. '+' '+ '\n '+ ' '+ '5. Finally, select attribute with driven keys on left side, and target attribute on right side.' + '\n '+ ' '+ 'NOTICE: Attribute with driven keys should has min and max value!', button=['OK','Tutorial'], ds='Tutorial', defaultButton='OK') if value == 'Tutorial': cmds.launch(web = 'http://yunhaohuofiea.blogspot.com/2017/04/maya-mirror-driven-key-tool-guide.html')
def registerAlembicHolder(): if not cmds.about(b=1): mayaWindow = getMayaWindow() global _shadermanager _shadermanager = alembicShaderManager(mayaWindow) cmds.menu('AlembicHolderMenu', label='Alembic Holder', parent='MayaWindow', tearOff=True) cmds.menuItem('CreateAlembicHolder', label='Create Holder', parent='AlembicHolderMenu', c=lambda *args: createAlembicHolder()) cmds.menuItem('AlembicShaderManager', label='Shader Manager', parent='AlembicHolderMenu', c=lambda *args: _shadermanager.show()) cmds.menuItem(divider=True) cmds.menuItem('exportAssign', label='Export Assignations on selected caches', parent='AlembicHolderMenu', c=lambda *args: exportAssignations()) cmds.menuItem('importtAssign', label='Import Assignation on selected caches', parent='AlembicHolderMenu', c=lambda *args: importAssignations()) cmds.menuItem(divider=True) cmds.menuItem('assignTagsSets', label='Assign tags from Selected Selection Sets', parent='AlembicHolderMenu', c=lambda *args: assignTagsFromSetName()) cmds.menuItem( 'assignAttrMat', label='Set attribute on Selected objects from shader name', parent='AlembicHolderMenu', c=lambda *args: assignAttributeMaterial()) cmds.menuItem(divider=True) cmds.menuItem('ReloadAlembicShaderManager', label='Reload Shader Manager(coding)', parent='AlembicHolderMenu', c=lambda *args: reloadShaderManager(mayaWindow)) cmds.menuItem(divider=True) cmds.menuItem( 'OnlineDocumentation', label='Online Documentation', parent='AlembicHolderMenu', c=lambda *args: cmds.launch( webPage='https://github.com/Gael-Honorez-sb/abctoa/wiki'))
def registerAlembicHolder(): if not cmds.about(b=1): mayaWindow = getMayaWindow() global _shadermanager _shadermanager = alembicShaderManager(mayaWindow) cmds.menu('AlembicHolderMenu', label='Alembic Holder', parent='MayaWindow', tearOff=True) cmds.menuItem('CreateAlembicHolder', label='Create Holder', parent='AlembicHolderMenu', c=lambda *args: createAlembicHolder()) cmds.menuItem('AlembicShaderManager', label='Shader Manager', parent='AlembicHolderMenu', c=lambda *args: _shadermanager.show()) cmds.menuItem(divider=True) cmds.menuItem('exportAssign', label='Export Assignations on selected caches', parent='AlembicHolderMenu', c=lambda *args: exportAssignations()) cmds.menuItem('importtAssign', label='Import Assignation on selected caches', parent='AlembicHolderMenu', c=lambda *args: importAssignations()) cmds.menuItem(divider=True) cmds.menuItem('assignTagsSets', label='Assign tags from Selected Selection Sets', parent='AlembicHolderMenu', c=lambda *args: assignTagsFromSetName()) cmds.menuItem(divider=True) cmds.menuItem('ReloadAlembicShaderManager', label='Reload Shader Manager(coding)', parent='AlembicHolderMenu', c=lambda *args: reloadShaderManager(mayaWindow)) cmds.menuItem(divider=True) cmds.menuItem( 'OnlineDocumentation', label='Online Documentation', parent='AlembicHolderMenu', c=lambda *args: cmds.launch( webPage='http://bitbucket.org/thepilot/abctoarnold/wiki/Home'))
def helpMenuCmd(self, *args): mc.launch(web="http://maya-python.com")
def helpMenuCmd(self, *args): """ Override this method to display custom help """ cmds.launch(web='http://maya-python.com')
def goClement(): mc.launch(web= "https://www.artstation.com/artist/grxz")
def goFacebook(): mc.launch(web= "https://www.facebook.com/WizixPage/")
def goArtstation(): mc.launch(web= "https://wizix.artstation.com/")
def playMovie(self, movieFile, *args): moviePath = self.mayaToolsDir + "/General/ART/Help/LearningVideos/" + movieFile + ".wmv" cmds.launch(mov = moviePath)
def createArnoldMenu(): # Add an Arnold menu in Maya main window if not pm.about(b=1): pm.menu('ArnoldMenu', label='Arnold', parent='MayaWindow', tearOff=True ) pm.menuItem('ArnoldStandIn', label='StandIn', parent='ArnoldMenu', subMenu=True, tearOff=True) pm.menuItem('ArnoldCreateStandIn', parent='ArnoldStandIn', label="Create", c=lambda *args: createStandIn()) pm.menuItem('ArnoldCreateStandInFile', parent='ArnoldStandIn', optionBox=True, c=lambda *args: doCreateStandInFile()) pm.menuItem('ArnoldExportStandIn', parent='ArnoldStandIn', label='Export', c=lambda *args: doExportStandin()) pm.menuItem('ArnoldExportOptionsStandIn', parent='ArnoldStandIn', optionBox=True, c=lambda *args: doExportOptionsStandin()) pm.menuItem('ArnoldLights', label='Lights', parent='ArnoldMenu', subMenu=True, tearOff=True) pm.menuItem('ArnoldAreaLights', parent='ArnoldLights', label="Area Light", c=lambda *args: mutils.createLocator('aiAreaLight', asLight=True)) pm.menuItem('SkydomeLight', parent='ArnoldLights', label="Skydome Light", c=lambda *args: mutils.createLocator('aiSkyDomeLight', asLight=True)) pm.menuItem('ArnoldMeshLight', parent='ArnoldLights', label='Mesh Light', c=lambda *args: doCreateMeshLight()) pm.menuItem('PhotometricLights', parent='ArnoldLights', label="Photometric Light", c=lambda *args: mutils.createLocator('aiPhotometricLight', asLight=True)) pm.menuItem(parent='ArnoldLights', divider=True) pm.menuItem('MayaDirectionalLight', parent='ArnoldLights', label="Maya Directional Light", c=lambda *args: cmds.CreateDirectionalLight()) pm.menuItem('MayaPointLight', parent='ArnoldLights', label="Maya Point Light", c=lambda *args: cmds.CreatePointLight()) pm.menuItem('MayaSpotLight', parent='ArnoldLights', label="Maya Spot Light", c=lambda *args: cmds.CreateSpotLight()) pm.menuItem('MayaQuadLight', parent='ArnoldLights', label="Maya Quad Light", c=lambda *args: cmds.CreateAreaLight()) pm.menuItem('ArnoldVolume', label='Volume', parent='ArnoldMenu', c=lambda *args: createVolume()) pm.menuItem('ArnoldFlush', label='Flush Caches', parent='ArnoldMenu', subMenu=True, tearOff=True) pm.menuItem('ArnoldFlushTexture', parent='ArnoldFlush', label="Textures", c=lambda *args: cmds.arnoldFlushCache(textures=True)) pm.menuItem('ArnoldFlushBackground', parent='ArnoldFlush', label="Skydome Lights", c=lambda *args: cmds.arnoldFlushCache(skydome=True)) pm.menuItem('ArnoldFlushQuads', parent='ArnoldFlush', label="Quad Lights", c=lambda *args: cmds.arnoldFlushCache(quads=True)) pm.menuItem('ArnoldFlushAll', parent='ArnoldFlush', label="All", c=lambda *args: cmds.arnoldFlushCache(flushall=True)) pm.menuItem('ArnoldUtilities', label='Utilities', parent='ArnoldMenu', subMenu=True, tearOff=True) pm.menuItem('ArnoldBakeGeo', label='Bake Selected Geometry', parent='ArnoldUtilities', c=lambda *args: arnoldBakeGeo()) pm.menuItem('ArnoldRenderToTexture', label='Render Selection To Texture', parent='ArnoldUtilities', c=lambda *args: arnoldRenderToTexture()) pm.menuItem('ArnoldTxManager', label='Tx Manager', parent='ArnoldUtilities', c=lambda *args: arnoldTxManager()) pm.menuItem('ArnoldLightManager', label='Light Manager', parent='ArnoldUtilities', c=lambda *args: arnoldLightManager()) pm.menuItem('ArnoldHelpMenu', label='Help', parent='ArnoldMenu', subMenu=True, tearOff=True) pm.menuItem('ArnoldUserGuide', label='User Guide', parent='ArnoldHelpMenu', c=lambda *args: cmds.launch(webPage='https://support.solidangle.com/display/AFMUG/Arnold+for+Maya+User+Guide')) pm.menuItem('ArnoldTutorials', label='Tutorials', parent='ArnoldHelpMenu', c=lambda *args: cmds.launch(webPage='https://support.solidangle.com/display/mayatut/Arnold+for+Maya+Tutorials')) pm.menuItem('ArnoldVideos', label='Videos', parent='ArnoldHelpMenu', c=lambda *args: cmds.launch(webPage='https://support.solidangle.com/display/AFMV/Arnold+for+Maya+Videos')) pm.menuItem(divider=1, parent='ArnoldHelpMenu') pm.menuItem('ArnoldSolidAngle', label='Solid Angle', parent='ArnoldHelpMenu', c=lambda *args: cmds.launch(webPage='https://www.solidangle.com')) pm.menuItem('ArnoldMailingLists', label='Mailing Lists', parent='ArnoldHelpMenu', c=lambda *args: cmds.launch(webPage='https://subscribe.solidangle.com')) pm.menuItem('ArnoldAsk', label='Knowledge Base', parent='ArnoldHelpMenu', c=lambda *args: cmds.launch(webPage='https://ask.solidangle.com')) pm.menuItem('ArnoldSupportBlog', label='Support Blog', parent='ArnoldHelpMenu', c=lambda *args: cmds.launch(webPage='https://support.solidangle.com/blog/arnsupp')) pm.menuItem('ArnoldLicensing', label='Licensing', parent='ArnoldHelpMenu', c=lambda *args: arnoldLicenseDialog()) pm.menuItem(divider=1, parent='ArnoldHelpMenu') pm.menuItem('ArnoldDeveloperGuide', label='Developer Guide', parent='ArnoldHelpMenu', c=lambda *args: cmds.launch(webPage='https://support.solidangle.com/display/ARP/Arnoldpedia')) pm.menuItem('ArnoldExperimentalMenu', label='Experimental', parent='ArnoldMenu', subMenu=True, tearOff=True) pm.menuItem('ArnoldRender', label='External RenderView', parent='ArnoldExperimentalMenu', subMenu=True, tearOff=True) pm.menuItem('ArnoldSelectCamera', label='Select Camera', parent='ArnoldRender', subMenu=True, tearOff=False, postMenuCommand=lambda *args: populateSelectCamera()) populateSelectCamera() pm.menuItem('ArnoldStartRender', label='Render', parent='ArnoldRender', c=lambda *args: startRender()) pm.menuItem('ArnoldStartIPR', label='IPR', parent='ArnoldRender', c=lambda *args: startIpr()) pm.menuItem('ArnoldRefresh', label='Refresh', parent='ArnoldRender', c=lambda *args: refreshRender()) pm.menuItem('ArnoldStopRender', label='Stop Render', parent='ArnoldRender', c=lambda *args: stopRender()) pm.menuItem('ArnoldAbout', label='About', parent='ArnoldMenu', c=lambda *args: arnoldAboutDialog())
def launchUnreal(*args): cmds.launch(web="http://www.unrealengine.com")
def helpMenuCmd(self, *args): """Override this method to display custom help""" cmds.launch(webPage="http://regnareb.com")
def helpMenuCmd(self, *args): cmds.launch(web='http://maya-python.com')
def launchEpic(*args): cmds.launch(web="http://www.epicgames.com")
def helpMenuCmd(self,*args): mc.launch(web='http://www.maya-python.com/');
def helpmenu(*args): mc.launch(web='http://maya-python.com')
def launchRigHelp(self, *args): cmds.launch(web = "https://docs.unrealengine.com/latest/INT/Engine/Content/Tools/MayaRiggingTool/index.html")
def arnoldLicenseDialog(): if (cmds.window("ArnoldLicense", ex=True)): cmds.deleteUI("ArnoldLicense") w = cmds.window("ArnoldLicense", title="Arnold Node-locked License") cmds.window("ArnoldLicense", edit=True, width=550, height=280) cmds.columnLayout() cmds.rowColumnLayout( numberOfColumns=4, columnWidth=[(1,10), (2, 64), (3, 18), (4, 450)] ) cmds.text(label="");cmds.text(label="");cmds.text(label="");cmds.text(label="") arnoldAboutText = u"A node-locked license allows you to render with Arnold on one computer only.\n" cmds.text(label="") cmds.image(image="licensing_mtoa.png") cmds.text(label="") cmds.text(align="left",label=arnoldAboutText) cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.separator() cmds.separator() cmds.separator() cmds.separator() cmds.setParent( '..' ) cmds.separator() cmds.rowColumnLayout( numberOfColumns=2, columnWidth=[(1,10), (2, 500)] ) macText = u"To issue a node-locked license, we need the MAC address of your computer.\n" cmds.text(label="") cmds.text(align="left",label=macText) cmds.setParent( '..' ) cmds.separator() cmds.rowColumnLayout( numberOfColumns=6, columnWidth=[(1,10),(2,90), (3, 190),(4,40),(5,80),(6,132)] ) cmds.text(label="") cmds.text(align="left",label="MAC Address") name = cmds.textField() mac = get_mac() mactext = ("%012X" % mac) cmds.textField(name, edit=True, text=mactext, editable=False ) cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.separator() cmds.separator() cmds.separator() cmds.separator() cmds.separator() cmds.separator() cmds.setParent( '..' ) cmds.rowColumnLayout( numberOfColumns=2, columnWidth=[(1,10), (2, 500)] ) macText = u"To install your node-locked license, locate the license file (.lic) and click Install.\n" cmds.text(label="") cmds.text(align="left",label=macText) cmds.setParent( '..' ) cmds.rowColumnLayout( numberOfColumns=8, columnWidth=[(1,10),(2,90), (3, 190),(4,7),(5,26),(6,7),(7,80),(8,132)] ) cmds.text(label="") cmds.text(align="left",label="License file (.lic)") file = cmds.textField() cmds.text(label="") cmds.button( label='...', command=lambda *args: dotDotDotButtonPush(file) ) cmds.text(label="") cmds.button( label='Install', command=lambda *args: installButtonPush(file) ) cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.text(label="") cmds.setParent( '..' ) cmds.rowColumnLayout( numberOfColumns=5, columnWidth=[(1,200),(2,160), (3, 80),(4,20),(5,80)] ) cmds.text(label="") cmds.text(label="") cmds.button( label='Close', command=('import maya.cmds as cmds;cmds.deleteUI(\"' + w + '\", window=True)')) cmds.text(label="") cmds.button( label='Help', c=lambda *args: cmds.launch(webPage='https://www.solidangle.com/support/licensing/')) cmds.setParent( '..' ) cmds.showWindow(w)
def helpMenuCmd(self, *args): """Override this method to display custom help""" cmds.launch(web='http://www.naver.com/')
def GoToWebsite(site): cmds.launch( webPage = site)
def playMovie(self, movieFile, *args): moviePath = self.mayaToolsDir + "/General/ART/Help/LearningVideos/" + movieFile + ".wmv" cmds.launch(mov=moviePath)
def registerAlembicHolder(): if not cmds.about(b=1): mayaWindow = getMayaWindow() global _shadermanager _shadermanager = alembicShaderManager(mayaWindow) cmds.menu('AlembicHolderMenu', label='Alembic Holder', parent='MayaWindow', tearOff=True ) cmds.menuItem('CreateAlembicHolder', label='Create Holder', parent='AlembicHolderMenu', c=lambda *args: createAlembicHolder()) cmds.menuItem('AlembicShaderManager', label='Shader Manager', parent='AlembicHolderMenu', c=lambda *args: _shadermanager.show()) cmds.menuItem( divider=True ) cmds.menuItem('exportAssign', label='Export Assignations on selected caches', parent='AlembicHolderMenu', c=lambda *args: exportAssignations()) cmds.menuItem('importtAssign', label='Import Assignation on selected caches', parent='AlembicHolderMenu', c=lambda *args: importAssignations()) cmds.menuItem( divider=True ) cmds.menuItem('assignTagsSets', label='Assign tags from Selected Selection Sets', parent='AlembicHolderMenu', c=lambda *args: assignTagsFromSetName()) cmds.menuItem( divider=True ) cmds.menuItem('ReloadAlembicShaderManager', label='Reload Shader Manager(coding)', parent='AlembicHolderMenu', c=lambda *args: reloadShaderManager(mayaWindow)) cmds.menuItem( divider=True ) cmds.menuItem('OnlineDocumentation', label='Online Documentation', parent='AlembicHolderMenu', c=lambda *args: cmds.launch(webPage='http://bitbucket.org/thepilot/abctoarnold/wiki/Home'))
def helpBtnCmd(self, *args): """for now this Function launches blogpost on website""" print("DEBUG: help pressed") cmds.launch(web='http://nicolaskendallbar.wordpress.com/2014/01/15/quick-3-point-lighting-python-tool/')
def launchRigHelp(self, *args): cmds.launch( web= "https://docs.unrealengine.com/latest/INT/Engine/Content/Tools/MayaRiggingTool/index.html" )
def helpMenuCmd(self,*args): mc.launch(web="http://maya-python.com")
def getLatestVersion(): mc.launch(web="https://github.com/parzival-roethlein/prmaya")
import maya.cmds as cmds
def __run_it__(): from maya import cmds cmds.launch( web= "https://docs.unrealengine.com/latest/INT/Engine/Content/Tools/MayaRiggingTool/index.html" )
def open_support(self, *args): """ Open tweenMachine support in a browser """ mc.launch(webPage="http://justinsbarrett.com/tweenMachine-support/")
def goGumroad(): mc.launch(web= "https://gumroad.com/wzx")
def open_docs(self, *args): """ Open tweenMachine docs in a browser """ mc.launch( webPage="http://justinsbarrett.com/tweenMachine-docs-python/")
def goAdnan(): mc.launch(web= "https://www.artstation.com/fansub")
def __run_it__(): from maya import cmds cmds.launch( web= "https://www.youtube.com/watch?v=knbZ_g8Hgvk&list=PLZlv_N0_O1gb2ZoKzTApbv3LvhaXJ9elg" )
def goKlaudio(): mc.launch(web= "https://www.artstation.com/klaudio2u")
import traceback
def author(): cmds.launch(web='https://www.instagram.com/rig_n_code/')
def helpMenuItemCmd(self, *args): cmds.launch(web = 'http://yunhaohuofiea.blogspot.com/2017/04/maya-mirror-driven-key-tool-guide.html')
def _documentation(self): mc.launch(webPage="https://github.com/theacb/lettuce/wiki")
def create_ui(self): print "Creating UI..." # Create template template = "moduleManagerTemplate" window = "moduleManagerWindow" if cmds.uiTemplate(template, exists=1): cmds.deleteUI(template, uiTemplate=True) cmds.uiTemplate(template) cmds.frameLayout(defineTemplate=template, borderVisible=True, labelVisible=True, collapse=False, marginWidth=2, marginHeight=2) cmds.columnLayout(adjustableColumn=True, defineTemplate=template, columnAttach=("both", 1)) cmds.button(defineTemplate=template, label="Default Text") # Create window if cmds.window(window, exists=1): cmds.deleteUI(window, window=True) cmds.window(window, title=self.title, menuBar=True) cmds.setUITemplate(template, pushTemplate=1) # Create the menu cmds.menu(tearOff=False, label="Update") cmds.menuItem(command=lambda *args: self.update_scripts(), label="Network") cmds.menu(tearOff=False, label="Windows") cmds.menuItem(command=lambda *args: cmds.GraphEditor(), label="Graph Editor") cmds.menuItem(command=lambda *args: cmds.HypershadeWindow(), label="Hypershade") cmds.menuItem(command=lambda *args: cmds.OutlinerWindow(), label="Outliner") cmds.menuItem(command=lambda *args: cmds.ReferenceEditor(), label="Reference Editor") cmds.menuItem(command=lambda *args: cmds.ScriptEditor(), label="Script Editor") cmds.menu(helpMenu=True, tearOff=False, label="Help") cmds.menuItem( command=lambda *args: cmds.launch(web="http://download.autodesk.com/global/docs/maya2014/en_us/Commands/"), label="MEL Commands") cmds.menuItem( command=lambda *args: cmds.launch( web="http://download.autodesk.com/global/docs/maya2014/en_us/CommandsPython/"), label="PYTHON Commands") cmds.menuItem( command=lambda *args: cmds.launch(web="http://download.autodesk.com/global/docs/maya2014/en_us/Nodes/"), label="Nodes and Attributes") cmds.menuItem(divider=True) cmds.menuItem(command=self.openAboutWindow, label="About") # Create Version Frame cmds.frameLayout(label=(" Version " + str(self.version))) cmds.columnLayout(columnAttach=("both", 1)) cmds.rowColumnLayout(numberOfColumns=2) cmds.textField('dateFld', width=175, editable=False, text=("Last Save: N/A")) cmds.button(width=110, command=lambda *args: mel.incrementalSave(), label="Incremental Save") cmds.setParent('..') cmds.setParent('..') cmds.setParent('..') cmds.tabLayout('TabList') # Create tab UI for each module tabs = [] for module in self.modules: tabs.append(module.create_ui()) # Create Info Tab infoTab = self.create_info_tab() cmds.setParent('..') tabs.append((infoTab, "Info")) # Add Tabs / Show Window cmds.tabLayout('TabList', edit=1, tabLabel=tabs) cmds.showWindow(window) def dockWindow(window): dWindow = "moduleManagerDockedWindow" if cmds.dockControl(dWindow, exists=1): cmds.deleteUI(dWindow) formLayout = str(cmds.formLayout(parent=window)) cmds.dockControl(dWindow, allowedArea="all", content=formLayout, area="right", label=self.title) cmds.control(window, p=formLayout, e=1, w=310) cmds.setParent('..') dockWindow(window)