Example #1
0
 def cmdLoadChild():
     sels = cmds.ls( sl=1 )
     if not sels: return None
     children = cmds.listRelatives( sels[-1], c=1, f=1, ad=1 )
     if not children: return None
     child = cmds.ls( children[0], sn=1 )[0]
     cmds.textField( self._uiInstEndObject._field, e=1, tx=child )
Example #2
0
	def buildTimeMenu( self, parent, uiItem ):
		cmd.menu( parent, e=True, dai=True )
		cmd.setParent( parent, m=True )

		cmd.menuItem( l="! - use current range", c=lambda a: cmd.textField( uiItem, e=True, tx='!' ) )
		cmd.menuItem( l=". - use current frame", c=lambda a: cmd.textField( uiItem, e=True, tx='.' ) )
		cmd.menuItem( l="$ - use scene range", c=lambda a: cmd.textField( uiItem, e=True, tx='$' ) )
Example #3
0
def create_base_rig(cog, rig_region_name):
    # create curve and scale it to the correct size
    base_curve, base_curve_group = jt_ctl_curve.create(None, 'star_30')
    cmds.select(base_curve)
    cmds.setAttr(base_curve + '.scale', 5,5,5)
    cmds.makeIdentity(apply=True, t=0, r=1, s=1, n=0)

    # unparent the curve from the default group it is given so its a child of the world
    base_curve = cmds.rename('base')
    cmds.parent(w=True)
    cmds.select(base_curve_group, r=True)
    cmds.delete()

    # add a string attribute to keep track of all the nodes that are used for easy de-rigging
    # NOTE: text is stored in the attr as a string formatted like a python dict with the key being
    # the name of the body region and the value being a list of the nodes involved this makes 
    # de-rigging nice and easy as you just need to find the entry in the dict and delete all the nodes

    cmds.select(base_curve)
    cmds.addAttr(ln='rig_nodes', dt='string')
    cmds.setAttr(base_curve + '.rig_nodes', '{}', type='string')

    # add base_curve to base curve attr list
    add_node_to_rig_nodes(base_curve, 'base', base_curve)

    # update ui base_curve_field
    cmds.textField('jt_autorig_base_name_select_text', e=True, tx=base_curve)
Example #4
0
def doRefreshAssetDisplay(arg=None):
    '''Display assets for selected category.
    '''
    currentImageLibrary = getImageLibrary()

    # Get selected category folder.
    directory = getCategoryFolder()
    if not directory:
        return
    
    # Get the list of files on disk.
    assetFiles = [x for x in os.listdir(directory) if x.endswith(".jpg")]
    clearAssetsDisplay()
    for assetFile in assetFiles:
        # Build the buttons. 
        assetLabel = assetFile.rpartition(os.sep)[2].replace(".jpg", "")
        imageFilePath = os.path.join(directory, assetFile)
        button = cmds.iconTextCheckBox(
                "%sBTN" % assetLabel, parent="displayAssetsGL", style="iconAndTextVertical", 
                width=144, height=144, image=imageFilePath, label=assetLabel, annotation=assetLabel,
                onCommand=partial(addAssetToSelection, assetLabel), 
                offCommand=partial(removeAssetFromSelection, assetLabel)
                )
    
    # Clear hidden textField.
    cmds.textField("currentAssetTFD", edit=True, text="")
def createAttribute():
    if(not cmds.textField(tf01, text = True, query = True) == ''):
        niceName, longName = attrNameDefC()
        sel = selectListC()
        if(dataTypeC == 'float3'):
            for obj in sel:
                if(not cmds.attributeQuery(longName, node = obj, exists = True)):
                    cmds.addAttr(obj, niceName = niceName, longName = longName, usedAsColor = True, attributeType = dataTypeC)
                    cmds.addAttr(obj, longName = '%sR' % longName, attributeType = 'float', parent = longName)
                    cmds.addAttr(obj, longName = '%sG' % longName, attributeType = 'float', parent = longName)
                    cmds.addAttr(obj, longName = '%sB' % longName, attributeType = 'float', parent = longName)
        elif(dataTypeC == 'double3'):
            for obj in sel:
                if(not cmds.attributeQuery(longName, node = obj, exists = True)):
                    cmds.addAttr(obj, niceName = niceName, longName = longName, attributeType = dataTypeC)
                    cmds.addAttr(obj, longName = '%sX' % longName, attributeType = 'double', parent = longName)
                    cmds.addAttr(obj, longName = '%sY' % longName, attributeType = 'double', parent = longName)
                    cmds.addAttr(obj, longName = '%sZ' % longName, attributeType = 'double', parent = longName)
        elif(dataTypeC == 'string'):
            for obj in sel:
                if(not cmds.attributeQuery(longName, node = obj, exists = True)):
                    cmds.addAttr(obj, niceName = niceName, longName = longName, dataType = dataTypeC)
        else:
            for obj in sel:
                if(not cmds.attributeQuery(longName, node = obj, exists = True)):
                    cmds.addAttr(obj, niceName = niceName, longName = longName, attributeType = dataTypeC)
        cmds.textField(tf01, text = '', edit = True)
def UI():
    if cmds.window("TressFXExporterUI", exists = True):
        cmds.deleteUI("TressFXExporterUI")

    windowTitle = 'TressFX Exporter' + ' ' + 'v' + tressfx_exporter_version
    window = cmds.window("TressFXExporterUI", title = windowTitle, w=280, h = 260, mnb=False, sizeable=False)
    mainLayout = cmds.columnLayout(w=280, h=260)

    cmds.separator(h=8, style='in')
    cmds.text(label='Number of vertices per strand (4, 8, 16, 32 or 64):', align='left')
    cmds.intField("numVerticesPerStrand", w=30, minValue=4, maxValue=64, value=16 )
    cmds.separator(h=8, style='in')
    cmds.checkBox("bothEndsImmovable", label='Both ends immovable')
    cmds.checkBox("InvertZ", label='Invert Z', value = True)
    cmds.checkBox("exportSkinCheckBox", label='Export skin data', value = False)
    cmds.checkBox("randomStrandCheckBox", label='Randomize strands for LOD', value = True)
    
    cmds.separator(h=15)
    
    cmds.button(label="Set the base mesh", w=170, h=30, command=SetBaseMesh)
    cmds.textField("MeshNameLabel", w=170, editable=False)
    
    cmds.separator(height=10, style='none')
    cmds.button(label="Export as binary (*.tfx)", w=170, h=30, command=ExportBinary)
    
    cmds.separator(h=15)
    
    version_text = 'v' + tressfx_exporter_version
    cmds.text(label=version_text, align='left')
    
    global selected_mesh_shape_name
    selected_mesh_shape_name = ''
    
    cmds.showWindow(window)
Example #7
0
File: miUV.py Project: minoue/miUV
 def browseDirectoryPath(self, *args):
     basicFilter = "*All(*.*);;tif(*.tif);;jpg(*.jpg);;exr(*.exr);;tx(*.tx)"
     self.returnPath = cmds.fileDialog2(
         fileFilter=basicFilter,
         ds=2,
         startingDirectory=self.homeDir)[0]
     cmds.textField(self.uvImagePath, e=True, text=self.returnPath)
Example #8
0
 def loadBaseMesh(self, *args ):
     
     sels = cmds.ls( sl=1 )
     
     if not sels: cmds.error( "Select mesh" )
     
     selShapes = cmds.listRelatives( sels[-1], s=1 )
     
     if not selShapes: cmds.error( "Select mesh" )
     
     
     meshShape = ''
     
     for shape in selShapes:
         if not cmds.getAttr( shape+'.io' ):
             if cmds.nodeType( shape ) == 'mesh':
                 meshShape = shape
                 break
             
     if not meshShape:
         cmds.error( "Selected Object has no mesh")
     
     cmds.textField( self._baseMesh, e=1, tx=meshShape )
     
     self.saveData()
Example #9
0
 def loadSurfaceGroup(self, *args ):
     
     sels = cmds.ls( sl=1 )
     
     if not sels: cmds.error( "Select Surface Group" )
     
     children = cmds.listRelatives( sels[-1], c=1, ad=1 )
     
     if not children: cmds.error( "Select Surface Group" )
     
     
     surfaceGrp = ''
     
     for child in children:
         shapes = cmds.listRelatives( child, s=1 )
         if not shapes: continue
         for shape in shapes:
             if cmds.nodeType( shape ) == 'nurbsSurface':
                 surfaceGrp = sels[-1]
                 break
         if surfaceGrp: break
             
     if not surfaceGrp:
         cmds.error( "Select Surface Group" )
     
     cmds.textField( self._surfaceGroup, e=1, tx=surfaceGrp )
     
     if not cmds.attributeQuery( 'sets', node=surfaceGrp, ex=1 ):
         fnc.addArrayMessageAttribute( surfaceGrp, 'sets' )
         
     self.saveData()
Example #10
0
 def openFile(self, *args):
     """
     This opens the file browser and takes the path and puts it in the text field. This is run when the Browse button is
     pressed.
     """
     self.fileName = cmds.fileDialog2( fileMode=2, caption="Import Image" ) # Open the file browser
     cmds.textField( self.loadDirPath, edit=True, text=str(self.fileName[0]) ) # Put path in text field
Example #11
0
 def create( self, *args ):
     
     if cmds.window( self.winName, ex=1 ):
         cmds.deleteUI( self.winName, wnd=1 )
     cmds.window( self.winName, title= self.title, titleBarMenu=0 )
     
     cmds.columnLayout()
     cmds.rowColumnLayout( nc=1, cw=[( 1,self.width-2)] )
     cmds.text( l='Register ID', h=30 )
     idField = cmds.textField( h=25 )
     helpField = cmds.textField( en=0 )
     cmds.setParent( '..' )
     
     firstWidth = (self.width-2)*0.5
     secondWidth = (self.width-2)-firstWidth
     cmds.rowColumnLayout( nc=2, cw=[(1,firstWidth),(2,secondWidth)])
     cmds.button( l='Create', h=25, c=self.cmdCreate )
     cmds.button( l='Cancel', h=25, c=self.cmdCancel )
     cmds.setParent( '..' )
     
     cmds.window( self.winName, e=1,
                  width = self.width,
                  height = self.height )
     cmds.showWindow( self.winName )
     
     self.idField = idField
     self.helpField = helpField
Example #12
0
def uiNameLoadedAutoNameObject(self):
	autoNameObject = mc.textField(self.AutoNameObjectField,q=True,text = True)
	if autoNameObject:
		newName = NameFactoryOld.doNameObject(autoNameObject,True)
		mc.textField(self.AutoNameObjectField,e = True,text = newName)
	else:
		guiFactory.warning('No current autoname object loaded!')
def seqGUI(parent):
	frm = cmds.frameLayout( label="Sequence", cll=True, w=winWidth-5,
		collapseCommand=Callback(winExpand, -70),
		expandCommand=Callback(winExpand, 70))
	frmCol = cmds.columnLayout(rs=3)
	cmds.checkBox( "mecRenSeqCB", label="On\Off", v=1)
	rowCol = cmds.rowColumnLayout("mecRenSeqRC", nc=2, cw=[[1,winWidth/2],[2,winWidth/2]],
		co=[[1,"right",5]])
	'''
	Older version.  Used Callback instead with a function that will enable or disable any gui component.	
	cmds.checkBox( "mecRenSeqCB", e=True, onc='%s.cmds.rowColumnLayout("mecRenSeqRC", e=True, en=True)' %scriptName)
	cmds.checkBox( "mecRenSeqCB", e=True, ofc='%s.cmds.rowColumnLayout("mecRenSeqRC", e=True, en=False)' %scriptName)
	'''
	cmds.checkBox( "mecRenSeqCB", e=True, onc=Callback(enGUI,"rowColumnLayout", "mecRenSeqRC", 1 ) )
	cmds.checkBox( "mecRenSeqCB", e=True, ofc=Callback(enGUI,"rowColumnLayout", "mecRenSeqRC", 0 ))
	
	cmds.textScrollList( "mecRenSeqTSL", h=40, ams=True )
	cmds.setParent(rowCol)
	subCol = cmds.columnLayout()
	rowWidth = winWidth/2
	cmds.rowColumnLayout(nc=2, w=rowWidth,
		cw=[[1,(rowWidth-70)], [2,60]])
	cmds.textField("mecRenSeqName", w=rowWidth-70 )
	cmds.button(label="Add",
		c=Callback(addTSL, "mecRenSeqTSL"))
	cmds.setParent(subCol)
	cmds.rowColumnLayout(nc=2, w=rowWidth,
		cw=[[1,rowWidth/2],[2,rowWidth/2-10]])
	cmds.button(label="Rem All",
		c=Callback(remAllTSL, "mecRenSeqTSL"))
	cmds.button(label="Rem Sel",
		c=Callback(remSelTSL, "mecRenSeqTSL"))
	cmds.setParent(parent)
Example #14
0
        def populatescrollList(self,newLocation=None):
                """Edit textScrollList and update with selected location"""

                hideTheseFolders=["thumb", ".thumb",".mayaSwatches","RECYCLER","$AVG",
                                  "$Recycle.Bin","$RECYCLE.BIN","INCINERATE","Config.Msi",".dropbox.cache"
                                  "System Volume Information","Recovery","ProgramData","PROGRAMDATA",
                                  "PerfLogs"]


                if newLocation==None: locationTxt=cmds.textField('location',q=True,tx=True)
                else: locationTxt=newLocation

                cmds.textScrollList('fileLister', edit=True,removeAll=True)
                try:
                        [cmds.textScrollList('fileLister', edit=True,append=each) for each in os.listdir(locationTxt)  if os.path.isdir(os.path.join(locationTxt,each)) and each not in hideTheseFolders]
                        [cmds.textScrollList('fileLister', edit=True,ams=False, append=self.sizeof(os.path.join(locationTxt,each))) for nfile in self.fileFilters for each in os.listdir(locationTxt) if each.endswith(nfile)]
                except:
                        insel= cmds.textField('location',q=True,tx=True)
                        if not os.path.exists(insel):
                                msg="You either moved or renamed %s project folder\n Or the Drive that contained this folder is not connected."%os.path.basename(insel)
                                api.MGlobal.displayWarning(msg)
                                reply=cmds.confirmDialog(t='Warning',msg="Selected favrite item not found on disk.\nDo you want to delete it?",button=['Yes','No'], defaultButton='Yes', cancelButton='No', dismissString='No' )
                                if reply =="Yes":
                                        accAction=Actions()
                                        accAction.removeSel()
                                else:
                                        pass
Example #15
0
def loadDirectoryPath(textField,caption='Load Directory',startDir=None):
	'''
	Select a file path to load into a specified textField.
	@param textField: TextField UI object to load file path to
	@type textField: str
	@param caption: File selection UI caption string
	@type caption: str
	@param startDir: Directory to start browsing from. In None, use the default or last selected directory.
	@type startDir: str
	'''
	# Get File Path
	dirPath = mc.fileDialog2(	dialogStyle=2,
								fileMode=3,
								caption=caption,
								okCaption='Load',
								startingDirectory=startDir )
	
	# Check File Path
	if not dirPath:
		print('Invalid directory path!')
		return
	
	# Load File Path to TextField
	if mc.textField(textField,q=True,ex=True):
		mc.textField(textField,e=True,text=dirPath[0])
	elif mc.textFieldGrp(textField,q=True,ex=True):
		mc.textFieldGrp(textField,e=True,text=dirPath[0])
	elif mc.textFieldButtonGrp(textField,q=True,ex=True):
		mc.textFieldButtonGrp(textField,e=True,text=dirPath[0])
	else:
		print('UI element "'+textField+'" is of type "'+mc.objectTypeUI(textField)+'"! Expected textField, textFieldGrp or textFieldButtonGrp.')
		return
	
	# Return Result
	return dirPath[0]
Example #16
0
def browse(folder,*args):
	if folder=='renderFolder':
		mc.textField(str(folder),edit=1,text=mc.fileDialog2(ds=2,dir=os.path.join(mc.workspace(q=1,rd=1),'scenes'),fm=3,okc="Set",cc="Cancel")[0].split('/')[-1])  
	else: 
		mc.textField(str(folder),edit=1,text=mc.fileDialog2(ds=2,dir=os.path.join(mc.workspace(q=1,rd=1),'scenes'),fm=3,okc="Set",cc="Cancel")[0])
	commitUI()
	UI()
Example #17
0
        def openSelectedCallback(self,*args):
                """
                This method is called on double click selected item in textscrollList
                """
                #try block also saves from error caused by directories that we do not have rights to access.
                cMsg="Selected scene file is already open. Do you want to reload it?\n If you reload all changes you made since last save will be lost."
                try:
                        cmds.button('upBtn',edit=True,enable=True)
                        self.selectedItem=str(os.path.join(cmds.textField('location',q=True,tx=True),str(cmds.textScrollList('fileLister',q=True,si=True)[0]).split(" > ")[0])).replace("/","\\")

                        if (self.selectedItem.endswith("ma")) or (self.selectedItem.endswith("mb")):
                                print "selected Item: %s\n scene Open: %s"%(self.selectedItem , cmds.file(q=True,sn=True))
                                if self.selectedItem==cmds.file(q=True,sn=True).replace("/","\\"):
                                        print "Same Scene"
                                        result=cmds.confirmDialog(t='Warning',m=cMsg,button=['Yes','No'], defaultButton='Yes', cancelButton='No', dismissString='No' )
                                        if result== "Yes":
                                                state= cmds.file(self.selectedItem,open=True, f=True)
                                else:
                                        print"Saved scene file %s"%os.path.basename(cmds.file(q=True,sn=True))
##                      if not cmds.file(q=True,save=True):
##                         cmds.file(save=True)
                                        state= cmds.file(self.selectedItem,open=True, f=True)
                        else:
                                if os.path.isdir(self.selectedItem):
                                        cmds.textField('location',edit=True,tx=self.selectedItem)
                                        self.populatescrollList(self.selectedItem.replace("/","\\"))

                except Exception as e:
                        print e
Example #18
0
def useSelection(_field, *args):
    '''
    Puts name of the currently selected object into a text field on the GUI
    _field: Text field
    '''
    txt = cmds.ls(sl=True)
    cmds.textField( _field, edit=True, text=txt[0])  
 def splitStringEnable( *args ):
     
     check = cmds.checkBox( WinA_Global.searchForType_check, q=1, v=1 )
     if check:
         cmds.textField( WinA_Global.searchForType_txf, e=1, en=1 )
     else:
         cmds.textField( WinA_Global.searchForType_txf, e=1, en=0 )
Example #20
0
def createGeometryButtonAction(*pArgs):
    """ Queries all the fields related to the geometry interpretation and calls the procedure. """
    pAngle = cmds.floatSliderGrp( "angle", q=True, v=True )
    pStep = cmds.floatSliderGrp( "length", q=True, v=True )
    pRad = cmds.floatSliderGrp( "radius", q=True, v=True )
    subDivs = cmds.intSliderGrp( "cylSubdivs", q=True, v=True )
    length_atenuation = cmds.intSliderGrp( "length_atenuation", q=True, v=True )
    radius_atenuation = cmds.intSliderGrp( "radius_atenuation", q=True, v=True )
    turtleSpeed = cmds.floatSliderGrp( "turtleSpeed", q=True, v=True)
    rgb_blossom = cmds.colorSliderGrp( "rgb_blossomField", q=True, rgb=True )
    rgb_leaf = cmds.colorSliderGrp( "rgb_leafField", q=True, rgb=True )
    rgb_branch = cmds.colorSliderGrp( "rgb_branchField", q=True, rgb=True )

    if pAngle == 0 or pStep == 0 or pRad == 0 or subDivs == 0 or LStringVar == '':
        cmds.textField('warningsTextField', edit=True, tx='Please, revise all the fields again')  
    else:
        import globalVar
        reload(globalVar)
        globalVar.plantNumber += 1
        cmds.textField('warningsTextField', edit=True, tx='None.')
        createBranchShader(rgb_branch)
        createLeafShader(rgb_leaf)
        createBlossomShader(rgb_blossom)
        createGeometry(LStringVar, pRad, pStep, pAngle, subDivs, length_atenuation/100.0, radius_atenuation/100.0,
            turtleSpeed, rgb_branch, rgb_leaf, rgb_blossom)
Example #21
0
def copyCrvShape():
    sel = mc.ls(sl = True)
    if len(sel)>1:
        crvShape = mc.listRelatives(sel[0] , s = True)
        crvDegree = mc.getAttr(crvShape[0]+'.degree')
        crvSpans = mc.getAttr(crvShape[0]+'.spans')
        crvCvs = crvDegree + crvSpans
        for j in range(0,crvCvs+1):
            pos = mc.xform(sel[0] + '.cv[ '+str(j)+ ']' , q = True , os = True , t = True )
            for i in range(0,len(sel)):
                if i == 0:
                    continue
                else :
                    mc.xform(sel[i] + '.cv[ '+str(j)+ ']' , os = True , t = pos )
    else :
        searchQuery = mc.textField('searchUI' ,q = True ,tx = True)
        raplaceQuery = mc.textField('replaceUI' ,q = True ,tx = True)
        newCrv = sel[0].replace(searchQuery,raplaceQuery)
        crvShape = mc.listRelatives(sel[0] , s = True)
        crvDegree = mc.getAttr(crvShape[0]+'.degree')
        crvSpans = mc.getAttr(crvShape[0]+'.spans')
        crvCvs = crvDegree + crvSpans
        for j in range(0,crvCvs+1):
            pos = mc.xform(sel[0] + '.cv[ '+str(j)+ ']' , q = True , ws = True , t = True )
            mc.xform(newCrv + '.cv[ '+str(j)+ ']' , ws = True , t = (-pos[0],pos[1],pos[2]) )
	def searchReplaceSelectedChains(self,*args):
		ui.saveSearchReplaceText()
		self.search = cmds.textField( 'searchTextField', query=True, tx=True )
		self.replace = cmds.textField( 'replaceTextField', query=True, tx=True )

		for index,parentJoint in enumerate( cmds.ls( sl=True ) ):
			self.searchReplaceChain( parentJoint )
	def saveRenameText(self):
		prefix = cmds.textField( 'prefixTextField', query=True, tx=True )
		groupIndex = cmds.textField( 'groupIndexTextField', query=True, tx=True )
		body = cmds.textField( 'bodyTextField', query=True, tx=True )
		itemIndex = cmds.textField( 'itemIndexTextField', query=True, tx=True )
		suffix = cmds.textField( 'suffixTextField', query=True, tx=True )

		if prefix in __main__.rroPrefix:
			__main__.rroPrefix.remove(prefix)
		if groupIndex in __main__.rroGroupIndex:
			__main__.rroGroupIndex.remove(groupIndex)
		if body in __main__.rroBody:
			__main__.rroBody.remove(body)
		if itemIndex in __main__.rroItemIndex:
			__main__.rroItemIndex.remove(itemIndex)
		if suffix in __main__.rroSuffix:
			__main__.rroSuffix.remove(suffix)

		__main__.rroPrefix.append(prefix)
		__main__.rroGroupIndex.append(groupIndex)
		__main__.rroBody.append(body)
		__main__.rroItemIndex.append(itemIndex)
		__main__.rroSuffix.append(suffix)

		self.setupPopupMenus()
Example #24
0
 def create(self):
     if cmds.window(self.window, exists=True):
         cmds.deleteUI(self.window);
     self.window = cmds.loadUI(uiFile=self.uiFile, verbose=False)
     
     cmds.showWindow(self.window);
     try:
         initPos = cmds.windowPref( self.window, query=True, topLeftCorner=True )
         if initPos[0] < 0:
             initPos[0] = 0
         if initPos[1] < 0:
             initPos[1] = 0
         cmds.windowPref( self.window, edit=True, topLeftCorner=initPos )
     except :
         pass
     
     ctrlPath = '|'.join([self.window, 'radioButton']);
     cmds.radioButton(ctrlPath, edit=True, select=True);
     
     ctrlPath = '|'.join([self.window, 'groupBox_4']);
     cmds.control(ctrlPath, edit=True, enable=False);
     
     ctrlPath = '|'.join([self.window, 'groupBox_2', 'pushButton_7']);
     cmds.button(ctrlPath, edit=True, enable=False);
     
     ctrlPath = '|'.join([self.window, 'groupBox_2', 'lineEdit']);
     cmds.textField(ctrlPath, edit=True, text="-u --oiio");
 def __init__(self):
     self.name = "rsSubstituteAttribute"
     self.title = "rs Substitute Attribute"
     i_windowSize = (300, 110)
     if (cmds.window(self.name, q=1, exists=1)):
         cmds.deleteUI(self.name)
     self.window = cmds.window(self.name, title=self.title)
     s_winColPro2 = cmds.columnLayout(adjustableColumn=True, parent=self.window)
     i_colum3 = (i_windowSize[0] / 6, i_windowSize[0] * 4 / 6, i_windowSize[0] / 6)
     s_winRowField1 = cmds.rowLayout(numberOfColumns=3, adjustableColumn3=2, columnWidth3=(i_colum3), columnAlign=(1, 'center'), columnAttach=[(1, 'both', 0), (2, 'both', 0), (3, 'both', 0)], parent=s_winColPro2)
     cmds.text(label='Source', align='center', parent=s_winRowField1)
     self.sourceText = cmds.textField(cmds.textField(), edit=True, parent=s_winRowField1)
     cmds.button(label='Pick up', c=self.rsPickUpSource, parent=s_winRowField1)
     s_winRowField2 = cmds.rowLayout(numberOfColumns=3, adjustableColumn3=2, columnWidth3=(i_colum3), columnAlign=(1, 'center'), columnAttach=[(1, 'both', 0), (2, 'both', 0), (3, 'both', 0)], parent=s_winColPro2)
     cmds.text(label='Target', align='center', parent=s_winRowField2)
     self.targetText = cmds.textField(cmds.textField(), edit=True, parent=s_winRowField2)
     cmds.button(label='Pick up', c=self.rsPickUpTarget, parent=s_winRowField2)
     cmds.separator(height=5, style="none", hr=True, parent=s_winColPro2)
     i_colum = i_windowSize[0] / 3
     s_winRow1 = cmds.rowLayout(numberOfColumns=3, adjustableColumn3=2, columnWidth3=(5, i_colum, i_colum), columnAlign=(1, 'center'), columnAttach=[(1, 'both', 0), (2, 'both', 0), (3, 'both', 0)], parent=s_winColPro2)
     cmds.separator(height=5, style="none", hr=True, parent=s_winRow1)
     self.delAttr = cmds.checkBox("rsDelSourceAttr", label='Delete Source Attribute', align='right', v=True, parent=s_winRow1)
     cmds.separator(height=5, style="none", hr=True, parent=s_winColPro2)
     self.rsSubs = cmds.button(label='Substitute or Clone', w=100, c=self.rsSubs, parent=s_winColPro2)
     cmds.window(self.window, e=1, w=430, h=103)
     cmds.showWindow(self.window)
     cmds.window(self.window, edit=True, widthHeight=(i_windowSize))
 def loadInfo( *args ):
     import sgBFunction_fileAndPath
     
     sceneBakeInfoPath = sgBFunction_fileAndPath.getSceneBakeInfoPath()
     
     sgBFunction_fileAndPath.makeFile( WinA_Global.filePathInfo, False )
     cmds.textField( WinA_Global.exportPath_txf, e=1, tx= sceneBakeInfoPath )
def positionReorderDoIt(*args):
	meshes = []
	sourceMeshText = cmds.textField( 'sourceMeshTextField', query=True, text=True )

	if sourceMeshText == '':
		cmds.error('source mesh textfield is empty')

	if cmds.objExists(sourceMeshText) == False:
		cmds.error('the source mesh ( '+sourceMeshText+' ) does not exist')

	if cmds.nodeType(sourceMeshText) != 'mesh':
		shapes = cmds.listRelatives( sourceMeshText, shapes=True )

		if shapes is None or len(shapes) < 1 or cmds.nodeType(shapes[0]) != 'mesh':
			cmds.error('source ( '+sourceMeshText+' ) is not a mesh')

	meshes.append( sourceMeshText )

	destinationMeshText = cmds.textField( 'destinationMeshTextField', query=True, text=True )
	
	if destinationMeshText == '':
		cmds.error('destination mesh textfield is empty')

	if cmds.objExists(destinationMeshText) == False:
		cmds.error('the destination mesh ( '+destinationMeshText+' ) does not exist')

	if cmds.nodeType(destinationMeshText) != 'mesh':
		shapes = cmds.listRelatives( destinationMeshText, shapes=True )

		if shapes is None or len(shapes) < 1 or cmds.nodeType(shapes[0]) != 'mesh':
			cmds.error('destination ( '+destinationMeshText+' ) is not a mesh')

	meshes.append( destinationMeshText )

	positionReorder( meshes=meshes )
	def renameSelected(self,*args):
		ui.saveRenameText()
		self.setInitialGroupIndex()
		self.setInitialItemIndex()

		itemIndex = self.initialItemIndex
		groupIndex = self.initialGroupIndex
		switchIndex = cmds.checkBox( 'switchIndexesCheckBox', query=True, v=True )

		prefix = cmds.textField( 'prefixTextField', query=True, tx=True )
		body = cmds.textField( 'bodyTextField', query=True, tx=True )
		suffix = cmds.textField( 'suffixTextField', query=True, tx=True )

		groupIndexString = self.getGroupIndex(groupIndex)

		#give items a temp name, to help lessen chance of new name already existing
		#won't prevent it with items that exist outside of the selection
		for index,item in enumerate(cmds.ls( sl=True )):
			splitName = item.split('|')[-1]
			cmds.rename( item, splitName+'XXX'+str(index) )

		for item in cmds.ls( sl=True ):
			itemIndexString = self.getItemIndex(itemIndex)

			newName = prefix+groupIndexString+body+itemIndexString+suffix
			if switchIndex is True:
				newName = prefix+itemIndexString+body+groupIndexString+suffix

			cmds.rename( item, newName )

			itemIndex = itemIndex+1
Example #29
0
def createUI( pWindowTitle):
	
	windowID = 'myWindowID'
	
	if cmds.window(windowID , exists = True):
		cmds.deleteUI(windowID)
		
	cmds.window(windowID , title = pWindowTitle , sizeable = False , resizeToFitChildren = True)
	
	cmds.rowColumnLayout( numberOfColumns = 3 , columnWidth =[(1,200) , (2,200) , (3,200)])
	
	cmds.separator ( h = 30 , style = 'none')
	cmds.separator ( h = 30 , style = 'none')
	cmds.separator ( h = 30 , style = 'none')
	
	cmds.text(label = 'Enter the path of the code')
	cmds.textField('path')
	
	cmds.separator ( h = 30 , style = 'none')
	
	cmds.separator ( h = 30 , style = 'none')
	cmds.separator ( h = 30 , style = 'none')
	cmds.separator ( h = 30 , style = 'none')
	
	cmds.button(label = 'Generate' , command = generate)	
	cmds.separator ( h = 30 , style = 'none')
	cmds.button(label = 'Build' , command = build)
	
	cmds.separator ( h = 30 , style = 'none')
	cmds.separator ( h = 30 , style = 'none')
	cmds.separator ( h = 30 , style = 'none')	

	
	cmds.showWindow()
Example #30
0
 def cmdLoadSelected(self):
     
     if self._olnyAddCommand:
         if type( self._addCommand ) in [ type(()), type([]) ]:
             for command in self._addCommand: command()
         else:
             self._addCommand()
         return None
     
     sels = cmds.ls( sl=1, sn=1 )
     if not sels: return None
     
     if self._type == 'single':
         cmds.textField( self._field, e=1, tx=sels[-1] )
     else:
         popupTxt = ''
         for sel in sels:
             popupTxt += sel + ' '
         cmds.textField( self._field, e=1, tx=popupTxt[:-1] )
     
     if self._addCommand:
         if type( self._addCommand ) in [ type(()), type([]) ]:
             for command in self._addCommand: command()
         else:
             self._addCommand()
Example #31
0
def tkSetVisibility(object, *args):
    animGrp      = 'ANIM_GRP'
    animGrpHi    = 'ANIM_hi_GRP'
    wrapGrp      = 'wrap_GRP'
    collGrp      = 'passive_GRP'
    exClothGrp   = 'export_cloth_GRP'
    xGenBaseGrp  = 'xGenBase_GRP'
    nmSpc        = cmds.textField('tfNmSpcAnim', tx=1, q=1)
    nmSpcFX      = cmds.textField('tfNmSpcFX', tx=1, q=1)

    if nmSpc:
        nmSpc = nmSpc + ':'   
    if nmSpcFX:
        nmSpcFX = nmSpcFX + ':'

    if object is 'Anim':
        low     = cmds.checkBox('cbLow', v=1, q=1)
        mid     = cmds.checkBox('cbMid', v=1, q=1)
        hgh     = cmds.checkBox('cbHgh', v=1, q=1)
        but     = cmds.checkBox('cbButtons', v=1, q=1)  

        if cmds.objExists(nmSpc + 'furVolume_cn_mid_anim_geo') is False:
            cClear('tfFeedback', 'Objects not found! Check the namespace!', [.3, 0, 0])  

        else:
            dagList = cmds.ls(nmSpc + '*_lo_*', type='transform')
            for i in dagList:
                print i
                cmds.setAttr(i + '.v', low)

            dagList = cmds.ls(nmSpc + '*_mid_*', type='transform')
            for i in dagList:
                print i
                cmds.setAttr(i + '.v', mid)

            dagList = cmds.ls(nmSpc + '*_hi_*', type='transform')
            for i in dagList:
                print i
                cmds.setAttr(i + '.v', hgh)
            
            dagList = cmds.ls(nmSpc + '*button_*', type='transform')
            for i in dagList:
                print i
                cmds.setAttr(i + '.v', but)

    if object is 'FX':
        anim     = cmds.checkBox('cbAnimGRP', v=1, q=1)
        animHi   = cmds.checkBox('cbAnimHiGRP', v=1, q=1)
        coll     = cmds.checkBox('cbColliderGRP', v=1, q=1)
        wrap     = cmds.checkBox('cbWrapGRP', v=1, q=1)
        cape     = cmds.checkBox('cbCape', v=1, q=1)
        shirt    = cmds.checkBox('cbShirt', v=1, q=1)
        exCloth  = cmds.checkBox('cbExportClothGRP', v=1, q=1)
        xGenBase = cmds.checkBox('cbxGenBase', v=1, q=1)

        if cmds.objExists(nmSpcFX + collGrp) is False:
                    cClear('tfFeedback', 'Objects not found! Check the namespace!', [.3, 0, 0])  

        else:
            cmds.setAttr(nmSpcFX + collGrp + '.v', coll)
            children = cmds.listRelatives(nmSpcFX + collGrp, c=1, type = 'transform')
            for child in children:
                cmds.setAttr(child + '.v', coll)

            cmds.setAttr(nmSpcFX + animGrp + '.v', anim)
            children = cmds.listRelatives(nmSpcFX + animGrp, c=1, type = 'transform')
            for child in children:
                cmds.setAttr(child + '.v', anim)

            cmds.setAttr(nmSpcFX + animGrpHi + '.v', animHi)
            children = cmds.listRelatives(nmSpcFX + animGrpHi, c=1, type = 'transform')
            for child in children:
                cmds.setAttr(child + '.v', animHi)

            cmds.setAttr(nmSpcFX + wrapGrp + '.v', wrap)
            children = cmds.listRelatives(nmSpcFX + wrapGrp, c=1, type = 'transform')
            for child in children:
                cmds.setAttr(child + '.v', wrap)

            cmds.setAttr(nmSpcFX + exClothGrp + '.v', exCloth)
            children = cmds.listRelatives(nmSpcFX + exClothGrp, c=1, type = 'transform')
            for child in children:
                cmds.setAttr(child + '.v', exCloth)

            cmds.setAttr(nmSpcFX + xGenBaseGrp + '.v', xGenBase)
            children = cmds.listRelatives(nmSpcFX + xGenBaseGrp, c=1, type = 'transform')
            for child in children:
                cmds.setAttr(child + '.v', xGenBase)

            cmds.setAttr(nmSpcFX + dynControl + '.cape', cape)
            cmds.setAttr(nmSpcFX + dynControl + '.shirt', shirt)
Example #32
0
def give_weighted(*args):
    a = mc.textField(stt, q=True, text=True)
    b = mc.textField(end, q=True, text=True)
    c = mc.textField(drv, q=True, text=True)
    d = mc.intField(num, q=True, v=True)
    CreateWeighted.preparation(give_sst=a, give_tar=b, give_sdv=c, give_many=d)
Example #33
0
def tk_linkAnimToCloth(action, *args):
    bs = []
    CLT = ['cape_cn_cfx_mid_geo_oneSided', 'shirt_cn_cfx_mid_geo_oneSided', 
        'cape_cn_cfx_hi_geo_oneSided', 'shirt_cn_cfx_hi_geo_oneSided', 
        'leatherSheath_cn_lo_geo', 'metalSheath_cn_lo_geo', 'beltBuckle_cn_lo_geo', 
        'belt_cn_lo_geo', 'beltSheathLong_cn_lo_geo', 'beltSheathWide_cn_lo_geo', 'furVolume_cn_mid_anim_geo',
        'hat_cn_lo_geo', 'visor_cn_lo_geo', 'knotTwo_cn_lo_geo', 'knotOne_cn_lo_geo', 'body_cn_hi_cfx']  
    failList = []
    fails = ''

    nmSpcAnim = cmds.textField('tfNmSpcAnim', tx=1, q=1)
    nmSpcFX = cmds.textField('tfNmSpcFX', tx=1, q=1)
    if nmSpcAnim:
        nmSpcAnim   = nmSpcAnim + ':'
        nmSpcFX     = nmSpcFX + ':'

    for i in CLT:
        if cmds.objExists(nmSpcFX + i) is False:
            failList.append(i)
        if cmds.objExists(nmSpcAnim + i) is False:
            failList.append(i)



    else:
        print '-------------------------'

        for clt in CLT:
            # print clt
            shapes = cmds.listRelatives(nmSpcFX + clt, s=1, ni=1)    
            print 'shapes:'
            print shapes
            
            # disconnect
            if action == 0: 
                if cmds.objExists('BS_' + clt):
                    print 'disconnecting ' + clt 
                    bs = cmds.listConnections(shapes[0], s=1, d=0, type='blendShape')
                    cmds.setAttr(bs[0] + '.' + clt, 0) 
                    cmds.delete(bs) 
            
            # connect
            if action == 1:
                if not cmds.objExists('BS_' + clt):
                    if cmds.objExists(nmSpcAnim + clt):
                        print 'connecting ' + clt
                        cmds.select(nmSpcAnim + clt, nmSpcFX + clt)
                        mel.eval('performBlendShape 0 1')

                        shapes = cmds.listRelatives(nmSpcFX + clt, s=1, ni=1)    

                        bs = cmds.listConnections(shapes[0], s=1, d=0, type='blendShape')

                        print '--> blendShape before:'
                        print bs
                        bs = cmds.rename(bs[0], 'BS_' + clt)
                        print '--> blendShape after:'
                        print bs
                        print '\n'
                        cmds.setAttr(bs + '.' + clt, 1)

                else:
                    print (clt + ' is already connected - disconnect first!')

        print '-------------------------'
        if action == 1 and len(failList) == 0:
            cClear('tfFeedback', 'Successfully linked anim to FX!', [0, 0.3, 0]) 

        if action == 1 and len(failList) > 0:
            print '-------------------------'
            print 'Missing objects:'
            for fail in failList:
                fails += fail + ' '
                print fail
            cClear('tfFeedback', ('Missing objects! Check ScriptEditor for details'), [.3, 0, 0])  
            print '-------------------------'

        if action == 0:
            cClear('tfFeedback', 'Successfully disconnected anim from FX!', [0, 0.3, 0]) 
Example #34
0
def zorroHelpBoxUI(*args):
    if (cmds.window('win_zorroHelpBox', exists=1)):
        cmds.deleteUI('win_zorroHelpBox')
    myWindow = cmds.window('win_zorroHelpBox', t=('Zorro FX Helper' + ver), s=1)


    cmds.columnLayout(adj=1, bgc=(colDarkGreen[0], colDarkGreen[1], colDarkGreen[2]))


    # name space
    cmds.rowColumnLayout(nc=4, cw = [(1, 120), (2, 90), (3, 120), (4, 90)])
    cmds.button(l='nmSpc FX Rig >>', h=bh1, c=partial(cGetNmSpc, 'tfNmSpcFX'), bgc=(colBrown[0], colBrown[1], colBrown[2]))
    cmds.textField('tfNmSpcFX', tx='zor_01', bgc=(0,0,0), ed=0)

    cmds.button(l='nmSpc Anim >>', h=bh1, c=partial(cGetNmSpc, 'tfNmSpcAnim'), bgc=(colRed[0], colRed[1], colRed[2]))
    cmds.textField('tfNmSpcAnim', tx='anim', bgc=(0,0,0), ed=0)
    cmds.setParent(top=1)



    # load cloth rig
    cmds.frameLayout('flLoadRef', l='Load FX Cloth Rig', bgc=(colFrameGreen[0], colFrameGreen[1], colFrameGreen[2]), cll=1, cl=0, cc=partial(cShrinkWin, "win_zorroHelpBox"))
    cmds.rowColumnLayout(nc=3, cw = [(1, 120), (2, 90), (3, 210)])

    cmds.text('FX Cloth Rig Version', bgc = (colBrown[0], colBrown[1], colBrown[2]))
    cmds.intField('iFXVersion', v=25)
    cmds.button(l='Load', h=bh1, c=partial(cLoadRef, 'zor_01'), bgc=(colLightGreen[0], colLightGreen[1], colLightGreen[2]))

    cmds.setParent(top=1)


    # visibility
    cmds.frameLayout('flVisibility', l='Visbility', bgc=(colFrameGreen[0], colFrameGreen[1], colFrameGreen[2]), cll=1, cl=1, cc=partial(cShrinkWin, "win_zorroHelpBox"))
    cmds.rowColumnLayout(nc=6, cw = [(1, 10), (2, 100), (3, 100), (4, 10), (5, 100), (6, 100)])

    cmds.text(' ', bgc = (colBrown[0], colBrown[1], colBrown[2]))
    cmds.checkBox('cbAnimGRP', l='Anim_GRP', v=0, bgc=(colBrown[0], colBrown[1], colBrown[2]))
    cmds.checkBox('cbAnimHiGRP', l='Anim Hi GRP', v=0, bgc=(colBrown[0], colBrown[1], colBrown[2]))
    cmds.text(' ', bgc = (colRed[0], colRed[1], colRed[2]))
    cmds.checkBox('cbLow', l='Low', v=0, bgc=(colRed[0], colRed[1], colRed[2]))
    cmds.checkBox('cbMid', l='Mid', v=1, bgc=(colRed[0], colRed[1], colRed[2]))

    cmds.text(' ', bgc = (colBrown[0], colBrown[1], colBrown[2]))
    cmds.checkBox('cbCape', l='Cape', v=0, bgc=(colBrown[0], colBrown[1], colBrown[2]))
    cmds.checkBox('cbShirt', l='Shirt', v=0, bgc=(colBrown[0], colBrown[1], colBrown[2]))
    cmds.text(' ', bgc = (colRed[0], colRed[1], colRed[2]))
    cmds.checkBox('cbHgh', l='High', v=0, bgc=(colRed[0], colRed[1], colRed[2]))
    cmds.checkBox('cbButtons', l='Buttons', v=0, bgc=(colRed[0], colRed[1], colRed[2]))

    cmds.text(' ', bgc = (colBrown[0], colBrown[1], colBrown[2]))
    cmds.checkBox('cbWrapGRP', l='Wrap_GRP', v=0, bgc=(colBrown[0], colBrown[1], colBrown[2]))
    cmds.checkBox('cbExportClothGRP', l='Export Cloth', v=0, bgc=(colBrown[0], colBrown[1], colBrown[2]))
    cmds.text(' ', bgc = (colRed[0], colRed[1], colRed[2]))
    cmds.text(' ', bgc=(colRed[0], colRed[1], colRed[2]))
    cmds.text(' ', bgc=(colRed[0], colRed[1], colRed[2]))

    cmds.text(' ', bgc = (colBrown[0], colBrown[1], colBrown[2]))
    cmds.checkBox('cbxGenBase', l='xGenBase', v=0, bgc=(colBrown[0], colBrown[1], colBrown[2]))
    cmds.checkBox('cbColliderGRP', l='Collider', v=0, bgc=(colBrown[0], colBrown[1], colBrown[2]))
    cmds.text(' ', bgc=(colRed[0], colRed[1], colRed[2]))
    cmds.text(' ', bgc=(colRed[0], colRed[1], colRed[2]))
    cmds.text(' ', bgc=(colRed[0], colRed[1], colRed[2]))
    cmds.setParent('..')

    cmds.rowColumnLayout(nc=4, cw = [(1, 105), (2, 105), (3, 105), (4, 105)])
    cmds.button(l='Tgl All', h=bh1, bgc=(colBrown[0], colBrown[1], colBrown[2]), c=partial(tkTglAll, 'FX'))
    cmds.button(l='Set FX Visibility', h=bh1, bgc=(colBrown[0], colBrown[1], colBrown[2]), c=partial(tkSetVisibility, 'FX'))
    cmds.button(l='Tgl All', h=bh1, bgc=(colRed[0], colRed[1], colRed[2]), c=partial(tkTglAll, 'Anim'))
    cmds.button(l='Set Anim Visibility', h=bh1, bgc=(colRed[0], colRed[1], colRed[2]), c=partial(tkSetVisibility, 'Anim'))

    cmds.setParent(top=1)



    # link anim elements
    cmds.frameLayout('flLinkAnim', l='Link Anim', bgc=(colFrameGreen[0], colFrameGreen[1], colFrameGreen[2]), cll=1, cl=1, cc=partial(cShrinkWin, "win_zorroHelpBox"))

    cmds.rowColumnLayout(nc=2, cw = [(1, 210), (2, 210)])
    cmds.button(l='Connect Anim to Cloth Setup', h=bh1, bgc=(colLightGreen[0], colLightGreen[1], colLightGreen[2]), c=partial(tk_linkAnimToCloth, 1))
    cmds.button(l='Disconnect Anim', h=bh1, bgc=(colDarkRed[0], colDarkRed[1], colDarkRed[2]), c=partial(tk_linkAnimToCloth, 0))
    cmds.setParent(top=1)


    # Make it faster
    cmds.frameLayout('flFaster', l='Make It Faster', bgc=(colFrameGreen[0], colFrameGreen[1], colFrameGreen[2]), cll=1, cl=1, cc=partial(cShrinkWin, "win_zorroHelpBox"))

    cmds.rowColumnLayout(nc=3, cw = [(1, 210), (2, 105), (3, 105)])
    cmds.button(l='Select FX Anim Geos', h=bh1, bgc=(colLightGreen[0], colLightGreen[1], colLightGreen[2]), c=partial(cSelectFXAnimELements))
    cmds.button(l='Export As Abc', h=bh1, bgc=(colDarkGreen[0], colDarkGreen[1], colDarkGreen[2]), c=partial(cExportAsABC))
    cmds.button(l='Reference FX Abc', h=bh1, bgc=(colDarkRed[0], colDarkRed[1], colDarkRed[2]), c=partial(cReferenceAnimABC))
    cmds.setParent(top=1)

    
    
    # Caching
    cmds.frameLayout('flCaching', l='Caching', bgc=(colFrameGreen[0], colFrameGreen[1], colFrameGreen[2]), cll=1, cl=1, cc=partial(cShrinkWin, "win_zorroHelpBox"))
    cmds.columnLayout(adj=1, bgc=([0,0,0]))
    # cmds.rowColumnLayout(nc=4, cw = [(1, 120), (2, 90), (3, 120), (4, 90)])
    cmds.button(l='Select Nucleus', c=partial(cSelect, 'nucleus1'), bgc=(colDarkGreen[0], colDarkGreen[1], colDarkGreen[2]))
    # cmds.setParent('..')


    cmds.rowColumnLayout(nc=7, cw = [(1, 45), (2, 45), (3, 45), (4, 45), (5, 45), (6, 100), (7, 95)])
    cmds.text(' ', h=30, bgc=[0,0,0])
    cmds.text('None', bgc=[0,0,0])
    cmds.text('Shirt', bgc=[0,0,0])
    cmds.text('Cape', bgc=[0,0,0])
    cmds.text('Both', bgc=[0,0,0])
    cmds.text('Cache', bgc=[0,0,0])
    cmds.text('Cache ', bgc=[0,0,0])

    # caching Mid
    cmds.text('MID', bgc=[0,0,0])
    cmds.button(l='None', h=bh1, bgc=(colDarkRed[0], colDarkRed[1], colDarkRed[2]), c=partial(cSelectSimELements, 'none'))
    cmds.button(l='Mid', h=bh1, bgc=(colDarkGreen[0], colDarkGreen[1], colDarkGreen[2]), c=partial(cSelectSimELements, 'shirtMid'))
    cmds.button(l='Mid', h=bh1, bgc=(colDarkGreen[0], colDarkGreen[1], colDarkGreen[2]), c=partial(cSelectSimELements, 'capeMid'))
    cmds.button(l='Mid', h=bh1, bgc=(colDarkGreen[0], colDarkGreen[1], colDarkGreen[2]), c=partial(cSelectSimELements, 'bothMid'))
    cmds.button(l='Create', h=bh1, bgc=(colLightGreen[0], colLightGreen[1], colLightGreen[2]), c=partial(cClothCache))
    cmds.button(l='Delete', h=bh1, bgc=(colDarkRed[0], colDarkRed[1], colDarkRed[2]), c=partial(cDeleteCache))

    # caching Highres
    cmds.text('HIGH', bgc=[0,0,0])
    cmds.button(l='None', h=bh1, bgc=(colDarkRed[0], colDarkRed[1], colDarkRed[2]), c=partial(cSelectSimELements, 'none'))
    cmds.button(l='High', h=bh1, bgc=(colDarkGreen[0], colDarkGreen[1], colDarkGreen[2]), c=partial(cSelectSimELements, 'shirtHi'))
    cmds.button(l='High', h=bh1, bgc=(colDarkGreen[0], colDarkGreen[1], colDarkGreen[2]), c=partial(cSelectSimELements, 'capeHi'))
    cmds.button(l='High', h=bh1, bgc=(colDarkGreen[0], colDarkGreen[1], colDarkGreen[2]), c=partial(cSelectSimELements, 'bothHi'))
    cmds.button(l='Create', h=bh1, bgc=(colLightGreen[0], colLightGreen[1], colLightGreen[2]), c=partial(cClothCache))
    cmds.button(l='Delete', h=bh1, bgc=(colDarkRed[0], colDarkRed[1], colDarkRed[2]), c=partial(cDeleteCache))
    cmds.setParent(top=1)



    # Bring To Highres
    cmds.frameLayout('flBring To Highres', l='Bring To Highres', bgc=(colFrameGreen[0], colFrameGreen[1], colFrameGreen[2]), cll=1, cl=1, cc=partial(cShrinkWin, "win_zorroHelpBox"))
    # cmds.rowColumnLayout(nc=3, cw = [(1, 120), (2, 210), (3, 90)])
    cmds.rowColumnLayout(nc=3, cw = [(1, 90), (2, 240), (3, 90)])

    cmds.button(l='Read Wraps', h=bh1, bgc=(colLightGreen[0], colLightGreen[1], colLightGreen[2]), c=partial(cWrapStatus, 'read', 'rbCapeWraps', 'capeWrap'))
    # cmds.radioButtonGrp('rbCapeWraps', label=' ', labelArray3=['Off', 'Mid', 'High'], numberOfRadioButtons=3, cal=[9, 'left'],cw4=[10, 67, 67, 67], sl=1)
    cmds.radioButtonGrp('rbCapeWraps', label='Cape', labelArray3=['Off', 'Mid', 'High'], numberOfRadioButtons=3, cal=[1, 'center'] ,cw4=[55, 55, 55, 55], sl=1)
    cmds.button(l='Set', h=bh1, bgc=(colDarkRed[0], colDarkRed[1], colDarkRed[2]), c=partial(cWrapStatus, 'set', 'rbCapeWraps', 'capeWrap'))
    
    cmds.button(l='Read Wraps', h=bh1, bgc=(colLightGreen[0], colLightGreen[1], colLightGreen[2]), c=partial(cWrapStatus, 'read', 'rbShirtWraps', 'shirtWrap'))
    # cmds.radioButtonGrp('rbShirtWraps', label='  ', labelArray3=['Off', 'Mid', 'High'], numberOfRadioButtons=3, cal=[9, 'left'],cw4=[10, 67, 67, 67], sl=1)
    cmds.radioButtonGrp('rbShirtWraps', label='Shirt', labelArray3=['Off', 'Mid', 'High'], numberOfRadioButtons=3, cal=[1, 'center'] ,cw4=[55, 55, 55, 55], sl=1)
    cmds.button(l='Set', h=bh1, bgc=(colDarkRed[0], colDarkRed[1], colDarkRed[2]), c=partial(cWrapStatus, 'set', 'rbShirtWraps', 'shirtWrap'))
    cmds.setParent(top=1)



    # Attach xGen
    cmds.frameLayout('flImportxGen', l='Import xGen Description', bgc=(colFrameGreen[0], colFrameGreen[1], colFrameGreen[2]), cll=1, cl=1, cc=partial(cShrinkWin, "win_zorroHelpBox"))
    # cmds.button(l='Select xGenBase Geo', h=bh1, en=1, bgc=(colLightGreen[0], colLightGreen[1], colLightGreen[2]), c=partial(cSelect, 'body_cn_hi_cfx'))

    cmds.rowColumnLayout(nc=3, cw = [(1, 100), (2, 260), (3, 60)])
    cmds.button(l='xGen Path >>', bgc=(colDarkGreen[0], colDarkGreen[1], colDarkGreen[2]), h=bh1, c=partial(cGetPath, 'choose'))
    cmds.textField('tfPathxGen', tx=defaultPath, bgc=(0,0,0), ed=1)
    cmds.button(l='Default', bgc=(colDarkGreen[0], colDarkGreen[1], colDarkGreen[2]), h=bh1, c=partial(cGetPath, 'default'))

    cmds.button(l='Select Version', h=bh1, bgc=(colDarkGreen[0], colDarkGreen[1], colDarkGreen[2]), c=partial(cSelectxGenVersion))
    cmds.textField('xGenVersion', tx=approvedxGen, bgc=(0,0,0), ed=0)
    cmds.button(l='Import', h=bh1, en=0, bgc=(colLightGreen[0], colLightGreen[1], colLightGreen[2]), c=partial(cImportxGen, 'remove'))
    # cmds.setParent('..')
    # cmds.button(l='Fix Naming', h=bh1, en=1, bgc=(colRed[0], colRed[1], colRed[2]), c=partial(cFixNaming, 'body_cn_hi_cfx'))
    cmds.setParent(top=1)



    
     # Select Geos For Playblast
    cmds.frameLayout('flPlayblast', l='Select Geos For Playblast', bgc=(colFrameGreen[0], colFrameGreen[1], colFrameGreen[2]), cll=1, cl=1, cc=partial(cShrinkWin, "win_zorroHelpBox"))
    cmds.rowColumnLayout(nc=4, cw = [(1, 105), (2, 105), (3, 105), (4, 105)])

    cmds.button(l='Cloth Mid', h=bh1, bgc=(colLightGreen[0], colLightGreen[1], colLightGreen[2]), c=partial(cSelectForPlayblast, 'clothSetMid'))
    cmds.button(l='Cloth Mid xGen', h=bh1, bgc=(colLightGreen[0], colLightGreen[1], colLightGreen[2]), c=partial(cSelectForPlayblast, 'clothxGenSetMid'))
    cmds.button(l='Add Mask', h=bh1, bgc=(colLightGreen[0], colLightGreen[1], colLightGreen[2]), c=partial(cSelectForPlayblast, 'zorroMask'))
    cmds.setParent(top=1)


   
    # flFeedback
    cmds.frameLayout('flFeedback', l='       FEEDBACK', fn='obliqueLabelFont', bgc=(colDarkGreen[0], colDarkGreen[1], colDarkGreen[2]), cll=0, cl=0)
    cmds.rowColumnLayout(nc=2, cw = [(1, 360), (2, 60)])
    cmds.textField('tfFeedback', ed=0, bgc=[0,0,0])
    cmds.button(l='Clear', bgc=(colDarkGreen[0], colDarkGreen[1], colDarkGreen[2]), c=partial(cClear, 'tfFeedback', '', [0, 0, 0]))

    


    cmds.showWindow(myWindow)
    cmds.window('win_zorroHelpBox', e=1, w=300)
Example #35
0
def cClear(field, text, color, *args):
    cmds.textField(field, tx=text, bgc=color, e=1)
Example #36
0
def tfSelectxGenVersion(*args):
    chosenVersion = cmds.textScrollList('txGenVersion', si=1, q=1)
    cmds.deleteUI('win_xGenList')
    cmds.textField('xGenVersion', tx=chosenVersion[0], e=1)
Example #37
0
def cSelectSimELements(object, *args):
    CLT = []

    nmSpcFX = cmds.textField('tfNmSpcFX', tx=1, q=1)
    if nmSpcFX:
        nmSpcFX = nmSpcFX + ':'

    if cmds.objExists(nmSpcFX + 'shirt_cn_cfx_mid_geo_SIM') is False:            
                cClear('tfFeedback', 'Objects not found! Check the namespace!', [.3, 0, 0])  

    else:
        if (object == 'shirtMid'):
            CLT = ['shirt_cn_cfx_mid_geo_SIM']
            cmds.setAttr(nmSpcFX + dynControl + '.shirt', 1)

        if (object == 'capeMid'):
            CLT = ['cape_cn_cfx_mid_geo_SIM']
            cmds.setAttr(nmSpcFX + dynControl + '.cape', 1)
            cmds.checkBox('cbCape', v=1, e=1)

        if (object == 'bothMid'):
            CLT = ['cape_cn_cfx_mid_geo_SIM', 'shirt_cn_cfx_mid_geo_SIM']
            cmds.setAttr(nmSpcFX + dynControl + '.shirt', 1)
            cmds.setAttr(nmSpcFX + dynControl + '.cape', 1)
            cmds.checkBox('cbCape', v=1, e=1)
            cmds.checkBox('cbShirt', v=1, e=1)

        if (object == 'shirtHi'):
            CLT = ['shirt_cn_cfx_hi_geo_SIM']
            cmds.setAttr(nmSpcFX + dynControl + '.shirt', 2)
            cmds.checkBox('cbShirt', v=1, e=1)

        if (object == 'capeHi'):
            CLT = ['cape_cn_cfx_hi_geo_SIM']
            cmds.setAttr(nmSpcFX + dynControl + '.cape', 2)
            cmds.checkBox('cbCape', v=1, e=1)

        if (object == 'bothHi'):
            CLT = ['cape_cn_cfx_hi_geo_SIM', 'shirt_cn_cfx_hi_geo_SIM']
            cmds.setAttr(nmSpcFX + dynControl + '.shirt', 2)
            cmds.setAttr(nmSpcFX + dynControl + '.cape', 2)
            cmds.checkBox('cbCape', v=1, e=1)
            cmds.checkBox('cbShirt', v=1, e=1)

        if (object == 'none'):
            CLT = []
            cmds.setAttr(nmSpcFX + dynControl + '.shirt', 0)
            cmds.setAttr(nmSpcFX + dynControl + '.cape', 0)
            cmds.checkBox('cbCape', v=0, e=1)
            cmds.checkBox('cbShirt', v=0, e=1)





        cmds.select(clear=1)
        if nmSpcFX:
            nmSpcFX = nmSpcFX + ':'
            for clt in CLT:
                cmds.select(nmSpcFX + clt, add=1)

        else:
            cmds.select(CLT, r=1)
Example #38
0
    if nodesCreated != totalNodes:
        cmds.error("Made " + nodesCreated + " file nodes, expected " + totalNodes + ". Check file names?")

    return


##UI

#Create fresh window
winID = "load_substance_maps"
if cmds.window(winID, exists=True):
    cmds.deleteUI(winID)
win = cmds.window(winID, title="Load Substance Maps", sizeable=False)
cmds.window( win, edit=True, widthHeight=(500, 140) )

#Layout
cmds.rowColumnLayout(numberOfColumns=2, columnWidth=[(1, 440), (2, 60)])

cmds.text( label='Select folder containing Substance Painter maps.', height=30 )
cmds.separator(style='none')

srcDir = cmds.textField()
cmds.button(label="Browse", command='browse(srcDir)')

cmds.separator(style='none', height=30)
cmds.separator(style='none')

cmds.button(label="Import as aiStandardSurface", command='import_maps(srcDir)', height=40)

cmds.showWindow()
Example #39
0
def build_gui_fspy_importer():
    ''' Builds Main UI '''
    window_name = "build_gui_fspy_importer"
    if cmds.window(window_name, exists =True):
        cmds.deleteUI(window_name)    

    # Main GUI Start Here =================================================================================
    
    # Build UI
    build_gui_fspy_importer = cmds.window(window_name, title=script_name + '  (v' + script_version + ')',\
                          titleBar=True, mnb=False, mxb=False, sizeable =True)
                             
    cmds.window(window_name, e=True, s=True, wh=[1,1])
    
    content_main = cmds.columnLayout(adj = True)

    # Title Text
    title_bgc_color = (.4, .4, .4)
    cmds.separator(h=10, style='none') # Empty Space
    cmds.rowColumnLayout(nc=1, cw=[(1, 340)], cs=[(1, 10)], p=content_main) # Window Size Adjustment
    cmds.rowColumnLayout(nc=3, cw=[(1, 10), (2, 270), (3, 50)], cs=[(1, 10), (2, 0), (3, 0)], p=content_main) # Title Column
    cmds.text(" ", bgc=title_bgc_color) # Tiny Empty Green Space
    cmds.text(script_name, bgc=title_bgc_color,  fn="boldLabelFont", align="left")
    cmds.button( l ="Help", bgc=title_bgc_color, c=lambda x:build_gui_help_fspy_importer())
    cmds.separator(h=3, style='none', p=content_main) # Empty Space
    
    # Body ====================
    body_column = cmds.rowColumnLayout(nc=1, cw=[(1, 340)], cs=[(1,10)], p=content_main)

    # Generate Images
    # Icon
    icons_folder_dir = cmds.internalVar(userBitmapsDir=True) 
    icon_image = icons_folder_dir + 'gt_fspy_importer.png'
    
    if os.path.isdir(icons_folder_dir) == False:
        icon_image = ':/camera.open.svg'
    
    if os.path.isdir(icons_folder_dir) and os.path.exists(icon_image) == False:
        image_enconded = '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'
        #image_64_decode = base64.decodestring(image_enconded)
        image_64_decode = base64.b64decode(image_enconded)
        image_result = open(icon_image, 'wb')
        image_result.write(image_64_decode)
        image_result.close()
        
        
    cmds.separator(h=7, style='none', p=body_column) # Empty Space
    
    cmds.rowColumnLayout(nc=1, cw=[(1, 300)], cs=[(1,2)])
    cmds.text('JSON File Path:', font='tinyBoldLabelFont', align='left')
    cmds.rowColumnLayout(nc=2, cw=[(1, 290),(2, 30)], cs=[(1,0),(2,5)], p=body_column)
    json_file_path_txtfld = cmds.textField(pht='Path Pointing to JSON File')
    open_json_btn = cmds.iconTextButton( style='iconAndTextVertical', image1=':/folder-open.png', label='',\
                                         statusBarMessage='Open fSpy JSON File',\
                                         olc=[1,0,0] , enableBackground=True, h=30,\
                                         command=lambda: load_json_path())

    cmds.separator(h=5, style='none', p=body_column) # Empty Space
    
   
    cmds.rowColumnLayout(nc=1, cw=[(1, 300)], cs=[(1,2)], p=body_column)
    cmds.text('Image File Path:', font='tinyBoldLabelFont', align='left')
    cmds.rowColumnLayout(nc=2, cw=[(1, 290),(2, 30)], cs=[(1,0),(2,5)], p=body_column)
    image_file_path_txtfld = cmds.textField(pht='Path Pointing to Image File')
    open_image_btn = cmds.iconTextButton( style='iconAndTextVertical', image1=':/folder-open.png', label='',\
                                          statusBarMessage='Open fSpy Image File',\
                                          olc=[1,0,0] , enableBackground=True, h=30,\
                                          command=lambda: load_image_path())
    
    cmds.separator(h=10, style='none', p=body_column) # Empty Space                  
    cmds.rowColumnLayout(nc=3, cw=[(1, 140),(2, 100),(3, 100)], cs=[(1,2)], p=body_column)
    
    set_resolution_chk = cmds.checkBox('Set Scene Resolution', value=True)
    convert_axis_z_to_y = cmds.checkBox('+Z Axis is +Y', value=True)
    lock_camera_chk = cmds.checkBox('Lock Camera', value=True)
    
    cmds.separator(h=10, style='none', p=body_column) # Empty Space
    cmds.rowColumnLayout(nc=1, cw=[(1, 330)], cs=[(1,0)], p=body_column)

    cmds.button(l ="Import  (Generate Camera)", bgc=(.6, .6, .6), c=lambda x:check_before_run())
    cmds.separator(h=10, style='none', p=body_column) # Empty Space   
    

    def check_before_run():
        ''' Performs a few sanity checks before running the script '''
        set_resolution = cmds.checkBox(set_resolution_chk, q=True, value=True)
        convert_z_to_y = cmds.checkBox(convert_axis_z_to_y, q=True, value=True)
        lock_camera = cmds.checkBox(lock_camera_chk, q=True, value=True)
        
        is_valid = True
        
        json_path = cmds.textField(json_file_path_txtfld, q=True, text=True)
        image_path = cmds.textField(image_file_path_txtfld, q=True, text=True)
        
        if json_path == '':
            cmds.warning('The JSON file path is empty.')
            is_valid = False
            
        if image_path == '':
            cmds.warning('The image file path is empty.')
            is_valid = False
        
        if json_path != '' and os.path.exists(json_path) == False:
            cmds.warning('The provided JSON path doesn\'t seem to point to an existing file.')
            is_valid = False
            
        if image_path != '' and os.path.exists(image_path) == False:
            cmds.warning('The provided image path doesn\'t seem to point to an existing file.')
            is_valid = False
   
        try:
            if is_valid:
                with open(json_path) as json_file:
                    json_data = json.load(json_file)
                image_width = json_data['imageWidth']
        except:
            is_valid = False
            cmds.warning('The provided JSON file seems to be missing some data.')

        if is_valid:
            gt_import_fspy_json(json_path,image_path, convert_up_axis_z_to_y=convert_z_to_y, lock_camera=lock_camera, set_scene_resolution=set_resolution)
            
        
    def load_json_path():
        ''' Invoke open file dialog so the user can select a JSON file (Populates the "json_file_path_txtfld" with user input) '''
        multiple_filters = "JSON fSpy Files (*.json);;All Files (*.*)"
        file_path = cmds.fileDialog2(fileFilter=multiple_filters, dialogStyle=2, fm=1, caption='Select fSpy JSON File', okc='Select JSON')

        if file_path:
            cmds.textField(json_file_path_txtfld, e=True, text=file_path[0])
            try:
                extension = os.path.splitext(file_path[0])[1]
                if extension == '.fspy':
                    cmds.warning('You selected an "fSpy" file. This script only supports "json" files. Please select another file.')
            except:
                pass
    
    def load_image_path():
        ''' Invoke open file dialog so the user can select an image file (Populates the "image_file_path_txtfld" with user input) '''
        multiple_filters = "Image Files (*.*)"
        file_path = cmds.fileDialog2(fileFilter=multiple_filters, dialogStyle=2, fm=1, caption='Select fSpy JSON File', okc='Select JSON')

        if file_path:
            cmds.textField(image_file_path_txtfld, e=True, text=file_path[0])
            try:
                extension = os.path.splitext(file_path[0])[1]
                if extension == '.fspy':
                    cmds.warning('You selected an "fSpy" file. Please update this path to an image.')
                elif extension == '.json':
                    cmds.warning('You selected a "json" file. Please update this path to an image.')
            except:
                pass

    # Show and Lock Window
    cmds.showWindow(build_gui_fspy_importer)
    cmds.window(window_name, e=True, s=False)
    
    # Remove the focus from the textfield and give it to the window
    cmds.setFocus(window_name)
    
    # Set Window Icon
    qw = omui.MQtUtil.findWindow(window_name)
    if python_version == 3:
        widget = wrapInstance(int(qw), QWidget)
    else:
        widget = wrapInstance(long(qw), QWidget)
    icon = QIcon(icon_image)
    widget.setWindowIcon(icon)
Example #40
0
def browse(srcTextField):
    dir = cmds.fileDialog2(fm=3, dialogStyle=1)[0]
    cmds.textField(srcTextField, edit=True, tx=dir)
    return dir
Example #41
0
 def getFilePath(self):
     return cmds.textField("filePathField", query=True, text=True)
Example #42
0
def rename_command(part):
    rename_tex = cmds.textField(rename_texfld, q=1,
                                text=1)  #rename.UI_textField에 적는 값을 추출

    if part == "rename":
        Rig_command.rename(rename_tex)  #Rig_command에 있는 rename함수 연결
Example #43
0
 def browse(self):
     newfilepath = cmds.fileDialog2(fm=0, okc='Save file as')
     cmds.textField("filePathField", e=1, text=str(newfilepath[0]))
Example #44
0
	def modifySelected(self, *args):
			
			if cmds.checkBox(self.UIElements["symmetryMoveCheckBox"], q=True, value=True):
				self.deleteSymmetryMoveExpressions()
				self.setupSymmetryMoveExpressions()
			
			selectedNodes = cmds.ls(selection=True)
 			
			if len(selectedNodes) <= 1:
				self.moduleInstance = None
				selectedModuleNamespace = None
				currentModuleFile = None
				
				cmds.button(self.UIElements["ungroupBtn"], edit=True, enable=False)
				cmds.button(self.UIElements["mirrorModuleBtn"], edit=True, enable=False)
 				
				if len(selectedNodes) == 1:
					lastSelected = selectedNodes[0]
					
					if lastSelected.find("Group__") == 0:
						cmds.button(self.UIElements["ungroupBtn"], edit=True, enable=True)
						cmds.button(self.UIElements["mirrorModuleBtn"], edit=True, enable=True, label="Mirror Group")
 					
					namespaceAndNode = utils.stripLeadingNamespace(lastSelected)
					if namespaceAndNode != None:
						namespace = namespaceAndNode[0]
 						
						moduleNameInfo = utils.findAllModuleNames("/Modules/Blueprint")
						validModules = moduleNameInfo[0]
						validModuleNames = moduleNameInfo[1]
 						
						index = 0
						for moduleName in validModuleNames:
							moduleNameIncSuffix = moduleName + "__"
							if namespace.find(moduleNameIncSuffix) == 0:
								currentModuleFile = validModules[index]
								selectedModuleNamespace = namespace
								break
 							
							index += 1
 							 
				controlEnable = False
				userSpecifiedName = ""
				constrainCommand = self.constrainRootToHook 
				constrainLabel = "Constrain Root > Hook"
 				
				if selectedModuleNamespace != None:
					controlEnable = True
					userSpecifiedName = selectedModuleNamespace.partition("__")[2]
 					
					mod = __import__("Blueprint."+currentModuleFile, {},{}, [currentModuleFile])
					reload(mod)
					
					moduleClass = getattr(mod, mod.CLASS_NAME)
					self.moduleInstance = moduleClass(userSpecifiedName, None)
					
					cmds.button(self.UIElements["mirrorModuleBtn"], edit=True, enable=True, label="Mirror Module")
					
					
					if self.moduleInstance.isRootConstrained():
						constrainCommand = self.unconstrainRootFromHook
						constrainLabel = "Unconstrain Root"
					
				#cmds.button(self.UIElements["mirrorModuleBtn"], edit=True, enable=controlEnable)
				cmds.button(self.UIElements["rehookBtn"], edit=True, enable=controlEnable)
				cmds.button(self.UIElements["snapRootBtn"], edit=True, enable=controlEnable)
				cmds.button(self.UIElements["constrainRootBtn"], edit=True, enable=controlEnable, label=constrainLabel, c=constrainCommand )
				
				cmds.button(self.UIElements["deleteModuleBtn"], edit=True, enable=controlEnable, c=self.deleteModule)
				
				cmds.textField(self.UIElements["moduleName"], edit=True, enable=controlEnable, text=userSpecifiedName)
				
				self.createModuleSpecificControls()
			
			self.createScriptJob()
Example #45
0
def setText(textBox):
    sel = cmds.ls(sl=True)
    if sel:
        cmds.textField(textBox, edit=True, tx=sel[0])
Example #46
0
 def getVoxelSize(self):
     return float(cmds.textField("voxelSizeField", query=True, text=True))
Example #47
0
def ReturnToOptionMenu(self, selfMenu, item):
    cmds.optionMenu(selfMenu, edit=True, vis=True)
    cmds.textField(self, edit=True, vis=False)
    cmds.menuItem(parent=selfMenu, label=item)
    cmds.optionMenu(selfMenu, edit=True, v=item)
 def textFF(self):
     textF = self.textF
     content = cmds.textField(textF, query=True, text=True)
     print content
     return content
Example #49
0
def getShape1():
    global getShape1_VAR_CCT
    global getObj1_VAR_CCT
    getObj1_VAR_CCT = mc.ls (sl = True)
    getShape1_VAR_CCT = mc.channelBox ('mainChannelBox', q=True, sma=True)[0]
    mc.textField (getShape1_TF, e = True, text = getObj1_VAR_CCT[0] + '.' + getShape1_VAR_CCT)
Example #50
0
def BackpackWindow():

    data = loadPrefs()
    localPath = ''
    storageType = 'Local Folder'
    tokenPath = ''
    try:
        localPath = data['backpack']['localPath']
    except:
        pass
    try:
        tokenPath = data['backpack']['tokenPath']
    except:
        pass
    try:
        storageType = data['backpack']['storageType']
    except:
        pass
    localVis = 0
    dropboxVis = 1
    if storageType == 'Local Folder':
        localVis = 1
        dropboxVis = 0

    modelingForm = cmds.formLayout('modelingForm')

    #setting menu
    settingsButton = cmds.iconTextButton(style='iconOnly',
                                         image1='gear.png',
                                         c='toggleVis()')
    settingsMenu = cmds.columnLayout('settingsMenu', vis=False, adj=True)
    cmds.optionMenu("storageType", w=50, changeCommand='toggleStorageType()')
    cmds.menuItem(label="Local Folder")
    cmds.menuItem(label="Dropbox App")
    cmds.optionMenu("storageType", e=True, v=storageType)
    cmds.rowLayout('localPathGrp', numberOfColumns=2, adj=1, vis=localVis)

    localFolderPath = cmds.textField('localFolderPath', ed=False, tx=localPath)
    browseBtn = cmds.button(l='...', c='browseToFolder()', w=30)
    cmds.setParent(settingsMenu)
    cmds.rowLayout('dbPathGrp', numberOfColumns=2, adj=1, vis=dropboxVis)
    tokenPathField = cmds.textField('tokenPathField', ed=False, tx=tokenPath)
    cmds.button(l='...', w=30, c='browseToToken()')
    cmds.setParent(settingsMenu)

    cmds.setParent(modelingForm)

    typeText = cmds.text(label="Type")
    nameText = cmds.text(label="Name")
    reloadButton = cmds.iconTextButton(style='iconOnly',
                                       image1='refresh.png',
                                       c='setText(\'modelNameInputText\')')

    modelBtn1 = cmds.button("modelBtn1",
                            l='Pocket',
                            h=50,
                            w=200,
                            c='exportFile()')

    #model class menu
    modelClass = cmds.optionMenu("modelClass",
                                 w=50,
                                 changeCommand='UpdateMenus()')
    cmds.menuItem(label="Create New")
    cmds.menuItem(divider=True)

    modelClassInputText = cmds.textField(
        "modelClassInputText",
        w=50,
        vis=False,
        cc=
        'ReturnToOptionMenu("modelClassInputText","modelClass",cmds.textField("modelClassInputText",q=True,tx=True ))'
    )
    if (cmds.optionMenu(modelClass, q=True, numberOfItems=True) > 2):
        cmds.optionMenu(modelClass, edit=True, sl=3)

    #model name menu
    modelNameInputText = cmds.textField("modelNameInputText")

    cmds.formLayout(modelingForm,
                    edit=True,
                    attachForm=[(settingsMenu, 'left', 10),
                                (settingsMenu, 'right', 40),
                                (settingsButton, 'right', 0),
                                (modelBtn1, 'left', 0),
                                (modelBtn1, 'right', 0),
                                (typeText, 'left', 10), (nameText, 'left', 10),
                                (reloadButton, 'right', 10),
                                (modelBtn1, 'bottom', 0),
                                (modelClass, 'left', 50),
                                (modelClassInputText, 'left', 50),
                                (modelNameInputText, 'left', 50),
                                (modelClass, 'right', 10),
                                (modelClassInputText, 'right', 10),
                                (modelNameInputText, 'right', 10)],
                    attachControl=[
                        (modelClass, 'right', 10, reloadButton),
                        (modelClassInputText, 'right', 10, reloadButton),
                        (modelNameInputText, 'right', 10, reloadButton),
                        (reloadButton, 'top', 72, settingsMenu),
                        (typeText, 'top', 42, settingsMenu),
                        (modelClass, 'top', 40, settingsMenu),
                        (modelClassInputText, 'top', 40, settingsMenu),
                        (modelNameInputText, 'top', 70, settingsMenu),
                        (nameText, 'top', 72, settingsMenu)
                    ])
    cmds.setParent('..')

    setText('modelNameInputText')

    toggleStorageType()
    UpdateMenus()
def build_gui_create_testing_keys():
    window_name = "build_gui_create_testing_keys"
    if cmds.window(window_name, exists=True):
        cmds.deleteUI(window_name)

    # Main GUI Start Here =================================================================================

    build_gui_create_testing_keys = cmds.window(window_name, title=script_name + '  (v' + script_version + ')',\
                          titleBar=True, mnb=False, mxb=False, sizeable =True)

    cmds.window(window_name, e=True, s=True, wh=[1, 1])

    content_main = cmds.columnLayout(adj=True)

    # Title Text
    title_bgc_color = (.4, .4, .4)
    cmds.separator(h=10, style='none')  # Empty Space
    cmds.rowColumnLayout(nc=1, cw=[(1, 240)], cs=[(1, 10)],
                         p=content_main)  # Window Size Adjustment
    cmds.rowColumnLayout(nc=3,
                         cw=[(1, 10), (2, 170), (3, 50)],
                         cs=[(1, 10), (2, 0), (3, 0)],
                         p=content_main)  # Title Column
    cmds.text(" ", bgc=title_bgc_color)  # Tiny Empty Green Space
    cmds.text(script_name,
              bgc=title_bgc_color,
              fn="boldLabelFont",
              align="left")
    cmds.button(l="Help",
                bgc=title_bgc_color,
                c=lambda x: build_gui_help_create_testing_keys())
    cmds.separator(h=10, style='none')  # Empty Space

    # Body ====================
    body_column = cmds.rowColumnLayout(nc=1,
                                       cw=[(1, 230)],
                                       cs=[(1, 10)],
                                       p=content_main)

    cmds.rowColumnLayout(nc=1, cw=[(1, 230)], cs=[(1, 20)])
    transform_column_width = [100, 1]

    # Offset Values Transforms
    copy_text_container = cmds.rowColumnLayout(p=body_column,
                                               numberOfRows=1,
                                               adj=True)
    cmds.text("Offset Amount", p=copy_text_container)
    cmds.separator(h=7, style='none', p=body_column)  # Empty Space

    cmds.rowColumnLayout(nc=4,
                         cw=[(1, 20), (2, 63), (3, 63), (4, 63)],
                         cs=[(1, 6), (2, 0), (3, 2), (4, 2)],
                         p=body_column)

    cmds.text(' ')
    cmds.text('X', bgc=[.5, 0, 0])
    cmds.text('Y', bgc=[0, .5, 0])
    cmds.text('Z', bgc=[0, 0, .5])

    cmds.rowColumnLayout(nc=4,
                         cw=[(1, 20), (2, 65), (3, 65), (4, 65)],
                         cs=[(1, 5), (2, 0)],
                         p=body_column)
    cmds.text('T')
    tx_offset_text_field = cmds.textField(text='0.0', ann='tx')
    ty_offset_text_field = cmds.textField(text='0.0', ann='ty')
    tz_offset_text_field = cmds.textField(text='0.0', ann='tz')

    cmds.text('R')
    rx_offset_text_field = cmds.textField(text='0.0', ann='rx')
    ry_offset_text_field = cmds.textField(text='0.0', ann='ry')
    rz_offset_text_field = cmds.textField(text='0.0', ann='rz')

    cmds.text('S')
    sx_offset_text_field = cmds.textField(text='0.0', ann='sx')
    sy_offset_text_field = cmds.textField(text='0.0', ann='sy')
    sz_offset_text_field = cmds.textField(text='0.0', ann='sz')

    cmds.separator(h=10, style='none', p=body_column)  # Empty Space

    cmds.rowColumnLayout(nc=1, cw=[(1, 210)], cs=[(1, 10)], p=body_column)
    cmds.button(l='Reset All Offset Values',
                bgc=(.3, .3, .3),
                c=lambda x: reset_offset_values())
    cmds.separator(h=10, style='none', p=body_column)  # Empty Space

    cmds.rowColumnLayout(nc=1, cw=[(1, 200)], cs=[(1, 25)], p=body_column)
    add_inverted_checkbox = cmds.checkBox(l=' Add Inverted Offset Movement',
                                          value=True)
    cmds.separator(h=5, style='none')  # Empty Space
    delete_keys_checkbox = cmds.checkBox(l=' Delete Previously Created Keys',
                                         value=True)
    cmds.separator(h=5, style='none')  # Empty Space
    use_ws_checkbox = cmds.checkBox(l=' Use World Space (WS) Values',
                                    value=True)

    cmds.separator(h=5, style='none', p=body_column)  # Empty Space

    cmds.rowColumnLayout(nc=1, cw=[(1, 180)], cs=[(1, 25)], p=body_column)

    interval_text_field = cmds.floatSliderGrp(cw=[(1,133),(2,45),(3,0)], cal=[(1,'left')], field=True, label='Interval Between Frames:',\
                                         minValue=0, maxValue=1000, fieldMinValue=0, fieldMaxValue=1000, value=5)#, cc=lambda args: update_grade_output())

    cmds.separator(h=7, style='none', p=body_column)  # Empty Space
    cmds.rowColumnLayout(nc=1, cw=[(1, 210)], cs=[(1, 10)], p=body_column)
    cmds.button(l='Delete All Keyframes in the Scene',
                bgc=(.3, .3, .3),
                c=lambda x: gtu_delete_keyframes())

    cmds.separator(h=7, style='none')  # Empty Space

    cmds.button(l='Create Testing Keyframes',
                bgc=(.6, .6, .6),
                c=lambda x: validate_operation())

    cmds.separator(h=13, style='none', p=content_main)  # Empty Space

    # GUI Build Ends --------------------------------------------

    def validate_operation():
        '''
        '''
        errors = ''
        try:
            cmds.undoInfo(openChunk=True, chunkName=script_name)
            offset_text_fields = [tx_offset_text_field, ty_offset_text_field, tz_offset_text_field,\
                                rx_offset_text_field, ry_offset_text_field, rz_offset_text_field,\
                                sx_offset_text_field, sy_offset_text_field, sz_offset_text_field]

            initial_time = cmds.currentTime(q=True)
            selection = cmds.ls(selection=True)
            if len(cmds.ls(selection=True)) != 0:
                interval = cmds.floatSliderGrp(interval_text_field,
                                               q=True,
                                               value=True)

                add_inverted = cmds.checkBox(add_inverted_checkbox,
                                             q=True,
                                             value=True)
                delete_keys = cmds.checkBox(delete_keys_checkbox,
                                            q=True,
                                            value=True)
                use_ws = cmds.checkBox(use_ws_checkbox, q=True, value=True)

                if delete_keys:
                    for obj in cmds.ls(selection=True):
                        connections = cmds.listConnections(
                            obj, type='animCurveTA') or []
                        connections += cmds.listConnections(
                            obj, type='animCurveTL') or []
                        connections += cmds.listConnections(
                            obj, type='animCurveTT') or []
                        connections += cmds.listConnections(
                            obj, type='animCurveTU') or []
                        for key in connections:
                            try:
                                cmds.delete(key)
                            except:
                                pass

                # Apply Offsets
                for text_field in offset_text_fields:
                    attr = cmds.textField(text_field, q=True, ann=True)
                    value = 0.0
                    try:
                        value = float(
                            cmds.textField(text_field, q=True, text=True))
                    except:
                        pass
                    if value > 0:
                        create_testing_keyframes(value,
                                                 attr,
                                                 interval,
                                                 create_inverted=add_inverted,
                                                 ws_method=use_ws)

            else:
                cmds.warning(
                    'Select at least one object to create testing key frames.')
            cmds.currentTime(initial_time)  # Return Time to initial value
        except Exception as e:
            errors += str(e) + '\n'
        finally:
            cmds.undoInfo(closeChunk=True, chunkName=script_name)
        if errors != '':
            cmds.warning(
                'An error occured when creating the keyframes. Open the script editor for more information.'
            )
            print('######## Errors: ########')
            print(errors)
            print('#########################')

    def create_testing_keyframes(offset,
                                 attr,
                                 interval,
                                 create_inverted=False,
                                 ws_method=True):
        '''
        Creates a sequence of keyframes on the selected objects so they move for testing
        Used to quickly test joints when rigging
        
                Parameters:
                    offset (float, int): keyframe value, how much it will move up and down (e.g. 1 or 2...)
                    attr (string): name of the attribute "e.g. rotation"
                    interval (int): Interval between keyframes (frequency)
                    create_inverted (bool): Whether or not to increate a key with the inverted offset value
        '''

        initial_time = cmds.currentTime(q=True)
        selection = cmds.ls(selection=True)
        current_frame = cmds.playbackOptions(
            animationStartTime=True, q=True
        )  # Gets the first frame available in the timeline (usually 0 or 1)
        current_max_time = cmds.playbackOptions(
            maxTime=True, q=True
        )  # Gets the max time (work area end frame) to see if it needs to expand the timeline
        cmds.currentTime(current_frame)  # Resets timeline to first frame

        offset_vec = (0, 0, 0)

        # Desired Channel
        translate = False
        rotate = False
        scale = False
        if 't' in attr:
            translate = True
        elif 'r' in attr:
            rotate = True
        elif 's' in attr:
            scale = True

        # Assemble Offset
        if 'x' in attr:
            offset_vec = (offset, offset_vec[1], offset_vec[2])
        elif 'y' in attr:
            offset_vec = (offset_vec[0], offset, offset_vec[2])
        else:
            offset_vec = (offset_vec[0], offset_vec[1], offset)

        for obj in selection:
            if cmds.objExists(obj):
                # Create key at neutral pose
                cmds.setKeyframe(obj,
                                 at=attr,
                                 t=current_frame,
                                 itt='linear',
                                 ott='linear')

                if translate:
                    orig_tx = cmds.getAttr(obj + '.tx')
                    orig_ty = cmds.getAttr(obj + '.ty')
                    orig_tz = cmds.getAttr(obj + '.tz')

                    if ws_method:
                        temp_grp = cmds.group(name='temp_grp_',
                                              w=True,
                                              em=True)
                        cmds.parentConstraint(obj, temp_grp)
                        orig_tx = cmds.getAttr(temp_grp + '.tx')
                        orig_ty = cmds.getAttr(temp_grp + '.ty')
                        orig_tz = cmds.getAttr(temp_grp + '.tz')
                        cmds.delete(temp_grp)
                        cmds.setKeyframe(obj,
                                         at='.tx',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')
                        cmds.setKeyframe(obj,
                                         at='.ty',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')
                        cmds.setKeyframe(obj,
                                         at='.tz',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')

                if rotate:
                    orig_rx = cmds.getAttr(obj + '.rx')
                    orig_ry = cmds.getAttr(obj + '.ry')
                    orig_rz = cmds.getAttr(obj + '.rz')

                    if ws_method:
                        temp_grp = cmds.group(name='temp_grp_',
                                              w=True,
                                              em=True)
                        cmds.parentConstraint(obj, temp_grp)
                        orig_rx = cmds.getAttr(temp_grp + '.rx')
                        orig_ry = cmds.getAttr(temp_grp + '.ry')
                        orig_rz = cmds.getAttr(temp_grp + '.rz')
                        cmds.delete(temp_grp)
                        cmds.setKeyframe(obj,
                                         at='.rx',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')
                        cmds.setKeyframe(obj,
                                         at='.ry',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')
                        cmds.setKeyframe(obj,
                                         at='.rz',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')

                if scale:
                    orig_sx = cmds.getAttr(obj + '.sx')
                    orig_sy = cmds.getAttr(obj + '.sy')
                    orig_sz = cmds.getAttr(obj + '.sz')

                # Create key at positive pose
                current_frame += interval
                if translate and not ws_method:
                    offset_tx = orig_tx + offset_vec[0]
                    offset_ty = orig_ty + offset_vec[1]
                    offset_tz = orig_tz + offset_vec[2]
                    if not cmds.getAttr(obj + '.tx',
                                        lock=True) and offset_tx != orig_tx:
                        cmds.setAttr(obj + '.tx', offset_tx)
                    if not cmds.getAttr(obj + '.ty',
                                        lock=True) and offset_ty != orig_ty:
                        cmds.setAttr(obj + '.ty', offset_ty)
                    if not cmds.getAttr(obj + '.tz',
                                        lock=True) and offset_tz != orig_tz:
                        cmds.setAttr(obj + '.tz', offset_tz)
                elif translate and ws_method:  # WS Pose
                    offset_tx = orig_tx + offset_vec[0]
                    offset_ty = orig_ty + offset_vec[1]
                    offset_tz = orig_tz + offset_vec[2]
                    cmds.xform(obj,
                               ws=True,
                               t=(offset_tx, offset_ty, offset_tz))
                    cmds.setKeyframe(obj,
                                     at='.tx',
                                     t=current_frame,
                                     itt='linear',
                                     ott='linear')
                    cmds.setKeyframe(obj,
                                     at='.ty',
                                     t=current_frame,
                                     itt='linear',
                                     ott='linear')
                    cmds.setKeyframe(obj,
                                     at='.tz',
                                     t=current_frame,
                                     itt='linear',
                                     ott='linear')

                if rotate and not ws_method:
                    offset_rx = orig_rx + offset_vec[0]
                    offset_ry = orig_ry + offset_vec[1]
                    offset_rz = orig_rz + offset_vec[2]
                    if not cmds.getAttr(obj + '.rx',
                                        lock=True) and offset_rx != orig_rx:
                        cmds.setAttr(obj + '.rx', offset_rx)
                    if not cmds.getAttr(obj + '.ry',
                                        lock=True) and offset_ry != orig_ry:
                        cmds.setAttr(obj + '.ry', offset_ry)
                    if not cmds.getAttr(obj + '.rz',
                                        lock=True) and offset_rz != orig_rz:
                        cmds.setAttr(obj + '.rz', offset_rz)
                elif rotate and ws_method:  # WS Pose
                    offset_rx = orig_rx + offset_vec[0]
                    offset_ry = orig_ry + offset_vec[1]
                    offset_rz = orig_rz + offset_vec[2]
                    cmds.xform(obj,
                               ws=True,
                               ro=(offset_rx, offset_ry, offset_rz))
                    cmds.setKeyframe(obj,
                                     at='.rx',
                                     t=current_frame,
                                     itt='linear',
                                     ott='linear')
                    cmds.setKeyframe(obj,
                                     at='.ry',
                                     t=current_frame,
                                     itt='linear',
                                     ott='linear')
                    cmds.setKeyframe(obj,
                                     at='.rz',
                                     t=current_frame,
                                     itt='linear',
                                     ott='linear')

                if scale:
                    offset_sx = orig_sx + offset_vec[0]
                    offset_sy = orig_sy + offset_vec[1]
                    offset_sz = orig_sz + offset_vec[2]
                    if not cmds.getAttr(obj + '.sx',
                                        lock=True) and offset_sx != orig_sx:
                        cmds.setAttr(obj + '.sx', offset_sx)
                    if not cmds.getAttr(obj + '.sy',
                                        lock=True) and offset_sy != orig_sy:
                        cmds.setAttr(obj + '.sy', offset_sy)
                    if not cmds.getAttr(obj + '.sz',
                                        lock=True) and offset_sz != orig_sz:
                        cmds.setAttr(obj + '.sz', offset_sz)
                cmds.setKeyframe(obj,
                                 at=attr,
                                 t=current_frame,
                                 itt='linear',
                                 ott='linear')

                if create_inverted:
                    # Create key at negative pose
                    current_frame += interval
                    if translate and not ws_method:
                        offset_tx = orig_tx + offset_vec[0] * -1
                        offset_ty = orig_ty + offset_vec[1] * -1
                        offset_tz = orig_tz + offset_vec[2] * -1
                        if not cmds.getAttr(
                                obj + '.tx',
                                lock=True) and offset_tx != orig_tx:
                            cmds.setAttr(obj + '.tx', offset_tx)
                        if not cmds.getAttr(
                                obj + '.ty',
                                lock=True) and offset_ty != orig_ty:
                            cmds.setAttr(obj + '.ty', offset_ty)
                        if not cmds.getAttr(
                                obj + '.tz',
                                lock=True) and offset_tz != orig_tz:
                            cmds.setAttr(obj + '.tz', offset_tz)
                    elif translate and ws_method:  # WS Pose
                        offset_tx = orig_tx + offset_vec[0] * -1
                        offset_ty = orig_ty + offset_vec[1] * -1
                        offset_tz = orig_tz + offset_vec[2] * -1
                        cmds.xform(obj,
                                   ws=True,
                                   t=(offset_tx, offset_ty, offset_tz))
                        cmds.setKeyframe(obj,
                                         at='.tx',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')
                        cmds.setKeyframe(obj,
                                         at='.ty',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')
                        cmds.setKeyframe(obj,
                                         at='.tz',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')

                    if rotate and not ws_method:
                        offset_rx = orig_rx + offset_vec[0] * -1
                        offset_ry = orig_ry + offset_vec[1] * -1
                        offset_rz = orig_rz + offset_vec[2] * -1
                        if not cmds.getAttr(
                                obj + '.rx',
                                lock=True) and offset_rx != orig_rx:
                            cmds.setAttr(obj + '.rx', offset_rx)
                        if not cmds.getAttr(
                                obj + '.ry',
                                lock=True) and offset_ry != orig_ry:
                            cmds.setAttr(obj + '.ry', offset_ry)
                        if not cmds.getAttr(
                                obj + '.rz',
                                lock=True) and offset_rz != orig_rz:
                            cmds.setAttr(obj + '.rz', offset_rz)
                    elif rotate and ws_method:  # WS Pose
                        offset_rx = orig_rx + offset_vec[0] * -1
                        offset_ry = orig_ry + offset_vec[1] * -1
                        offset_rz = orig_rz + offset_vec[2] * -1
                        cmds.xform(obj,
                                   ws=True,
                                   ro=(offset_rx, offset_ry, offset_rz))
                        cmds.setKeyframe(obj,
                                         at='.rx',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')
                        cmds.setKeyframe(obj,
                                         at='.ry',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')
                        cmds.setKeyframe(obj,
                                         at='.rz',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')

                    if scale:
                        offset_sx = orig_sx + (orig_sx * -1) * 2 + (
                            offset_vec[0] * -1)
                        offset_sy = orig_sy + (orig_sy * -1) * 2 + (
                            offset_vec[1] * -1)
                        offset_sz = orig_sz + (orig_sz * -1) * 2 + (
                            offset_vec[2] * -1)
                        if not cmds.getAttr(
                                obj + '.sx',
                                lock=True) and offset_sx != orig_sx:
                            cmds.setAttr(obj + '.sx', offset_sx)
                        if not cmds.getAttr(
                                obj + '.sy',
                                lock=True) and offset_sy != orig_sy:
                            cmds.setAttr(obj + '.sy', offset_sy)
                        if not cmds.getAttr(
                                obj + '.sz',
                                lock=True) and offset_sz != orig_sz:
                            cmds.setAttr(obj + '.sz', offset_sz)
                    cmds.setKeyframe(obj,
                                     at=attr,
                                     t=current_frame,
                                     itt='linear',
                                     ott='linear')

                    # Create key at neutral pose
                    current_frame += interval
                    if translate and not ws_method:
                        if not cmds.getAttr(obj + '.tx', lock=True):
                            cmds.setAttr(obj + '.tx', orig_tx)
                        if not cmds.getAttr(obj + '.ty', lock=True):
                            cmds.setAttr(obj + '.ty', orig_ty)
                        if not cmds.getAttr(obj + '.tz', lock=True):
                            cmds.setAttr(obj + '.tz', orig_tz)
                    elif translate and ws_method:  # WS Pose
                        cmds.xform(obj, ws=True, t=(orig_tx, orig_ty, orig_tz))
                        cmds.setKeyframe(obj,
                                         at='.tx',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')
                        cmds.setKeyframe(obj,
                                         at='.ty',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')
                        cmds.setKeyframe(obj,
                                         at='.tz',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')

                    if rotate and not ws_method:
                        if not cmds.getAttr(obj + '.rx', lock=True):
                            cmds.setAttr(obj + '.rx', orig_rx)
                        if not cmds.getAttr(obj + '.ry', lock=True):
                            cmds.setAttr(obj + '.ry', orig_ry)
                        if not cmds.getAttr(obj + '.rz', lock=True):
                            cmds.setAttr(obj + '.rz', orig_rz)
                    elif rotate and ws_method:  # WS Pose
                        cmds.xform(obj,
                                   ws=True,
                                   ro=(orig_rx, orig_ry, orig_rz))
                        cmds.setKeyframe(obj,
                                         at='.rx',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')
                        cmds.setKeyframe(obj,
                                         at='.ry',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')
                        cmds.setKeyframe(obj,
                                         at='.rz',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')

                    if scale:
                        if not cmds.getAttr(obj + '.sx', lock=True):
                            cmds.setAttr(obj + '.sx', orig_sx)
                        if not cmds.getAttr(obj + '.sy', lock=True):
                            cmds.setAttr(obj + '.sy', orig_sy)
                        if not cmds.getAttr(obj + '.sz', lock=True):
                            cmds.setAttr(obj + '.sz', orig_sz)
                    cmds.setKeyframe(obj,
                                     at=attr,
                                     t=current_frame,
                                     itt='linear',
                                     ott='linear')

                else:
                    # Create key at neutral pose
                    current_frame += interval
                    if translate and not ws_method:
                        if not cmds.getAttr(obj + '.tx', lock=True):
                            cmds.setAttr(obj + '.tx', orig_tx)
                        if not cmds.getAttr(obj + '.ty', lock=True):
                            cmds.setAttr(obj + '.ty', orig_ty)
                        if not cmds.getAttr(obj + '.tz', lock=True):
                            cmds.setAttr(obj + '.tz', orig_tz)
                    elif translate and ws_method:  # WS Pose
                        cmds.xform(obj, ws=True, t=(orig_tx, orig_ty, orig_tz))
                        cmds.setKeyframe(obj,
                                         at='.tx',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')
                        cmds.setKeyframe(obj,
                                         at='.ty',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')
                        cmds.setKeyframe(obj,
                                         at='.tz',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')

                    if rotate and not ws_method:
                        if not cmds.getAttr(obj + '.rx', lock=True):
                            cmds.setAttr(obj + '.rx', orig_rx)
                        if not cmds.getAttr(obj + '.ry', lock=True):
                            cmds.setAttr(obj + '.ry', orig_ry)
                        if not cmds.getAttr(obj + '.rz', lock=True):
                            cmds.setAttr(obj + '.rz', orig_rz)
                    elif rotate and ws_method:  # WS Pose
                        cmds.xform(obj,
                                   ws=True,
                                   ro=(orig_rx, orig_ry, orig_rz))
                        cmds.setKeyframe(obj,
                                         at='.rx',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')
                        cmds.setKeyframe(obj,
                                         at='.ry',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')
                        cmds.setKeyframe(obj,
                                         at='.rz',
                                         t=current_frame,
                                         itt='linear',
                                         ott='linear')

                    if scale:
                        if not cmds.getAttr(obj + '.sx', lock=True):
                            cmds.setAttr(obj + '.sx', orig_sx)
                        if not cmds.getAttr(obj + '.sy', lock=True):
                            cmds.setAttr(obj + '.sy', orig_sy)
                        if not cmds.getAttr(obj + '.sz', lock=True):
                            cmds.setAttr(obj + '.sz', orig_sz)
                    cmds.setKeyframe(obj,
                                     at=attr,
                                     t=current_frame,
                                     itt='linear',
                                     ott='linear')

        if current_frame > current_max_time:
            cmds.playbackOptions(
                maxTime=current_frame)  # Expand max time if necessary

        cmds.select(selection)  # Bring back original selection

    def reset_offset_values():
        offset_text_fields = [tx_offset_text_field, ty_offset_text_field, tz_offset_text_field,\
                            rx_offset_text_field, ry_offset_text_field, rz_offset_text_field,\
                            sx_offset_text_field, sy_offset_text_field, sz_offset_text_field]

        for text_field in offset_text_fields:
            cmds.textField(text_field, e=True, text='0.0')

    def gtu_delete_keyframes():
        '''Deletes all keyframes (Doesn't include Set Driven Keys)'''
        function_name = 'GTU Delete All Keyframes'
        cmds.undoInfo(openChunk=True, chunkName=function_name)
        try:
            keys_ta = cmds.ls(type='animCurveTA')
            keys_tl = cmds.ls(type='animCurveTL')
            keys_tt = cmds.ls(type='animCurveTT')
            keys_tu = cmds.ls(type='animCurveTU')
            deleted_counter = 0
            all_keyframes = keys_ta + keys_tl + keys_tt + keys_tu
            for obj in all_keyframes:
                try:
                    cmds.delete(obj)
                    deleted_counter += 1
                except:
                    pass
            message = '<span style=\"color:#FF0000;text-decoration:underline;\">' + str(
                deleted_counter) + ' </span>'
            is_plural = 'keyframe nodes were'
            if deleted_counter == 1:
                is_plural = 'keyframe node was'
            message += is_plural + ' deleted.'

            cmds.inViewMessage(amg=message, pos='botLeft', fade=True, alpha=.9)
        except Exception as e:
            cmds.warning(str(e))
        finally:
            cmds.undoInfo(closeChunk=True, chunkName=function_name)

    # Show and Lock Window
    cmds.showWindow(build_gui_create_testing_keys)
    cmds.window(window_name, e=True, s=False)

    # Set Window Icon
    qw = omui.MQtUtil.findWindow(window_name)
    if python_version == 3:
        widget = wrapInstance(int(qw), QWidget)
    else:
        widget = wrapInstance(long(qw), QWidget)
    icon = QIcon(':/setMaxInfluence.png')
    widget.setWindowIcon(icon)

    # Deselect Text Field
    cmds.setFocus(window_name)
Example #52
0
def createWindow():
    if cmds.window('MeshLightSetter',ex=True):
        cmds.deleteUI('MeshLightSetter')

    cmds.window('MeshLightSetter',t='MeshLight Setter',w=600,h=800)
    cmds.rowLayout(nc=2)
    cmds.frameLayout(l='aiTranslatorAttributes',w=380)
    cmds.formLayout('MeshLight_FormLayout')
    f1 = cmds.optionMenu('MeshLight_aiTranslator')
    cmds.menuItem(l='polymesh',p='MeshLight_aiTranslator')
    cmds.menuItem(l='mesh_light',p='MeshLight_aiTranslator')
    cmds.menuItem(l='procedural',p='MeshLight_aiTranslator')
    cmds.menuItem(l='quad',p='MeshLight_aiTranslator')
    cmds.menuItem(l='cylinder',p='MeshLight_aiTranslator')
    cmds.menuItem(l='disk',p='MeshLight_aiTranslator')
    f2 = cmds.colorSliderGrp('MeshLight_aiColor',l='Color')
    f3 = cmds.floatSliderGrp('MeshLight_aiIntensity',l='Intensity',field=True)
    f4 = cmds.floatSliderGrp('MeshLight_aiExposure',l='Exposure',field=True)
    f5 = cmds.checkBox('MeshLight_aiUseTemp',l='Use Temperature')
    f6 = cmds.floatSliderGrp('MeshLight_aiTemperature',l='Temperature',minValue=0.0,maxValue=20000.0,field=True)
    f7 = cmds.checkBox('MeshLight_aiVisible',l='Light Visible')
    f8 = cmds.intFieldGrp('MeshLight_aiSample',l='Sample')
    f9 = cmds.checkBox('MeshLight_aiNormalize',l='Normalize')
    f10 = cmds.checkBox('MeshLight_aiCastShadows',l='Cast Shadows')
    f11 = cmds.floatSliderGrp('MeshLight_aiShadowDensity',l='ShadowDensity',minValue=0.0,maxValue=1.0,field=True)
    f12 = cmds.colorSliderGrp('MeshLight_aiShadowColor',l='Shadow Color')
    f13 = cmds.checkBox('MeshLight_aiCastVolumeShadow',l='Cast Volumeric Shadow')
    f14 = cmds.intFieldGrp('MeshLight_aiVolumeSample',l='Volume Sample')
    f15 = cmds.textFieldGrp('MeshLight_aiAov',l='AOV Group')
    f16 = cmds.rowLayout(nc=2)
    f17 = cmds.button(l='List LightGroup',c=lambda *args:refreshLightGroupMenu(),w=98)
    f18 = cmds.button(l='Set LightGroup',c=lambda *args:setLightGroupFromMenu(),w=98)
    cmds.setParent(u=True)
    f19 = cmds.textFieldGrp('AOVString',l='AOVs')
    f20 = cmds.textScrollList('MeshLight_LightGroupList',w=200,h=372)
    
    cmds.formLayout('MeshLight_FormLayout',e=True,af = [(f1,'top',0),(f1,'left',100),
                                                        (f2,'top',22),(f2,'left',-40),
                                                        (f3,'top',44),(f3,'left',-40),
                                                        (f4,'top',66),(f4,'left',-40),
                                                        (f5,'top',88),(f5,'left',90),
                                                        (f6,'top',110),(f6,'left',-40),
                                                        (f7,'top',132),(f7,'left',90),
                                                        (f8,'top',154),(f8,'left',-40),
                                                        (f9,'top',176),(f9,'left',90),
                                                        (f10,'top',198),(f10,'left',90),
                                                        (f11,'top',220),(f11,'left',-40),
                                                        (f12,'top',242),(f12,'left',-40),
                                                        (f13,'top',264),(f13,'left',90),
                                                        (f14,'top',286),(f14,'left',-40),
                                                        (f15,'top',308),(f15,'left',-40),
                                                        (f16,'top',333),(f16,'left',90),
                                                        (f19,'top',360),(f19,'left',-40),
                                                        (f20,'top',383),(f20,'left',90)
                                                        ])
    
    
    cmds.setParent(u=True)
    cmds.setParent(u=True)
    cmds.frameLayout(l='Mesh Light List',w=400)
    cmds.rowLayout(nc=5)
    cmds.button(l='aiAreaLight',w=80,c=lambda *ars:createAreaLight())
    cmds.textField('nodeTypeFilterText',w=130)
    cmds.popupMenu(p='nodeTypeFilterText')
    cmds.menuItem(l='getTypeBySelect',c=lambda *args:cmds.textField('nodeTypeFilterText',e=True,tx=cmds.nodeType(cmds.ls(sl=True)[0])))
    cmds.button(l='Selected',w=60,c=lambda args:cmds.select(cmds.ls(sl=True,dag=True,ni=True,type=cmds.textField('nodeTypeFilterText',q=True,tx=True)),r=True))
    cmds.button(l='Scene',w=60,c=lambda args:cmds.select(cmds.ls(dag=True,ni=True,type=cmds.textField('nodeTypeFilterText',q=True,tx=True)),r=True))
    cmds.button(l='Group',w=60,c=lambda args:cmds.select(groupAnalyzer(cmds.ls(dag=True,sl=True,ni=True),cmds.textField('nodeTypeFilterText',q=True,tx=True),'down'),r=True))
    cmds.setParent(u=True)
    cmds.formLayout('MeshLightList_FormLayout')
    cmds.radioCollection()
    w1 = cmds.radioButton('AllLightCheck',l='List All Light',sl=True)
    w2 = cmds.radioButton('SelLightCheck',l='List Sel Light')
    #w1 = cmds.button(l='ALL MESH light',c=lambda *args:lightListRefresh(True),w=100)
    #w2 = cmds.button(l='Sel MESH Light',c=lambda *args:lightListRefresh(False),w=100)
    w3 = cmds.checkBox('List_NormalLight',l='Normal_Light')
    w4 = cmds.checkBox('List_MeshLight',l='Mesh_Light')
    w5 = cmds.textFieldGrp('MeshLight_Template',l='Template',w=400)
    w6 = cmds.button(l='Set Template',c=lambda *args:cmds.textFieldGrp('MeshLight_Template',e=True,tx=cmds.ls(sl=True,dag=True,ni=True)[0]),w=100)
    w7 = cmds.button(l='Convert!',c=lambda *args:convertMeshToMeshLight(),w=100)
    w8 = cmds.textScrollList('MeshLightList',w=400,h=700,ams=True)
    w9 = cmds.text('ListTotalNumber',l='0',w=50,nbg=True)
    w10 = cmds.text('ListSelectNumber',l='0',w=50,nbg=True)
    cmds.radioCollection()
    w11 = cmds.radioButton('Single_Check',l='Single')
    w12 = cmds.radioButton('Double_Check',l='Double',sl=True)
    w13 = cmds.button('ListWireframeColor',l='Color Dis',w=70,c=lambda *args:displayLightColorAsWireframe())

    cmds.formLayout('MeshLightList_FormLayout',e=True,af = [(w1,'top',3),(w1,'left',0),
                                                            (w2,'top',3),(w2,'left',101),
                                                            (w3,'top',3),(w3,'left',205),
                                                            (w4,'top',3),(w4,'left',320),
                                                            (w5,'top',27),(w5,'left',-90),
                                                            (w6,'top',27),(w6,'left',297),
                                                            (w7,'top',52),(w7,'left',297),
                                                            (w8,'top',77),(w8,'left',0),
                                                            (w9,'top',57),(w9,'left',0),
                                                            (w10,'top',57),(w10,'left',50),
                                                            (w11,'top',55),(w11,'left',100),
                                                            (w12,'top',55),(w12,'left',160),
                                                            (w13,'top',52),(w13,'left',225)
                                                            ])
    cmds.popupMenu('MeshLightListMenu',p='MeshLightList')
    cmds.menuItem(l='Select...',p='MeshLightListMenu',c=lambda *args:cmds.select([item for item in cmds.textScrollList('MeshLightList',q=True,si=True)]))

    cmds.showWindow('MeshLightSetter')

    cmds.textScrollList('MeshLightList',e=True,dcc=lambda *args:cmds.select(cmds.textScrollList('MeshLightList',q=True,si=True),r=True))
    cmds.textScrollList('MeshLightList',e=True,sc=lambda *args:getMeshLightAttrsAndShow())
    cmds.textScrollList('MeshLight_LightGroupList',e=True,ams=True,sc=lambda *args:genAovString(),dcc=lambda *args:selectLightByGroupName())
    cmds.optionMenu(f1,e=True,cc=lambda *args:setMeshLightAttrsAndShow('translator'))
    cmds.colorSliderGrp(f2,e=True,cc=lambda *args:setMeshLightAttrsAndShow('color'))
    cmds.floatSliderGrp(f3,e=True,cc=lambda *args:setMeshLightAttrsAndShow('intensity'))
    cmds.floatSliderGrp(f4,e=True,cc=lambda *args:setMeshLightAttrsAndShow('exposure'))
    cmds.checkBox(f5,e=True,cc=lambda *args:setMeshLightAttrsAndShow('useTemp'))
    cmds.floatSliderGrp(f6,e=True,cc=lambda *args:setMeshLightAttrsAndShow('temp'))
    cmds.checkBox(f7,e=True,cc=lambda *args:setMeshLightAttrsAndShow('visible'))
    cmds.intFieldGrp(f8,e=True,cc=lambda *args:setMeshLightAttrsAndShow('sample'))
    cmds.checkBox(f9,e=True,cc=lambda *args:setMeshLightAttrsAndShow('normalize'))
    cmds.checkBox(f10,e=True,cc=lambda *args:setMeshLightAttrsAndShow('castShadows'))
    cmds.floatSliderGrp(f11,e=True,cc=lambda *args:setMeshLightAttrsAndShow('shadowDensity'))
    cmds.colorSliderGrp(f12,e=True,cc=lambda *args:setMeshLightAttrsAndShow('shadowColor'))
    cmds.checkBox(f13,e=True,cc=lambda *args:setMeshLightAttrsAndShow('castVolumeShadow'))
    cmds.intFieldGrp(f14,e=True,cc=lambda *args:setMeshLightAttrsAndShow('volumeSample'))
    cmds.textFieldGrp(f15,e=True,cc=lambda *args:setMeshLightAttrsAndShow('aiAov'))
    cmds.radioButton('AllLightCheck',e=True,cc=lambda *args:lightListRefresh())
    cmds.radioButton('SelLightCheck',e=True,cc=lambda *args:lightListRefresh())
    cmds.checkBox('List_NormalLight',e=True,cc=lambda *args:lightListRefresh())
    cmds.checkBox('List_MeshLight',e=True,cc=lambda *args:lightListRefresh())
Example #53
0
    def core(self):

        if cmds.window(self._winName, ex=1):
            cmds.deleteUI(self._winName)

        cmds.window(self._winName, title=self._title)

        cmds.columnLayout()

        uifnc.setSpace(5)

        widthList = uifnc.setWidthByPerList([5, 25, 45, 20, 5], self._width)

        cmds.rowColumnLayout(nc=5,
                             cw=[(1, widthList[0]), (2, widthList[1]),
                                 (3, widthList[2]), (4, widthList[3]),
                                 (5, widthList[4])])
        uifnc.setSpace()
        cmds.text(l='Target Root :  ', al='right', w=widthList[1])
        cmds.textField(w=widthList[2])
        cmds.button(l='Load', w=widthList[3])
        uifnc.setSpace()
        cmds.setParent('..')

        uifnc.setSpace(10)
        cmds.separator(width=self._width + 2)
        uifnc.setSpace(10)

        widthList = uifnc.setWidthByPerList([5, 45, 3, 45, 5], self._width)

        cmds.rowColumnLayout(nc=5,
                             cw=[(1, widthList[0]), (2, widthList[1]),
                                 (3, widthList[2]), (4, widthList[3]),
                                 (5, widthList[4])])

        uifnc.setSpace()

        cmds.rowColumnLayout(nc=1, cw=(1, widthList[1]))
        cmds.text(l='Driver List', al='center')
        uifnc.setSpace(10)
        cmds.scrollLayout()
        cmds.textScrollList(w=widthList[1] - 8)
        cmds.setParent('..')
        cmds.setParent('..')

        uifnc.setSpace()

        cmds.rowColumnLayout(nc=1, cw=(1, widthList[3] - 1))
        cmds.text(l='Driver Value')
        uifnc.setSpace(30)
        cmds.frameLayout(cll=0, lv=0)
        uifnc.setSpace()
        driverWidthList = uifnc.setWidthByPerList([50, 50, 5],
                                                  widthList[3] - 2)
        cmds.rowColumnLayout(nc=3,
                             cw=[(1, driverWidthList[0]),
                                 (2, driverWidthList[1]),
                                 (3, driverWidthList[2])])
        cmds.text(l='Angle1')
        cmds.floatField(editable=False, bgc=[0.9, 0.9, 0.3])
        uifnc.setSpace()
        cmds.text(l='Angle2')
        cmds.floatField(editable=False, bgc=[0.9, 0.9, 0.3])
        uifnc.setSpace()
        cmds.text(l='Angle3')
        cmds.floatField(editable=False, bgc=[0.9, 0.9, 0.3])
        uifnc.setSpace()
        cmds.setParent('..')
        uifnc.setSpace()
        cmds.setParent('..')

        uifnc.setSpace(30)
        cmds.checkBox(l='Show Only Moved Driver')
        uifnc.setSpace(10)
        cmds.button(l='Update Condition', h=30)

        cmds.setParent('..')
        cmds.setParent('..')

        cmds.rowColumnLayout()
        uifnc.setSpace(10)
        cmds.separator(width=self._width + 2)
        uifnc.setSpace(10)

        cmds.setParent('..')

        uifnc.setSpace()
        cmds.setParent('..')

        cmds.window(self._winName,
                    e=1,
                    width=self._width + 2,
                    height=self._height)
        cmds.showWindow(self._winName)
Example #54
0
if (mc.window (win, exists = True)):
    mc.deleteUI (win)

mc.window (win, rtf = True, width = 280, height = 280, title = winTitle, s = False)
mc.columnLayout (adjustableColumn = True, rowSpacing = 2)

mc.text (l = ' ')
mc.text (l = '"Pick" buttons fill fields with selected attributes from the channel box.')
mc.text (l = '"Select" buttons quickly select the node that houses the picked attributes of each row.')
mc.text (l = "Getting an error? Ensure the selected attribute's parent node is the node selected.")
mc.text (l = ' ')

mc.rowLayout (cw3 = (50, 280, 40), nc = 4)
mc.text (l = 'Driver 1')
getShape1_TF = mc.textField (bgc = (.15,.15,.15), w=340, ed = 0)
mc.button (l = 'Pick', c = 'getShape1()')
mc.button (l = 'Select', c = 'mc.select (getObj1_VAR_CCT)')
mc.setParent( '..' )

mc.text (l = '      x', al = 'left')

mc.rowLayout (cw3 = (50, 280, 40), nc = 4)
mc.text (l = 'Driver 2')
getShape2_TF = mc.textField (bgc = (.15,.15,.15), w=340, ed = 0)
mc.button (l = 'Pick', c = 'getShape2()')
mc.button (l = 'Select', c = 'mc.select (getObj2_VAR_CCT)')
mc.setParent( '..' )

mc.text (l = '      =', al = 'left')
    
Example #55
0
def edo_loadListToTF(tfid, status):
    #tfid='edo_createSoftDeformSecCtrl_TF01'
    sels = cmds.ls(sl=1)
    t = edo_listToStr(sels)
    cmds.textField(tfid, e=1, text=t)
    def validate_operation():
        '''
        '''
        errors = ''
        try:
            cmds.undoInfo(openChunk=True, chunkName=script_name)
            offset_text_fields = [tx_offset_text_field, ty_offset_text_field, tz_offset_text_field,\
                                rx_offset_text_field, ry_offset_text_field, rz_offset_text_field,\
                                sx_offset_text_field, sy_offset_text_field, sz_offset_text_field]

            initial_time = cmds.currentTime(q=True)
            selection = cmds.ls(selection=True)
            if len(cmds.ls(selection=True)) != 0:
                interval = cmds.floatSliderGrp(interval_text_field,
                                               q=True,
                                               value=True)

                add_inverted = cmds.checkBox(add_inverted_checkbox,
                                             q=True,
                                             value=True)
                delete_keys = cmds.checkBox(delete_keys_checkbox,
                                            q=True,
                                            value=True)
                use_ws = cmds.checkBox(use_ws_checkbox, q=True, value=True)

                if delete_keys:
                    for obj in cmds.ls(selection=True):
                        connections = cmds.listConnections(
                            obj, type='animCurveTA') or []
                        connections += cmds.listConnections(
                            obj, type='animCurveTL') or []
                        connections += cmds.listConnections(
                            obj, type='animCurveTT') or []
                        connections += cmds.listConnections(
                            obj, type='animCurveTU') or []
                        for key in connections:
                            try:
                                cmds.delete(key)
                            except:
                                pass

                # Apply Offsets
                for text_field in offset_text_fields:
                    attr = cmds.textField(text_field, q=True, ann=True)
                    value = 0.0
                    try:
                        value = float(
                            cmds.textField(text_field, q=True, text=True))
                    except:
                        pass
                    if value > 0:
                        create_testing_keyframes(value,
                                                 attr,
                                                 interval,
                                                 create_inverted=add_inverted,
                                                 ws_method=use_ws)

            else:
                cmds.warning(
                    'Select at least one object to create testing key frames.')
            cmds.currentTime(initial_time)  # Return Time to initial value
        except Exception as e:
            errors += str(e) + '\n'
        finally:
            cmds.undoInfo(closeChunk=True, chunkName=script_name)
        if errors != '':
            cmds.warning(
                'An error occured when creating the keyframes. Open the script editor for more information.'
            )
            print('######## Errors: ########')
            print(errors)
            print('#########################')
Example #57
0
    def __init__(self):

        windowName = "ribbonizer_window"
        windowWidth = 400
        windowHeight = 160

        if mc.window(windowName, ex=True):
            mc.deleteUI(windowName)
            mc.windowPref(windowName, remove=True)

        mainWindow = mc.window(windowName,
                               t="Ribbonizer 2.0",
                               s=False,
                               mnb=False,
                               mxb=False)
        mc.window(windowName, e=True, wh=(windowWidth, windowHeight))
        mainFormL = mc.formLayout()

        prefixText = mc.text(l="prefix:")
        self.prefixField = mc.textField("prefix", pht="name me")
        numCtrlsText = mc.text(l="num_of_ctrls:")
        self.numCtrlsField = mc.intField("num_of_ctrls", min=1, v=5, step=1)
        numJntsText = mc.text(l="num_of_jnts:")
        self.numJntsField = mc.intField("num_of_jnts", min=1, v=29, step=1)

        self.equalCheckbox = mc.checkBox("equal", l="equal_dist", v=True)
        self.constrCheckbox = mc.checkBox("constrain", l="constrain", v=True)
        self.wireCheckbox = mc.checkBox("wire", l="wire", v=False)
        self.fkCheckbox = mc.checkBox("add_fk", l="add_fk", v=False)

        self.ribbonizeBtn = mc.button(l="Ribbonize", c=self.launch)

        mc.formLayout(mainFormL,
                      e=True,
                      attachForm=[
                          (prefixText, "left", 20),
                          (numCtrlsText, "left", 20),
                          (numJntsText, "left", 20),
                          (prefixText, "top", 19),
                          (self.prefixField, "top", 15),
                          (self.equalCheckbox, "left", 20),
                          (self.wireCheckbox, "left", 20),
                          (self.constrCheckbox, "left", 110),
                          (self.fkCheckbox, "left", 110),
                          (self.prefixField, "left", 110),
                          (self.numCtrlsField, "left", 110),
                          (self.numJntsField, "left", 110),
                          (self.ribbonizeBtn, "left", 200),
                          (self.ribbonizeBtn, "right", 15),
                          (self.ribbonizeBtn, "top", 15),
                          (self.ribbonizeBtn, "bottom", 15),
                      ],
                      attachControl=[
                          (numCtrlsText, "top", 11, prefixText),
                          (numJntsText, "top", 11, numCtrlsText),
                          (self.numCtrlsField, "top", 5, self.prefixField),
                          (self.numJntsField, "top", 5, self.numCtrlsField),
                          (self.equalCheckbox, "top", 20, self.numJntsField),
                          (self.wireCheckbox, "top", 5, self.equalCheckbox),
                          (self.constrCheckbox, "top", 20, self.numJntsField),
                          (self.fkCheckbox, "top", 5, self.constrCheckbox),
                          (self.prefixField, "right", 15, self.ribbonizeBtn),
                          (self.numCtrlsField, "right", 15, self.ribbonizeBtn),
                          (self.numJntsField, "right", 15, self.ribbonizeBtn),
                      ])
        mc.showWindow(mainWindow)
Example #58
0
    def __init__(self):

        # Default values on init
        self.selObjs = None
        self.objIDOn = 0
        self.objIDVal = None
        self.useAttrOn = 0
        self.useAttrVal = None
        self.matIDOn = 0
        self.matIDVal = None
        self.matIDCol = None

        if mc.window('vrayAttr', exists=True):
            mc.deleteUI('vrayAttr')

        mc.window('vrayAttr',
                  t="Set Vray Attribute",
                  iconName='Vray Attrs',
                  w=220)
        mc.rowColumnLayout(nc=1,
                           cal=[1, 'left'],
                           rs=[1, 7],
                           cs=[1, 20],
                           cw=[1, 180])

        mc.separator(st='none', h=17)

        # Set Selected Objects to selObjs variable
        mc.button(l='Select Objects', c=self.selectObjects, w=50)

        mc.separator(h=25, st='in')

        # Enable and set Vray ObjectID
        self.guiObjIDOn = mc.checkBox(l='Object ID')
        mc.text(l='Object ID Value')
        self.guiObjIDVal = mc.textField()

        mc.separator(h=25, st='in')

        # Enable and set Vray User Attributes
        self.guiUseAttrOn = mc.checkBox(l='User attributes')
        mc.text(l='Enter User attributes')
        self.guiUseAttrVal = mc.textField()

        mc.separator(h=25, st='in')

        # Enable and set Vray Material ID
        self.guiMatIDOn = mc.checkBox(l='Material ID')
        mc.text(l='Multimatte ID')

        self.guiMatIDVal = mc.textField()
        mc.text(l='Material ID')

        self.guiMatIDCol = mc.radioCollection()
        mc.radioButton('red', label='Red')
        mc.radioButton('green', label='Green')
        mc.radioButton('blue', label='Blue')
        mc.radioButton('white', label='White')
        mc.radioButton('black', label='Black')

        mc.separator(h=25, st='in')

        # Activate on Geo or Material
        mc.button(l='Apply Settings to Geometry', c=self.vrayMeshAttrSet, w=50)
        mc.separator(st='none')
        mc.button(l='Apply Settings to Materials', c=self.vrayMtrlIDSet, w=50)
        mc.separator(st='none', h=17)

        mc.showWindow()
Example #59
0
    def mirrorModule_UI(self):
        #print self.modules

        self.moduleNames = []
        for module in self.modules:
            self.moduleNames.append(module.partition("__")[2])
        self.sameMirrorSettingsForAll = False
        if len(self.modules) > 1:
            result = cmds.confirmDialog(
                title="Mirror Multiple Modules",
                message=str(len(self.modules)) +
                " modules selected for mirror.\n How would you like to apply mirroring? ",
                button=["Same for All", "Individually", "Cancel"],
                defaultButton="Same for All",
                cancelButton="Cancel",
                dismissString="Cancel")

            if result == "Cancel":
                return
            if result == "Same for All":
                self.sameMirrorSettingsForAll = True
        print self.sameMirrorSettingsForAll

        self.UIElements = {}
        if cmds.window("mirrorModule_UI_window", exists=True):
            cmds.deleteUI("mirrorModule_UI_window")
        windowWidth = 300
        windowHeight = 400
        self.UIElements["window"] = cmds.window("mirrorModule_UI_window",
                                                width=windowWidth,
                                                height=windowHeight,
                                                title="Mirror Module(s)",
                                                sizeable=False)
        self.UIElements["scrollLayout"] = cmds.scrollLayout(hst=0)
        self.UIElements["topColumnLayout"] = cmds.columnLayout(adj=True, rs=3)
        scrollWidth = windowWidth - 30
        mirrorPlane_textWidth = 80
        mirrorPlane_columnWidth = (scrollWidth - mirrorPlane_textWidth) / 3
        self.UIElements["mirrorPlane_rowColumn"] = cmds.rowColumnLayout(
            nc=4,
            columnAttach=(1, "right", 0),
            columnWidth=[(1, mirrorPlane_textWidth),
                         (2, mirrorPlane_columnWidth),
                         (3, mirrorPlane_columnWidth),
                         (4, mirrorPlane_columnWidth)])
        cmds.text(label="Mirror Plane: ")
        self.UIElements["mirrorPlane_radioCollection"] = cmds.radioCollection()
        cmds.radioButton("XY", label="XY", select=False)
        cmds.radioButton("YZ", label="YZ", select=True)
        cmds.radioButton("XZ", label="XZ", select=False)
        cmds.setParent(self.UIElements["topColumnLayout"])
        cmds.separator()

        cmds.text(label="mirrored Name(s): ")
        columnWidth = scrollWidth / 2
        self.UIElements["moduleName_rowColumn"] = cmds.rowColumnLayout(
            nc=2,
            columnAttach=(1, "right", 0),
            columnWidth=[(1, columnWidth), (2, columnWidth)])
        for module in self.moduleNames:
            cmds.text(label=module + ">>")
            self.UIElements["moduleName_" + module] = cmds.textField(
                enable=True, text=module + "_mirror")

        cmds.setParent(self.UIElements["topColumnLayout"])
        cmds.separator()

        if self.sameMirrorSettingsForAll:
            self.generateMirrorFunctionControls(None, scrollWidth)
        else:
            for module in self.moduleNames:
                cmds.setParent(self.UIElements["topColumnLayout"])
                self.generateMirrorFunctionControls(module, scrollWidth)

        cmds.setParent(self.UIElements["topColumnLayout"])
        cmds.separator()

        self.UIElements["button_row"] = cmds.rowLayout(nc=2,
                                                       columnWidth=[
                                                           (1, columnWidth),
                                                           (2, columnWidth)
                                                       ],
                                                       cat=[(1, "both", 10),
                                                            (2, "both", 10)],
                                                       columnAlign=[
                                                           (1, "center"),
                                                           (2, "center")
                                                       ])
        cmds.button(label="Accept", c=self.acceptWindow)
        cmds.button(label="Cancel", c=self.cancelWindow)

        cmds.showWindow(self.UIElements["window"])
Example #60
0
import maya.cmds as cmds