Esempio n. 1
0
 def refreshFloatField(self, *args ):
     
     timeControl = cmds.textScrollList( self._timeControl, q=1, si=1 )
     
     if not timeControl: return None
     
     timeControl = timeControl[-1]
     
     weight = cmds.getAttr( timeControl+'.weight' )
     offset = cmds.getAttr( timeControl+'.offset' )
     mult = cmds.getAttr( timeControl+'.mult' )
     limitAble = cmds.getAttr( timeControl+'.limitAble' )
     minTime = cmds.getAttr( timeControl+'.minTime' )
     maxTime = cmds.getAttr( timeControl+'.maxTime' )
     
     cmds.floatField( self._weight, e=1, v=weight )
     cmds.floatField( self._offset, e=1, v=offset )
     cmds.floatField( self._mult, e=1, v=mult )
     cmds.checkBox( self._limitAble, e=1, v=limitAble )
     cmds.floatField( self._minTime, e=1, v=minTime )
     cmds.floatField( self._maxTime, e=1, v=maxTime )
     
     if cmds.checkBox( self._limitAble, q=1, v=1 ):
         cmds.rowColumnLayout( self._limitAbleLay, e=1, en=1 )
     else:
         cmds.rowColumnLayout( self._limitAbleLay, e=1, en=0 )
         
     for popup in self._popupList:
         popup.updateCondition()
Esempio n. 2
0
    def __init__(self):
        winName = "Size set"
        global typeMenu
        winTitle = winName
        if cmds.window(winName, exists=True):
                cmds.deleteUI(winName)

#         self.window = cmds.window(self.winName, title=self.winTitle, tbm=1, w=150, h=100 )
        window = cmds.window(winName, title=winTitle, tbm=1, w=250, h=100 )

        cmds.menuBarLayout(h=30)
        cmds.rowColumnLayout  (' selectArrayRow ', nr=1, w=250)

        cmds.frameLayout('LrRow', label='', lv=0, nch=1, borderStyle='out', bv=1, p='selectArrayRow')
        
        cmds.rowLayout  (' rMainRow ', w=300, numberOfColumns=6, p='selectArrayRow')
        cmds.columnLayout ('selectArrayColumn', parent = 'rMainRow')
        cmds.setParent ('selectArrayColumn')
        cmds.separator(h=10, p='selectArrayColumn')
        cmds.gridLayout('listBuildButtonLayout', p='selectArrayColumn', numberOfColumns=2, cellWidthHeight=(100, 20))
        typeMenu=cmds.optionMenu( label='ctrl size')
        cmds.menuItem( label="Large" )
        cmds.menuItem( label="Med" )
        cmds.menuItem( label="Small" )           
        cmds.button (label='Change Selection', p='listBuildButtonLayout', command = lambda *args:self.controllerSize())
        cmds.showWindow(window)    
 def enterTimecodeUI(self, buttonlabel='set', buttonfunc=None):
     '''
     generic UI to enter timecode
     
     :param buttonlabel' = label to add to the button
     :param buttonfunc' = function to bind to the button on exit
     '''
     self.win='Timecode_UI'
     if cmds.window(self.win, exists=True):
         cmds.deleteUI(self.win, window=True)
     cmds.window(self.win, title=self.win)
     cmds.columnLayout(adjustableColumn=True)
     cmds.text(label='Timecode Reference')
     cmds.separator(h=10, style='in')
     cmds.rowColumnLayout(nc=8)
     cmds.text(label='  smpte :  ')
     cmds.textField('tchrs', tx='00', w=40, cc=lambda x:self.__uicb_checkfield('tchrs'))
     cmds.text(label=' : ')
     cmds.textField('tcmins', tx='00', w=40, cc=lambda x:self.__uicb_checkfield('tcmins'))
     cmds.text(label=' : ')
     cmds.textField('tcsecs', tx='00', w=40, cc=lambda x:self.__uicb_checkfield('tcsecs'))
     cmds.text(label=' : ')
     cmds.textField('tcfrms', tx='00', w=40, cc=lambda x:self.__uicb_checkfield('tcfrms'))
     cmds.setParent('..')
     cmds.button(label=buttonlabel, command=lambda x:self.__uicb_gatherTimecode(buttonfunc))
     cmds.showWindow(self.win)
Esempio n. 4
0
def UI():
	if cmds.window('FBXExport',ex=True):
		cmds.deleteUI('FBXExport',wnd=True)
	window = cmds.window('FBXExport',t='FBX Export Version 1.0.0',wh=(450,300),sizeable=False)

	mainLayout = cmds.columnLayout(w=450, h=300)
	cmds.menuBarLayout()
	# cmds.menu(label ='About Me',helpMenu=True)
	cmds.menu(label='File')
	cmds.menuItem(label='About Me',c=AboutMe)
	cmds.menuItem(label='Help',c=Help)
	cmds.separator(st='in')
	cmds.columnLayout(columnAlign='left', columnAttach=('both', 50), rowSpacing=30, columnWidth=420)
	cmds.text(l='')
	cmds.optionMenu(label ='ExportType:',changeCommand=printNewMenuItem)
	cmds.menuItem( label='Export Selection' )
	cmds.menuItem( label='Export All' )
	
	cmds.rowColumnLayout(numberOfColumns=2)
	cmds.textField("filepath",w=270,pht=configpath, bgc=(0.2,0.2,0.2))
	cmds.button(l='path',w =50,h=20,c=browseFilePath)
	cmds.setParent( '..' )

	cmds.rowColumnLayout(numberOfColumns=2)
	cmds.button(l='Name:',w =50,h=20,en=False)
	cmds.textField('FileName',pht='Enter a filename',ed =True,w=270,bgc=(0.2,0.2,0.2))
	cmds.setParent( '..' )
	cmds.button(l='Export',bgc=(0.3,0.7,0.7),c=ExportFBX)

	cmds.showWindow(window)
Esempio n. 5
0
def separator( w=300, h=5 ):
    
    cmds.rowColumnLayout( nc=1, cw=( 1,w ) )
    setSpace( h )
    cmds.separator()
    setSpace( h )
    cmds.setParent( '..' )
Esempio n. 6
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
Esempio n. 7
0
    def add(self, driverName, angleValues=[] ):
        
        if not angleValues:
            angleValues = [0,0,0]
        
        defaultBgc = [ .1, .1, .1 ]
        onBgc      = [ .9,  .9,  .2  ]
        
        enList = [0,0,0]
        
        bgcList = [None,None,None]
        
        for i in range( 3 ):
            if math.fabs( angleValues[i] ) >= self._minValue:
                bgcList[i] = onBgc
                enList[i] = 1
            else:
                bgcList[i] = defaultBgc
                enList[i] = 0
        
        widthList = uifnc.setWidthByPerList( [70,15,15,15] , self._width )

        cmds.rowColumnLayout( nc=4, cw=[(1,widthList[0]),(2,widthList[1]),(3,widthList[2]),(4,widthList[3])] )
        cmds.text( l= driverName+' : ', al='right' )
        
        cmds.floatField( precision=2, v=angleValues[0], bgc= bgcList[0] )
        cmds.popupMenu(); cmds.menuItem( l='Add Driver', c= partial( self.addConnectDriver, driverName+' | angle0 : %3.2f' %angleValues[0] ) )
        cmds.floatField( precision=2, v=angleValues[1], bgc= bgcList[1] )
        cmds.popupMenu(); cmds.menuItem( l='Add Driver', c= partial( self.addConnectDriver, driverName+' | angle1 : %3.2f' %angleValues[1] ) )
        cmds.floatField( precision=2, v=angleValues[2], bgc= bgcList[2] )
        cmds.popupMenu(); cmds.menuItem( l='Add Driver', c= partial( self.addConnectDriver, driverName+' | angle2 : %3.2f' %angleValues[2] ) )
        
        self.driverScrollAddPopupCmd()
        
        cmds.setParent( '..' )
Esempio n. 8
0
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)
Esempio n. 9
0
def renameGui(parent):
	renCol = cmds.columnLayout()
	colWidth = winWidth/4
	cmds.rowColumnLayout(nc=4, cw=[[1,colWidth],[2,colWidth+40],[3,colWidth-40],[4,colWidth]],
		co=[[1,"both",3],[2,"both",3],[3,"both", 3],[4,"both",3]])
	cmds.text( label="Prefix", al="center" )
	cmds.text( label="Name", al="center" )
	cmds.text( label="###", al="center" )
	cmds.text( label="Suffix", al="center" )	
	
	cmds.textField( "mecRenPre" )
	cmds.textField( "mecRenName" )
	cmds.intField( "mecRenCount" )
	cmds.textField( "mecRenSuf" )
	cmds.setParent(renCol)
	
	cmds.rowColumnLayout( nc=3, cw=[[1,winWidth/3-20],[2,winWidth/3+40],[3,winWidth/3-20]],
		co=[[1,"both",3],[3,"both",3]])
	cmds.button(label="Prefix",
		c=Callback(prefix))
	cmds.button(label="Full Rename",
		c=Callback(fullRename))
	cmds.button(label="Suffix",
		c=Callback(suffix))
	cmds.setParent( parent )	
Esempio n. 10
0
 def _showUI(self):
     if cmds.window(self.win, exists=True):
         cmds.deleteUI(self.win, window=True)
     cmds.window(self.win, title=self.win, widthHeight=(400, 220))
     cmds.columnLayout('uicl_audioMain',adjustableColumn=True)
     cmds.separator(h=15, style='none')
     cmds.text(l='Select Audio to Offset')
     cmds.separator(h=15, style='in')
     cmds.rowColumnLayout(numberOfColumns=3, columnWidth=[(1, 100), (2, 90), (3, 100)])
     cmds.button(label='<< Offset',
                 ann='Nudge selected Audio Backwards',
                 command=partial(self.offsetSelectedBy,'negative'))
     cmds.floatField('AudioOffsetBy', value=10)
     cmds.button(label='Offset >>',
                 ann='Nudge selected Audio Forwards',
                 command=partial(self.offsetSelectedBy,'positive'))
     cmds.setParent('..')
     cmds.separator(h=15, style='in')
     cmds.rowColumnLayout(numberOfColumns=2, columnWidth=[(1, 200), (2, 90)])
     cmds.button(label='Offset Range to Start at:',
                 ann='offset the selected range of audionodes such that they start at the given frame',
                 command=self.offsetSelectedTo)
     cmds.floatField('AudioOffsetToo', value=10)
     cmds.setParent('..')
     cmds.separator(h=15, style='in')
     cmds.button(label='Ripple selected',
                 ann="Ripple offset the selected audio nodes so they're timed one after another",
                 command=self.offsetRipple)
     cmds.separator(h=15, style='none')
     cmds.iconTextButton(style='iconOnly', bgc=(0.7, 0, 0), image1='Rocket9_buttonStrap2.bmp',
                          c=lambda *args: (r9Setup.red9ContactInfo()), h=22, w=200)
     cmds.showWindow(self.win)
     cmds.window(self.win, e=True, widthHeight=(290, 190))
Esempio n. 11
0
    def installCopyRightInfo(self):
        """"""
        cmds.frameLayout(lv=False, bs='etchedIn', mh=6, mw=6, w=1)
        cmds.text(l="Soft Cluster EX", fn='boldLabelFont', align='center')
        cmds.rowColumnLayout( numberOfColumns=2,
                             rowSpacing=[1, 8],
                             columnAttach=[1, "right", 5], 
                             columnAlign=[1, "right"])

        cmds.text(l="Version: ", fn='boldLabelFont')
        cmds.text(l=setup.getVersion(), align='left')

        cmds.text(l="Author: ", fn='boldLabelFont')
        cmds.text(l="Webber Huang", align='left')
        
        cmds.text(l="Contact: ", fn='boldLabelFont')
        cmds.text(l="*****@*****.**", align='left')
        
        cmds.text(l="Project Site: ", fn='boldLabelFont')
        cmds.iconTextButton( style='textOnly',
                             l='http://riggingtd.com/downloads/soft-cluster-ex',
                             ann="Click to open in brower.", 
                             c = lambda *args: setup.openBlog() )
        
        cmds.setParent( ".." )
        cmds.setParent( ".." )
Esempio n. 12
0
 def create(self):
     
     self.fields = []
     
     if cmds.window( self.uiname, ex=1 ):
         cmds.deleteUI( self.uiname, wnd=1 )
     
     cmds.window( self.uiname, title= self.title )
     
     columnLayout = cmds.columnLayout()
     columnWidth = self.width - 2
     
     self.rowColumnField = cmds.rowColumnLayout( nc=1, cw=[( 1, self.width ) ] )
     cmds.button( l='Append', c= self.cmdAppend )
     field = AttrAndValueField( columnLayout, columnWidth )
     self.fields.append( field )
     cmds.setParent( '..' )
     
     firstWidth = (columnWidth-2) / 2
     secondWidth =  columnWidth - 2 - firstWidth
     
     cmds.rowColumnLayout( nc=2, cw=[(1, firstWidth),(2, secondWidth) ] )
     cmds.button( l='Set', c= self.cmdSet )
     cmds.button( l='Cancel', c= self.cmdCancel )
     cmds.setParent( '..' )
     
     cmds.window( self.uiname, e=1, width= self.width, height = self.height )
     cmds.showWindow( self.uiname )
     
     self.columnWidth = self.width -2
Esempio n. 13
0
 def displayInstructions(*pArgs):
     """Shows in an independent window a list of instructions for the user to set things up quickly"""
     if cmds.window( "instructions_window", exists=True ):
         cmds.deleteUI( "instructions_window" )
     instructions_window = cmds.window( "instructions_window", title="Instructions", s=False, mnb=False, mxb=False )
     instructionsLayout = cmds.frameLayout( l="Instructions", collapsable=False, cl=False, mw = 10, mh=10 )
     cmds.rowColumnLayout( nc=3, cw=[(1,20),(2,480),(3,20)], cal=[(2,"left")], parent=instructionsLayout )
     cmds.separator( st="none" )
     cmds.text( l="1. Write an axiom (or initial word), depth and rules. If you don't know what it is put the mouse over the parameter and read the help line.\n2. Click Generate String. Then you will see the result in the text field below, this is just mere text. Now the string needs to be interpreted.\n3. Set all the 'Geometric Interpretation' attributes (Angle, Segment Length...). Remember to put the mouse over it if your are confused.\n4. Click Create Geometry. You will see the result in your scene. If you want to clean the last plant\n\tclick Clean Plant. If you click Create Geometry again you will get another plant.\n6. Always remember to pay attention to the help line and warnings field." )
     cmds.separator( st="none" )
     cmds.separator( st="none" )
     cmds.text( l="\nThis is the meaning for each character you enter in the rules section:" )
     cmds.separator( st="none" )
     cmds.separator( st="none" )
     cmds.text( l="""        
     F    Move forward
     f    Move forward
     L    Leaf
     B    Blossom
     +    Rotate +X (yaw right)
     -    Rotate -X (yaw left)
     ^    Rotate +Y (roll right)
     &    Rotate -Y (roll left)
     <    Rotate +Z (pitch down)
     >    Rotate -Z (pitch up)
     *    Turtle rotates 180 (as it was facing backwards)
     [    Push current turtle state on the stack
     ]    Pop the current turtle state from the stack""" )
     cmds.showWindow( instructions_window )
Esempio n. 14
0
 def meshListPart(self, width, height ):
     
     cmds.rowColumnLayout( nc=1, cw=[(1, width)] )
     cmds.text( l='Mesh List', al='center' )
     uifnc.setSpace( 10 )
     self._meshList = cmds.textScrollList( height = height, ams=1, sc= self.meshListSelectCmd )
     cmds.setParent( '..' )
Esempio n. 15
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( 10 )
        
        widthList = uifnc.setWidthByPerList( [3,60,30,3], self._width )
        cmds.rowColumnLayout( nc=4, cw=[ (1,widthList[0]), (2,widthList[1]),(3,widthList[2]), (4,widthList[3]) ] )
        
        uifnc.setSpace()
        self.driverRootPart( widthList[1] )
        self.editMeshPart( widthList[1] )
        uifnc.setSpace()
        
        self.setSpace( 4, 15 )
        
        uifnc.setSpace()
        self.driverListPart( widthList[1], 150 )
        self.meshListPart( widthList[2], 150 )
        uifnc.setSpace()
        
        cmds.setParent( '..' )
        
        cmds.window( self._winName, e=1, wh=[ self._width, self._height ] )
        cmds.showWindow( self._winName )
        
        self.scriptJob()
Esempio n. 16
0
 def update(self, *args ):
     self.repairString = ''
     
     cmds.scrollField( self.scrollField, e=1, text='' )
     
     checkUIs = []
     checkUIs.append( cmds.rowColumnLayout( self.assetCheck, q=1, ca=1 ) )
     checkUIs.append( cmds.rowColumnLayout( self.layoutCheck, q=1, ca=1 ) )
     checkUIs.append( cmds.rowColumnLayout( self.productionCheck, q=1, ca=1 ) )
     
     for cuCheckUIs in checkUIs:
         repairTitle = cmds.frameLayout( cmds.rowColumnLayout( cmds.checkBox( cuCheckUIs[0], q=1, p=1 ), q=1, p=1 ), q=1, l=1 )
         
         onCheckBoxEx = False
         for checkBox in cuCheckUIs:
             if not checkBox in self.checkBoxs:
                 continue
             if cmds.checkBox( checkBox, q=1, v=1 ):
                 if not onCheckBoxEx:
                     self.repairString += repairTitle+' : '
                     onCheckBoxEx = True
                 self.addRepairString( cmds.checkBox( checkBox, q=1, l=1 ) )
         if onCheckBoxEx:
             self.repairString += u' 수정\n'
                     
     self.editFieldString()
Esempio n. 17
0
 def driverRootPart( self, width ):
     
     widthList = uifnc.setWidthByPerList( [60,40], width )
     cmds.rowColumnLayout( nc=2, cw=[(1,widthList[0]),(2,widthList[1])] )
     self._driverRootField = cmds.textField()
     self._driverRootButton = cmds.button( l='Load', c = partial( self.loadCmd, self._driverRootField ), h=25 )
     cmds.setParent( '..' )
Esempio n. 18
0
    def doIt( self, *args ):        
        # Window settings.
        self.winWidth = 206
        self.winHeight = 400
        self.iconWidth = 32
        self.iconHeight = 32
        
        # Window colors
        self.rowColors = [[0.4,0.4,0.4],[0.5,0.5,0.5]]
         
        # Clean up old uis before opening a new one.
        try:
            cmds.deleteUI( self.winName )
        except:
            pass

        # Setup the form layout.
        self.mainWindow = cmds.window( self.winName, title=self.winTitle, sizeable=False, resizeToFitChildren=False )
        self.form = cmds.formLayout()

        self.column = cmds.rowColumnLayout( numberOfRows=2, rowSpacing=[(1,0),(2,10)] )
        
        # ROW 1
        self.updateScrolllist()
        
        # ROW 2
        self.buttonRow = cmds.rowColumnLayout( numberOfColumns=2, columnSpacing=[(1,0),(2,10)], columnWidth=[(1,self.winWidth/2),(2,self.winWidth/2)] )
        cmds.button( label='Delete', command=lambda b: self.deleteAttributes() )
        cmds.button( label='Close', command=lambda b, a1=self.winName: cmds.deleteUI( a1 ) )
        cmds.setParent( '..' )#self.buttonRow
        
        cmds.setParent( '..' )#self.column
        
        # Show the window.
        cmds.showWindow( self.winName )
Esempio n. 19
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()
Esempio n. 20
0
def gui():
	'''
	GUI for Image convert script.
	'''
	
	win = "mecCVTWin"
	winWidth = 200
	winHeight = 369
	
	if( cmds.window(win, q=True, ex=True) ):
		cmds.deleteUI(win)
		
	cmds.window(win, title="Image Converter", w=winWidth, h=winHeight)
	cmds.columnLayout("mecCVTMC")
	
	cmds.button(label="Get Directory", w=200,
		c="mecConvert.pickFolder()")
	cmds.scrollField( "mecCVTDir", w=winWidth,
		editable=False, wordWrap=True, text='Choose Directory' )
	# cmds.text("mecCVTDir", label="")
	
	cmds.textScrollList("mecCVTTSL", w=winWidth, h=200,
		allowMultiSelection=True)
	cmds.rowColumnLayout(nc=2, cw=[[1,100],[2,100]])
	cmds.button(label="Remove ALL",
		c="mecConvert.cmds.textScrollList('mecCVTTSL', e=True, ra=True)")
	cmds.button(label="Remove Selected",
		c="mecConvert.tslRemSel()")
	cmds.setParent("..")
	cmds.button(label="Convert", w=200,
		c="mecConvert.convert()")
	cmds.picture(image="sbaLogo.xpm", w=210, h=20)
	
	cmds.showWindow(win)
Esempio n. 21
0
 def show(self):
     
     self.fields = []
     
     if cmds.window( self.uiname, ex=1 ):
         cmds.deleteUI( self.uiname, wnd=1 )
     
     cmds.window( self.uiname, title= self.title )
     
     cmds.columnLayout()
     
     columnWidth = self.width - 2
     firstWidth = ( columnWidth -2 ) / 2
     secondWidth = ( columnWidth -2 ) - firstWidth
     
     cmds.rowColumnLayout( nc=1, cw=[(1,columnWidth)] )
     self.sourceField.create()
     self.destField.create()
     self.meshField.create()
     cmds.setParent( '..' )
     
     cmds.rowColumnLayout( nc=2, cw=[(1,firstWidth),(2,secondWidth)])
     cmds.button( l='Create', c= self.cmdSet )
     cmds.button( l='Close', c= self.cmdClose )
     
     cmds.window( self.uiname, e=1, width= self.width, height = self.height )
     cmds.showWindow( self.uiname )
def audioUI():
    """UI for the whole thing"""

    if (cmds.window("audioWin", exists=True)):
        cmds.deleteUI("audioWin")

    widgets["win"] = cmds.window("audioWin", t="zbw_audioManager", w=300, h=260)

    widgets["mainCLO"] = cmds.columnLayout()
    widgets["getAudioBut"] = cmds.button(l="Get All Audio In Scene", w=300, h=30, bgc=(.6, .6, .8), c=getAudio)
    cmds.text("Double-click item in list to enable sound and select it", al="left")

    widgets["audioTSL"] = cmds.textScrollList(h=100, w=300, dcc=selectAudio)
    widgets["buttonRCLO"] = cmds.rowColumnLayout(nc=2)
    widgets["deleteSelBut"] = cmds.button(l="Delete Selected", w=150, h=20, bgc=(.8,.6,.6), c=deleteSelected)
    widgets["deleteAllBut"] = cmds.button(l="Delete All Audio", w=150, h=20, bgc=(.8,.4,.4), c=deleteAll)

    cmds.setParent(widgets["mainCLO"])

    cmds.separator(h=20)

    widgets["newAudioBut"] = cmds.button(l="Import New Audio File!", w=300, h=30, bgc=(.6,.8,.6), c=importAudio)
    cmds.separator(h=20)

    widgets["offsetRCLO"] = cmds.rowColumnLayout(nc=2, cw=([1,175], [2, 125]), cal=([1,"left"], [2,"left"]))
    widgets["offsetIFG"] = cmds.intFieldGrp(l="Offset Selected By ", v1=1, cal=([1,"left"], [2,"left"]), cw=([1,100],[2,50]))
    widgets["offsetBut"] = cmds.button(l="Offset!", w=100, h=30, bgc=(.6,.8,.8), c=offsetAudio)

    cmds.showWindow(widgets["win"])
    cmds.window(widgets["win"], e=True, w=300, h=260)
Esempio n. 23
0
 def create(self, *args ):
     
     top, left = cmds.window( WindowInfo._window, q=1, topLeftCorner=1 )
     
     top  += 70
     left +=19
     
     itemIndex = cmds.textScrollList( FolderUIInfo._scrollListUI, q=1, sii=1 )
     if not itemIndex: return None
     selItem = cmds.textScrollList( FolderUIInfo._scrollListUI, q=1, si=1 )[0].split('.')[0]
     
     top += itemIndex[0]*13
     
     if cmds.window( FolderSubRenameUiInfo._winName, ex=1 ):
         cmds.deleteUI( FolderSubRenameUiInfo._winName )
     cmds.window( FolderSubRenameUiInfo._winName, titleBar=0 )
     
     cmds.columnLayout()
     cmds.rowColumnLayout( nc=3, cw=[(1,120),(2,52),(3,25)] )
     textField = cmds.textField( tx=selItem )
     cmds.button( l='Rename', c=FolderSubRenameUiInfo.cmdRename )
     cmds.button( l='X' , c=self.cmdDeleteWindow, bgc=[0.9,0.35,0.35] )
     
     cmds.windowPref( FolderSubRenameUiInfo._winName, e=1,
                      widthHeight = [ FolderSubRenameUiInfo._width, FolderSubRenameUiInfo._height ],
                      topLeftCorner = [ top, left ] )
     cmds.showWindow( FolderSubRenameUiInfo._winName )
     
     FolderSubRenameUiInfo._renameTextField = textField
Esempio n. 24
0
	def buildGUI(self):
	
		if cmds.window(self.name, q=True, exists=True):
			cmds.deleteUI(self.name)
		cmds.window(self.name, title=self.title, sizeable=False, mxb=False, mnb=False, toolbox=False, w=100, h=30)
		cmds.columnLayout("mainLayout", adj=True, parent=self.name, co=("left", 5))

		# Add onClose Event
		cmds.scriptJob(uiDeleted=(self.name, self.onClose))
		
		# Help Menu
		cmds.menuBarLayout("menuBar")
		cmds.menu(label="Show Help", helpMenu =True, pmc=self.showHelp)

		# Import paths
		cmds.textFieldButtonGrp("tfbDBPath", label="Links: ", bl="Set Link Path", cw=(1,50), parent="mainLayout", bc=self.setDBPath)
		cmds.textFieldButtonGrp("tfbShaderPath", label="Shaders: ", bl="Set Shader Path", cw=(1,50), parent="mainLayout", bc=self.setShaderPath)
		
		cmds.checkBox("cbSelection", label="Use Selection", parent="mainLayout")
		cmds.checkBox("cbSubstring", label="Substring prefix", parent="mainLayout", value=True)
		cmds.textField("tfSubstring", parent="mainLayout", text="s100_char")

		cmds.separator(h=10, style="none", parent="mainLayout")

		# Buttons
		cmds.rowColumnLayout("buttonsLayout", numberOfColumns=2, parent="mainLayout")
		cmds.button("bExportLinks", label = "Export Links", w=200, h=30, parent="buttonsLayout", c=self.exportLinks)
		cmds.button("bImportShader", label="Link Shaders", w=200, h=30, parent="buttonsLayout", c=self.linkShaders)

		cmds.showWindow(self.name)
Esempio n. 25
0
	def assignCustomMateColorUI( self, colorMat = 'RL_SOMECOLOR', col = (1,1,1)):
		mc.columnLayout()
		mc.colorSliderGrp( 'customColorColorSlider', rgb = col )
		mc.checkBox( 'customAlpha_chb', l = 'With Alpha', v = True )
		mc.rowColumnLayout( nc = 2 )
		mc.button( l = 'Create', w = 120, c = self.assignNewMateColorUi )
		mc.button( l = 'Cancel', w = 120, c = self.dismissCustomColorUI )
Esempio n. 26
0
def gui():
	if (cmds.window(win, q=True, ex=True)):
		cmds.deleteUI(win)
		
	global prefix, name, inc, suffix
		
	cmds.window(win, t='Rename Tool', w=width, h=300)
	main_layout = cmds.columnLayout(nch=2)
	cmds.rowColumnLayout(w=width, nc=4)
	
	cmds.text(w=(width/4), l='Prefix')
	cmds.text(w=(width/4), l='Name')
	cmds.text(w=(width/4), l='Instance')
	cmds.text(w=(width/4), l='Suffix')
	
	prefix = cmds.textField(w=(width/4), tx='')
	name = cmds.textField(w=(width/4), tx='')
	inc = cmds.intField(w=(width/4), v=0)
	suffix = cmds.textField(w=(width/4), tx='')

	cmds.setParent(main_layout)
	
	cmds.columnLayout(w=width, adj=True)
	cmds.button(l='Run Rename', c=scriptname + '.rn()')
	
	cmds.showWindow()
def rgb_base_gui(*args):

    if cmds.window('rgb_gui', q=1, ex=1):
        cmds.deleteUI('rgb_gui')
        
    cmds.window('rgb_gui', t="Object to Render layer")
    cmds.columnLayout(adjustableColumn = True)
    cmds.rowColumnLayout(numberOfColumns=3)
    cmds.text("Render Layer", h= 20, bgc= (0.3,0.6,0.8))
    cmds.text("Added Object", h= 20, bgc= (0.7,0.6,0.6))
    cmds.button("Selected Object", h = 20, bgc =(0.7,0.3,0.3),c = sel_objs)
    
    sels = cmds.ls(sl=1)
    rls = cmds.ls(typ="renderLayer")
    rl = filter(lambda x:x !="defaultRenderLayer", rls)            

    rls = cmds.textScrollList('rls', append=rl,ams=True,  sc = rl_obj_list)
    objs = cmds.textScrollList('objs', append=sels,ams=True,height = 450,bgc = (0.3,0.3,0.5))
    sels = cmds.textScrollList('sels', append=sels,ams=True,height = 450)
    
    cmds.button("REFRESH", c= rgb_base_gui)
    cmds.button("REMOVE", c=remove_objs,bgc = (0.7,0.6,0.6))
    cmds.button("ASSIGN", c= put_obj, bgc = (0.7,0.3,0.3))
    

        
    cmds.rowColumnLayout(numberOfRows=2)

    cmds.window('rgb_gui', e=1, width=450, height = 250)
    cmds.showWindow('rgb_gui')
Esempio n. 28
0
 def create(self, *args ):
     
     top, left = cmds.window( WindowInfo._window, q=1, topLeftCorner=1 )
     
     top  +=70
     left +=19
     
     itemIndex = cmds.textScrollList( FolderUIInfo._scrollListUI, q=1, sii=1 )
     if not itemIndex: return None
     
     top += itemIndex[0]*13
     
     if cmds.window( FolderSubDeleteUiInfo._winName, ex=1 ):
         cmds.deleteUI( FolderSubDeleteUiInfo._winName )
     cmds.window( FolderSubDeleteUiInfo._winName, titleBar=0 )
     
     cmds.columnLayout()
     cmds.rowColumnLayout( nc=1, cw=[(1,200)] )
     cmds.text( l='Are You Sure?', al='center', h=22 )
     cmds.setParent( '..' )
     cmds.rowColumnLayout( nc=2, cw=[(1,100),(2,100)])
     cmds.button( l='Delete', c=FolderSubDeleteUiInfo.cmdDelete, h=22 )
     cmds.button( l='Cancel', c=self.cmdDeleteWindow, h=22 )
     cmds.setParent( '..' )
     
     cmds.windowPref( FolderSubDeleteUiInfo._winName, e=1,
                      widthHeight = [ FolderSubDeleteUiInfo._width, FolderSubDeleteUiInfo._height ],
                      topLeftCorner = [ top, left ] )
     cmds.showWindow( FolderSubDeleteUiInfo._winName )
Esempio n. 29
0
    def createLayout(self):
        tweenMachine    = TweenMachine()

        cmds.rowColumnLayout(numberOfColumns=100, parent=self.parentLayout)

        #linear
        cmds.text( label='   ', h=1 )
        cmds.iconTextButton(style='iconOnly',     marginWidth=0,     w=self.ws, h=self.hs, image= uiMod.getImagePath("tweenMachine_left"),  highlightImage= uiMod.getImagePath("tweenMachine_left copy"),     command=lambda *args: tweenMachine.setTween("linear_prev"), annotation="Overshoot linear tween")
        cmds.iconTextButton(style='iconOnly',     marginWidth=0,     w=self.ws, h=self.hb, image= uiMod.getImagePath("tweenMachine_L"),     highlightImage= uiMod.getImagePath("tweenMachine_L copy"),       command=lambda *args: tweenMachine.setTween("linear"),      annotation="Linear tween")
        cmds.iconTextButton(style='iconOnly',     marginWidth=0,     w=self.ws, h=self.hs, image= uiMod.getImagePath("tweenMachine_right"), highlightImage= uiMod.getImagePath("tweenMachine_right copy"),     command=lambda *args: tweenMachine.setTween("linear_next"), annotation="Overshoot linear tween")

        #tween
        cmds.text( label='   ', h=1 )
        cmds.iconTextButton(style='iconOnly',     marginWidth=0, w=self.ws, h=self.hs, image= uiMod.getImagePath("tweenMachine_left"), highlightImage= uiMod.getImagePath("tweenMachine_left copy"),   command=lambda *args: tweenMachine.setTween(-50),           annotation="Overshoot 50% with previous key"); tweenMachine.popUpColor()
        cmds.iconTextButton(style='iconOnly',     marginWidth=0, w=self.ws, h=self.hs, image= uiMod.getImagePath("tweenMachine_mid"),  highlightImage= uiMod.getImagePath("tweenMachine_mid copy"),   command=lambda *args: tweenMachine.setTween(-30),           annotation="Overshoot 30% with previous key"); tweenMachine.popUpColor()
        cmds.iconTextButton(style='iconOnly',     marginWidth=0, w=self.ws, h=self.hs, image= uiMod.getImagePath("tweenMachine_mid"),  highlightImage= uiMod.getImagePath("tweenMachine_mid copy"),   command=lambda *args: tweenMachine.setTween(-10),            annotation="Overshoot 10% with previous key"); tweenMachine.popUpColor()
        cmds.iconTextButton(style='iconOnly',     marginWidth=0, w=self.ws, h=self.hb, image= uiMod.getImagePath("tweenMachine_key"),  highlightImage= uiMod.getImagePath("tweenMachine_key copy"),       command=lambda *args: tweenMachine.setTween(0),             annotation="Copy previous key"); tweenMachine.popUpColor()
        cmds.iconTextButton(style='iconOnly',     marginWidth=0, w=self.ws, h=self.hs, image= uiMod.getImagePath("tweenMachine_mid"),  highlightImage= uiMod.getImagePath("tweenMachine_mid copy"),   command=lambda *args: tweenMachine.setTween(10),            annotation="Tween 90% with previous key"); tweenMachine.popUpColor()
        cmds.iconTextButton(style='iconOnly',     marginWidth=0, w=self.ws, h=self.hs, image= uiMod.getImagePath("tweenMachine_mid"),  highlightImage= uiMod.getImagePath("tweenMachine_mid copy"),   command=lambda *args: tweenMachine.setTween(20),            annotation="Tween 80% with previous key"); tweenMachine.popUpColor()
        cmds.iconTextButton(style='iconOnly',     marginWidth=0, w=self.ws, h=self.hs, image= uiMod.getImagePath("tweenMachine_mid"),  highlightImage= uiMod.getImagePath("tweenMachine_mid copy"),   command=lambda *args: tweenMachine.setTween(33),            annotation="Tween 66% with previous key"); tweenMachine.popUpColor()
        cmds.iconTextButton(style='iconOnly',     marginWidth=0, w=self.ws, h=self.hb, image= uiMod.getImagePath("tweenMachine_T"),    highlightImage= uiMod.getImagePath("tweenMachine_T copy"),       command=lambda *args: tweenMachine.setTween(50),            annotation="Tween 50%"); tweenMachine.popUpColor()
        cmds.iconTextButton(style='iconOnly',     marginWidth=0, w=self.ws, h=self.hs, image= uiMod.getImagePath("tweenMachine_mid"),  highlightImage= uiMod.getImagePath("tweenMachine_mid copy"),   command=lambda *args: tweenMachine.setTween(66),            annotation="Tween 66% with next key"); tweenMachine.popUpColor()
        cmds.iconTextButton(style='iconOnly',     marginWidth=0, w=self.ws, h=self.hs, image= uiMod.getImagePath("tweenMachine_mid"),  highlightImage= uiMod.getImagePath("tweenMachine_mid copy"),   command=lambda *args: tweenMachine.setTween(80),            annotation="Tween 80% with next key"); tweenMachine.popUpColor()
        cmds.iconTextButton(style='iconOnly',     marginWidth=0, w=self.ws, h=self.hs, image= uiMod.getImagePath("tweenMachine_mid"),  highlightImage= uiMod.getImagePath("tweenMachine_mid copy"),   command=lambda *args: tweenMachine.setTween(90),            annotation="Tween 90% with next key"); tweenMachine.popUpColor()
        cmds.iconTextButton(style='iconOnly',     marginWidth=0, w=self.ws, h=self.hb, image= uiMod.getImagePath("tweenMachine_key"),  highlightImage= uiMod.getImagePath("tweenMachine_key copy"),       command=lambda *args: tweenMachine.setTween(100),           annotation="Copy next key"); tweenMachine.popUpColor()
        cmds.iconTextButton(style='iconOnly',     marginWidth=0, w=self.ws, h=self.hs, image= uiMod.getImagePath("tweenMachine_mid"),  highlightImage= uiMod.getImagePath("tweenMachine_mid copy"),   command=lambda *args: tweenMachine.setTween(110),           annotation="Overshoot 10% with next key"); tweenMachine.popUpColor()
        cmds.iconTextButton(style='iconOnly',     marginWidth=0, w=self.ws, h=self.hs, image= uiMod.getImagePath("tweenMachine_mid"),  highlightImage= uiMod.getImagePath("tweenMachine_mid copy"),   command=lambda *args: tweenMachine.setTween(130),           annotation="Overshoot 30% with next key"); tweenMachine.popUpColor()
        cmds.iconTextButton(style='iconOnly',     marginWidth=0, w=self.ws, h=self.hs, image= uiMod.getImagePath("tweenMachine_right"),highlightImage= uiMod.getImagePath("tweenMachine_right copy"),   command=lambda *args: tweenMachine.setTween(150),           annotation="Overshoot 50% with next key"); tweenMachine.popUpColor()
Esempio n. 30
0
def createUI (pWindowTitle, pApplyCallback):
    
    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,75),(2,60),(3,60)], columnOffset=[(1,'right',3)])

    cmds.text(label='Time Range:') 
    startTimeField = cmds.intField()
    endTimeField = cmds.intField()
    
    cmds.text(label='Attribute:')
    targetAttributeField = cmds.textField()
    
    cmds.separator(h=10, style='none')
    
    cmds.separator(h=10, style='none')
    cmds.separator(h=10, style='none')
    cmds.separator(h=10, style='none')
    
    cmds.separator(h=10, style='none')
    
    cmds.button(label='Apply', command=pApplyCallback)    
    
    def cancelCallback(*pArgs):
        if cmds.window(windowID, exists=True):
            cmds.deleteUI(windowID)
    
    cmds.button(label='Cancel', command=cancelCallback)    
        
    cmds.showWindow()
def gui():
    if(cmds.window('tjmToolSetMain',ex=True)):
        cmds.deleteUI('tjmToolSetMain', window=True)
    if(cmds.windowPref('tjmToolSetMain', ex=True, )):
        cmds.windowPref('tjmToolSetMain', r=True)
        
    cmds.window('tjmToolSetMain', t="RBA ToolSet", w=305, h=600, s=True, tlc=[107,58])
    cmds.scrollLayout(w=305)
    main = cmds.columnLayout(adjustableColumn=1)
    
    #Modeling
    global normalSize, borderEdgeSize
    cmds.frameLayout('Modeling',l='Modeling', cl=True, cll=True, width=275)
    cmds.columnLayout(adj=1)
    cmds.button(l='Normals',c=normals)
    normalSize=cmds.floatSliderGrp(min=0.0, max=1.0, s=0.01, f=True,dc=normalResize)
    cmds.button(l='Border Edges', c=borderEdge)
    borderEdgeSize=cmds.floatSliderGrp(min=1.0, max=10, s=0.5, f=True, dc=borderEdgeResize)
    cmds.separator( h=5, st='singleDash')
    cmds.text(l='Normals')
    cmds.button(l='Conform', c=conformNormals)
    cmds.button(l='Reverse',c=reverseNormals)
    cmds.button(l='Soften', c=softenNormals)
    cmds.button(l='Harden', c=hardenNormals)
    cmds.setParent(main)
    
    #Control Icons
    cmds.frameLayout('ControlIcons',l='Control Icons', cl=True, cll=True, width=275)
    cmds.columnLayout(adj=1)
    cmds.button(l='Circle', c=createCircle)
    cmds.button(l='Square', c=createSquare)
    cmds.button(l='Cube',c=createCube)
    cmds.button(l='Pointer', c=createPointer)
    cmds.button(l='COG', c=createCOG)
    
    cmds.rowColumnLayout(numberOfColumns=2, width=275)
    global colorIndexValue
    cmds.button(bgc=[1,0,0], c=colorRed, l='')
    cmds.button(bgc=[0,0,1], c=colorBlue, l='')
    cmds.button(bgc=[1,1,0], c=colorYellow, l='')
    cmds.button(bgc=[1,0,1], c=colorPurple, l='')
    cmds.setParent('..')
    cmds.rowColumnLayout(nc=1)
    colorIndexValue=cmds.colorIndexSliderGrp(l=' ', min=0, max=20, value=10,dc=applyColor)
    #cmds.button(l='Apply', c=applyColor)
    cmds.setParent(main)
    
    #Rigging
    global pointCheckBox, orientCheckBox, parentCheckBox
    cmds.frameLayout('Rigging',l='Rigging', cl=True, cll=True, width=275)
    cmds.columnLayout(adj=1)
    cmds.text(l='Constraints')
    pointCheckBox=cmds.checkBox( l='Offset')
    cmds.button(l='Point', c=constraintPoint)
    orientCheckBox=cmds.checkBox( l='Offset')
    cmds.button(l='Orient', c=constraintOrient)
    parentCheckBox=cmds.checkBox( l='Offset')
    cmds.button(l='Parent',c=constraintParent)
    cmds.button(l='Pole Vector', c=constraintPoleVector)
    cmds.separator( height=5, style='singleDash')
    cmds.setParent(main)
    
    #Attribute Creator
    global separatorText, intText, floatText
    cmds.frameLayout('AttributeCreator',l='Attribute Creator',cl=True,cll=True,width=275,)
    cmds.columnLayout(adj=1)
    cmds.rowColumnLayout(nc=2)
    cmds.button(l='Separator',c=createSeparator)
    separatorText=cmds.textField(ed=True)
    cmds.button(l='Int',c=createInt)
    intText=cmds.textField(ed=True)
    cmds.button(l='Float',c=createFloat)
    floatText=cmds.textField(ed=True)
    cmds.setParent('..')
    
    
    #Intermediate Attribute Creator WIP
    cmds.text(l='Custom Attribute', al='center')
    global attributeLongName, radioSelection, minValue, maxValue
    cmds.columnLayout('radioMenu',cal='left', w=275)
    attributeLongName=cmds.textFieldGrp(l='LongName',ed=True, w=250)
    radioSelection=cmds.radioButtonGrp(la2=['Integer', 'Float'], nrb=2,sl=1)
    minValue=cmds.floatFieldGrp(nf=1,l='Min',v1=0)
    maxValue=cmds.floatFieldGrp(nf=1,l='Max',v1=1)
    cmds.setParent('..')
    cmds.button(l='Create Attribute',c=createAttribute)
    cmds.setParent(main)
    
    
    #Clean-Up
    cmds.frameLayout('CleanUp',l='Clean Up', cl=True, cll=True, width=275)
    cmds.columnLayout(adj=1)
    cmds.text(l='Geo')
    cmds.separator( h=5, st='singleDash')
    cmds.button(l='Delete History', c=deleteHistory)
    cmds.button(l='Freeze Transforms', c=freezeTransforms)
    cmds.button(l='Center Pivot', c=centerPivot)
    
    cmds.showWindow('tjmToolSetMain')
Esempio n. 32
0
    def createCustom(self, *args):
        # selection type

        mc.rowColumnLayout(nc=2, cw=[(1, 500), (2, 500)], cs=[1, 5], rs=[1, 3])

        mc.text(l="Select The Palm Root: ")
        mc.text(l="")
        mc.separator(st="in", h=17, w=500)
        mc.setParent("..")
        mc.rowColumnLayout(nc=3,
                           cw=[(1, 125), (2, 150), (3, 150)],
                           cs=[1, 5],
                           rs=[1, 3],
                           cal=(
                               [1, "left"],
                               [2, "left"],
                               [3, "left"],
                           ))

        mc.text(l="Mirror Arm As Well?")
        # mc.setParent("..")
        mc.radioButtonGrp(
            "selArmMirrorType_rbg",
            la2=["No", "Yes"],
            nrb=2,
            sl=2,
            cw2=[50, 50],
        )
        mc.text(l="")
        mc.setParent("..")
        mc.separator(st="in", h=17, w=500)

        mc.rowColumnLayout(nc=3,
                           cw=[(1, 100), (2, 200), (3, 150)],
                           cs=[1, 5],
                           rs=[1, 3],
                           cal=(
                               [1, "left"],
                               [2, "left"],
                               [3, "left"],
                           ))
        mc.text(l="Initial Limb: ")
        mc.radioButtonGrp(
            "selArmType_rbg",
            la2=["Left", "Right"],
            nrb=2,
            sl=1,
            cw2=[50, 50],
        )
        mc.setParent("..")
        mc.separator(st="in", h=17, w=500)

        # sources
        mc.rowColumnLayout(nc=2, cw=[(1, 100), (2, 380)], cs=[1, 5], rs=[1, 3])
        mc.text(bgc=(0.85, 0.65, 0.25), l="Hand Joint: ")
        mc.textFieldButtonGrp("jointLoad_tfbg", cw=(1, 322), bl="  Load  ")

        mc.text(bgc=(0.85, 0.65, 0.25), l="Arm: ")
        mc.textFieldButtonGrp("armLoad_tfbg",
                              cw=(1, 322),
                              bl="  Load  ",
                              tx="JNT_l_armEnd")

        mc.text(bgc=(0.85, 0.65, 0.25), l="FKIK Ctrl: ")
        mc.textFieldButtonGrp("ctrlFKIKSwitch_tfbg",
                              cw=(1, 322),
                              bl="  Load  ",
                              tx="CTRL_fkikSwitch")

        mc.setParent("..")

        mc.separator(st="in", h=17, w=500)

        mc.rowColumnLayout(nc=2, cw=[(1, 100), (2, 370)], cs=[1, 5], rs=[1, 3])
        mc.checkBox("selGeo_cb", l="Affect Geometry", en=True, v=True)
        mc.setParent("..")

        # load buttons
        #
        mc.textFieldButtonGrp("jointLoad_tfbg", e=True, bc=self.loadSrc1Btn)
        mc.textFieldButtonGrp("armLoad_tfbg", e=True, bc=self.loadSrc2Btn)
        mc.textFieldButtonGrp("ctrlFKIKSwitch_tfbg",
                              e=True,
                              bc=self.loadSrc3Btn)

        self.selLoad = []
        self.jointArray = []
        mc.showWindow(self.window)
Esempio n. 33
0
    cmds.copyAttr(controlx[0],grp,v=True,at=['tx','ty','tz'])
    #center piviot of grp
    cmds.xform(cp=True)
    #freeze transformations of grp
    cmds.makeIdentity(apply=True, t=1, r=1, s=1, n=0)
    
    #return

    #grab selected joints
    #selectedFK=cmds.ls(selection=True)
        
    #run makeCtrls()
    #for each in selectedFK:
        #makeCtrls(each)
       
            


win = cmds.window(title ='Biped Auto Rig')
layout = cmds.rowColumnLayout(adjustableColumn=True)
cmds.text(label ='Create Joints and Place Where Desired')
cmds.button(label='Create Drive Chain', command ='CreateDriveChain()')
cmds.text(label ='Please orient leaf joints')
cmds.button(label='Complete Skelton', command='MirrorParent()')
cmds.text(label ='Select Joints to Add controls')
cmds.button(label='Create Controls', command='makeCtrls()')
#cmds.button(label='Create Left Hand', command='CreateLeftHandChain()')
#cmds.button(label='Create Left Leg', command='CreateLeftLegChain()')
#colors = mc.floatFieldGrp(nf=3)

cmds.showWindow()        
Esempio n. 34
0
 def innerLayout():
     return cmds.rowColumnLayout(numberOfColumns=2,
                                 columnWidth=[(1, 100), (2, 100)])
Esempio n. 35
0
    def ui(cls):
        cmds.window(cls.winName,
                    title='Create Range Of Motion',
                    mnb=False,
                    mxb=False)

        cls.widgets['mainColLo'] = cmds.columnLayout(adj=True)

        cls.widgets['txRowColLo'] = cmds.rowColumnLayout(numberOfColumns=4,
                                                         columnOffset=[
                                                             (1, 'left', 5),
                                                             (2, 'left', 5),
                                                             (4, 'right', 5)
                                                         ],
                                                         columnWidth=[(3, 40),
                                                                      (4, 40)])
        cls.widgets['txChkBox'] = cmds.checkBox(label='')
        cmds.text(label='TranslateX Min/Max: ')
        cls.widgets['txMinIntFld'] = cmds.intField(v=-10)
        cls.widgets['txMaxIntFld'] = cmds.intField(v=10)
        cmds.setParent('..')

        cls.widgets['tyRowColLo'] = cmds.rowColumnLayout(numberOfColumns=4,
                                                         columnOffset=[
                                                             (1, 'left', 5),
                                                             (2, 'left', 5),
                                                             (4, 'right', 5)
                                                         ],
                                                         columnWidth=[(3, 40),
                                                                      (4, 40)])
        cls.widgets['tyChkBox'] = cmds.checkBox(label='')
        cmds.text(label='TranslateY Min/Max: ')
        cls.widgets['tyMinIntFld'] = cmds.intField(v=-10)
        cls.widgets['tyMaxIntFld'] = cmds.intField(v=10)
        cmds.setParent('..')

        cls.widgets['tzRowColLo'] = cmds.rowColumnLayout(numberOfColumns=4,
                                                         columnOffset=[
                                                             (1, 'left', 5),
                                                             (2, 'left', 5),
                                                             (4, 'right', 5)
                                                         ],
                                                         columnWidth=[(3, 40),
                                                                      (4, 40)])
        cls.widgets['tzChkBox'] = cmds.checkBox(label='')
        cmds.text(label='TranslateZ Min/Max: ')
        cls.widgets['tzMinIntFld'] = cmds.intField(v=-10)
        cls.widgets['tzMaxIntFld'] = cmds.intField(v=10)
        cmds.setParent('..')

        cmds.separator(style='in', h=5)

        cls.widgets['rxRowColLo'] = cmds.rowColumnLayout(numberOfColumns=4,
                                                         columnOffset=[
                                                             (1, 'left', 5),
                                                             (2, 'left', 5),
                                                             (4, 'right', 5)
                                                         ],
                                                         columnWidth=[(3, 40),
                                                                      (4, 40)])
        cls.widgets['rxChkBox'] = cmds.checkBox(label='')
        cmds.text(label='RotateX Min/Max: ')
        cls.widgets['rxMinIntFld'] = cmds.intField(v=-60)
        cls.widgets['rxMaxIntFld'] = cmds.intField(v=60)
        cmds.setParent('..')

        cls.widgets['ryRowColLo'] = cmds.rowColumnLayout(numberOfColumns=4,
                                                         columnOffset=[
                                                             (1, 'left', 5),
                                                             (2, 'left', 5),
                                                             (4, 'right', 5)
                                                         ],
                                                         columnWidth=[(3, 40),
                                                                      (4, 40)])
        cls.widgets['ryChkBox'] = cmds.checkBox(label='', v=True)
        cmds.text(label='RotateY Min/Max: ')
        cls.widgets['ryMinIntFld'] = cmds.intField(v=-60)
        cls.widgets['ryMaxIntFld'] = cmds.intField(v=60)
        cmds.setParent('..')

        cls.widgets['rzRowColLo'] = cmds.rowColumnLayout(numberOfColumns=4,
                                                         columnOffset=[
                                                             (1, 'left', 5),
                                                             (2, 'left', 5),
                                                             (4, 'right', 5)
                                                         ],
                                                         columnWidth=[(3, 40),
                                                                      (4, 40)])
        cls.widgets['rzChkBox'] = cmds.checkBox(label='', v=True)
        cmds.text(label='RotateZ Min/Max: ')
        cls.widgets['rzMinIntFld'] = cmds.intField(v=-60)
        cls.widgets['rzMaxIntFld'] = cmds.intField(v=60)
        cmds.setParent('..')

        cmds.separator(style='in', h=5)

        # cls.widgets['sFrmRowColLo'] = cmds.rowColumnLayout(numberOfColumns = 2, columnOffset = [(1, 'left', 5), (2, 'left', 5)], columnWidth = [(2, 40)])
        # cmds.text(label = 'Start Frame: ')
        # cls.widgets['sFrmIntFld'] = cmds.intField(v = 1)
        # cmds.setParent('..')

        # cmds.separator(style = 'in', h = 5)

        cmds.button(label='Apply', h=50, c=Functions.apply)

        cmds.window(cls.winName, e=True, w=150, h=150)
        cmds.showWindow(cls.winName)
    def createCustom(self, *args):
        # selection type

        mc.rowColumnLayout(nc=2, cw=[(1, 500), (2, 500)], cs=[1, 5], rs=[1, 3])

        mc.text(l="Select The Leg Root: ")
        mc.text(l="")
        mc.separator(st="in", h=17, w=500)
        mc.setParent("..")
        mc.rowColumnLayout(nc=3,
                           cw=[(1, 125), (2, 150), (3, 150)],
                           cs=[1, 5],
                           rs=[1, 3],
                           cal=(
                               [1, "left"],
                               [2, "left"],
                               [3, "left"],
                           ))

        mc.text(l="Mirror Leg As Well?")
        # mc.setParent("..")
        mc.radioButtonGrp(
            "selLegMirrorType_rbg",
            la2=["No", "Yes"],
            nrb=2,
            sl=2,
            cw2=[50, 50],
        )
        mc.text(l="")
        mc.checkBox("selCreateTwists_cb", l="Create Twists", en=True, v=True)
        mc.checkBox("selSpineEnd_cb", l="Connect To Hip", en=True, v=True)
        mc.checkBox("selFKSwitch_cb", l="Create FK Switch", en=True, v=True)
        mc.setParent("..")
        mc.separator(st="in", h=17, w=500)

        mc.rowColumnLayout(nc=3,
                           cw=[(1, 100), (2, 200), (3, 150)],
                           cs=[1, 5],
                           rs=[1, 3],
                           cal=(
                               [1, "left"],
                               [2, "left"],
                               [3, "left"],
                           ))
        mc.text(l="Initial Limb: ")
        mc.radioButtonGrp(
            "selLegType_rbg",
            la2=["Left", "Right"],
            nrb=2,
            sl=1,
            cw2=[50, 50],
        )
        mc.setParent("..")
        mc.separator(st="in", h=17, w=500)

        # sources
        mc.rowColumnLayout(nc=2, cw=[(1, 100), (2, 380)], cs=[1, 5], rs=[1, 3])
        mc.text(bgc=(0.85, 0.65, 0.25), l="Leg: ")
        mc.textFieldButtonGrp("jointLoad_tfbg", cw=(1, 322), bl="  Load  ")

        mc.text(bgc=(0.85, 0.65, 0.25), l="FKIK Ctrl: ")
        mc.textFieldButtonGrp("ctrlFKIKSwitch_tfbg",
                              cw=(1, 322),
                              bl="  Load  ",
                              tx="CTRL_fkikSwitch")

        mc.text(bgc=(0.85, 0.65, 0.25), l="FK Hip CTRL: ")
        mc.textFieldButtonGrp("ctrlFKHipLoad_tf",
                              cw=(1, 322),
                              bl="  Load  ",
                              tx="CTRL_FK_hip")

        mc.setParent("..")

        mc.separator(st="in", h=17, w=500)

        mc.rowColumnLayout(nc=2, cw=[(1, 100), (2, 380)], cs=[1, 5], rs=[1, 3])

        mc.text(bgc=(0.85, 0.65, 0.25), l="IK Hip CTRL: ")
        mc.textFieldButtonGrp("ctrlIKHip_tfbg",
                              cw=(1, 322),
                              bl="  Load  ",
                              tx="CTRL_IK_hip")

        mc.text(bgc=(0.85, 0.65, 0.25), l="COG CTRL: ")
        mc.textFieldButtonGrp("ctrlCOG_tfbg",
                              cw=(1, 322),
                              bl="  Load  ",
                              tx="CTRL_COG")

        mc.text(bgc=(0.85, 0.65, 0.25), l="Group LOC Follow: ")
        mc.textFieldButtonGrp("grpLOCFollow_tfbg",
                              cw=(1, 322),
                              bl="  Load  ",
                              tx="GRP_LOC_follow")

        mc.setParent("..")

        mc.separator(st="in", h=10, w=500)

        mc.rowColumnLayout(nc=2, cw=[(1, 100), (2, 370)], cs=[1, 5], rs=[1, 3])
        mc.checkBox("selGeo_cb", l="Affect Geometry", en=True, v=True)

        mc.setParent("..")

        # load buttons
        #
        mc.textFieldButtonGrp("jointLoad_tfbg", e=True, bc=self.loadSrc1Btn)
        mc.textFieldButtonGrp("ctrlFKHipLoad_tf", e=True, bc=self.loadSrc2Btn)
        mc.textFieldButtonGrp("ctrlFKIKSwitch_tfbg",
                              e=True,
                              bc=self.loadSrc3Btn)

        mc.textFieldButtonGrp("ctrlIKHip_tfbg", e=True, bc=self.loadSrc4Btn)
        mc.textFieldButtonGrp("ctrlCOG_tfbg", e=True, bc=self.loadSrc5Btn)
        mc.textFieldButtonGrp("grpLOCFollow_tfbg", e=True, bc=self.loadSrc6Btn)

        self.selLoad = []
        self.jointArray = []
        mc.showWindow(self.window)
Esempio n. 37
0
    def create_ui(self, pWindowTitle, pApplyCallBack, pSavePreset, pLoadPreset):
        windowID = 'miniTree'
        if cmds.window(windowID, exists=True):
            cmds.deleteUI(windowID)

        cmds.window(windowID, title=pWindowTitle, sizeable=False, resizeToFitChildren=True, w = 100)

        cmds.rowColumnLayout(numberOfColumns=1)
        logopath = cmds.internalVar(upd=True) + "icons/mini_tree_logo.png"
        cmds.image(image=logopath)
        cmds.separator(h=10, style='none')
        cmds.setParent('..')

        form = cmds.formLayout()
        tabs = cmds.tabLayout(innerMarginWidth=5, innerMarginHeight=5)
        cmds.formLayout(form, edit=True,
                        attachForm=((tabs, 'top', 0), (tabs, 'left', 0), (tabs, 'bottom', 0), (tabs, 'right', 0)))

        child1 = cmds.rowColumnLayout(numberOfColumns=1)

        cmds.separator(h=10, style='in')
        cmds.text(label='General', align='center')
        cmds.separator(h=10, style='in')

        polyNumberField = cmds.intSliderGrp("polyNumberField", label='Polygons:', min=3, max=20, value=4, step=1,
                                            field=True,
                                            annotation='Changes number of polygons in each tree segment')
        treeDepthField = cmds.intSliderGrp("treeDepthField", label='Levels (tree size):', min=1, max=8, value=3, step=1,
                                           field=True,
                                           annotation='Changes number of branching levels')
        treeFirstSegmentLength = cmds.floatSliderGrp("treeFirstSegmentLength", label='Base length:', min=0.1, max=5,
                                                     value=1, step=0.1,
                                                     field=True,
                                                     annotation='Increases/decreases the length of the first tree segment')
        cmds.separator(h=10, style='in')
        cmds.text(label='Branch length', align='center')
        cmds.separator(h=10, style='in')
        treeSegmentLength = cmds.floatSliderGrp("treeSegmentLength", label='Length:', min=0.2, max=20, value=5,
                                                step=0.1, field=True,
                                                annotation='Changes the initial length of each branch')

        treeLengthDecrease = cmds.floatSliderGrp("treeLengthDecrease", label='Decrease:', min=0.0, max=1, value=0.8,
                                                 step=0.01, field=True,
                                                 annotation='Affects how the length of each branch decreases as the tree grows')
        cmds.separator(h=10, style='in')
        cmds.text(label='Trunk/branch radius', align='center')
        cmds.separator(h=10, style='in')
        trunkRadius = cmds.floatSliderGrp("trunkRadius", label='Radius:', min=0.1, max=10, value=1, step=0.1,
                                          field=True,
                                          annotation='Changes the initial radius of the tree trunk')
        radiusDecrease = cmds.floatSliderGrp("radiusDecrease", label='Decrease:', min=0.0, max=1, value=0.45, step=0.01,
                                             field=True,
                                             annotation='Affects how the radius of the branches decreases as the tree grows')
        cmds.separator(h=10, style='in')
        cmds.text(label='Branching', align='center')
        cmds.separator(h=10, style='in')
        treeBranches = cmds.intSliderGrp("treeBranches", label='Max branches:', min=1, max=8, value=2, step=1,
                                         field=True,
                                         annotation='Changes the maximum number of branches that may occur when branching')
        treeBranches_a = cmds.floatSliderGrp("treeBranches_a", label='Branches angle:', min=0, max=math.pi, value=0.5,
                                             step=0.01,
                                             field=True, annotation='Manipulates the angle of braches')
        cmds.separator(h=10, style='in')
        cmds.text(label='Randomness', align='center')
        cmds.separator(h=10, style='in')
        branchingChance = cmds.floatSliderGrp("branchingChance", label='Branching chance:', min=0, max=1, value=0.9,
                                              step=0.01,
                                              field=True,
                                              annotation='Lower values increase a chance of a branch not appearing')
        cmds.separator(h=10, style='in')
        branchAngleChance = cmds.floatSliderGrp("branchAngleChance", label='Angle shift shance:', min=0, max=1,
                                                value=0.9,
                                                step=0.01,
                                                field=True,
                                                annotation='Chance of a branch angle deviating from the angle of all other branches')
        branchAngleRAmount = cmds.floatSliderGrp("branchAngleRAmount", label='Angle random amount:', min=0, max=math.pi,
                                                 value=math.pi / 6,
                                                 step=0.01,
                                                 field=True,
                                                 annotation='Angle of how much a branch angle can change randomly')
        cmds.separator(h=10, style='in')
        branchTurnChance = cmds.floatSliderGrp("branchTurnChance", label='Turn shift chance:', min=0, max=1, value=0.9,
                                               step=0.01,
                                               field=True,
                                               annotation='Chance of a branch turn deviating from the turn of all other branches')
        branchTurnRAmount = cmds.floatSliderGrp("branchTurnRAmount", label='Turn random amount:', min=0, max=math.pi,
                                                value=math.pi / 2,
                                                step=0.01,
                                                field=True, annotation='Angle of how much a branch can turn randomly')

        cmds.separator(h=10, style='in')
        cmds.text(label='Colour', align='center')
        cmds.separator(h=10, style='in')
        treeColor = cmds.colorSliderGrp("treeColor", label='Tree colour:', rgb=(0.4, 0.3, 0.3),
                                        annotation='Double click the colour to open the palette, changes tree colour')
        cmds.separator(h=10, style='none')

        cmds.setParent('..')

        child2 = cmds.rowColumnLayout(numberOfColumns=1)

        cmds.separator(h=10, style='in')
        cmds.text(label='General', align='center')
        cmds.separator(h=10, style='in')
        treeFoliageSze = cmds.floatSliderGrp("treeFoliageSze", label='Size:', min=0.1, max=6, value=1, step=0.01,
                                             field=True,
                                             annotation='Size of each foliage sphere')
        treeFoliageRes = cmds.intSliderGrp("treeFoliageRes", label='Resolution:', min=0, max=4, value=1, step=1,
                                           field=True,
                                           annotation='Subdivides each of the foliage spheres')
        cmds.separator(h=10, style='in')
        cmds.text(label='More foliage', align='center')
        cmds.separator(h=10, style='in')
        treeFoliageNumber = cmds.intSliderGrp("treeFoliageNumber", label='Spheres number:', min=1, max=20, value=1,
                                              step=1, field=True,
                                              annotation='Number of foliage spheres per branch')
        treeFoliageSpread = cmds.floatSliderGrp("treeFoliageSpread", label='Randomise positions:', min=0, max=5,
                                                value=0, step=0.01,
                                                field=True,
                                                annotation='Randomise the foliage spheres position (necessary when changing foliage number)')

        cmds.separator(h=10, style='in')
        cmds.text(label='Colour', align='center')
        cmds.separator(h=10, style='in')
        foliageColor = cmds.colorSliderGrp("foliageColor", label='Foliage colour:', rgb=(0.30, 0.7, 0.40),
                                           annotation='Double click the colour to open the palette, changes foliage colour')
        cmds.separator(h=10, style='none')

        cmds.setParent('..')

        cmds.tabLayout(tabs, edit=True, tabLabel=((child1, 'Tree'), (child2, 'Foliage')))
        cmds.setParent('..')
        cmds.setParent('..')

        cmds.rowColumnLayout(numberOfColumns=1)

        treeTypeSelect = cmds.radioButtonGrp("treeTypeSelect", label='Tree type', sl=1, labelArray2=['Normal', 'Pine'],
                                             numberOfRadioButtons=2)
        cmds.separator(h=10, style='none')

        def changeTextFld(*args):
            cmds.intFieldGrp("randomSeed", edit=True, v1=random.randint(0, 9999))

        cmds.separator(h=10, style='none')
        cmds.separator(h=10, style='none')

        cmds.rowColumnLayout(numberOfColumns=2)
        cmds.button(label='Randomize seed', command=changeTextFld, annotation='Changes seed value to a random value')
        randomSeed = cmds.intFieldGrp("randomSeed", label='Seed:', numberOfFields=1, value1=9981,
                                      annotation='Number affecting random generation of the tree')
        #cmds.separator(h=10, style='none')

        cmds.setParent('..')
        cmds.separator(h=10, style='none')
        cmds.separator(h=10, style='in')
        cmds.separator(h=10, style='none')

        cmds.rowColumnLayout(numberOfColumns=3, columnWidth=[(1, 300),(2, 20), (3, 100)])
        cmds.button(label='Create tree', h = 60, align='center', annotation='Create a tree using the above settings',
                    command=functools.partial(pApplyCallBack,
                                              polyNumberField,
                                              treeDepthField,
                                              treeSegmentLength,
                                              treeLengthDecrease,
                                              trunkRadius,
                                              radiusDecrease,
                                              treeBranches,
                                              treeBranches_a,
                                              treeFoliageSze,
                                              treeFoliageRes,
                                              randomSeed,
                                              foliageColor,
                                              treeColor,
                                              treeFoliageNumber,
                                              treeFoliageSpread,
                                              treeFirstSegmentLength,
                                              treeTypeSelect,
                                              branchingChance,
                                              branchAngleChance,
                                              branchTurnChance,
                                              branchTurnRAmount,
                                              branchAngleRAmount
                                              ))
        cmds.separator(h=10, style='none')
        cmds.rowColumnLayout(numberOfColumns=1, columnWidth=[(1, 90)])

        cmds.button(label='Save preset', annotation='Saves current settings as a preset',
                    command=functools.partial(pSavePreset,
                                              polyNumberField,
                                              treeDepthField,
                                              treeSegmentLength,
                                              treeLengthDecrease,
                                              trunkRadius,
                                              radiusDecrease,
                                              treeBranches,
                                              treeBranches_a,
                                              treeFoliageSze,
                                              treeFoliageRes,
                                              randomSeed,
                                              foliageColor,
                                              treeColor,
                                              treeFoliageNumber,
                                              treeFoliageSpread,
                                              treeFirstSegmentLength,
                                              treeTypeSelect,
                                              branchingChance,
                                              branchAngleChance,
                                              branchTurnChance,
                                              branchTurnRAmount,
                                              branchAngleRAmount
                                              ))
        cmds.separator(h=10, style='none')
        cmds.button(label='Load preset', annotation='Loads current settings as a preset',
                                 command=functools.partial(pLoadPreset))
        cmds.separator(h=10, style='in')
        cmds.text('preset_text', label='default', align='center')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.helpLine()

        def cancelCallBack(*pArgs):
            if cmds.window(windowID, exists=True):
                cmds.deleteUI(windowID)

        # cmds.button(label='Cancel', command=cancelCallBack)
        cmds.showWindow()
Esempio n. 38
0
def build_gui_gt_check_for_updates():
    ''' Build a GUI to show current and latest versions '''
    window_name = "build_gui_gt_check_for_updates"
    if cmds.window(window_name, exists=True):
        cmds.deleteUI(window_name, window=True)

    cmds.window(window_name, title= 'GT Check for Updates - (v' + script_version + ')', mnb=False, mxb=False, s=True)
    cmds.window(window_name, e=True, s=True, wh=[1,1])

    cmds.columnLayout("main_column", p= window_name)
   
    # Title Text
    title_bgc_color = (.4, .4, .4)
    cmds.separator(h=12, style='none') # Empty Space
    cmds.rowColumnLayout(nc=1, cw=[(1, 410)], cs=[(1, 10)], p="main_column") # Window Size Adjustment
    cmds.rowColumnLayout(nc=1, cw=[(1, 400)], cs=[(1, 10)], p="main_column") # Title Column
    cmds.text("GT Check for Updates", bgc=title_bgc_color,  fn="boldLabelFont", align="center")
    cmds.separator(h=10, style='none', p="main_column") # Empty Space

    # Body ====================
    checklist_spacing = 4

    cmds.text(l='\ngithub.com/TrevisanGMW/gt-tools', align="center")
    cmds.separator(h=7, style='none') # Empty Space
    
    
    general_column_width = [(1, 210),(2, 110),(4, 37)]
    
    cmds.rowColumnLayout(nc=3, cw=general_column_width, cs=[(1, 18),(2, 0),(3, 0),(4, 0)], p="main_column")
    cmds.text(l='Status:', align="center", fn="boldLabelFont")
    update_status = cmds.text(l='...', align="center")
    cmds.separator(h=7, style='none') # Empty Space
    
    cmds.separator(h=7, style='none') # Empty Space
    
    cmds.rowColumnLayout(nc=3, cw=general_column_width, cs=[(1, 18),(2, 0),(3, 0),(4, 0)], p="main_column")
    cmds.text(l='Web Response:', align="center", fn="boldLabelFont")
    web_response_text = cmds.text(l='...', align="center", fn="tinyBoldLabelFont", bgc=(1, 1, 0))
    cmds.separator(h=7, style='none') # Empty Space
    
    cmds.separator(h=7, style='none') # Empty Space
    
    cmds.rowColumnLayout(nc=3, cw=general_column_width, cs=[(1, 18),(2, 0),(3, 0),(4, 0)], p="main_column")
    cmds.text(l='Installed Version:', align="center", fn="boldLabelFont")
    installed_version_text = cmds.text(l='...', align="center")
    cmds.separator(h=7, style='none') # Empty Space
    
    cmds.separator(h=7, style='none') # Empty Space
    
    cmds.rowColumnLayout(nc=3, cw=general_column_width, cs=[(1, 18),(2, 0),(3, 0),(4, 0)], p="main_column")
    cmds.text(l='Latest Release:', align="center", fn="boldLabelFont")
    latest_version_text = cmds.text(l='...', align="center")
    cmds.separator(h=7, style='none') # Empty Space

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

    # Changelog =============
    cmds.rowColumnLayout(nc=1, cw=[(1, 400)], cs=[(1, 10)], p="main_column")
    cmds.text(l='Latest Release Changelog:', align="center", fn="boldLabelFont") 
    cmds.text(l='Use the refresh button to check again:', align="center", fn="smallPlainLabelFont") 
    cmds.separator(h=checklist_spacing, style='none') # Empty Space
   
   
    output_scroll_field = cmds.scrollField(editable=False, wordWrap=True, fn="obliqueLabelFont")
    
    cmds.separator(h=10, style='none') # Empty Space

    # Refresh Button
    cmds.rowColumnLayout(nc=2, cw=[(1, 280),(2, 115)], cs=[(1,10),(2,5)], p="main_column")
    auto_update_btn = cmds.button(l='Auto Check For Updates: Activated', h=30, c=lambda args: toggle_auto_updater())
    auto_updater_interval_btn = cmds.button(l='Interval: 15 days', h=30, c=lambda args: change_auto_update_interval())
    cmds.rowColumnLayout(nc=1, cw=[(1, 400)], cs=[(1,10)], p="main_column")
    cmds.separator(h=5, style='none')
    cmds.button(l='Refresh', h=30, c=lambda args: reroute_errors('check_for_updates'))
    cmds.separator(h=8, style='none')
    update_btn = cmds.button(l='Update', h=30, en=False, c=lambda args: reroute_errors('open_releases_page'))
    cmds.separator(h=8, style='none')
    
    # Show and Lock Window
    cmds.showWindow(window_name)
    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(':/SP_FileDialogToParent_Disabled.png')
    widget.setWindowIcon(icon)
    

    def toggle_auto_updater(refresh_only=False):
        ''' 
        Toggle the auto check for updates button while updating an optionVar that controls this behaviour
        
                Parameters:
                    refresh_only (bool): Is it only refreshing or toggling?

        '''
        persistent_auto_updater_exists = cmds.optionVar(exists=('gt_check_for_updates_auto_active'))
        if persistent_auto_updater_exists:
            current_status = bool(cmds.optionVar(q=("gt_check_for_updates_auto_active")))
        else:
            current_status = gt_check_for_updates.get('def_auto_updater_status')
        
        if refresh_only:
            if current_status:
                cmds.button(auto_update_btn, e=True, label='Auto Check For Updates: Activated')
                cmds.button(auto_updater_interval_btn, e=True, en=True)
            else:
                cmds.button(auto_update_btn, e=True, label='Auto Check For Updates: Deactivated')
                cmds.button(auto_updater_interval_btn, e=True, en=False)
                
        
        if not refresh_only:
            if current_status:
                cmds.button(auto_update_btn, e=True, label='Auto Check For Updates: Deactivated')
                cmds.optionVar( iv=('gt_check_for_updates_auto_active', int(False)))
                cmds.button(auto_updater_interval_btn, e=True, en=False)
            else:
                cmds.button(auto_update_btn, e=True, label='Auto Check For Updates: Activated')
                cmds.optionVar( iv=('gt_check_for_updates_auto_active', int(True)))
                cmds.button(auto_updater_interval_btn, e=True, en=True)

    def change_auto_update_interval(refresh_only=False):
        ''' 
        Toggle the auto check for updates button while updating an optionVar that controls this behaviour
        
                Parameters:
                    refresh_only (bool): Is it only refreshing or toggling?

        '''
        check_interval = gt_check_for_updates.get('def_auto_updater_interval')
        persistent_check_interval_exists = cmds.optionVar(exists=('gt_check_for_updates_interval_days'))
        if persistent_check_interval_exists:
            check_interval = int(cmds.optionVar(q=("gt_check_for_updates_interval_days")))
                  
        interval_list = {'five_days' : 5,
                         'half_month' : 15,
                         'one_month' : 30,
                         'three_months' : 91,
                         'six_months': 182,
                         'one_year': 365}
                
        if not refresh_only:
            if check_interval == interval_list.get('five_days'):
                check_interval = interval_list.get('half_month')
                cmds.optionVar( iv=('gt_check_for_updates_interval_days', int(check_interval)))
            elif check_interval == interval_list.get('half_month'):
                check_interval = interval_list.get('one_month')
                cmds.optionVar( iv=('gt_check_for_updates_interval_days', int(check_interval)))
            elif check_interval == interval_list.get('one_month'):
                check_interval = interval_list.get('three_months')
                cmds.optionVar( iv=('gt_check_for_updates_interval_days', int(check_interval)))
            elif check_interval == interval_list.get('three_months'):
                check_interval = interval_list.get('six_months')
                cmds.optionVar( iv=('gt_check_for_updates_interval_days', int(check_interval)))
            elif check_interval == interval_list.get('six_months'):
                check_interval = interval_list.get('one_year')
                cmds.optionVar( iv=('gt_check_for_updates_interval_days', int(check_interval)))
            elif check_interval == interval_list.get('one_year'):
                check_interval = interval_list.get('five_days') # Restart
                cmds.optionVar( iv=('gt_check_for_updates_interval_days', int(check_interval)))
                
        new_interval = ''
        if check_interval == interval_list.get('half_month') or check_interval == interval_list.get('one_month') or check_interval == interval_list.get('five_days'):
            new_interval = str(check_interval) + ' days'
        elif check_interval == interval_list.get('three_months'):
            new_interval = '3 months'
        elif check_interval == interval_list.get('six_months'):
            new_interval = '6 months'
        elif check_interval == interval_list.get('one_year'):
            new_interval = '1 year'

        cmds.button(auto_updater_interval_btn, e=True, label='Interval: ' + new_interval)

    
    def reroute_errors(operation):
        ''' Wrap functions around a try and catch to avoid big crashes during runtime '''
        try:
            if operation == 'open_releases_page':
                open_releases_page()
            else:
                check_for_updates()
        except Exception as exception:
            cmds.scrollField(output_scroll_field, e=True, clear=True)
            cmds.scrollField(output_scroll_field, e=True, ip=0, it=str(exception) + '\n')
    
    
    def open_releases_page():
        ''' Opens a web browser with the latest release '''
        cmds.showHelp ('https://github.com/TrevisanGMW/gt-tools/releases/latest', absolute=True) 
      
        
    def check_for_updates():
        ''' 
        Compare versions and update text accordingly 
        It uses "get_github_release" to check for updates
        '''
        
        def execute_operation():
            # Define Current Version
            stored_gt_tools_version_exists = cmds.optionVar(exists=("gt_tools_version"))

            if stored_gt_tools_version_exists:
                gt_check_for_updates['current_version'] = "v" + str(cmds.optionVar(q=("gt_tools_version")))
            else:
                gt_check_for_updates['current_version'] = 'v0.0.0'
            
            # Retrive Latest Version
            response_list = get_github_release(gt_tools_latest_release_api)

            gt_check_for_updates['latest_version'] = response_list[0].get('tag_name') or "v0.0.0"
            
            success_codes = [200, 201, 202, 203, 204, 205, 206]
            web_response_color = (0, 1, 0)
            if response_list[1] not in success_codes:
                web_response_color = (1, .5, .5)
                
            cmds.text(web_response_text, e=True, l=response_list[2], bgc=web_response_color)
            cmds.text(installed_version_text, e=True, l=gt_check_for_updates.get('current_version'))
            cmds.text(latest_version_text, e=True, l=gt_check_for_updates.get('latest_version'))
            
            current_version_int = int(re.sub("[^0-9]", "", str(gt_check_for_updates.get('current_version'))))
            latest_version_int = int(re.sub("[^0-9]", "", str(gt_check_for_updates.get('latest_version'))))
            
            current_version_major = int(re.sub("[^0-9]", "", str(gt_check_for_updates.get('current_version')).split('.')[0]))
            current_version_minor = int(re.sub("[^0-9]", "", str(gt_check_for_updates.get('current_version')).split('.')[1]))
            current_version_patch = int(re.sub("[^0-9]", "", str(gt_check_for_updates.get('current_version')).split('.')[2]))

            latest_version_major = int(re.sub("[^0-9]", "", str(gt_check_for_updates.get('latest_version')).split('.')[0]))
            latest_version_minor = int(re.sub("[^0-9]", "", str(gt_check_for_updates.get('latest_version')).split('.')[1]))
            latest_version_patch = int(re.sub("[^0-9]", "", str(gt_check_for_updates.get('latest_version')).split('.')[2]))

            current_state = 'unknown'

            # Check Major
            if current_version_major < latest_version_major:
                current_state = 'update'
            elif current_version_major > latest_version_major:
                current_state = 'unreleased'
            else:
                current_state = 'same'

            # Check Minor
            if current_state == 'same': 
                if current_version_minor < latest_version_minor:
                    current_state = 'update'
                elif current_version_minor > latest_version_minor:
                    current_state = 'unreleased'
                else:
                    current_state = 'same'

            # Check Patch
            if current_state == 'same': 
                if current_version_patch < latest_version_patch:
                    current_state = 'update'
                elif current_version_patch > latest_version_patch:
                    current_state = 'unreleased'

            if current_state == 'update':
                cmds.button(update_btn, e=True, en=True, bgc=(.6, .6, .6))
                cmds.text(update_status, e=True, l="New Update Available!", fn="tinyBoldLabelFont", bgc=(1, .5, .5))
            elif current_state == 'unreleased':
                cmds.text(update_status, e=True, l="Unreleased update!", fn="tinyBoldLabelFont", bgc=(.7, 0 , 1))
                cmds.button(update_btn, e=True, en=False)
            elif current_state == 'same':
                cmds.text(update_status, e=True, l="You're up to date!", fn="tinyBoldLabelFont", bgc=(0, 1, 0))
                cmds.button(update_btn, e=True, en=False)
            else:
                cmds.text(update_status, e=True, l="Unknown!", fn="tinyBoldLabelFont", bgc=(0, 0, 0))
                cmds.button(update_btn, e=True, en=False)
            
            published_at = ''
            try:
                published_at = response_list[0].get('published_at').split('T')[0]
            except:
                pass
            
            cmds.scrollField(output_scroll_field, e=True, clear=True)
            cmds.scrollField(output_scroll_field, e=True, ip=0, it=(response_list[0].get('tag_name') + (' ' * 80) + '(' + published_at + ')\n'))
            cmds.scrollField(output_scroll_field, e=True, ip=0, it=response_list[0].get('body'))
            
            if latest_version_int != 0:
                try:                    
                    previous_version = ''
                    if latest_version_patch != 0:
                        previous_version = 'v' + str(latest_version_major) + '.'  + str(latest_version_minor) + '.'  + str(latest_version_patch-1) 
                    else:
                        if latest_version_minor != 0:
                            previous_version = 'v' + str(latest_version_major) + '.'  + str(latest_version_minor-1) + '.'  + str(latest_version_patch) 
                        else:
                            if latest_version_major != 0:
                                previous_version = 'v' + str(latest_version_major-1) + '.'  + str(latest_version_minor) + '.'  + str(latest_version_patch)
    
                    previous_version_major = int(re.sub("[^0-9]", "", str(previous_version.split('.')[0])))
                    previous_version_minor = int(re.sub("[^0-9]", "", str(previous_version.split('.')[1])))
                    previous_version_patch = int(re.sub("[^0-9]", "", str(previous_version.split('.')[2])))

                    before_previous_version = ''
                    if previous_version_patch != 0:
                        before_previous_version = 'v' + str(previous_version_major) + '.'  + str(previous_version_minor) + '.'  + str(previous_version_patch-1) 
                    else:
                        if previous_version_minor != 0:
                            before_previous_version = 'v' + str(previous_version_major) + '.'  + str(previous_version_minor-1) + '.'  + str(previous_version_patch) 
                        else:
                            if previous_version_major != 0:
                                before_previous_version = 'v' + str(previous_version_major-1) + '.'  + str(previous_version_minor) + '.'  + str(previous_version_patch)
                    
                    previous_version_response = get_github_release(gt_tools_tag_release_api + previous_version)
                    before_previous_version_response = get_github_release(gt_tools_tag_release_api + before_previous_version)
                    
                    if previous_version_response[1] in success_codes:
                        published_at = ''
                        try:
                            published_at = previous_version_response[0].get('published_at').split('T')[0]
                        except:
                            pass
                        cmds.scrollField(output_scroll_field, e=True, ip=0, it='\n\n' + (previous_version_response[0].get('tag_name') + (' ' * 80) + '(' + published_at + ')\n'))
                        cmds.scrollField(output_scroll_field, e=True, ip=0, it=previous_version_response[0].get('body'))
                    
                    
                    if before_previous_version_response[1] in success_codes:
                        published_at = ''
                        try:
                            published_at = before_previous_version_response[0].get('published_at').split('T')[0]
                        except:
                            pass
                        cmds.scrollField(output_scroll_field, e=True, ip=0, it='\n\n' + (before_previous_version_response[0].get('tag_name') + (' ' * 80) + '(' + published_at + ')\n'))
                        cmds.scrollField(output_scroll_field, e=True, ip=0, it=before_previous_version_response[0].get('body'))

                except:
                    pass
                
            if response_list[1] not in success_codes:
                cmds.text(update_status, e=True, l="Unknown", fn="tinyBoldLabelFont", bgc=(1, .5, .5))
                
            cmds.scrollField(output_scroll_field, e=True, ip=1, it='') # Bring Back to the Top
        
        # Threaded Operation
        def threaded_operation():
            try:
                utils.executeDeferred(execute_operation)
            except Exception as e:
                print(e)
                
        thread = threading.Thread(None, target = threaded_operation)
        thread.start()
        
    # Refresh When Opening
    reroute_errors('')
    
    # Refresh Buttons
    toggle_auto_updater(refresh_only=True)
    change_auto_update_interval(refresh_only=True)
Esempio n. 39
0
 def run(self, title_ui):
     
     if cmds.window(self.name, exists=True):
         cmds.deleteUI(self.name)
     
     #create the main window
     main_window = cmds.window(self.name, title=title_ui, sizeable=True)
     
     # create first main buttons
     main_layout = cmds.rowColumnLayout(numberOfRows=2)
     main_buttons = cmds.rowColumnLayout(numberOfColumns=3, parent=main_layout)
     cmds.button(label='Check Directory', backgroundColor=[0.243, 0.8, 0.792], parent=main_buttons)
     cmds.button(label='Directory Path', backgroundColor=[0.235, 0.709, 0.188], parent=main_buttons)
     cmds.button(label='Create Directory', backgroundColor=[0.972, 0.478, 0.086], parent=main_buttons)
     cmds.setParent( '..' )
     
     #tab layout
     form = cmds.formLayout()
     tabs = cmds.tabLayout(innerMarginWidth=20, innerMarginHeight=20)
     cmds.formLayout( form, edit=True, attachForm=((tabs, 'top', 0), (tabs, 'left', 0), (tabs, 'bottom', 0), (tabs, 'right', 0)), parent=main_layout )
     
     import_layout = cmds.rowColumnLayout(numberOfColumns=2)
     cmds.button(label='Import', parent=import_layout)
     cmds.setParent( '..' )
     
     export_layout = cmds.rowColumnLayout(numberOfRows=4)
     # type of export
     type_export_layout = cmds.rowColumnLayout(numberOfColumns=3, columnSpacing=((2, 10), (3, 20)))
     cmds.text(label='Type of Export:', align='right', parent=type_export_layout)
     cmds.radioCollection(parent=type_export_layout)
     cmds.radioButton(label='Latest')
     cmds.radioButton(label='Custom')
     cmds.setParent( '..' )
     
     # textfield for file
     file_export_layout = cmds.rowColumnLayout(numberOfColumns=2, columnSpacing=(2, 10))
     file_label = cmds.text(label='File:',  align='right', parent=file_export_layout)
     file_txt_field = cmds.textField(parent=file_export_layout)
     cmds.setParent( '..' )
     
     # type of selection
     type_sel_export_layout = cmds.rowColumnLayout(numberOfColumns=3, columnSpacing=(2, 10))
     cmds.text(label='Hierarchy:', align='right', parent=type_sel_export_layout)
     cmds.radioCollection(parent=type_sel_export_layout)
     cmds.radioButton(label='All')
     cmds.radioButton(label='Selected')
     cmds.setParent( '..' )
     
     # operation tab button
     button_export_layout = cmds.rowColumnLayout(numberOfColumns=1, columnSpacing=(2, 10))
     cmds.button(label='Export',  parent=button_export_layout)
     
     
     # build the tabs layout
     cmds.tabLayout( tabs, edit=True, tabLabel=((import_layout, 'import'), (export_layout, 'export')))
     
     #tabs import Export
     
     # Display the window
     cmds.showWindow()
     return 0
Esempio n. 40
0
            ("pink",          9,     (.8, .2, .8)),
            ("light pink",    20,    ( 1, .8,  1)) 
            )


wv = 25
winID = 'setNurbOverrideColorPanel'
#Create Window with buttons for each color override
if cmds.window(winID, exists=True):
    cmds.deleteUI(winID)

cmds.window(winID, title='Override NURB Color')
cmds.columnLayout(adjustableColumn=True, rowSpacing=5, width=200)

cmds.frameLayout(label='NURBS Colours', labelAlign='top')


cmds.rowColumnLayout(numberOfRows=1 )
for button in buttons_one:
    cmds.button(label='', annotation=button[0], width=wv, command=partial(setNurbOverrideColor, button[1]), backgroundColor=button[2])
cmds.setParent('..')


cmds.rowColumnLayout(numberOfRows=1 )
for button in buttons_two:
    cmds.button(label='', annotation=button[0], width=wv, command=partial(setNurbOverrideColor, button[1]), backgroundColor=button[2])
cmds.setParent('..')


cmds.showWindow()
Esempio n. 41
0
    def __init__(self, parent):
        MelForm.__init__(self, parent)

        self.sortBySrcs = True  #otherwise it sorts by tgts when doing traces
        self._clipPreset = None
        self.UI_mapping = mappingEditor.MappingForm(self)
        self.UI_options = MelFrame(
            self,
            l="xfer options",
            labelVisible=True,
            collapsable=False,
            collapse=False,
            h=115,
            borderStyle='etchedIn'
        )  #need to specify the height for 2011 coz its ghey!

        cmd.columnLayout(adjustableColumn=True, rowSpacing=5)
        cmd.rowLayout(numberOfColumns=2,
                      columnWidth2=(175, 165),
                      columnAttach=((1, "both", 5), (2, "both", 5)))

        cmd.columnLayout(adjustableColumn=True)
        self.UI_radios = cmd.radioCollection()
        self.RAD_dupe = cmd.radioButton(l="duplicate nodes",
                                        align='left',
                                        sl=True,
                                        cc=self.on_update)
        self.RAD_copy = cmd.radioButton(l="copy/paste keys",
                                        align='left',
                                        cc=self.on_update)
        self.RAD_trace = cmd.radioButton(l="trace objects",
                                         align='left',
                                         cc=self.on_update)
        setParent('..')

        cmd.columnLayout(adjustableColumn=True)
        self.UI_check1 = cmd.checkBox(l="instance animation")
        self.UI_check2 = cmd.checkBox(l="match rotate order", v=1)
        self.UI_check3 = cmd.checkBox(l="", vis=0, v=0)
        self.UI_check4 = cmd.checkBox(l="", vis=0, v=1)
        setParent('..')
        setParent('..')

        cmd.rowColumnLayout(numberOfColumns=7,
                            columnWidth=((1, 75), (2, 95), (3, 35), (4, 45),
                                         (5, 35), (6, 45)),
                            columnAttach=((1, "both", 1), (2, "both", 1),
                                          (3, "both", 1), (4, "both", 1),
                                          (5, "both", 5), (6, "both",
                                                           1), (7, "both", 5)))
        self.UI_keysOnly = cmd.checkBox(l="keys only", v=0, cc=self.on_update)
        self.UI_withinRange = cmd.checkBox(l="within range:",
                                           v=0,
                                           cc=self.on_update)
        cmd.text(l="start ->")
        self.UI_start = cmd.textField(en=0, tx='!')
        cmd.popupMenu(p=self.UI_start, b=3, pmc=self.buildTimeMenu)

        cmd.text(l="end ->")
        self.UI_end = cmd.textField(en=0, tx='!')
        cmd.popupMenu(p=self.UI_end, b=3, pmc=self.buildTimeMenu)

        cmd.setParent(self)
        UI_button = cmd.button(l='Xfer Animation', c=self.on_xfer)

        self(e=True,
             af=((self.UI_mapping, 'top', 0), (self.UI_mapping, 'left', 0),
                 (self.UI_mapping, 'right', 0), (self.UI_options, 'left', 0),
                 (self.UI_options, 'right', 0), (UI_button, 'left', 0),
                 (UI_button, 'right', 0), (UI_button, 'bottom', 0)),
             ac=((self.UI_mapping, 'bottom', 0, self.UI_options),
                 (self.UI_options, 'bottom', 0, UI_button)))

        self.on_update()  #set initial state
Esempio n. 42
0
    def showUI(self, checkOffList=[]):
        if cmds.window('udimConvertWindow', q=1, exists=1):
            cmds.deleteUI('udimConvertWindow')
        cmds.window('udimConvertWindow', title='Convert UDIM Textures')
        self.mainScroll = cmds.scrollLayout()
        mainCol = cmds.rowColumnLayout(nc=1)

        cmds.rowColumnLayout(nc=4)
        cmds.button(l='Extract UDIM to Chain',
                    h=30,
                    c=lambda *args: self.convertNodes())
        self.createContainerCB = cmds.checkBox(l='Create Container', v=0)
        #~ cmds.button(l='Convert back to UDIM',visible=0)
        cmds.button(l='Delete The Trash',
                    c=lambda *args: self.deleteSuperfluousTextures())
        cmds.button(l='Refresh', c=lambda *args: self.refresh())
        cmds.setParent('..')

        self.checkDict = {}

        self.getTextures()  # get self.udimTextures, self.bigTextures
        cmds.frameLayout(collapsable=1, label='Udim Textures')
        udimRC = cmds.rowColumnLayout(nc=1)
        for i in sorted(self.udimTextures.keys(),
                        key=lambda x: os.path.basename(x).lower()):
            texPath = self.udimTextures[i][0]
            numList = self.udimTextures[i][1]
            fileNodes = self.udimTextures[i][2:]

            cmds.text(l='', h=5, bgc=[0.2] * 3)
            tmpFL = cmds.formLayout()
            tmpBtn = cmds.iconTextButton(l='    ' + os.path.basename(texPath) +
                                         u'             (%i节点, %i纹理)' %
                                         (len(fileNodes), len(numList)),
                                         ann=texPath.replace('/', '\\'),
                                         w=350,
                                         h=20,
                                         flat=0,
                                         st='iconAndTextHorizontal')
            tmpCB = cmds.checkBox(l='', h=20, v=1)
            cmds.setParent(udimRC)
            tmpFrm = cmds.frameLayout(labelVisible=0,
                                      collapsable=1,
                                      collapse=1)
            cmds.rowColumnLayout(nc=2)
            cmds.text(l='', w=15)
            cmds.textField(text=texPath.replace('/', '\\'), editable=0, w=310)
            cmds.text(l='', w=15)
            cmds.textField(text=util().intsToStrExpr(
                [x % 1000 for x in numList]),
                           editable=0,
                           w=310)

            cbList = []
            for j in fileNodes:
                cmds.text(l='', w=15)
                if j in checkOffList:
                    cmds.checkBox(tmpCB, e=1, v=0)

                cbList.append(
                    cmds.checkBox(l=j,
                                  ann=j,
                                  v=(j not in checkOffList),
                                  ofc=lambda a=1, b=tmpCB, c=1: cmds.checkBox(
                                      b, e=1, v=0)))
            self.checkDict[texPath] = cbList
            for j in cbList:
                cmds.checkBox(
                    j,
                    e=1,
                    onc=lambda a=1, b=cbList, c=tmpCB, d=1: cmds.checkBox(
                        c,
                        e=1,
                        v=min([1] +
                              [int(cmds.checkBox(x, q=1, v=1)) for x in b])))
            cmds.setParent(udimRC)
            cmds.iconTextButton(
                tmpBtn,
                e=1,
                c=lambda a=1, b=tmpFrm, c=1: cmds.frameLayout(
                    b, e=1, collapse=not cmds.frameLayout(b, q=1, collapse=1)))
            cmds.checkBox(
                tmpCB,
                e=1,
                onc=lambda a=1, b=cbList, c=1:
                [cmds.checkBox(x, e=1, v=1) for x in b],
                ofc=lambda a=1, b=cbList, c=1:
                [cmds.checkBox(x, e=1, v=0) for x in b],
            )

        cmds.setParent(mainCol)
        cmds.text(l='', h=8)

        cmds.frameLayout(collapsable=1, label='Big Textures', visible=0)

        cmds.setParent('..')

        cmds.showWindow('udimConvertWindow')
Esempio n. 43
0
def uiCreation():
	
	if cmds.window( "main", exists = True ):
		cmds.deleteUI( "main" )

	overUI = cmds.window( "main", title=windowName, mxb=False, s=False )
	cmds.window( "main", e=True, wh=( 10, 10 ) , rtf=True )
	
	cmds.columnLayout( 'layout1', rs=4, adj=True )
	
	#||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
	
	cmds.frameLayout( 'testestes', l=posScriptLabel, cll=1, bgc=frameColor1, p="main", sbm="Translation script", cc=('cmds.window( "main", e=True, h=10, rtf=True )') )
	
	cmds.floatSliderGrp( "s1", l='Smooth', f=True, min=0.0, max=s1Max, fmx=10, 
	v=goalSmooth, cc=('goalSmooth=printSmoothV()'), pre=2, w=slWidth, ann=goalSmoothAnn, cal=(1, "left"), cw3=( 45, 50, 10 )  )
	
	cmds.floatSliderGrp( "s2", l='Scale', f=True, min=0.0, max=s2Max, fmx=10, 
	v=timeScale, cc=('timeScale=printScaleV()'), pre=2, w=slWidth, ann=timeScaleAnn, cal=(1, "left"), cw3=( 45, 50, 10 )  )
	
	cmds.floatSliderGrp( "s3", l='Weight', f=True, min=0.0, max=s3Max, 
	v=goalW, cc=('goalW=printWeightV()'), pre=2, w=slWidth, ann=goalWeightAnn, cal=(1, "left"), cw3=( 45, 50, 10 )  )
	
	cmds.rowColumnLayout( numberOfColumns=3, columnWidth=[ (1, rW1), (2, rW2), (3, rW3) ] )

	cmds.button( label="RESET VALUES", command=( 'resetTranslation()' ), bgc=resValColor1 , h=buttonHeight, ann='Reset all translation values' )
	cmds.separator( h=buttonHeight/1.25 , style='none' )
	cmds.button( label="RUN TRANSLATION BAKING", command=( 'translationStart()' ), bgc=simColor1 , h=buttonHeight )

	#||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
	
	cmds.frameLayout( "rotLayout", l=rotScriptLabel, cll=1, bgc=frameColor1, p="main", sbm="Rotation script", cc=('cmds.window( "main", e=True, h=10, rtf=True )') )
	
	cmds.floatSliderGrp( "s4", l='Smooth', f=True, min=0.0, max=s4Max, fmx=10, 
	v=goalSmoothRot, cc=('goalSmoothRot=printRotSmoothV()'), pre=2, w=slWidth, ann=goalSmoothAnn, cal=(1, "left"), cw3=( 45, 50, 10 )  )
	
	cmds.floatSliderGrp( "s5", l='Scale', f=True, min=0.0, max=s5Max, fmx=10, 
	v=timeScaleRot, cc=('timeScaleRot=printRotScaleV()'), pre=2, w=slWidth, ann=timeScaleAnn, cal=(1, "left"), cw3=( 45, 50, 10 )  )
	
	cmds.floatSliderGrp( "s6", l='Weight', f=True, min=0.0, max=s6Max, 
	v=goalWRot, cc=('goalWRot=printRotWeightV()'), pre=2, w=slWidth, ann=goalWeightAnn, cal=(1, "left"), cw3=( 45, 50, 10 )  )
	
	cmds.rowColumnLayout( numberOfColumns=3, columnWidth=[ (1, rW1), (2, rW2), (3, rW3) ] )
	
	cmds.button( label="RESET VALUES", command=( 'resetRotation()' ), bgc=resValColor2 , h=buttonHeight, ann='Reset all rotation values' )
	cmds.separator( h=buttonHeight/1.25 , style='none' )
	cmds.button( label="RUN ROTATION BAKING", command=( 'rotationStart()' ), bgc=simColor2 , h=buttonHeight )

	#||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
	
	cmds.frameLayout( "buttonLayout", l='OPTIONS', cll=1, bgc=frameColor1, p="main", sbm="Options", cc=('cmds.window( "main", e=True, h=10, rtf=True )') )
	cmds.rowColumnLayout( numberOfColumns=3, columnWidth=[ (1, rW1), (2, rW2), (3, rW3) ] )

	cmds.separator( h=buttonHeight/4 , style='none' )
	cmds.separator( h=buttonHeight/4 , style='none' )
	cmds.separator( h=buttonHeight/4 , style='none' )

	# checkbox ¹1
	cmds.checkBox( "checkCycle", label="Looping animation", v=cycle, cc=( 'cycle=FuncCheckCycle(); cycleInfinity = cycle;' ), bgc=(Bg1, Bg1, Bg1), ann=
	'''USE 60 FPS
Strong recomended to use animation minimum
with 1 phase before and after animation cycle.

Simple way to do it just use pre and post infinity
with "Cycle" option in graph editor.

After baking loop animation on layer will be set cycle infinity''' )

	cmds.separator( h=buttonHeight/1.25 , style='none' )
	
	# checkbox ¹2
	cmds.checkBox( "checkVectorReverse", label="Aim reverse", v=aimVectorReverse, cc=( 'aimVectorReverse=FuncCheckVector()' ), bgc=(Bg1, Bg1, Bg1), ann=
	'''For reorientation aim for rotation script. May be useful
when rotation simulation bake animation with incorrect rotations.''' )

	# checkbox ¹3
	cmds.checkBox( "checkInfinity", label="Switch to 60 fps", v=False, en=False, cc=( 'print "Work in progress"' ), bgc=(Bg2, Bg2, Bg2), ann="Work in progress" )
	cmds.separator( h=buttonHeight/1.25 , style='none' )
	# checkbox ¹4
	cmds.checkBox( "test1", label="Merge layers after baking", v=False, en=False, bgc=(Bg2, Bg2, Bg2), ann="Work in progress" )
	
	#cmds.checkBox( "test2", label="Additive layer", v=False, en=False, bgc=(Bg2, Bg2, Bg2), ann="Work in progress" )
	#cmds.separator( h=buttonHeight/1.25 , style='none' )
	#cmds.checkBox( "test3", label="Baking without layers", v=False, en=False, bgc=(Bg2, Bg2, Bg2), ann="Work in progress" )
	
	cmds.separator( h=1 , style='none' )
	
	#||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
	
	cmds.rowColumnLayout( numberOfColumns=3, columnWidth=[ (1, 115), (2, 80), (3, 135) ], p="buttonLayout" )
	cmds.button( label="RESET OPTIONS", command=( 'resetCheckbox()' ), bgc=resCheckColor1 , h=buttonHeight, ann='Reset all options' )
	cmds.button( label="RESET ALL", command=( 'resetAllButton()' ), bgc=resAllColor1 , h=buttonHeight, ann='Reset all values and options in script window' )
	cmds.button( label="!!! DELETE ALL LAYERS !!!", command=( 'deleteMainLayer()' ), bgc=deleteColor1 , h=buttonHeight, ann='Delete main layer "OVERLAPPY" with all layers inside' )

	cmds.separator( h=4 , style='none' )

	cmds.columnLayout( 'endColumn', rs=4, adj=True, p="main", bgc=endColor1 )
	cmds.frameLayout( "informLayout", l='ABOUT', cll=1, bgc=frameColor2, cl=1, p="endColumn", sbm="Options", cc=('cmds.window( "main", e=True, h=10, rtf=True )') )
	cmds.text( "Report bugs and leave rewiew please", h=20 )
	cmds.text( "vk.com/geneugene3d", hl=True, h=20, bgc=linkColor1 )
	cmds.text( "www.artstation.com/geneugene", hl=True, h=20, bgc=linkColor1 )
	cmds.text( "www.highend3d.com/users/geneugene", hl=True, h=20, bgc=linkColor2 )
	cmds.text( "www.highend3d.com/maya/script/overlappy-for-maya-105076", hl=True, h=20, bgc=linkColor2 )
	
	#||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
	
	cmds.showWindow( overUI )
    def createCustom(self, *args):
        # selection type

        mc.rowColumnLayout(nc=2, cw=[(1, 500), (2, 500)], cs=[1, 5], rs=[1, 3])

        mc.text(l="Select The Heel Locator: ")
        mc.text(l="")
        mc.separator(st="in", h=17, w=500)
        mc.setParent("..")
        mc.rowColumnLayout(nc=3,
                           cw=[(1, 125), (2, 150), (3, 150)],
                           cs=[1, 5],
                           rs=[1, 3],
                           cal=(
                               [1, "left"],
                               [2, "left"],
                               [3, "left"],
                           ))

        mc.text(l="Mirror Foot As Well?")
        # mc.setParent("..")
        mc.radioButtonGrp(
            "selLegMirrorType_rbg",
            la2=["No", "Yes"],
            nrb=2,
            sl=2,
            cw2=[50, 50],
        )
        mc.text(l="")
        mc.setParent("..")
        mc.separator(st="in", h=20, w=500)

        mc.rowColumnLayout(nc=3,
                           cw=[(1, 100), (2, 200), (3, 150)],
                           cs=[1, 5],
                           rs=[1, 3],
                           cal=(
                               [1, "left"],
                               [2, "left"],
                               [3, "left"],
                           ))
        mc.text(l="Initial Limb: ")
        mc.radioButtonGrp(
            "selLegType_rbg",
            la2=["Left", "Right"],
            nrb=2,
            sl=1,
            cw2=[50, 50],
        )
        mc.setParent("..")
        mc.separator(st="in", h=20, w=500)

        # sources
        mc.rowColumnLayout(nc=2, cw=[(1, 100), (2, 380)], cs=[1, 5], rs=[1, 3])
        mc.text(bgc=(0.85, 0.65, 0.25), l="Heel Locator: ")
        mc.textFieldButtonGrp("locLoad_tfbg",
                              cw=(1, 322),
                              bl="  Load  ",
                              tx="LOC_l_heel")

        mc.text(bgc=(0.85, 0.65, 0.25), l="IK Foot CTRL: ")
        mc.textFieldButtonGrp("ctrlIKFootLoad_tf",
                              cw=(1, 322),
                              bl="  Load  ",
                              tx="CTRL_l_foot")

        mc.setParent("..")

        mc.separator(st="in", h=20, w=500)

        # load buttons
        #

        mc.textFieldButtonGrp("locLoad_tfbg", e=True, bc=self.loadSrc1Btn)
        mc.textFieldButtonGrp("ctrlIKFootLoad_tf", e=True, bc=self.loadSrc2Btn)
        # mc.textFieldButtonGrp("jntLegLoad_tf", e=True, bc=self.loadSrc3Btn)

        self.selLoad = []
        self.locArray = []
        mc.showWindow(self.window)
    def showWindows(self):
        if cmds.window('ArnoldSettingUI', q=1, exists=1):
            cmds.deleteUI('ArnoldSettingUI')
        Mytool = cmds.window('ArnoldSettingUI',title='Mili Arnold Setting',widthHeight=(420,600),sizeable=False)
        cmds.rowColumnLayout( numberOfColumns=1, columnWidth=[(1, 420)])
        cmds.text(label='Arnold Global Setting',height=30, backgroundColor=[0.5, 0.5, 0.6])
        cmds.separator(style='out')
        tabs = cmds.tabLayout('tabsNameSpace')

        #################################
        #Common
        child1 = cmds.rowColumnLayout(numberOfColumns=1, columnWidth=[(1, 420)])
        cmds.scrollLayout('scrollLayoutUnique1', height=600)


        #File Output
        cmds.frameLayout(label='File Output', collapsable=True, collapse=False,width=410,borderStyle='etchedIn')
        cmds.columnLayout(adjustableColumn=True)
        cmds.separator(style='in')
        cmds.attrControlGrp('defaultResolutionWidth',attribute="defaultRenderGlobals.imageFilePrefix ",label='File name prefix:')
        cmds.separator(style='in')
        cmds.attrControlGrp(attribute="defaultRenderGlobals.animation",label='Frame/Animation ext')
        cmds.attrControlGrp(attribute="defaultRenderGlobals.outFormatControl",label='Out Format Control:')
        cmds.attrControlGrp(attribute="defaultRenderGlobals.extensionPadding",label='Frame padding:')
        cmds.setParent('..')
        cmds.setParent('..')


        #Image Size
        cmds.frameLayout(label='Image Size', collapsable=True, collapse=False,width=410,borderStyle='etchedIn')
        cmds.columnLayout(adjustableColumn=True)
        cmds.separator(style='in')
        cmds.attrControlGrp('defaultResolutionWidth',attribute="defaultResolution.width",label='Width in pixels:')
        cmds.attrControlGrp('defaultResolutionHeight',attribute="defaultResolution.height",label='Height in pixels:')
        cmds.attrControlGrp(attribute="defaultResolution.imageSizeUnits",label='Size units:')
        cmds.attrControlGrp(attribute="defaultResolution.dpi",label='Resolution:')
        cmds.attrControlGrp(attribute="defaultResolution.pixelDensityUnits",label='Resolution units:')
        cmds.separator(style='in')
        cmds.attrControlGrp(attribute="defaultResolution.deviceAspectRatio",label='Device aspect ratio:')
        cmds.attrControlGrp(attribute="defaultResolution.pixelAspect",label='Pixel aspect ratio:')
        cmds.setParent('..')
        cmds.setParent('..')


        #Render Option
        cmds.frameLayout(label='Render Option', collapsable=True, collapse=False,width=410,borderStyle='etchedIn')
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultRenderGlobals.preMel",label='Pre render MEL:')
        cmds.attrControlGrp(attribute="defaultRenderGlobals.postMel",label='Post render MEL')
        cmds.attrControlGrp(attribute="defaultRenderGlobals.prlm",label='Pre render layer MEL')
        cmds.attrControlGrp(attribute="defaultRenderGlobals.polm",label='Post render layer MEL')
        cmds.attrControlGrp(attribute="defaultRenderGlobals.prm",label='Post render frame MEL')
        cmds.attrControlGrp(attribute="defaultRenderGlobals.pom",label='Post render frame MEL')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')

        #################################
        #Arnold Renderer
        child2 = cmds.rowColumnLayout(numberOfColumns=1, columnWidth=[(1, 420)])
        cmds.scrollLayout('scrollLayoutUnique2', height=600)

        #Sampling
        cmds.frameLayout(label='Sampling', collapsable=True, collapse=False,borderStyle='etchedIn',width=410)
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp( attribute='defaultArnoldRenderOptions.AASamples',label='Camera(AA)')
        cmds.attrControlGrp( attribute='defaultArnoldRenderOptions.GIDiffuseSamples',label='Diffuse')
        cmds.attrControlGrp( attribute='defaultArnoldRenderOptions.GIGlossySamples',label='Glossy')
        cmds.attrControlGrp( attribute='defaultArnoldRenderOptions.GIRefractionSamples',label='Refraction')
        cmds.attrControlGrp( attribute='defaultArnoldRenderOptions.sssBssrdfSamples',label='SSS')
        cmds.attrControlGrp( attribute='defaultArnoldRenderOptions.volumeIndirectSamples',label='Volume Indirect')
        cmds.separator(style='in')
        cmds.attrControlGrp( attribute="defaultArnoldRenderOptions.lock_sampling_noise",label='Lock Sampling Pattern')
        cmds.attrControlGrp( attribute="defaultArnoldRenderOptions.sssUseAutobump",label='Use Autobump in SSS')
        cmds.setParent('..')
        cmds.columnLayout(adjustableColumn=True)
        cmds.frameLayout(label='Clamping', collapsable=True, collapse=True,borderStyle='out')
        cmds.rowColumnLayout(numberOfColumns=2, columnWidth=[(1, 145),(2,200)])
        cmds.text('Clamp Sample Values ',align='right',height=25)
        cmds.checkBox('Clamp_Sample_Values',value=cmds.getAttr("defaultArnoldRenderOptions.use_sample_clamp"),label='',onCommand=lambda *arg:self.Clamp_Sample_Values_On(),offCommand=lambda *arg:self.Clamp_Sample_Values_Off())
        cmds.text('Affect_AOVs_text',enable=cmds.getAttr("defaultArnoldRenderOptions.use_sample_clamp"),label='Affect AOVs ',align='right')
        cmds.checkBox('Affect_AOVs',enable=cmds.getAttr("defaultArnoldRenderOptions.use_sample_clamp"),value=cmds.getAttr("defaultArnoldRenderOptions.use_sample_clamp_AOVs"),label='',onCommand=lambda *arg:cmds.setAttr("defaultArnoldRenderOptions.use_sample_clamp_AOVs",1),offCommand=lambda *arg:cmds.setAttr("defaultArnoldRenderOptions.use_sample_clamp_AOVs",0))
        cmds.setParent('..')
        cmds.attrControlGrp('Max_Value',attribute="defaultArnoldRenderOptions.AASampleClamp",label='Max Value',enable=cmds.getAttr("defaultArnoldRenderOptions.use_sample_clamp"))
        cmds.setParent('..')
        cmds.frameLayout(label='Filter', collapsable=True, collapse=True,borderStyle='out')
        cmds.columnLayout(adjustableColumn=True)
        cmds.text(label=u'很抱歉,这项功能暂不支持。如有需要请联系RnD!',align='center',backgroundColor=(0.6,0.5,0.5),height=40)
        '''
        cmds.rowColumnLayout(numberOfColumns=2, columnWidth=[(1, 115),(2,120)])
        cmds.text(' ')
        cmds.optionMenu('Filter_optionMenu',label='Type')
        cmds.menuItem(label='gaussian')
        cmds.menuItem(label='blackman_harris')
        cmds.menuItem(label='box')
        cmds.menuItem(label='catrom')
        cmds.menuItem(label='catrom2d')
        cmds.menuItem(label='closest')
        cmds.menuItem(label='cone')
        cmds.menuItem(label='cook')
        cmds.menuItem(label='cubic')
        cmds.menuItem(label='disk')
        cmds.menuItem(label='farthest')
        cmds.menuItem(label='heatmap')
        cmds.menuItem(label='mitnet')
        cmds.menuItem(label='sinc')
        cmds.menuItem(label='triangle')
        cmds.menuItem(label='variance')
        cmds.menuItem(label='video')
        cmds.optionMenu('Filter_optionMenu',value='gaussian',e=True)
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultArnoldFilter.width",label='Width')
        cmds.setParent('..')
        '''
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')

        #Ray Depth
        cmds.frameLayout(label='Ray Depth', collapsable=True, collapse=True,width=410,borderStyle='etchedIn')
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.GITotalDepth",label='Total')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.GIDiffuseDepth",label='Diffuse')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.GIGlossyDepth",label='Glossy')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.GIReflectionDepth",label='Reflection')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.GIRefractionDepth",label='Refraction')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.GIVolumeDepth",label='Volume')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.autoTransparencyDepth",label='Transparency Depth')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.autoTransparencyThreshold",label='Transparency Threshold')
        cmds.setParent('..')
        cmds.setParent('..')

        #Environment
        cmds.frameLayout(label='Environment', collapsable=True, collapse=True,width=410,borderStyle='etchedIn')
        cmds.columnLayout(adjustableColumn=True)
        cmds.text(label=u'很抱歉,这项功能暂不支持。如有需要请联系RnD!',align='center',backgroundColor=(0.6,0.5,0.5),height=80)
        cmds.setParent('..')
        cmds.setParent('..')

        #Motion Blur
        cmds.frameLayout(label='Motion Blur', collapsable=True, collapse=True,width=410,borderStyle='etchedIn')
        cmds.columnLayout(adjustableColumn=True)
        cmds.rowColumnLayout(numberOfColumns=2, columnWidth=[(1, 145),(2,255)])
        cmds.text('Enable  ',height=18,align='right')
        cmds.checkBox('Enable_MB',value=cmds.getAttr("defaultArnoldRenderOptions.motion_blur_enable"),label='',onCommand=lambda *args:self.Enable_MB_On(),offCommand=lambda *args:self.Enable_MB_Off())
        cmds.text('Deformation_Text', enable=cmds.getAttr("defaultArnoldRenderOptions.motion_blur_enable"),label='Deformation  ',height=18,align='right')
        cmds.checkBox('Deformation_MB',value=cmds.getAttr("defaultArnoldRenderOptions.mb_object_deform_enable"),label='',enable=cmds.getAttr("defaultArnoldRenderOptions.motion_blur_enable"),onCommand=lambda *args:self.Deformation_MB_On(),offCommand=lambda *args:self.Deformation_MB_Off())
        cmds.text('Camera_MB',label='Camera  ',height=18,align='right',enable=cmds.getAttr("defaultArnoldRenderOptions.motion_blur_enable"))
        cmds.checkBox('Camera_MB',value=cmds.getAttr("defaultArnoldRenderOptions.mb_camera_enable"),label='',enable=cmds.getAttr("defaultArnoldRenderOptions.motion_blur_enable"),onCommand=lambda *args:self.Camera_MB_On(),offCommand=lambda *args:self.Camera_MB_Off())
        cmds.setParent('..')
        cmds.attrControlGrp('Keys_MB',attribute="defaultArnoldRenderOptions.motion_steps",label='Keys',enable=cmds.getAttr("defaultArnoldRenderOptions.motion_blur_enable"))
        cmds.separator(style='in')
        cmds.rowColumnLayout(numberOfColumns=2, columnWidth=[(1, 145),(2,100)])
        cmds.text('Position_MB',label='Position  ',align='right',enable=cmds.getAttr("defaultArnoldRenderOptions.motion_blur_enable"))
        flag_MB = cmds.getAttr("defaultArnoldRenderOptions.range_type")
        if flag_MB == 0:
            optionValue = 'Start On Frame'
            enableFlag1 = True
            enableFlag2 = False
        elif flag_MB == 1:
            optionValue = 'Center On Frame'
            enableFlag1 = True
            enableFlag2 = False
        elif flag_MB == 2:
            optionValue = 'End On Frame'
            enableFlag1 = True
            enableFlag2 = False
        else:
            optionValue = 'Custom'
            enableFlag1 = False
            enableFlag2 = True
        cmds.optionMenu('Position_optionMenu_MB',label='',enable=cmds.getAttr("defaultArnoldRenderOptions.motion_blur_enable"),changeCommand=lambda *args:self.Position_optionMenu_MB())
        cmds.menuItem(label='Start On Frame')
        cmds.menuItem(label='Center On Frame')
        cmds.menuItem(label='End On Frame')
        cmds.menuItem(label='Custom')
        cmds.optionMenu('Position_optionMenu_MB',value=optionValue,e=True)
        cmds.setParent('..')
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp('Length_MB',attribute="defaultArnoldRenderOptions.motion_frames",label='Length ',enable=enableFlag1)
        cmds.attrControlGrp('Start_MB',attribute="defaultArnoldRenderOptions.motion_start",label='Start ',enable=enableFlag2)
        cmds.attrControlGrp('End_MB',attribute="defaultArnoldRenderOptions.motion_end",label='End ',enable=enableFlag2)
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')

        #Lights
        cmds.frameLayout(label='Lights', collapsable=True, collapse=True,width=410,borderStyle='etchedIn')
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.lowLightThreshold",label='Low Light Threshold')
        cmds.separator(style='in')
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.lightLinking",label='Light Linking')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.shadowLinking" ,label='Shadow Linking')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')

        #Gamma Correction
        cmds.frameLayout(label='Gamma Correction', collapsable=True, collapse=True,width=410,borderStyle='etchedIn')
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.display_gamma",label='Display Driver Gamma')
        cmds.separator(style='in')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.light_gamma",label='Lights')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.shader_gamma",label='Shaders')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.texture_gamma",label='Textures')
        cmds.setParent('..')
        cmds.setParent('..')

        #Textures
        cmds.frameLayout(label='Textures', collapsable=True, collapse=True,width=410,borderStyle='etchedIn')
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.textureAutomip",label='Auto-mipmap')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.textureAcceptUnmipped",label='Accept Unmipped')
        cmds.separator(style='in')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.autotile",label='Auto-tile',changeCommand=lambda *args:self.Auto_tile())
        cmds.attrControlGrp('Tile_Size_T',attribute="defaultArnoldRenderOptions.textureAutotile",label='Tile Size',enable=cmds.getAttr("defaultArnoldRenderOptions.autotile"))
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.textureAcceptUntiled",label='Accept Untiled')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.use_existing_tiled_textures",label='Use Existing .tx Textures')
        cmds.separator(style='in')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.textureMaxMemoryMB",label='Max Cache Size(MB)')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.textureMaxOpenFiles",label='Max Open Files')
        cmds.separator(style='in')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.textureDiffuseBlur",label='Diffuse Blur')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.textureGlossyBlur",label='Glossy Blur')
        cmds.setParent('..')
        cmds.setParent('..')

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

        #################################
        #Systrm
        child3 = cmds.rowColumnLayout(numberOfColumns=1, columnWidth=[(1, 420)])
        cmds.scrollLayout('scrollLayoutUnique3', height=600)

        #Maya Integration
        cmds.frameLayout(label='Maya Integration', collapsable=True, collapse=False,width=410,borderStyle='etchedIn')
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.progressive_rendering",label='Progressive Refinement')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.progressive_initial_level",label='Initial Sampling Level')
        cmds.separator(style='in')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.clear_before_render",label='Clear Before Render')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.force_scene_update_before_IPR_refresh",label='Force Scene Update On IPR Refresh')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.force_texture_cache_flush_after_render",label='Force Texture Cache Flush After Render')
        cmds.separator(style='in')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.enable_swatch_render",label='Enable Swatch Render')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.standinDrawOverride",label='StandIn Viewport Override')
        cmds.setParent('..')
        cmds.setParent('..')

        #Render Settings
        cmds.frameLayout(label='Render Settings', collapsable=True, collapse=False,width=410,borderStyle='etchedIn')
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.renderType",label='Render Type')
        cmds.separator(style='in')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.bucketScanning",label='Bucket Scanning')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.bucketSize",label='Bucket Size')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.outputOverscan",label='Overscan')
        cmds.separator(style='in')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.threads_autodetect",label='Autodetect Threads',changeCommand=lambda *args:self.Autodetect_Threads())
        key = cmds.getAttr("defaultArnoldRenderOptions.threads_autodetect")
        if key == True:
            flag = False
        else:
            flag = True
        cmds.attrControlGrp('Threads_S',attribute="defaultArnoldRenderOptions.threads",label='Threads',enable=flag)
        cmds.separator(style='in')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.binaryAss",label='Binary-encode ASS Files')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.outputAssBoundingBox",label='Export Bounding Box(.asstoc)')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.expandProcedurals",label='Expand Procedurals')
        cmds.separator(style='in')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.kickRenderFlags",label='Kick Render Flags')
        cmds.setParent('..')
        cmds.setParent('..')

        #Search Paths
        cmds.frameLayout(label='Search Paths', collapsable=True, collapse=False,width=410,borderStyle='etchedIn')
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.absoluteTexturePaths",label='Absolute Texture Paths')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.absoluteProceduralPaths",label='Absolute Procedural Paths')
        cmds.separator(style='in')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.procedural_searchpath",label='Procedural Search Path')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.shader_searchpath",label='Shader Search Path')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.texture_searchpath",label='Texture Search Path')
        cmds.setParent('..')
        cmds.setParent('..')

        #Licensing
        cmds.frameLayout(label='Licensing', collapsable=True, collapse=False,width=410,borderStyle='etchedIn')
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.abortOnLicenseFail",label='About On License Fail')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.skipLicenseCheck",label='Skip License Check')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')

        #################################
        #AOVs
        child4 = cmds.rowColumnLayout(numberOfColumns=1, columnWidth=[(1, 420)])
        cmds.rowColumnLayout(numberOfColumns=1, columnWidth=[(1, 420)])
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.aovMode",label='Mode',changeCommand=lambda *args:self.Mode_A())
        cmds.rowColumnLayout(numberOfColumns=3, columnWidth=[(1, 143),(2,200),(3,50)])
        cmds.text('Render View AOV ',align='right')
        cmds.optionMenu('RenderViewAOVs_optionMenu',label='',changeCommand=lambda *args:self.renderViewAov())
        aiAOVs = cmds.listConnections('defaultArnoldRenderOptions.aovList')
        cmds.menuItem(label='beauty')
        if aiAOVs != None:
            for aiAOV in aiAOVs:
                name = cmds.getAttr('%s.name'%aiAOV)
                cmds.menuItem(label=name)
        cmds.text(' ')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')
        key = cmds.getAttr("defaultArnoldRenderOptions.aovMode")
        if key == 0:
            flag = False
        else:
            flag = True
        cmds.rowColumnLayout(numberOfColumns=1, columnWidth=[(1, 420)])
        cmds.scrollLayout('scrollLayoutUnique', height=550)

        #Default Drivers
        cmds.frameLayout('Default_Drivers_frameLayout',label='Default Drivers', collapsable=True, collapse=True,width=410,borderStyle='etchedIn',enable=flag)
        cmds.columnLayout(adjustableColumn=True)
        cmds.rowColumnLayout(numberOfColumns=3, columnWidth=[(1, 140),(2,100),(3,50)])
        cmds.text('Default Arnold Display Driver ',align='right')
        cmds.optionMenu(label='')
        cmds.menuItem(label='exr')
        cmds.text(' ')
        cmds.setParent('..')
        cmds.frameLayout(collapsable=False, labelVisible=False,collapse=True,width=410,borderStyle='etchedIn')
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultArnoldDisplayDriver.exrCompression",label='Compression')
        cmds.attrControlGrp(attribute="defaultArnoldDisplayDriver.halfPrecision",label='Half Precision')
        cmds.attrControlGrp(attribute="defaultArnoldDisplayDriver.preserveLayerName",label='Preserve Layer Name')
        cmds.attrControlGrp(attribute="defaultArnoldDisplayDriver.tiled",label='Tiled')
        cmds.attrControlGrp(attribute="defaultArnoldDisplayDriver.autocrop",label='Autocrop')
        cmds.attrControlGrp(attribute="defaultArnoldDisplayDriver.append",label='Append')
        cmds.frameLayout(label='Default Drivers', collapsable=True, collapse=True,width=410,borderStyle='etchedIn')
        cmds.columnLayout(adjustableColumn=True)
        cmds.text(label=u'很抱歉,这项功能暂不支持。如有需要请联系RnD!',align='center',backgroundColor=(0.6,0.5,0.5),height=40)
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')

        #AOV Browser
        cmds.frameLayout('AOV_Browser_frameLayout',label='AOV Browser', collapsable=True, collapse=False,width=410,borderStyle='etchedIn',height=200,enable=flag)
        cmds.columnLayout(adjustableColumn=True)
        cmds.text(label=u'很抱歉,这项功能正在开发,请耐心等待。',align='center',backgroundColor=(0.6,0.5,0.5),height=30)
        cmds.rowColumnLayout(numberOfColumns=3, columnWidth=[(1, 135),(2,135),(3,135)])
        cmds.columnLayout(adjustableColumn=True)
        cmds.text('AOV Groups',align='center')
        cmds.textScrollList('AOV_Groups_A', numberOfRows=8, allowMultiSelection=True,
                            append=['<builtin>', 'aiHair', 'aiSkin', 'aiStandard', 'alCel', 'alHair','alHairX','alLayer','alSurface','alSurfaceX'],height=160)
        cmds.setParent('..')
        cmds.columnLayout(adjustableColumn=True)
        cmds.text('Available AOVs',align='center')
        cmds.textScrollList('Available_AOVs_A', numberOfRows=8, allowMultiSelection=True,append=[],height=135)
        cmds.button(label='>>')
        cmds.setParent('..')
        cmds.columnLayout(adjustableColumn=True)
        cmds.text('Active AOVs',align='center')
        cmds.textScrollList('Active_AOVs_A', numberOfRows=8, allowMultiSelection=True,
                        append=[],height=135)

        cmds.button(label='<<')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')

        #AOVs
        cmds.frameLayout('AOVs_frameLayout',label='AOVs', collapsable=True, collapse=False,width=410,borderStyle='in')
        cmds.columnLayout(adjustableColumn=True)
        cmds.rowColumnLayout(numberOfColumns=4, columnWidth=[(1, 140),(2,100),(3,100),(4,80)])
        cmds.text(' ')
        cmds.button(label='Add Custom',command=lambda *args:self.addCustom_AOVS())
        cmds.button(label='Delete All',command=lambda *args:self.deleteAll_AOVs())
        cmds.text(' ')
        cmds.setParent('..')
        cmds.separator(style='in')
        cmds.rowColumnLayout(numberOfColumns=4, columnWidth=[(1, 140),(2,60),(3,60),(4,80)])
        cmds.text(label='name',align='center')
        cmds.text(label='data',align='center')
        cmds.text(label='driver',align='center')
        cmds.text(label='filter',align='center')
        cmds.setParent('..')
        cmds.frameLayout('aiAOV_nodeList',labelVisible=False,width=420,borderStyle='in')
        aiAOVs = cmds.listConnections('defaultArnoldRenderOptions.aovList')
        if aiAOVs != None:
            for aiAOV in aiAOVs:
                self.cmdsGuiGroup(aiAOV)
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')

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

        #################################
        #Diagnostics
        child5 = cmds.rowColumnLayout(numberOfColumns=1, columnWidth=[(1, 420)])
        cmds.scrollLayout('scrollLayoutUnique5', height=600)

        #Log
        cmds.frameLayout(label='Log', collapsable=True, collapse=False,width=410,borderStyle='etchedIn')
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.log_verbosity",label='Verbosity Level')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.log_to_console",label='Console')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.log_to_file",label='File',changeCommand=lambda *args:self.File_D())
        cmds.attrControlGrp('Filename_D',attribute="defaultArnoldRenderOptions.log_filename",label='Filename',enable=cmds.getAttr("defaultArnoldRenderOptions.log_to_file"))
        cmds.attrControlGrp('Max_Warnings_D',attribute="defaultArnoldRenderOptions.log_max_warnings",label='Max.Warnings',enable=cmds.getAttr("defaultArnoldRenderOptions.log_to_file"))
        cmds.setParent('..')
        cmds.setParent('..')

        #Error Handing
        cmds.frameLayout(label='Error Handing', collapsable=True, collapse=False,width=410,borderStyle='etchedIn')
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.abortOnError",label='About On Error')
        cmds.separator(style='in')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.errorColorBadTexture",label='Texture Error Color')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.errorColorBadPixel",label='NaN Error Color')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')

        #################################
        #Override
        child6 = cmds.rowColumnLayout(numberOfColumns=1, columnWidth=[(1, 420)])
        cmds.scrollLayout('scrollLayoutUnique6', height=600)

        #User Options
        cmds.frameLayout(label='User Options', collapsable=True, collapse=False,width=410,borderStyle='out')
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.aiUserOptions",label='Option')
        cmds.setParent('..')
        cmds.setParent('..')

        #Feature Overrides
        cmds.frameLayout(label='Feature Overrides', collapsable=True, collapse=False,width=410,borderStyle='out')
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.ignoreTextures",label='Ignore Textures')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.ignoreShaders",label='Ignore Shaders')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.ignoreAtmosphere",label='Ignore Atmosphere')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.ignoreLights",label='Ignore Lights')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.ignoreShadows",label='Ignore Shadows')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.ignoreSubdivision",label='Ignore Subdivision')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.ignoreDisplacement",label='Ignore Displacement')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.ignoreBump",label='Ignore Bump')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.ignoreSmoothing",label='Ignore Normal Smoothing')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.ignoreMotionBlur",label='Ignore Motion Blur')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.ignoreDof",label='Ignore Depth of Field')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.ignoreSss",label='Ignore Sub-Surface-Scattering')
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.forceTranslateShadingEngines",label='Force Translation of Shading Engines')
        cmds.setParent('..')
        cmds.setParent('..')

        #Subdivision
        cmds.frameLayout(label='Subdivision', collapsable=True, collapse=False,width=410,borderStyle='out')
        cmds.columnLayout(adjustableColumn=True)
        cmds.attrControlGrp(attribute="defaultArnoldRenderOptions.maxSubdivisions",label='Max.Subdvisions')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.setParent('..')

        cmds.tabLayout(tabs, edit=True, tabLabel=((child1, 'Common'),(child2,'Arnold Renderer'),(child3,'Systrm'),(child4,'AOVs'),(child5,'Diagnosics'),(child6,'Override')) )
        cmds.setParent('..')
        cmds.button(label='Close',height=30,command=lambda *args:cmds.deleteUI('ArnoldSettingUI'))
        cmds.showWindow(Mytool)
def createUI(pWindowTitle, pApplyCallBack):
    windowID = 'miniTree'  # unique id to make sure only one is open at a time
    if cmds.window(windowID, exists=True):
        cmds.deleteUI(windowID)

    cmds.window(windowID,
                title=pWindowTitle,
                sizeable=False,
                resizeToFitChildren=True)
    cmds.rowColumnLayout(numberOfColumns=3,
                         columnWidth=[(1, 50), (2, 400), (3, 50)],
                         columnOffset=[(1, 'right', 2)])
    cmds.separator(h=10, style='none')
    cmds.separator(h=10, style='none')
    cmds.separator(h=10, style='none')

    cmds.separator(h=10, style='none')
    polyNumberField = cmds.intSliderGrp(label='Polygons:',
                                        min=3,
                                        max=20,
                                        value=4,
                                        step=1,
                                        field=True)
    cmds.separator(h=10, style='none')

    cmds.separator(h=10, style='none')
    treeDepthField = cmds.intSliderGrp(label='Tree depth:',
                                       min=1,
                                       max=8,
                                       value=3,
                                       step=1,
                                       field=True)
    cmds.separator(h=10, style='none')  # last column last row is blank

    cmds.separator(h=10, style='none')
    treeSegmentLength = cmds.floatSliderGrp(label='Segment length:',
                                            min=0.2,
                                            max=20,
                                            value=5,
                                            step=0.1,
                                            field=True)
    cmds.separator(h=10, style='none')  # last column last row is blank

    cmds.separator(h=10, style='none')
    treeLengthDecrease = cmds.floatSliderGrp(label='Length decrease:',
                                             min=0.0,
                                             max=1,
                                             value=0.8,
                                             step=0.01,
                                             field=True)
    cmds.separator(h=10, style='none')  # last column last row is blank

    cmds.separator(h=10, style='none')
    trunkRadius = cmds.floatSliderGrp(label='Trunk radius:',
                                      min=0.1,
                                      max=10,
                                      value=1,
                                      step=0.1,
                                      field=True)
    cmds.separator(h=10, style='none')  # last column last row is blank

    cmds.separator(h=10, style='none')
    radiusDecrease = cmds.floatSliderGrp(label='Radius decrease:',
                                         min=0.0,
                                         max=1,
                                         value=0.8,
                                         step=0.01,
                                         field=True)
    cmds.separator(h=10, style='none')  # last column last row is blank

    cmds.separator(h=10, style='none')
    treeBranches = cmds.intSliderGrp(label='Branches:',
                                     min=1,
                                     max=8,
                                     value=2,
                                     step=1,
                                     field=True)
    cmds.separator(h=10, style='none')  # last column last row is blank

    cmds.separator(h=10, style='none')
    treeBranches_a = cmds.floatSliderGrp(label='Branches angle:',
                                         min=0,
                                         max=math.pi * 2,
                                         value=math.pi / 2,
                                         step=0.01,
                                         field=True)
    cmds.separator(h=10, style='none')  # last column last row is blank

    cmds.separator(h=10, style='none')
    treeFoliageSze = cmds.floatSliderGrp(label='Foliage size:',
                                         min=0.1,
                                         max=20,
                                         value=1,
                                         step=0.01,
                                         field=True)
    cmds.separator(h=10, style='none')  # last column last row is blank

    cmds.separator(h=10, style='none')
    treeFoliageRes = cmds.intSliderGrp(label='Foliage resolution:',
                                       min=3,
                                       max=30,
                                       value=5,
                                       step=0.01,
                                       field=True)
    cmds.separator(h=10, style='none')  # last column last row is blank

    cmds.separator(h=10, style='none')  # empty row
    cmds.separator(h=10, style='none')
    cmds.separator(h=10, style='none')

    cmds.separator(h=10, style='none')
    cmds.button(label='Create tree',
                command=functools.partial(pApplyCallBack, polyNumberField,
                                          treeDepthField, treeSegmentLength,
                                          treeLengthDecrease, trunkRadius,
                                          radiusDecrease, treeBranches,
                                          treeBranches_a, treeFoliageSze,
                                          treeFoliageRes))
    # when the button is pressed, callback function is called

    cmds.separator(h=10, style='none')
    cmds.separator(h=10, style='none')
    cmds.separator(h=10, style='none')
    cmds.separator(h=10, style='none')
    cmds.separator(h=10, style='none')

    def cancelCallBack(*pArgs):
        if cmds.window(windowID, exists=True):
            cmds.deleteUI(windowID)

    cmds.button(label='Cancel', command=cancelCallBack)
    cmds.showWindow()
Esempio n. 47
0
	def gui(self):
		'''
		Generates the interface for the AttrGUISingle object.
		'''
				
		btnWidth = 30
		btnSep = 2
		# textWidth = 70
		# fieldWidth
		# if( cmds.about( os=True ) == "mac" ):
			
		self.mainLayout = cmds.rowColumnLayout(parent=self.parent, nc=7, h=20, 
			rat=[[1,"both", btnSep ],[2,"both", btnSep ],[3,"both", btnSep ],[4,"both", btnSep ],[5,"both", btnSep ],[6,"both", btnSep ],[7,"both", btnSep ]],
			cw=[[1,100],[2,70],[3,125],[4, btnWidth ],[5,btnWidth ],[6,btnWidth ],[7,btnWidth ]])
		cmds.text(label=self.text, w=70, al="center")
		self.fieldGui = cmds.floatField( w=100, pre=2 )	
		pop = cmds.popupMenu(parent=self.fieldGui)
		cmds.menuItem(parent=pop, label="0 - 1", c=Callback( self.setMinMax, 0, 1))
		cmds.menuItem(parent=pop, label="0 - 10", c=Callback( self.setMinMax, 0, 10))
		cmds.menuItem(parent=pop, label="-10 - 10", c=Callback( self.setMinMax, -10, 10))		
		cmds.menuItem(parent=pop, label="Set Min/Max")
		cmds.menuItem( divider=1)
		cmds.menuItem(label="Step 1", c=Callback( self.setStep, 1 ))
		cmds.menuItem(label="Step .1", c=Callback( self.setStep, .1 ))
		cmds.menuItem(label="Step .01", c=Callback( self.setStep, .01 ))

		
		self.sliderGui = cmds.floatSlider( w=100, h=20)

		cmds.popupMenu(parent=self.sliderGui)
		cmds.menuItem(label="0 - 1", c=Callback( self.setMinMax, 0, 1))
		cmds.menuItem(label="0 - 10", c=Callback( self.setMinMax, 0, 10))
		cmds.menuItem(label="-10 - 10", c=Callback( self.setMinMax, -10, 10))		
		cmds.menuItem(label="Set Min/Max")
		cmds.menuItem( divider=1)
		cmds.menuItem(label="Step 1", c=Callback( self.setStep, 1 ))
		cmds.menuItem(label="Step .1", c=Callback( self.setStep, .1 ))
		cmds.menuItem(label="Step .01", c=Callback( self.setStep, .01 ))

		
		print("Min Value: " + str(self.attrs.min))
		print("Max Value: " + str(self.attrs.max))
		
		if( self.attrs.min != None ):
			cmds.floatField( self.fieldGui, e=1, min=self.attrs.min )
			cmds.floatSlider( self.sliderGui, e=1, min=self.attrs.min )
		if( self.attrs.max != None ):
			cmds.floatField( self.fieldGui, e=1, max=self.attrs.max )
			cmds.floatSlider( self.sliderGui, e=1, max=self.attrs.max )
			
		cmds.connectControl( self.fieldGui, self.attrNames )
		cmds.connectControl( self.sliderGui, self.attrNames )
		
		cmds.symbolButton(image='MENUICONKEYS.XPM', h=20,
			ann="Keyframe",
			command=Callback(self.key))
		cmds.symbolButton(image='REDRAWPAINTEFFECTS.XPM', h=20,
			ann="Reset to Default",
			command=Callback(self.reset))
		self.symGUI = cmds.symbolCheckBox( image='ONRADIOBTNICON.XPM', h=20,
			oni='ONRADIOBTNICON.XPM',
			ofi='OFFRADIOBTNICON.XPM',
			ann="Set Offset",
			onc=Callback(self.setOffset))
		self.resOffName = cmds.symbolButton(image='AUTOLOAD.XPM', h=20,
			ann="Reset Offset", 
			command=Callback( self.resetOffset ) )
		
		cmds.setParent(self.parent)
	def __init__( self, winName= 'colorWin' ):
		''' colorWinUI is all part of __init__ constructor.'''
		self.winName= winName
		self.winHeight = 290
		self.winWidth = 420
		

		self.fieldTexts=[ 'controlName',]
		self.checkBoxes=[ 'SingleController','SnapConnect' ]
		self.menuItems=[ 'None','Hierarchy','TweakHierarchy' ]
		self.connectBoxes=[ 'parent','point','rotate','scale' ]
		self.radioBoxes=[ 'parentCon','pointCon','rotateCon','scaleCon' ]
		self.locCheckBoxes=[ 'parentSelection', 'additionalGroups', 'selectionName' ]
		self.locTexts=[ 'locName' ]
		

		if cmds.windowPref( self.winName, query=True, exists=True, ):
			cmds.windowPref( self.winName, wh= ( self.winWidth, self.winHeight ),  )
			cmds.windowPref( self.winName, remove=True )
		

		if cmds.window( self.winName, q=1, ex= 1 ) == True:
			cmds.deleteUI( self.winName )

		cmds.window( self.winName, tlb=1, wh=( self.winWidth, self.winHeight ), t= "Curve Controller Utility" )
		tabs = cmds.tabLayout()
		cmds.setParent( tabs )
		child1 = cmds.rowColumnLayout( nr=3, rh= [(1, 100),( 2, 60 ),( 3, 20)])
		
		# Tab1
		cmds.frameLayout( label= 'Choose Colour :', width= 412, h=30, parent= child1 )
		cmds.rowColumnLayout( nc=3, cw= [(1, 135),( 2, 135 ),( 3, 135 )] )
		
		# Color buttons.
		cmds.button( 'purple',   l= 'Purple ',  w= 60, h=25, bgc=(0.846000000089406967,0.03,0.7839999794960022 ), aop=1, c= "cmds.color(ud=7 )" )
		cmds.button( 'red',    l= 'Red ',   w= 60, h=25, bgc=(0.85699999332427979,0.14800000190734863,0.3190000057220459 ), aop=1,c= "cmds.color(ud=8 )" )
		cmds.button( 'brown',  l= 'Brown ', w= 60, h=25, bgc=(0.602,0.452,0.173 ), aop=1, c= "cmds.color(ud=1)" )
		cmds.button( 'green',  l= 'Green ', w= 60, h=25, bgc=(0.5311,0.662,0.1 ), aop=1,c= "cmds.color(ud=3)" )
		cmds.button( 'beige', l= 'Beige ',   w= 60, h=25, bgc=(0.225,0.415,0.1 ), aop=1,c= "cmds.color(ud=2)" )
		cmds.button( 'lightGreen', l= 'LightGreen ',   w= 60, h=25, bgc=(0.0,0.668,0.268 ), aop=1,c= "cmds.color(ud=4)" )
		cmds.button( 'cyan', l= 'Cyan ',  w= 60, h=25, bgc=(0.1, 0.4, 0.5 ), aop=1,c= "cmds.color(ud=5)" )
		cmds.button( 'skyBlue', l= 'SkyBlue ',   w= 60, h=25, bgc=(0.36,0.49,0.811 ), aop=1,c= "cmds.color(ud=6 )" )

		# Create controllers.
		nameFrame= cmds.frameLayout( label= 'Name Controllers: ', width= 412, h=50, parent=child1  )

		cmds.text( "Put down 'Name' and it will result in:  Name#_ctl ", parent= nameFrame )


		for i in self.fieldTexts:
			cmds.textField( i, text= 'defaultControlName', parent= nameFrame )

		funcFrame= cmds.frameLayout( l= "Choose Function:", w=412, h= 100, parent= child1 )
		funcLabel = cmds.rowColumnLayout( numberOfColumns=4, columnWidth=[(1, 120), (2, 100), (3, 100)] )

		for i in self.checkBoxes:
			cmds.checkBox( i, parent= funcLabel )
			
		self.featureOptions = cmds.optionMenu( label='Features:' )
		for eachItem in self.menuItems:
			cmds.menuItem( label= eachItem )

		cmds.button( label= "Create Controller(s)", bgc= ( 0.05, 0.4, 0.5 ), height=30, command= self.function, parent = funcFrame )
		cmds.button( label= "Close", height=20, command= self.deleteUI, parent=funcFrame )
		
		cmds.setParent( tabs )

		# Tab2
		child2= cmds.rowColumnLayout( numberOfColumns= 2, cw= [(1, 250),( 2, 100 )], parent=tabs )
		
		# Constraint boxes.
		constraintBox= cmds.frameLayout( l= "Choice Connections:", w=206, h= 150, parent=child2 )

		cmds.radioButtonGrp( self.connectBoxes[0], numberOfRadioButtons=2, labelArray2=['parentConstraint', 'parentConnect'], sl=1 )
		cmds.radioButtonGrp( self.connectBoxes[1], numberOfRadioButtons=2, labelArray2=['pointConstraint', 'normallateConnect'], sl=1 )
		cmds.radioButtonGrp( self.connectBoxes[2], numberOfRadioButtons=2, labelArray2=['rotateConstraint', 'rotateConnect'], sl=1 )
		cmds.radioButtonGrp( self.connectBoxes[3], numberOfRadioButtons=2, labelArray2=['scaleConstraint', 'scaleConnect'], sl=1 )

		# Connection boxes.
		connectBox= cmds.frameLayout( l= "ApplyConnections:", w=206, h= 150, parent=child2 )
		for eachConnect in self.radioBoxes:
			cmds.checkBox( eachConnect,label=eachConnect, parent = connectBox )

		cmds.checkBox( self.radioBoxes[0], e=1, value=1 )
		cmds.checkBox( self.radioBoxes[3], e=1, value=1 )


		# Tab3
		child3= cmds.rowColumnLayout( numberOfColumns= 1, cw= [(1, 50)], parent=tabs )

		locFuncFrame= cmds.frameLayout( l= "Choose Name :", w=412, h= 80, parent= child3 )

		for i in self.locTexts:
			cmds.text( "Put down 'name' and you'll get 'name#_grp; " )
			cmds.text( "With selectionName: 'geo_name_grp'; Text field will be void." )
			cmds.textField( i, text='defaultGroupName', parent= locFuncFrame )


		locFrame= cmds.frameLayout( l= "Create Locator(s) with function(s):", w=412, h= 120, parent= child3 )
		locFuncLabel = cmds.rowColumnLayout( numberOfColumns=3, columnWidth=[(1, 150), (2, 150), (2, 150) ] )

		for i in self.locCheckBoxes:
			cmds.checkBox( i, parent= locFuncLabel )


		cmds.text( "Choose normalforms or vertices, click button to create a locator.", parent=locFrame )
		cmds.button( label= "Create Locator(s)", bgc= ( 0.5, 0.4, 0.5 ), height=40, command= self.locators, parent = locFrame )




		cmds.tabLayout( tabs, edit=True, tabLabel=((child1, 'Controllers'), (child2, 'snapConnections'), (child3, 'Locators') ) )
		cmds.tabLayout( tabs, edit=True, selectTabIndex=1 )



		cmds.showWindow(self.winName)
		cmds.window(self.winName, edit= True, wh=[self.winWidth,self.winHeight])
Esempio n. 49
0
    def __init__(self):
        sceneName = cmds.file(q=True, sn=True, shn=True).rsplit('.', 1)[0]
        wName = 'w13A_ExportASS'
        if cmds.window(wName, exists=True):
            cmds.deleteUI(wName)

        cmds.window(wName, title=wName, sizeable=False)
        cmds.columnLayout('w13A_L00', p=wName, adj=True, rs=10)
        #cmds.button(l='Save Materials', p='w13A_L00', rs=True, h=50)

        #cmds.separator( p='w13A_L00', st="out")
        #--------------------------------------------------
        cmds.columnLayout('w13A_cl01', p='w13A_L00', adj=True)
        cmds.rowColumnLayout('w13A_cl01_01',
                             p='w13A_cl01',
                             nc=4,
                             h=30,
                             columnWidth=[(1, 30), (2, 175), (3, 175)])
        cmds.intField('w13A_count', v=0, en=False, h=30)
        cmds.button(l='Rename Hairs',
                    p='w13A_cl01_01',
                    align='left',
                    c=self.self.renameHair)
        cmds.button(l='Assign aiHair shader',
                    p='w13A_cl01_01',
                    align='right',
                    c='assignAiHairShader()',
                    en=False)
        cmds.button(l='unspecified shaveHair',
                    p='w13A_cl01_01',
                    c=self.w13b_unspecefiedAiHair)
        cmds.separator(p='w13A_cl01', h=15, st='in')

        #--------------------------------------------------

        cmds.rowColumnLayout('w13A_cl01_02',
                             p='w13A_L00',
                             nc=6,
                             columnWidth=[(1, 40), (2, 140), (3, 90), (4, 90),
                                          (5, 90), (6, 320)],
                             rs=([1, 10]))
        index = 1
        self.w13A_addItem(index)

        #cmds.separator(p='w13A_L00', st='in')

        #cmds.checkBoxGrp( 'w13A_uiObjFilter', numberOfCheckBoxes=2, p='w13A_cl01', h=30, labelArray2=['nurbsCurve', 'Locator'], v1=True, v2=True )
        cmds.frameLayout('w13A_uiAssOptions',
                         p='w13A_L00',
                         label="ASS Export Options",
                         collapsable=True,
                         borderStyle="in",
                         collapse=True)
        #cmds.columnLayout( 'w13A_uiAssOptions', p='w13A_uiAss')#, cw=[(1,200),(2,80), (3,180),(4,150)] )

        cmds.checkBox(l='Use gzip Compression(.ass.gz)',
                      p='w13A_uiAssOptions',
                      en=False,
                      v=True)
        cmds.checkBox(l='Export Bounding Box',
                      p='w13A_uiAssOptions',
                      en=False,
                      v=True)
        cmds.checkBox(l='Use Binary Encoding',
                      p='w13A_uiAssOptions',
                      en=False,
                      v=True)
        cmds.separator(p='w13A_uiAssOptions', st='in')
        cmds.checkBox(l='Options', p='w13A_uiAssOptions', en=False, v=True)
        cmds.checkBox(l='Cameras', p='w13A_uiAssOptions', en=False)
        cmds.checkBox(l='Lights', p='w13A_uiAssOptions', en=False)
        cmds.checkBox(l='Shapes', p='w13A_uiAssOptions', en=False, v=True)
        cmds.checkBox(l='Shaders', p='w13A_uiAssOptions', en=False, v=True)
        cmds.checkBox(l='Override Nodes',
                      p='w13A_uiAssOptions',
                      en=False,
                      v=True)
        cmds.checkBox(l='Drivers', p='w13A_uiAssOptions', en=False)
        cmds.checkBox(l='Filters', p='w13A_uiAssOptions', en=False)

        #---------------------------------------------------
        cmds.rowColumnLayout('w13A_cl01_03', p='w13A_L00', nc=2)
        #cmds.checkBox('w13A_uiExportAll', l='All', p='w13A_cl01_03', h=30, cc='w13A_uiExportAll_cmd()')
        #cmds.button('w13A_uiExportMat', l='Export Materials', p='w13A_cl01_03', rs=True, c='w13A_uiExportMat_cmd()', en=False)
        cmds.button('self.w13A_uiExportAss',
                    l='Export ASS Files',
                    p='w13A_cl01_03',
                    h=30,
                    c=self.w13A_uiExportAss)
        assDir = cmds.workspace(
            q=True, rootDirectory=True) + 'data/' + sceneName + '/ass_hair'
        cmds.textFieldGrp('w13A_uiAssDirectory',
                          p='w13A_cl01_03',
                          l='Directory',
                          h=30,
                          cw2=(100, 550),
                          tx=assDir,
                          ed=True)
        #cmds.button('w13A_uiShowExp', l='Open Directory', p='w13A_cl01_03', c='w13A_uiShowExp_cmd()', en=False )
        cmds.showWindow(wName)
Esempio n. 50
0
    def __init__(self):

        self.title = 'QuadrupedRigWin'

        if cmds.window(self.title, q=True, ex=True):
            cmds.deleteUI(self.title)

        cmds.window(self.title, t='Quad Rig Tool', s=0)
        cmds.columnLayout('maincolumn')

        cmds.separator()

        cmds.rowColumnLayout(nc=2, cw=[(1, 130), (2, 30)])
        cmds.text(l='   Set Tail Number : ')
        cmds.textField('tailConNum', tx='7')

        cmds.setParent('..')

        cmds.rowColumnLayout()
        cmds.button(l='Import Templete Joint',
                    h=35,
                    w=200,
                    c=self.importTemplateJoint)
        cmds.separator()
        cmds.setParent('..')

        cmds.rowColumnLayout()
        cmds.button(l='Neck Rig', h=30, c=self.neckRigOP)
        cmds.button(l='Spine Rig', h=30, c=self.spineRigOP)
        cmds.button(l='Tail Rig', h=30, c=self.tailOP)

        cmds.separator()

        cmds.rowColumnLayout(nc=2, cw=[(1, 100), (2, 100)])
        cmds.button(l='ForeLeg Rig (L)', h=30, c=self.L_foreLegOP)
        cmds.button(l='ForeLeg Rig (R)', h=30, c=self.R_foreLegOP)
        cmds.setParent('..')

        cmds.rowColumnLayout(nc=2, cw=[(1, 100), (2, 100)])
        cmds.button(l='HindLeg Rig (L)', h=30, c=self.L_hindLegOP)
        cmds.button(l='HindLeg Rig (R)', h=30, c=self.R_hindLegOP)
        cmds.setParent('..')

        cmds.separator()

        cmds.rowColumnLayout()
        cmds.button(l='Finish Setting', h=35, w=200, c=self.finishOP)

        cmds.showWindow(self.title)
Esempio n. 51
0
    def displayUI(self):
        IDMTRigGUI = 'WDFaceUI'
        if rig.window(IDMTRigGUI, exists=True):
            rig.deleteUI(IDMTRigGUI)
        self.CurveSign = 'OFF'
        self.mainUI = rig.window(IDMTRigGUI,
                                 title=u'当前项目:' + self.project,
                                 menuBar=True,
                                 minimizeButton=True,
                                 maximizeButton=True)
        self.mainFLY = rig.formLayout()
        self.mainSRL = rig.scrollLayout(cr=True)
        self.mainCLM = rig.columnLayout(adj=True)

        #------------------------------------------------------------------ 部件选择
        rig.rowColumnLayout(nc=6,
                            columnWidth=[(1, 60), (2, 60), (3, 60), (4, 60),
                                         (5, 60), (6, 60)])
        self.mainCB = rig.checkBox(
            l=u'主体', v=True, changeCommand=lambda i: self.changeOptionVars())
        self.eyeCB = rig.checkBox(
            l=u'眼睛', v=True, changeCommand=lambda i: self.changeOptionVars())
        self.tongueCB = rig.checkBox(
            l=u'舌头', v=True, changeCommand=lambda i: self.changeOptionVars())
        self.earCB = rig.checkBox(
            l=u'耳朵', v=True, changeCommand=lambda i: self.changeOptionVars())
        self.eyebrowCB = rig.checkBox(
            l=u'眉毛', v=True, changeCommand=lambda i: self.changeOptionVars())
        self.toothCB = rig.checkBox(
            l=u'牙床', v=True, changeCommand=lambda i: self.changeOptionVars())
        self.jointCB = rig.checkBox(
            l=u'骨骼', v=True, changeCommand=lambda i: self.changeOptionVars())
        #        self.eyeCB = rig.checkBox(l = u'眼睛',v = True,changeCommand = lambda i:self.changeOptionVars())
        #        self.tongueCB = rig.checkBox(l = u'舌头',v = True,changeCommand = lambda i:self.changeOptionVars())
        #        self.earCB = rig.checkBox(l = u'耳朵',v = True,changeCommand = lambda i:self.changeOptionVars())
        #        self.eyebrowCB = rig.checkBox(l = u'眉毛',v = True,changeCommand = lambda i:self.changeOptionVars())
        #        self.toothCB = rig.checkBox(l = u'牙床',v = True,changeCommand = lambda i:self.changeOptionVars())
        self.allCB = [
            'mainCB', 'eyeCB', 'tongueCB', 'earCB', 'eyebrowCB', 'toothCB',
            'jointCB'
        ]
        self.allBt = [
            'SkinBT', 'BlendShapeBT', 'LfEyeBT', 'RtEyeBT', 'LfToothBT',
            'RtToothBT', 'LfEyebrowBT', 'RtEyebrowBT', 'TongueBT'
        ]
        self.dictData = {
            'mainCB': ['SkinBT', 'BlendShapeBT'],
            'eyeCB': ['LfEyeBT', 'RtEyeBT'],
            'tongueCB': ['TongueBT'],
            'earCB': [],
            'eyebrowCB': ['LfEyebrowBT', 'RtEyebrowBT'],
            'toothCB': ['LfToothBT', 'RtToothBT'],
            'jointCB': []
        }
        rig.setParent(self.mainCLM)

        #------------------------------------------------------------------ 参数设置
        self.eyebrowISG = rig.intSliderGrp(field=True,
                                           label=u'眉弓控制器个数:',
                                           minValue=3,
                                           maxValue=20,
                                           fieldMinValue=3,
                                           fieldMaxValue=10000,
                                           value=17,
                                           columnAttach=[(1, 'left', 5),
                                                         (2, 'left', 0),
                                                         (3, 'both', 0)],
                                           columnWidth3=(100, 30, 150))
        self.mouthISG = rig.intSliderGrp(field=True,
                                         label=u'嘴巴控制器个数:',
                                         minValue=3,
                                         maxValue=20,
                                         fieldMinValue=3,
                                         fieldMaxValue=10000,
                                         value=7,
                                         columnAttach=[(1, 'left', 5),
                                                       (2, 'left', 0),
                                                       (3, 'both', 0)],
                                         columnWidth3=(100, 30, 150))
        self.cheefISG = rig.intSliderGrp(field=True,
                                         label=u'鼻唇沟控制器个数:',
                                         minValue=3,
                                         maxValue=20,
                                         fieldMinValue=3,
                                         fieldMaxValue=10000,
                                         value=6,
                                         columnAttach=[(1, 'left', 5),
                                                       (2, 'left', 0),
                                                       (3, 'both', 0)],
                                         columnWidth3=(100, 30, 150))

        rig.button(l=u'生成定位控制器', c=lambda x: self.buildPosController())  #生成控制器
        rig.button(l=u'刷新模版', c=lambda x: self.refreshTemplate())  #刷新模版
        self.sizeFSG = rig.floatSliderGrp(
            field=True,
            label=u'调整控制器大小:',
            minValue=0.0001,
            maxValue=2,
            fieldMinValue=0.0001,
            fieldMaxValue=10000,
            value=1,
            columnAttach=[(1, 'left', 5), (2, 'left', 0), (3, 'both', 0)],
            columnWidth3=(100, 30, 150),
            cc=lambda x: self.changeConSize())  #调整控制器大小
        rig.separator(st='out')

        #------------------------------------------------------------------ 载入模型
        rig.text(u'头部模型:')
        rig.rowColumnLayout(nc=2, cal=[(1, 'left'), (2, 'right')])
        self.SkinBT = rig.button(l=u'载入头部模型',
                                 c=lambda x: self.loadObj('SkinBT'))
        self.BlendShapeBT = rig.button(
            l=u'载入蒙皮头部模型', c=lambda x: self.loadObj('BlendShapeBT'))
        rig.setParent(self.mainCLM)
        rig.rowColumnLayout(nc=2)
        self.SkinTF = rig.textField(enable=False)
        self.BlendShapeTF = rig.textField(enable=False)
        rig.setParent(self.mainCLM)

        rig.text(u'眼睛模型:')
        rig.rowColumnLayout(nc=2)
        self.LfEyeBT = rig.button(l=u'载入左眼',
                                  c=lambda x: self.loadObj('LfEyeBT'))
        self.RtEyeBT = rig.button(l=u'载入右眼',
                                  c=lambda x: self.loadObj('RtEyeBT'))
        rig.setParent(self.mainCLM)
        rig.rowColumnLayout(nc=2)
        self.LfEyeTF = rig.textField(enable=False)
        self.RtEyeTF = rig.textField(enable=False)
        rig.setParent(self.mainCLM)

        rig.text(u'牙床模型:')
        rig.rowColumnLayout(nc=2)
        self.LfToothBT = rig.button(l=u'载入上牙床',
                                    c=lambda x: self.loadObj('LfToothBT'))
        self.RtToothBT = rig.button(l=u'载入下牙床',
                                    c=lambda x: self.loadObj('RtToothBT'))
        rig.setParent('..')
        rig.rowColumnLayout(nc=2)
        self.LfToothTF = rig.textField(enable=False)
        self.RtToothTF = rig.textField(enable=False)
        rig.setParent(self.mainCLM)

        rig.text(u'眉毛模型:')
        rig.rowColumnLayout(nc=2)
        self.LfEyebrowBT = rig.button(l=u'载入左边眉毛',
                                      c=lambda x: self.loadObj('LfEyebrowBT'))
        self.RtEyebrowBT = rig.button(l=u'载入右边眉毛',
                                      c=lambda x: self.loadObj('RtEyebrowBT'))
        rig.setParent('..')
        rig.rowColumnLayout(nc=2)
        self.LfEyebrowTF = rig.textField(enable=False)
        self.RtEyebrowTF = rig.textField(enable=False)
        rig.setParent(self.mainCLM)

        rig.text(u'舌头模型:')
        self.TongueBT = rig.button(l=u'载入舌头',
                                   w=300,
                                   c=lambda x: self.loadObj('TongueBT'))
        self.TongueTF = rig.textField(w=300, enable=False)
        rig.setParent(self.mainCLM)

        rig.separator(st='out')
        #----------------------------------------------------------------- 镜像控制器
        rig.rowColumnLayout(nc=3, cw=(1, 100))
        rig.text(l=u'镜像控制器:')
        rig.button(l=u'左 ——>右', c=lambda x: self.mirrorCon('X', True))
        rig.button(l=u'右——>左 ', c=lambda x: self.mirrorCon('X', False))
        rig.setParent(self.mainCLM)

        rig.button(l=u'生成设置', c=lambda x: self.startSetup())  #生成控制器
        rig.separator(st='out')

        #----------------------------------------------------------------- 镜像blendShape曲线
        rig.rowColumnLayout(nc=3)
        rig.button(l=u'修改blendShape',
                   c=lambda x: self.mirrorBlendShape('X', True, False))
        rig.button(l=u'镜像到右',
                   c=lambda x: self.mirrorBlendShape('X', True, True))
        rig.button(l=u'镜像到左',
                   c=lambda x: self.mirrorBlendShape('X', False, True))
        rig.setParent(self.mainCLM)

        #        #----------------------------------------------------------------- 调整范围
        #        rig.rowColumnLayout(nc = 3,cw = (1,100))
        #        rig.text(l = u'调整范围:')
        #        rig.button(l = u'限定位移范围', c = lambda x:rig.setToolTo(self.limitTransformMP))
        #        rig.button(l = u'限定旋转范围', c = lambda x:rig.setToolTo(self.move))
        #        rig.setParent(self.mainCLM)
        #
        #        #----------------------------------------------------------------- 恢复blendShape曲线
        #        rig.rowColumnLayout(nc = 3,cw = (1,100))
        #        rig.text(l = u'恢复BS曲线:')
        #        rig.button(l = u'恢复Belndshape曲线')
        #        rig.button(l = u'恢复所有Belndshape曲线')
        #        rig.setParent(self.mainCLM)

        #----------------------------------------------------------------- 隐藏控制器
        rig.rowColumnLayout(nc=4)
        rig.button(l=u'隐藏small控制器',
                   c=lambda x: self.displayConntroller('small', 'hide'))
        rig.button(l=u'隐藏macro控制器',
                   c=lambda x: self.displayConntroller('macro', 'hide'))
        rig.button(l=u'隐藏main控制器',
                   c=lambda x: self.displayConntroller('main', 'hide'))
        rig.button(l=u'隐藏十字控制器',
                   c=lambda x: self.displayConntroller('cross', 'hide'))
        rig.setParent(self.mainCLM)

        #----------------------------------------------------------------- 显示控制器
        rig.rowColumnLayout(nc=4)
        rig.button(l=u'显示small控制器',
                   c=lambda x: self.displayConntroller('small', 'show'))
        rig.button(l=u'显示macro控制器',
                   c=lambda x: self.displayConntroller('macro', 'show'))
        rig.button(l=u'显示main控制器',
                   c=lambda x: self.displayConntroller('main', 'show'))
        rig.button(l=u'显示十字控制器',
                   c=lambda x: self.displayConntroller('cross', 'show'))
        rig.setParent(self.mainCLM)

        #----------------------------------------------------------------- 导入导出曲线
        rig.separator(st='out')
        rig.separator(st='out')
        rig.rowColumnLayout(nc=3)
        rig.button(l=u'导入导出blendShape曲线',
                   c=lambda x: self.importExportBlendShapeCurve())
        rig.button(l=u'导入导出控制器形状', c=lambda x: self.importExportControlCurve())
        rig.button(l=u'导入导出模版信息', c=lambda x: self.importExportTemplateInfo())
        rig.setParent(self.mainCLM)

        rig.button(l=u'恢复选择的控制器到初始POSE', c=lambda x: self.restorySelectCon())
        rig.button(l=u'恢复模版', c=lambda x: self.restoryTemplate())

        rig.setParent(self.mainFLY)
        rig.formLayout(self.mainFLY,
                       e=True,
                       attachForm=(self.mainSRL, 'top', 2))
        rig.formLayout(self.mainFLY,
                       e=True,
                       attachForm=(self.mainSRL, 'left', 2))
        rig.formLayout(self.mainFLY,
                       e=True,
                       attachForm=(self.mainSRL, 'bottom', 2))
        rig.formLayout(self.mainFLY,
                       e=True,
                       attachForm=(self.mainSRL, 'right', 2))

        #设置OptionVars
        self.getOptionVars()
        self.setOptionVars()
        self.getSkinObj()  #得到蒙皮物体
        rig.showWindow(IDMTRigGUI)  #显示界面
        rig.window(self.mainUI, e=True, wh=(400, 800))
def gui():
    '''
    Creats the gui
    '''
    bw = 500
    sw = 200

    win = 'win3DFGrade'
    if (cmds.window(win, ex=True)):
        cmds.deleteUI(win)
    if (cmds.windowPref(win, ex=True)):
        cmds.windowPref(win, r=1)

    cmds.window(win, w=bw, h=400)
    '''
    Main section of tool
    Displays scene name with button for opening new scene files
    '''
    top_main = cmds.columnLayout(w=500)
    cmds.rowColumnLayout(w=500, nc=3)
    cmds.text(l='Scene Name', w=133)
    cmds.textField(w=133, tx=(cmds.file(q=True, sn=True)))
    cmds.button(l='Open Scene', w=133, c=open_scene)
    cmds.setParent(top_main)
    '''
    Dislays grading options such as professionalism and late turnin decutions
    '''
    cmds.rowColumnLayout(w=500, nc=6)
    cmds.text('Professional', w=66)
    cmds.floatField(v=0.00, w=66)
    cmds.text('Late Turnin', w=66)
    cmds.floatField(v=0.00, w=66)
    cmds.text('Total Grade', w=66)
    cmds.floatField(v=0.00, w=66)
    cmds.setParent(top_main)
    '''
    Creats Export button
    '''
    cmds.columnLayout(w=bw, cat=['left', 200])
    cmds.button(l='Export', w=100, c=excel_export)
    cmds.setParent(top_main)
    '''
    Subsection of tool
    '''
    cmds.columnLayout(w=500)
    cmds.scrollLayout(w=500)
    bottom_main = cmds.columnLayout(w=bw)
    '''    
    Creates the 'Joint' grading sections
    '''
    joint_frame = cmds.frameLayout('Joints', cll=True, w=bw - 10)
    joint_col = cmds.columnLayout()
    main_widget1 = Main_Widget('Joint Naming - Invalid',
                               check_joint_naming(cmds.ls(typ='joint')),
                               joint_naming,
                               pf=0)
    cmds.setParent(joint_col)
    main_widget2 = Main_Widget('Joint Rotations - Invalid',
                               check_joint_rotates(cmds.ls(typ='joint')),
                               joint_rotates,
                               pf=1)
    cmds.setParent(joint_col)
    main_widget3 = Main_Widget('Joint Translates - Warning',
                               check_joint_translates(cmds.ls(typ='joint')),
                               joint_naming,
                               pf=0)
    cmds.setParent(joint_col)
    #main_widget4 = Main_Widget('Joint Orientaiton - Invalid', check_joint_orient(cmds.ls(typ='joint')), joint_naming, pf=0)
    cmds.setParent(bottom_main)
    '''
    Creates the 'Curve' grading sections
    '''
    cmds.frameLayout(l='Curves', cll=True, w=bw - 10)
    curve_col = cmds.columnLayout()
    main_widget5 = Main_Widget('Curve Naming - Invalid',
                               check_curve_naming(cmds.ls(typ='nurbsCurve')),
                               joint_naming,
                               pf=1)
    cmds.setParent(curve_col)
    main_widget6 = Main_Widget('Curve Transforms - Invalid',
                               check_transforms(cmds.ls(typ='nurbsCurve')),
                               joint_rotates,
                               pf=1)
    cmds.setParent(curve_col)
    main_widget7 = Main_Widget('Curve History - Invalid',
                               check_curve_hist(cmds.ls(typ='nurbsCurve')),
                               joint_rotates,
                               pf=1)
    cmds.setParent(bottom_main)
    '''    
    Creates the 'Geometry' grading sections
    '''
    cmds.frameLayout(l='Geometry', cll=True, w=bw - 10)
    geo_col = cmds.columnLayout()
    main_widget8 = Main_Widget('Geo Naming - Invalid',
                               check_geo_naming(cmds.ls(typ='mesh')),
                               joint_naming,
                               pf=0)
    cmds.setParent(geo_col)
    main_widget9 = Main_Widget('Geo Transforms - Invalid',
                               check_transforms(cmds.ls(typ='mesh')),
                               joint_naming,
                               pf=0)
    cmds.setParent(geo_col)
    main_widget10 = Main_Widget('Geo History - Invalid',
                                check_geo_hist(cmds.ls(typ='mesh')),
                                joint_naming,
                                pf=0)
    cmds.setParent(bottom_main)

    cmds.showWindow(win)
Esempio n. 53
0
def propRigWindow():
    propRig_Window = 'propRig_v01'  #
    if cmds.window(propRig_Window, q=1, ex=1):  #
        cmds.deleteUI(propRig_Window)

    cmds.window(propRig_Window, h=50)

    #__________ 1. Model Check __________#
    cmds.columnLayout(adj=1, bgc=([0.2, 0.2, 0.2]), parent=propRig_Window)
    cmds.frameLayout(l='Model Check',
                     collapsable=1,
                     collapse=1,
                     bgc=[0.7, 0.3, 0.3])
    cmds.separator(st='single')
    cmds.text('1. MODEL CHECK', font='obliqueLabelFont', h=15)
    cmds.separator(st='single')
    cmds.rowColumnLayout(numberOfColumns=3,
                         columnWidth=[(1, 50), (2, 180), (3, 50)])
    cmds.text(" ")
    cmds.button(l='Run Checker Tool ',
                w=150,
                h=30,
                bgc=([1, 0.8, 0.8]),
                c='CK.checker()')
    cmds.text(" ")
    cmds.separator(st='none', h=15)
    cmds.setParent('..')

    #__________ 2. dxRig setting __________#
    cmds.columnLayout(adj=1, bgc=([0.2, 0.2, 0.2]), parent=propRig_Window)
    cmds.frameLayout(l='Create dxRig Node',
                     collapsable=1,
                     collapse=1,
                     bgc=[0.75, 0.6, 0.15])
    cmds.separator(st='single', bgc=([0.5, 0.5, 0.1]))
    cmds.text('2. CREATE dxRig NODE', font='obliqueLabelFont', h=20)
    cmds.separator(st='single', bgc=([0.5, 0.5, 0.1]))
    cmds.rowColumnLayout(numberOfColumns=3,
                         columnWidth=[(1, 50), (2, 180), (3, 50)])
    cmds.text(" ")
    cmds.button(l='Create !',
                w=150,
                h=30,
                bgc=([1, 0.87, 0.76]),
                c='DX.Create_propRig_group()')
    cmds.text(" ")
    cmds.separator(st='none', h=20)
    cmds.setParent('..')

    #__________ 3. Controller Setting __________#
    cmds.columnLayout(adj=1, bgc=([0.2, 0.2, 0.2]), parent=propRig_Window)
    conSet_frameLayout = cmds.frameLayout(l='Create Controller',
                                          collapsable=1,
                                          collapse=1,
                                          bgc=[0.4, 0.55, 0.3])
    cmds.separator(st='none')
    cmds.separator(st='single', bgc=([0.5, 0.5, 0.25]))
    cmds.text('3. CON SETTING',
              font='obliqueLabelFont',
              h=20,
              bgc=([0.7, 0.9, 0.7]))
    cmds.separator(st='single', bgc=([0.5, 0.5, 0.25]))
    # subCON #
    #cmds.rowColumnLayout (numberOfColumns=3, columnWidth=[(1,90), (2,90), (3,90)])
    #cmds.text('sub CON   :', h=40, font='obliqueLabelFont')
    #cmds.radioCollection()
    #RButton_SUBCon_no = cmds.radioButton ('createWith', l='Create with')
    #RButton_SUBCon = cmds.radioButton ('add', l='Add')

    # NodeType #
    cmds.rowColumnLayout(numberOfColumns=4,
                         columnWidth=[(1, 70), (2, 75), (3, 85), (4, 50)])
    cmds.text('Node Type   :', font='obliqueLabelFont')
    cmds.separator(st='none')
    cmds.separator(st='none')
    cmds.separator(st='none')
    cmds.setParent('..')
    cmds.rowColumnLayout(numberOfColumns=4,
                         columnWidth=[(1, 20), (2, 85), (3, 100), (4, 70)])
    cmds.separator(st='none')
    cmds.radioCollection()

    global RButton_Constraints, RButton_JointBinding, RButton_None
    RButton_Constraints = cmds.radioButton(l='Constraint')
    RButton_JointBinding = cmds.radioButton(l='Joint Binding')
    RButton_None = cmds.radioButton(l='None')

    cmds.separator(st='none', h=10)

    # COLOR #
    color_frameLayout = cmds.frameLayout(l=" ", p=conSet_frameLayout)
    cmds.rowColumnLayout(numberOfColumns=4,
                         columnWidth=[(1, 70), (2, 70), (3, 10), (4, 120)])

    cmds.separator(st="none", h=5)
    cmds.separator(st="none", h=5)
    cmds.separator(st="none", h=5)
    cmds.separator(st="none", h=5)

    cmds.text('Color    :', font='obliqueLabelFont')
    cmds.textField('colorValueTF', tx="0", ed=0)
    cmds.text(" ")
    cmds.checkBox(l='selection Highlighting',
                  onCommand='selectionHighliting_ON ()',
                  offCommand='selectionHighliting_OFF ()',
                  v=1)

    cmds.separator(st='none')
    cmds.separator(st='none')
    cmds.separator(st='none')
    cmds.separator(st='single', bgc=([0.5, 0.5, 0.2]))

    cmds.columnLayout(adj=1, h=100, p=color_frameLayout)
    cmds.rowColumnLayout(numberOfColumns=5,
                         columnWidth=[(1, 56), (2, 56), (3, 56), (4, 56),
                                      (5, 56)])
    cmds.button(l='13', bgc=[1, 0, 0], c='CL.colorSet (13)')
    cmds.button(l='4', bgc=[0.608, 0, 0.157], c='CL.colorSet (4)')
    cmds.button(l='31', bgc=[0.631, 0.188, 0.412], c='CL.colorSet (31)')
    cmds.button(l='30', bgc=[0.435, 0.188, 0.627], c='CL.colorSet (30)')
    cmds.button(l='20', bgc=[1, 0.686, 0.686], c='CL.colorSet (20)')
    cmds.button(l='17', bgc=[1, 1, 0], c='CL.colorSet (17)')
    cmds.button(l='22', bgc=[1, 1, 0.384], c='CL.colorSet (22)')
    cmds.button(l='25', bgc=[0.62, 0.627, 0.188], c='CL.colorSet (25)')
    cmds.button(l='26', bgc=[0.408, 0.627, 0.188], c='CL.colorSet (26)')
    cmds.button(l='23', bgc=[0, 0.6, 0.325], c='CL.colorSet (23)')
    cmds.button(l='6', bgc=[0, 0, 1], c='CL.colorSet (6)')
    cmds.button(l='29', bgc=[0.188, 0.404, 0.627], c='CL.colorSet (29)')
    cmds.button(l='28', bgc=[0.188, 0.627, 0.627], c='CL.colorSet (28)')
    cmds.button(l='18', bgc=[0.388, 0.863, 1], c='CL.colorSet (18)')
    cmds.button(l='14', bgc=[0, 1, 0], c='CL.colorSet (14)')
    cmds.button(l='16', bgc=[1, 1, 1], c='CL.colorSet (16)')
    cmds.button(l='24', bgc=[0.627, 0.412, 0.188], c='CL.colorSet (24)')
    cmds.button(l='10', bgc=[0.537, 0.278, 0.2], c='CL.colorSet (10)')
    cmds.button(l='21', bgc=[0.89, 0.675, 0.475], c='CL.colorSet (21)')
    cmds.button(l='default', bgc=[0.467, 0.467, 0.467], c='CL.colorSet (0)')
    #cmds.button(l='1', bgc=[0, 0, 0], c='CL.colorSet (1)')
    #cmds.button(l='2', bgc=[0.247, 0.247, 0.247], c='CL.colorSet (2)')
    #cmds.button(l='3', bgc=[0.498, 0.498, 0.498], c='CL.colorSet (3)')
    #cmds.button(l='5', bgc=[0, 0.016, 0.373], c='CL.colorSet (5)')
    #cmds.button(l='7', bgc=[0, 0.275, 0.094], c='CL.colorSet (7)')
    #cmds.button(l='8', bgc=[0.145, 0, 0.263], c='CL.colorSet (8)')
    #cmds.button(l='9', bgc=[0.78, 0, 0.78], c='CL.colorSet (9)')
    #cmds.button(l='11', bgc=[0.243, 0.133, 0.122], c='CL.colorSet (11)')
    #cmds.button(l='12', bgc=[0.6, 0.145, 0], c='CL.colorSet (12)')
    #cmds.button(l='19', bgc=[0.263, 1, 0.635], c='CL.colorSet (19)')
    #cmds.button(l='15', bgc=[0, 0.255, 0.6], c='CL.colorSet (15)')
    #cmds.button(l='27', bgc=[0.188, 0.627, 0.365], c='CL.colorSet (27)')

    # conSet #
    con_frameLayout = cmds.frameLayout(l=" ", p=conSet_frameLayout)
    cmds.rowColumnLayout(numberOfColumns=4,
                         columnWidth=[(1, 140), (2, 68), (3, 3), (4, 68)])

    cmds.text('<    Pivot Centre    >')
    cmds.separator(h=30)
    cmds.separator(h=30)
    cmds.separator(h=30)

    cmds.text(' +       MODELING     :', font='obliqueLabelFont')
    cmds.button(l='Single',
                h=30,
                backgroundColor=([0.2, .7, 0]),
                c='CC.create_SingleCON ()')
    cmds.separator(st='none')
    cmds.button(l='Join',
                h=30,
                backgroundColor=([0.2, .7, 0]),
                c='CC.create_JoinCON ()')

    cmds.separator(st='none', h=3)
    cmds.separator(st='none')
    cmds.separator(st='none')
    cmds.separator(st='none')

    cmds.text(' +       GRID              :', font='obliqueLabelFont')
    cmds.button(l='Single',
                h=30,
                backgroundColor=([1, 1, 1]),
                c='CC.create_SingleCON_CT ()')
    cmds.separator(st='none')
    cmds.button(l='Join',
                h=30,
                backgroundColor=([1, 1, 1]),
                c='CC.create_JoinCON_CT ()')

    # create subCON #
    subCON_frameLayout = cmds.frameLayout(l=" ", p=conSet_frameLayout)
    cmds.rowColumnLayout(numberOfColumns=4,
                         columnWidth=[(1, 140), (2, 68), (3, 3), (4, 68)])
    cmds.separator(st='none', h=10)
    cmds.separator(st='none', h=10)
    cmds.separator(st='none', h=10)
    cmds.separator(st='none', h=10)
    cmds.text('<    subCON    >        :')
    cmds.button(l='only', h=30, bgc=[0.4, 0.4, 0.4], c='SC.sort_MC_or_SC ()')
    cmds.separator(st='none', h=5)
    cmds.button(l='several',
                h=30,
                bgc=[0.4, 0.4, 0.4],
                c='SC.sort_MC_or_SC ()')
    cmds.separator(st='none', h=5)

    #__________ 4. ROOT CON __________#
    cmds.columnLayout(adj=1, p=conSet_frameLayout)
    #cmds.separator (st='none', h=10)
    cmds.separator(st='single', bgc=([0.5, 0.3, 0.5]))

    cmds.text('4. ROOT_CON',
              font='obliqueLabelFont',
              h=20,
              bgc=([0.8, 0.8, 1]))
    #cmds.text ('4. ROOT CON', font='obliqueLabelFont', h=20, bgc=([0.6, 0.4, 1]))
    cmds.separator(st='none', h=7)
    cmds.separator(st='single', bgc=([0.5, 0.3, 0.5]))
    cmds.rowColumnLayout(numberOfColumns=2, columnWidth=[(1, 140), (2, 140)])
    cmds.text('<    Pivot Centre    >')
    cmds.separator(h=30)
    cmds.text(' +       MODELING    :', font='obliqueLabelFont')
    cmds.button(l='Create',
                h=30,
                backgroundColor=([0.6, 0.4, 1]),
                c='CC.create_rootCON ()')
    cmds.separator(st='none', h=3)
    cmds.separator(st='none', h=3)
    cmds.text(' +       GRID              :', font='obliqueLabelFont')
    cmds.button(l='Create',
                h=30,
                backgroundColor=([1, 1, 1]),
                c='CC.create_rootCON_CT ()')
    cmds.separator(st='none', h=20)
    cmds.setParent('..')

    #__________ 5. EXTRA __________#
    cmds.columnLayout(adj=1, bgc=([0.2, 0.2, 0.2]), parent=propRig_Window)
    cmds.frameLayout(l='EXTRA',
                     collapsable=1,
                     collapse=1,
                     bgc=[0.3, 0.46, 0.5])
    cmds.rowColumnLayout(numberOfColumns=4,
                         columnWidth=[(1, 2), (2, 136), (3, 4), (4, 136)])

    cmds.separator(st='none')
    cmds.button(l='SELECT Hierarchy',
                h=30,
                bgc=[0.5, 0.5, 0.5],
                c='EX.selectHierarchy ()')
    cmds.separator(st='none')
    cmds.button(l='DELETE Constraints',
                h=30,
                bgc=[0.5, 0.5, 0.5],
                c='EX.deleteConstraint ()')
    cmds.separator(st='none', h=2)
    cmds.separator(st='none')
    cmds.separator(st='none')
    cmds.separator(st='none')

    cmds.separator(st='none')
    cmds.button(l='attach LOC', h=30, bgc=[0.5, 0.5, 0.5], c='EX.attachLOC ()')
    cmds.separator(st='none')
    cmds.button(l='create NUL', h=30, bgc=[0.5, 0.5, 0.5], c='EX.createNUL ()')
    cmds.separator(st='none', h=2)
    cmds.separator(st='none')
    cmds.separator(st='none')
    cmds.separator(st='none')

    cmds.separator(st='none')
    cmds.button(l='LRA ON',
                h=30,
                bgc=[0.5, 0.5, 0.5],
                c='EX.localRotationAxes (1)')
    cmds.separator(st='none')
    cmds.button(l='LRA OFF',
                h=30,
                bgc=[0.5, 0.5, 0.5],
                c='EX.localRotationAxes (0)')
    cmds.separator(st='none', h=2)
    cmds.separator(st='none')
    cmds.separator(st='none')
    cmds.separator(st='none')

    cmds.separator(st='none')
    cmds.button(l='CENTER JOINT',
                h=30,
                bgc=[0.5, 0.5, 0.5],
                c='EX.center_JNT ()')
    cmds.separator(st='none')
    cmds.button(l='JNT ZERO OUT', h=30, bgc=[0.5, 0.5, 0.5], c='EX.zeroOut ()')
    cmds.separator(st='none', h=2)
    cmds.separator(st='none')
    cmds.separator(st='none')
    cmds.separator(st='none')

    cmds.separator(st='none')
    cmds.button(l='SNAP', h=30, bgc=[0.5, 0.5, 0.5], c='EX.snap ()')
    cmds.separator(st='none')
    cmds.separator(st='none')
    cmds.separator(st='none', h=2)
    cmds.separator(st='none')
    cmds.separator(st='none')
    cmds.separator(st='none')

    # window GUI : Size
    cmds.window(propRig_Window, e=1, width=290, sizeable=1)
    cmds.showWindow(propRig_Window)
Esempio n. 54
0
    def buildUI(self):
        """
        Main UI just to confirm very basic info of production
        :return:
        """

        w = 500
        h = 30

        # Production name by default
        prodName = "VoxelPicture"
        # Check if UI exists
        if cmds.window(self.winid, q=True, exists=True):
            cmds.deleteUI(self.winid)
        # Create UI
        cmds.window(self.winid, t=self.title, rtf=True, wh=(w, 25 * h))
        # Main layout
        mainLayout = cmds.scrollLayout('main', hst=15, vst=15)

        # Title
        self.bts.makeSeparator(h=h / 6, w=w)
        cmds.text(l=self.label, h=h, w=w, align='center')
        self.bts.makeSeparator(h=h / 6, w=w)

        # Content
        nc = 9
        adj1 = 5
        w2 = (w - (5 * adj1)) / (nc - 5)

        cmds.rowColumnLayout(
            nc=nc,
            cw=self.bts.cwCustomize(
                nc, [adj1, w2, adj1, w2, adj1, w2, adj1, w2, adj1]))
        cmds.text(l="")
        cmds.text(l='Project Name', align='center')
        cmds.text(l="")
        self.prodName = cmds.textField(tx=prodName)
        cmds.text(l="")
        cmds.text(l="Abbreviated as", align='center')
        cmds.text(l="")
        self.prodShort = cmds.textField(tx='vxp')
        cmds.text(l="")

        cmds.setParent(mainLayout)
        cmds.text(l="")

        nc = 5
        w1 = 100

        cmds.rowColumnLayout(nc=nc,
                             cw=self.bts.cwCustomize(
                                 nc,
                                 [adj1, w1, adj1, w - (3 * adj1 + w1), adj1]))

        cmds.text(l="")
        cmds.button(l='Set Path', c=self.setPth)
        cmds.text(l="")
        self.setPath = cmds.textField(tx="E:/")
        cmds.text(l="")

        cmds.setParent(mainLayout)
        cmds.text(l="")
        cmds.text(l="DUE TO THE POSSIBILITY TO USE ONLINE RENDER SERVICE\n"
                  "SETTING PATH TO E DRIVE IS ALWAYS PREFERABLE\n"
                  "IF YOU DO NOT USE THAT KIND OF SERVICE, NEVER MIND",
                  align='center',
                  w=w,
                  h=2 * h,
                  bgc=(0, .5, 1),
                  fn="boldLabelFont")
        cmds.text(l="")

        nc = 9

        cmds.rowColumnLayout(
            nc=nc,
            cw=self.bts.cwCustomize(
                nc, [adj1, w2, adj1, w2, adj1, w2, adj1, w2, adj1]))

        cmds.text(l="")
        cmds.text(l="Project Mode")
        cmds.text(l="")
        self.setMode = cmds.optionMenu()
        cmds.menuItem(l="Group Mode", p=self.setMode)
        cmds.menuItem(l="Studio Mode", p=self.setMode)
        cmds.text(l="")
        cmds.text(l="Sequences")
        cmds.text(l="")
        self.numShot = cmds.intField(v=1, min=1)
        cmds.text(l="")
        cmds.setParent(mainLayout)
        cmds.text(l="")

        nc = 13
        w3 = (w - (7 * adj1)) / (nc - 7)

        cmds.rowColumnLayout(nc=nc,
                             cw=self.bts.cwCustomize(nc, [
                                 adj1, w3, adj1, w3, adj1, w3, adj1, w3, adj1,
                                 w3, adj1, w3, adj1
                             ]))

        cmds.text(l="")
        cmds.text(l="Character:")
        cmds.text(l="")
        self.numChar = cmds.intField(v=1,
                                     min=1,
                                     cc=partial(self.charNameColumn,
                                                (w - (4 * adj1)) / 3))
        cmds.text(l="")
        cmds.text(l="Environment:")
        cmds.text(l="")
        self.numEnv = cmds.intField(v=1,
                                    min=1,
                                    cc=partial(self.envNameColumn,
                                               (w - (4 * adj1)) / 3))
        cmds.text(l="")
        cmds.text(l="Props:")
        cmds.text(l="")
        self.numProps = cmds.intField(v=1,
                                      min=1,
                                      cc=partial(self.propsNameColumn,
                                                 (w - (4 * adj1)) / 3))
        cmds.text(l="")

        cmds.setParent(mainLayout)
        cmds.text(l="")

        nc = 7
        w4 = (w - (4 * adj1)) / (nc - 4)

        cmds.rowColumnLayout(nc=3, cw=[(1, w / 3), (2, w / 3), (3, w / 3)])
        cmds.text(l="Characters Name")
        cmds.text(l="Envs Name")
        cmds.text(l="Props Name")

        cmds.setParent(mainLayout)
        cmds.text(l="")

        self.editableColumnsLayout = cmds.rowColumnLayout(
            nc=nc,
            cw=self.bts.cwCustomize(nc, [adj1, w4, adj1, w4, adj1, w4, adj1]))

        cmds.text(l="")
        self.charColumn = cmds.columnLayout(w=w4)
        self.firstCharColumn = cmds.columnLayout(w=w4)
        cmds.textField('char1', p=self.firstCharColumn, w=w4 - 10)
        cmds.setParent(self.editableColumnsLayout)

        cmds.text(l="")
        self.envColumn = cmds.columnLayout(w=w4)
        self.firstEnvColumn = cmds.columnLayout(w=w4)
        cmds.textField('env1', p=self.firstEnvColumn, w=w4 - 10)
        cmds.setParent(self.editableColumnsLayout)

        cmds.text(l="")
        self.propsColumn = cmds.columnLayout(w=w4)
        self.firstPropsColumn = cmds.columnLayout(w=w)
        cmds.textField('props1', p=self.firstPropsColumn, w=w4 - 10)
        cmds.setParent(self.editableColumnsLayout)
        cmds.text(l="")

        cmds.setParent(mainLayout)

        self.bts.makeSeparator(h=10, w=w)

        cmds.rowColumnLayout(nc=3, cw=[(1, w / 3), (2, w / 3), (3, w / 3)])
        cmds.text(l="")
        cmds.button(l="CREATE PROJECT", c=self.createProject)
        cmds.text(l="")

        cmds.setParent(mainLayout)
        cmds.text(l="")

        cmds.showWindow(self.winid)
Esempio n. 55
0
    def __init__(self):
        self.topBtn = [u'Mesh', u'Surfaces', u'灯光', u'摄像机', u'Curves']
        self.color = [(0.3, 0.39, 0.32), (0.388, 0.29, 0.29),
                      (0.29, 0.3, 0.388), (0.898, 0.412, 0.161)]
        #暂存器字典
        self.selStor = {}
        #生成窗口
        if cmds.window('JGBSelectTool', q=1, ex=1):
            cmds.deleteUI('JGBSelectTool')

        cmds.window('JGBSelectTool', t=u'选择暂存器 v1.0')
        cmds.scrollLayout('scrollLayout')
        #cmds.gridLayout('topGrid',cwh=[90,30],nrc=[2,3])
        cmds.frameLayout(l='筛选选择', ann=u'筛选出选中物体的某类物体', borderStyle='in')
        cmds.rowColumnLayout('topLayout',
                             nc=3,
                             co=[1, 'left', 5],
                             ro=[1, 'top', 5],
                             rat=[2, 'top', 4],
                             cs=([1, 0], [2, 10], [3, 5]),
                             cw=([1, 85], [2, 85], [3, 85]))
        for s in self.topBtn:
            cmds.button(s,
                        l=s,
                        ann=u"选择%s" % s,
                        w=85,
                        c=Callback(self.filterSel, s))
        cmds.setParent('..')
        cmds.setParent('..')
        cmds.frameLayout('xuanzeFrame',
                         l='选择暂存',
                         ann=u'存储选择器',
                         borderStyle='in',
                         w=275)

        #cmds.setParent('xuanzeFrame')
        #cmds.columnLayout()
        self.geshu = range(6)
        for i in self.geshu:
            cmds.rowLayout('xuanzeLayout%d' % i,
                           nc=4,
                           cw4=[50, 115, 50, 50],
                           h=30)
            cmds.button('sel%d' % i,
                        l='选择%d' % (i + 1),
                        w=50,
                        h=22,
                        bgc=self.color[0],
                        ann='选择存储的物体%d' % (i + 1),
                        c=Callback(self.getSel, i))
            cmds.textField('selectName%d' % i,
                           tx='',
                           ann=u'你起得啥名字在这儿!',
                           enable=0,
                           w=115)
            cmds.button(l='拾取',
                        w=50,
                        h=22,
                        ann=u'拾取当前选择的所有物体,起个名字!',
                        c=Callback(self.setSel, i))
            cmds.button('clearBtn%d' % i,
                        l='清除',
                        w=50,
                        h=22,
                        ann=u'清除当前存储',
                        c=Callback(self.clearSel, i))
            cmds.setParent('..')
        cmds.button(l='清除所有', ann=u'清除所有存储', c=lambda *args: self.claerAll())
        cmds.setParent('..')
        cmds.frameLayout('shuoming',
                         l='发明家(*^▽^*)',
                         ann=u'欢迎分享交流学习,意见反馈\n加qq联系我( ̄▽ ̄)~*',
                         borderStyle='in',
                         w=275)
        #cmds.columnLayout( cal='right',cat=['right',1])
        cmds.rowColumnLayout(nc=1, cs=([1, 00]))
        cmds.text(l='designed by Jguobao', al='right')

        cmds.text(l='*****@*****.**', hl=1, al='right')
        cmds.showWindow('JGBSelectTool')
        cmds.window('JGBSelectTool', e=1, wh=[300, 420])
Esempio n. 56
0
def arnoldLicenseDialog():
    if (cmds.window("ArnoldLicense", ex=True)):
        cmds.deleteUI("ArnoldLicense")
    w = cmds.window("ArnoldLicense", title="Arnold Node-locked License")
    cmds.window("ArnoldLicense", edit=True, width=550, height=280)
    cmds.columnLayout()
    cmds.rowColumnLayout(numberOfColumns=4,
                         columnWidth=[(1, 10), (2, 64), (3, 18), (4, 450)])

    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")

    arnoldAboutText = u"A node-locked license allows you to render with Arnold on one computer only.\n"

    cmds.text(label="")
    cmds.image(image="licensing_mtoa.png")
    cmds.text(label="")
    cmds.text(align="left", label=arnoldAboutText)

    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")

    cmds.separator()
    cmds.separator()
    cmds.separator()
    cmds.separator()

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

    cmds.rowColumnLayout(numberOfColumns=2, columnWidth=[(1, 10), (2, 500)])
    macText = u"To issue a node-locked license, we need the MAC address of your computer.\n"
    cmds.text(label="")
    cmds.text(align="left", label=macText)
    cmds.setParent('..')
    cmds.separator()

    cmds.rowColumnLayout(numberOfColumns=6,
                         columnWidth=[(1, 10), (2, 90), (3, 190), (4, 40),
                                      (5, 80), (6, 132)])
    cmds.text(label="")
    cmds.text(align="left", label="MAC Address")
    name = cmds.textField()
    mac = get_mac()
    mactext = ("%012X" % mac)
    cmds.textField(name, edit=True, text=mactext, editable=False)
    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")

    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")

    cmds.separator()
    cmds.separator()
    cmds.separator()
    cmds.separator()
    cmds.separator()
    cmds.separator()

    cmds.setParent('..')

    cmds.rowColumnLayout(numberOfColumns=2, columnWidth=[(1, 10), (2, 500)])
    macText = u"To install your node-locked license, locate the license file (.lic) and click Install.\n"
    cmds.text(label="")
    cmds.text(align="left", label=macText)
    cmds.setParent('..')

    cmds.rowColumnLayout(numberOfColumns=8,
                         columnWidth=[(1, 10), (2, 90), (3, 190), (4, 7),
                                      (5, 26), (6, 7), (7, 80), (8, 132)])
    cmds.text(label="")
    cmds.text(align="left", label="License file (.lic)")
    file = cmds.textField()
    cmds.text(label="")
    cmds.button(label='...', command=lambda *args: dotDotDotButtonPush(file))
    cmds.text(label="")
    cmds.button(label='Install', command=lambda *args: installButtonPush(file))
    cmds.text(label="")

    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")

    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")
    cmds.text(label="")

    cmds.setParent('..')

    cmds.rowColumnLayout(numberOfColumns=5,
                         columnWidth=[(1, 200), (2, 160), (3, 80), (4, 20),
                                      (5, 80)])
    cmds.text(label="")
    cmds.text(label="")
    cmds.button(label='Close',
                command=('import maya.cmds as cmds;cmds.deleteUI(\"' + w +
                         '\", window=True)'))
    cmds.text(label="")
    cmds.button(label='Help',
                c=lambda *args: cmds.launch(
                    webPage='https://www.solidangle.com/support/licensing/'))

    cmds.setParent('..')

    cmds.showWindow(w)
Esempio n. 57
0
 def create_UI(self):
     ## 윈도우 ID##
     windowID = 'short_UI'
     ##windows reset
     if cmds.window(windowID, ex=True):
         cmds.deleteUI(windowID)
     cmds.window(windowID,
                 t='short_UI',
                 rtf=True,
                 s=True,
                 mnb=True,
                 mxb=True,
                 wh=(30, 30))
     ##master layer
     master = cmds.columnLayout()
     cmds.columnLayout()
     ##싱글 텍스트필드
     #cmds.rowColumnLayout( nc=1 )
     cmds.button(l=u'pose import',
                 w=300,
                 h=30,
                 c=pm.Callback(self.import_short_skirt))
     #cmds.rowColumnLayout( nc=1 )
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'controller count', w=100)
     #cmds.textField('number_tex_box' , w = 30 , h = 20 , tx = '9', textChangedCommand='skirt_command.change_number()') # textChangedCommand는 ui에서 text를 바꿀때 커멘드입력이 안돼도 실시간으로 쿼리가능
     cmds.textField('number_tex_box', w=30, h=20, tx='7')
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'total', w=100)
     cmds.textField('total_tex_box', w=150, h=20, tx='world_M_CTL')
     cmds.button(l=u'등록', w=50, c=pm.Callback(self.sels_tex, 'total'))
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'hip', w=100)
     cmds.textField('hip_tex_box', w=150, h=20, tx='root_M_skinJNT')
     cmds.button(l=u'등록', w=50, c=pm.Callback(self.sels_tex, 'hip'))
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'spline01', w=100)
     cmds.textField('spn_01_tex_box', w=150, h=20, tx='spine_01_M_skinJNT')
     cmds.button(l=u'등록', w=50, c=pm.Callback(self.sels_tex, 'spn'))
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'L_Leg', w=100)
     cmds.textField('L_leg_tex_box', w=150, h=20, tx='leg_L_skinJNT')
     cmds.button(l=u'등록', w=50, c=pm.Callback(self.sels_tex, 'L_leg'))
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'L_Knee', w=100)
     cmds.textField('L_knee_tex_box', w=150, h=20, tx='knee_L_skinJNT')
     cmds.button(l=u'등록', w=50, c=pm.Callback(self.sels_tex, 'L_knee'))
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'R_Leg', w=100)
     cmds.textField('R_leg_tex_box', w=150, h=20, tx='leg_R_skinJNT')
     cmds.button(l=u'등록', w=50, c=pm.Callback(self.sels_tex, 'R_leg'))
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'R_Knee', w=100)
     cmds.textField('R_knee_tex_box', w=150, h=20, tx='knee_R_skinJNT')
     cmds.button(l=u'등록', w=50, c=pm.Callback(self.sels_tex, 'R_knee'))
     cmds.setParent(master)
     cmds.button(l=u'배치', w=301, h=30, c=pm.Callback(self.pose_position))
     cmds.setParent(master)
     cmds.button(l=u'연결', w=301, h=30, c=pm.Callback(self.skirt_connect))
     cmds.setParent(master)
     cmds.showWindow(windowID)
Esempio n. 58
0
def floatSliderColumn(allWidth):

    textWidth = allWidth / 3
    sliderWidth = allWidth - textWidth - 10

    return cmds.rowColumnLayout(nc=2, cw=[(1, textWidth), (2, sliderWidth)])
Esempio n. 59
0
 def create_UI(self):
     ## 윈도우 ID##
     windowID = 'long_UI'
     ##windows reset
     if cmds.window(windowID, ex=True):
         cmds.deleteUI(windowID)
     cmds.window(windowID,
                 t='long_UI',
                 rtf=True,
                 s=True,
                 mnb=True,
                 mxb=True,
                 wh=(30, 30))
     ##master layer
     master = cmds.columnLayout()
     cmds.columnLayout()
     ##싱글 텍스트필드
     #cmds.rowColumnLayout( nc=1 )
     cmds.button(l=u'pose import',
                 w=300,
                 h=30,
                 c=pm.Callback(self.import_long_skirt))
     #cmds.rowColumnLayout( nc=1 )
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'    *  leg, knee, ankle에 위치한 컨트롤러는 고정')
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     #cmds.text(l = u'up controller' ,w = 100)
     #cmds.textField('number_tex_box' , w = 30 , h = 20 , tx = '9', textChangedCommand='skirt_command.change_number()') # textChangedCommand는 ui에서 text를 바꿀때 커멘드입력이 안돼도 실시간으로 쿼리가능
     #cmds.textField('up number_tex_box' , w = 30 , h = 20 , tx = '2') # 기존 텍스트필드에 숫자입력방식
     cmds.intSliderGrp('up_segments',
                       w=300,
                       columnAttach=(1, 'left', 0),
                       columnWidth=(1, 97),
                       field=True,
                       l="    Up Segments",
                       max=10,
                       min=1,
                       value=2)
     # 슬라이드바 방식, columnAttach와 columnWidth는 정렬 옵션
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     # cmds.text(l = u'down controller' ,w = 100)
     # cmds.textField('down number_tex_box' , w = 30 , h = 20 , tx = '2') # 기존 텍스트필드에 숫자입력방식
     cmds.intSliderGrp('down_segments',
                       w=300,
                       columnAttach=(1, 'left', 0),
                       columnWidth=(1, 97),
                       field=True,
                       l="    Down Segments",
                       max=10,
                       min=1,
                       value=2)  # 슬라이드바 방식
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(
         l=u'   -----------------------------------------------------------------------'
     )
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'total', w=100)
     cmds.textField('total_tex_box', w=150, h=20, tx='world_M_CTL')
     cmds.button(l=u'등록', w=50, c=pm.Callback(self.sels_tex, 'total'))
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'hip', w=100)
     cmds.textField('hip_tex_box', w=150, h=20, tx='root_M_skinJNT')
     cmds.button(l=u'등록', w=50, c=pm.Callback(self.sels_tex, 'hip'))
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'spline01', w=100)
     cmds.textField('spn_01_tex_box', w=150, h=20, tx='spine_01_M_skinJNT')
     cmds.button(l=u'등록', w=50, c=pm.Callback(self.sels_tex, 'spn'))
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'L_Leg', w=100)
     cmds.textField('L_leg_tex_box', w=150, h=20, tx='leg_L_skinJNT')
     cmds.button(l=u'등록', w=50, c=pm.Callback(self.sels_tex, 'L_leg'))
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'L_Knee', w=100)
     cmds.textField('L_knee_tex_box', w=150, h=20, tx='knee_L_skinJNT')
     cmds.button(l=u'등록', w=50, c=pm.Callback(self.sels_tex, 'L_knee'))
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'L_Ankle', w=100)
     cmds.textField('L_ankle_tex_box', w=150, h=20, tx='ankle_L_skinJNT')
     cmds.button(l=u'등록', w=50, c=pm.Callback(self.sels_tex, 'L_ankle'))
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'R_Leg', w=100)
     cmds.textField('R_leg_tex_box', w=150, h=20, tx='leg_R_skinJNT')
     cmds.button(l=u'등록', w=50, c=pm.Callback(self.sels_tex, 'R_leg'))
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'R_Knee', w=100)
     cmds.textField('R_knee_tex_box', w=150, h=20, tx='knee_R_skinJNT')
     cmds.button(l=u'등록', w=50, c=pm.Callback(self.sels_tex, 'R_knee'))
     cmds.setParent(master)
     cmds.rowColumnLayout(nr=1)
     cmds.text(l=u'R_Ankle', w=100)
     cmds.textField('R_ankle_tex_box', w=150, h=20, tx='ankle_R_skinJNT')
     cmds.button(l=u'등록', w=50, c=pm.Callback(self.sels_tex, 'R_ankle'))
     cmds.setParent(master)
     cmds.button(l=u'배치', w=301, h=30, c=pm.Callback(self.pose_position))
     cmds.setParent(master)
     cmds.button(l=u'연결', w=301, h=30, c=pm.Callback(self.skirt_connect))
     cmds.setParent(master)
     cmds.showWindow(windowID)
Esempio n. 60
0
reload(fkr)
reload(gn)
reload(ikr)

#check to see if window exists
if mc.window("KiwTool", exists = True):
	mc.deleteUI("KiwTool")
#create window
ToolWindow = mc.window("KiwTool", title = "Kiw's RigTool", mnb = True, widthHeight=(200, 55))
#create a main layout
mainLayout = mc.columnLayout ()

######## setupGroup rig ###########

setupGroupLayout = mc.frameLayout (w = 1100, label = "Setup Group", collapse = True, collapsable = True, parent = mainLayout)
mc.rowColumnLayout( numberOfColumns=1,  rowSpacing = (1, 3))
mc.text( label='Setup Group' )

rbnColmnSpacingList = list(map(lambda num : (num + 1, 3), range(0,10)))
    
mc.rowColumnLayout( numberOfColumns=10, rowSpacing = (1,5), columnSpacing = rbnColmnSpacingList)

mc.text( label='placemant Radius :' )
placemantRadius = mc.floatField(editable = True, v = 8.0)

mc.button(label = 'Setup Group', command = 'grpSetup()')

######## rbn rig ###########

ribbonLayout = mc.frameLayout (w = 1100, label = "Ribbon Rig", collapse = True, collapsable = True, parent = mainLayout)
mc.rowColumnLayout( numberOfColumns=1,  rowSpacing = (1, 3))