def create_comment(self, *args): cmds.window('comment_win') cmds.columnLayout() cmds.text(l='Enter in new comment') self.new_comment_field = cmds.scrollField() add = cmds.button(l='Add', c=self.add_comment) cmds.showWindow('comment_win')
def animTools(): #create simple button based GUI for now if (cmds.window('zbw_animToolsUI', exists=True)): cmds.deleteUI('zbw_animToolsUI', window=True) cmds.windowPref('zbw_animToolsUI', remove=True) window=cmds.window('zbw_animToolsUI', widthHeight=(350,200), title='zbw_animTools') cmds.columnLayout(cal='center') #cmds.intFieldGrp('zbw_offsetValue', cal=(1,'left'), label='frequency(frames)', value1=5) #CREATE FRAME RANGE AREA (WHICH FRAMES ARE WE DOING?) #WHEN THAT HAPPENS, WHAT DO WE DO WITH THE FRAMES AFTER THAT? (PROBABLY NOTHING. . . LET USER WORRY ABOUT IT) #checkbox for random freq #cmds.checkBoxGrp('zbw_animNoiseRandom', cal=(1,'left'), cw=(1, 175),label='random frequency on', value1=0, cc=zbw_animNoiseRandom) cmds.text('zbw_offsetAnim') cmds.button('zbw_offsetAnimButton', label='offsetAnim', width=75, command=zbw_offsetAnim) cmds.text('zbw_pullDownAnimButton') cmds.button('zbw_pullDownAnim', label='pullDownAnim', width=75, command=zbw_pullDownAnim) cmds.text('zbw_pullUpAnimButton') cmds.button('zbw_pullUpAnimButton', label='pullUpAnim', width=75, command=zbw_pullUpAnim) cmds.text('zbw_randomizeKeys') cmds.button('zbw_randomizeKeysButton', label='randomizeKeys', width=75, command=zbw_randomizeKeys) cmds.text('zbw_animNoise') cmds.button('zbw_animNoiseButton', label='animNoise', width=75, command=zbw_animNoise) cmds.text('zbw_playblast') cmds.button('zbw_playblastButton', label='playblast', width=75, command=zbw_playblast) cmds.text('zbw_stepAll') cmds.button('zbw_stepAllButton', label='stepAll', width=75, command=zbw_stepAll) cmds.text('zbw_cleanKeys') cmds.button('zbw_cleanKeysButton', label='cleanKeys', width=75, command=zbw_stepAll) cmds.text('zbw_changeFrameRate') cmds.button('zbw_changeFrameRate', label='frameRate', width=75, command=zbw_changeFrameRate) cmds.showWindow(window)
def showUI(): win = 'lsWireOffset_window' # if window exists, delete if mc.window(win, ex=True): mc.deleteUI(win, wnd=True) # delete window prefs... if you want... mc.windowPref(win, remove=True) # create window mc.window(win, t='lsWireOffset v0.1', wh=(200,335), mxb=False) # main column mainCol = mc.columnLayout(columnAttach=('both', 5), rowSpacing=10, columnWidth=200) # creation frame createFrm = mc.frameLayout(p=mainCol, cl=False, l='Create New Module') createCol = mc.columnLayout(columnAttach=('both', 5), rowSpacing=5, columnWidth=188) nameTxtFld = mc.textFieldGrp( label='Name: ', text='', cw2=(40,125), p=createCol) mc.text(l='Select edge loop OR \n vertices and...') creationBtn = mc.button(l='Create', c="lsWireOffset.ui.createNew('%s')"%nameTxtFld) # edit frame editFrm = mc.frameLayout(p=mainCol, cl=False, l='Edit Existing Modules') editCol = mc.columnLayout(columnAttach=('both', 5), rowSpacing=5, columnWidth=188) scrollList = mc.textScrollList(win+'_wTSL') refreshTSL(scrollList) # popop menu for right click mc.popupMenu(win+'_wTSL_MM', p=scrollList, mm=True, button=3, pmc=buildMM) mc.showWindow(win)
def ruMainWindow(): ruWin = "riggUtils" if mc.window(ruWin,q=True,ex=True): mc.deleteUI(ruWin) mc.window(ruWin,title = "Rigging Utilities") mc.scrollLayout(horizontalScrollBarThickness=16) ruMainColumn = mc.columnLayout(columnAttach=("both",5),rowSpacing=10,columnWidth=320) mc.frameLayout(label="General",bs="etchedOut",w=300,mw=5,cll=1) mc.button(label='Show Axis',command='mc.toggle(state=True, localAxis=True)') mc.button(label='Hide Axis',command='mc.toggle(state=False, localAxis=True)') mc.frameLayout(label="Non T-Pose joint placer",bs="etchedOut",w=300,mw=5,cll=1,p=ruMainColumn) mc.columnLayout(rs=5,adj=1) mc.button(l="Create Helper Locator",c =ruCreateLocator) mc.button(l="Create Joint on Helper Locator",c =ruCreateJointLocator) mc.floatSliderGrp("ruJointRadius",en=1,label="Joint Radius",field=True,minValue=0,maxValue=5,fieldMinValue=0,fieldMaxValue=5,value=0.5,cw3=(70,30,10),dc=ruJointRadius) mc.frameLayout(label="Fingers Utils",bs="etchedOut",w=300,mw=5,cll=1,p=ruMainColumn) mc.columnLayout(rs=5,adj=1) mc.floatSliderGrp("ruJointOrientation",en=1,label="Finger Orient",field=True,minValue=0,maxValue=5,fieldMinValue=0,fieldMaxValue=5,value=0.5,cw3=(70,30,10),dc=ruOrientJoint) mc.frameLayout(label="Finger Renaming",bs="etchedOut",w=300,mw=5,cll=1) mc.optionMenu('ruFinger',l='Choose finger') mc.menuItem(l='Thumb') mc.menuItem(l='Index') mc.menuItem(l='Middle') mc.menuItem(l='Ring') mc.menuItem(l='Pinky') mc.textFieldButtonGrp( label='Template string', text='', buttonLabel='Rename', bc=ruRenameFinger, cw3=[120,70,70],ct3=['left','left','left'],co3=[2,2,2] ) mc.showWindow(ruWin)
def zbw_offsetAnim(*args): """creates offset from first obj sel to last based on the entered offset value""" def zbw_runOffsetAnim(*args): #get frame range!!!!!! #get selection, check that they are tranforms sel = cmds.ls(sl=True,type="transform") selSize = int(len(sel)) #for each selection mult the index by the offset value for i in range(0,selSize): obj = sel[i] offsetRaw = cmds.intFieldGrp('zbw_offsetValue', q=True, v=True) offset = offsetRaw[0] multFactor = i * offset #shift the entire anim curve by the offset mult value cmds.keyframe(obj, edit=True,relative=True,timeChange=multFactor,time=(1,24)) #create UI, get offset value, frame range or all anim if (cmds.window('zbw_offsetAnimUI', exists=True)): cmds.deleteUI('zbw_offsetAnimUI', window=True) cmds.windowPref('zbw_offsetAnimUI', remove=True) window=cmds.window('zbw_offsetAnimUI', widthHeight=(350,200), title='zbw_offsetAnim') cmds.columnLayout(cal='center') cmds.intFieldGrp('zbw_offsetValue', cal=(1,'left'), label='frequency(frames)', value1=5) #CREATE FRAME RANGE AREA (WHICH FRAMES ARE WE DOING?) #WHEN THAT HAPPENS, WHAT DO WE DO WITH THE FRAMES AFTER THAT? (PROBABLY NOTHING. . . LET USER WORRY ABOUT IT) #checkbox for random freq (to give a random amount to offset each object) #cmds.checkBoxGrp('zbw_animNoiseRandom', cal=(1,'left'), cw=(1, 175),label='random frequency on', value1=0, cc=zbw_animNoiseRandom) cmds.button('zbw_offsetAnimGo', label='offset!', width=75, command=zbw_runOffsetAnim) cmds.showWindow(window)
def locatorParticlesUI(): """ """ # Define window locParticleUI = 'locatorParticleWindow' if cmds.window(locParticleUI, q=True, ex=True): cmds.deleteUI(locParticleUI) locParticleUI = cmds.window(locParticleUI, t='Generate Particles') # UI Layout cmds.columnLayout(adj=False, cal='left') partiTFG = cmds.textFieldGrp('locParticle_particleTFG', label='Particle', text='', cw=[(1, 100)]) radiusFFG = cmds.floatSliderGrp('locParticle_radiusFSG', label='radius', f=True, min=0.1, max=10.0, fmn=0.01, fmx=100.0, pre=2, v=1.0, cw=[(1, 100)]) rotateLocCBG = cmds.checkBoxGrp('locParticle_rotateCBG', label='Add rotatePP', ncb=1, v1=0, cw=[(1, 100)]) scaleLocCBG = cmds.checkBoxGrp('locParticle_scaleCBG', label='Add scalePP', ncb=1, v1=0, cw=[(1, 100)]) selfCollideCBG = cmds.checkBoxGrp('locParticle_selfCollideCBG', label='self collide', ncb=1, v1=0, cw=[(1, 100)]) cmds.button(l='Create Particles', c='glTools.tools.generateParticles.locatorParticlesFromUI()') # Popup menu cmds.popupMenu(parent=partiTFG) for p in cmds.ls(type=['particle', 'nParticle']): cmds.menuItem(p, c='cmds.textFieldGrp("' + partiTFG + '",e=True,text="' + p + '")') # Show Window cmds.showWindow(locParticleUI)
def create(self): """ Draw the window """ # delete the window if its handle exists if cmds.window(self.window, exists=True): # deletes window. 'window' flag makes sure that deleted object is a window cmds.deleteUI(self.window, window=True) # initialize the window self.window = cmds.window(title=self.title, widthHeight=self.size, menuBar=True) # main form for the window self.mainForm = cmds.formLayout(numberOfDivisions=100) # create common menu items items and buttons self.commonMenu() self.commonButtons() # create a tabLayout self.optionsBorder = cmds.tabLayout(scrollable=True, tabsVisible=False, height=1) # Attach tabLayout to parent formLayout, and to control button cmds.formLayout(self.mainForm, edit=True, attachForm= ([self.optionsBorder, 'top', 0], [self.optionsBorder, 'left', 2], [self.optionsBorder, 'right', 2]), attachControl= ([self.optionsBorder, 'bottom', 5, self.applyBtn])) # new form to attach controls in displayOptions() self.optionForm = cmds.formLayout(numberOfDivisions=100) self.displayOptions() # Show the window cmds.showWindow(self.window)
def doIt( self, arglist ): wnd = cmds.window( "kgmEngineWindow_" + str(time.time()), widthHeight = ( 200, 200 ) ) #cmds.columnLayout( adjustableColumn = True ) #cmds.button( label = 'Export Map', command = kgmEngine.exportMap ) #cmds.button( label = 'Export Mesh', command = kgmEngine.exportMesh ) #cmds.button( label = 'Export Skeleton', command = kgmEngine.exportSkeleton ) #cmds.button( label = 'Export Animation', command = kgmEngine.exportAnimation ) #cmds.button( label = 'Insert Node', command = kgmEngine.insertNode ) cmds.columnLayout() cmds.rowColumnLayout( numberOfColumns = 2 ) cmds.checkBox( "Mesh", label="Mesh", value=False, onCommand=kgmEngine.enableMesh, offCommand=kgmEngine.enableMesh ) cmds.checkBox( "Material", label="Material", value=False, onCommand=kgmEngine.enableMaterial, offCommand=kgmEngine.enableMaterial ) cmds.checkBox( "Skeleton", label="Skeleton", value=False, onCommand=kgmEngine.enableSkeleton, offCommand=kgmEngine.enableSkeleton ) cmds.checkBox( "Animation", label="Animation", value=False, onCommand=kgmEngine.enableAnimation, offCommand=kgmEngine.enableAnimation ) cmds.columnLayout() cmds.rowColumnLayout( numberOfColumns = 2 ) cmds.columnLayout( adjustableColumn=True ) cmds.button( label = 'Export', command = kgmEngine.export ) cmds.button( label = 'Insert Node', command = kgmEngine.insertNode ) cmds.columnLayout() cmds.rowColumnLayout( numberOfColumns = 3 ) cmds.columnLayout( adjustableColumn=True ) cmds.radioCollection() cmds.radioButton( label='Bin', align='left', select=False ) cmds.radioButton( label='Xml', align='left', select=True ) #cmds.radioButtonGrp( label='Format', labelArray3=['Bin', 'Txt', 'Xml'], numberOfRadioButtons=3 ) #cmds.radioButton( 'Format', label='Bin', ) cmds.showWindow( wnd )
def particleLocatorsUI(): """ """ # Get current frame range start = cmds.playbackOptions(q=True, min=True) end = cmds.playbackOptions(q=True, max=True) # Define window particleLocatorsUI = 'particleLocatorsWindow' if cmds.window(particleLocatorsUI, q=True, ex=True): cmds.deleteUI(particleLocatorsUI) particleLocatorsUI = cmds.window(particleLocatorsUI, t='Generate Locators') # UI Layout cmds.columnLayout(adj=False, cal='left') partiTFG = cmds.textFieldGrp('partiLoc_particleTFG', label='Particle', text='', cw=[(1, 120)]) prefixTFG = cmds.textFieldGrp('partiLoc_prefixTFG', label='Prefix', text='', cw=[(1, 120)]) bakeAnicmdsBG = cmds.checkBoxGrp('partiLoc_bakeAnicmdsBG', label='Bake Animation', ncb=1, v1=0, cw=[(1, 120)]) startEndIFG = cmds.intFieldGrp('partiLoc_startEndISG', nf=2, label='Frame Range', v1=start, v2=end, cw=[(1, 120)]) rotateLocCBG = cmds.checkBoxGrp('partiLoc_rotateCBG', label='Rotate (rotatePP)', ncb=1, v1=0, cw=[(1, 120)]) scaleLocCBG = cmds.checkBoxGrp('partiLoc_scaleCBG', label='Scale (scalePP)', ncb=1, v1=0, cw=[(1, 120)]) cmds.button(l='Create Locators', c='glTools.tools.generateParticles.particleLocatorsFromUI()') # Popup menu cmds.popupMenu(parent=partiTFG) for p in cmds.ls(type=['particle', 'nParticle']): cmds.menuItem(p, c='cmds.textFieldGrp("' + partiTFG + '",e=True,text="' + p + '")') # Show Window cmds.showWindow(particleLocatorsUI)
def setAttributeVectorUI(): global tfXIn, tfXOut, tfYIn, tfYOut, tfZIn, tfZOut, tslVectorList, tfXAdd, tfYAdd, tfZAdd, vectorUI vectorUI = 'vectorUI' closeUI(vectorUI) cmds.window(vectorUI, title = 'vectorUI') cmds.columnLayout(columnAttach = ['both', 5], rowSpacing = 5, columnWidth = 210) cmds.text('..: random range :..', backgroundColor = [0.15, 0.15, 0.0]) cmds.gridLayout(numberOfColumns = 6, cellWidthHeight = (33, 20)) tfXIn = cmds.textField(text = '0.0', backgroundColor = [0.15, 0.1, 0.0]) tfXOut = cmds.textField(text = '1.0', backgroundColor = [0.15, 0.1, 0.0]) tfYIn = cmds.textField(text = '0.0', backgroundColor = [0.0, 0.15, 0.1]) tfYOut = cmds.textField(text = '1.0', backgroundColor = [0.0, 0.15, 0.1]) tfZIn = cmds.textField(text = '0.0', backgroundColor = [0.0, 0.1, 0.15]) tfZOut = cmds.textField(text = '1.0', backgroundColor = [0.0, 0.1, 0.15]) cmds.setParent('..') cmds.button('ok', command = 'setAttributeVectorRandom()') cmds.separator(style = 'out') cmds.text('..: vector list :..', backgroundColor = [0.0, 0.15, 0.15]) tslVectorList = cmds.textScrollList(allowMultiSelection = True) cmds.button('remove', command = 'removeScrollListVector()') cmds.gridLayout(numberOfColumns = 4, cellWidthHeight = (50, 20)) tfXAdd = cmds.textField(text = '0.0', backgroundColor = [0.15, 0.1, 0.0]) tfYAdd = cmds.textField(text = '0.0', backgroundColor = [0.0, 0.15, 0.1]) tfZAdd = cmds.textField(text = '0.0', backgroundColor = [0.0, 0.1, 0.15]) cmds.button('add..', command = 'addScrollListVector()') cmds.setParent('..') cmds.button('random', command = 'setAttributeListVectorRandom()') cmds.button('increment %', command = 'setAttributeListVectorInc()') cmds.setParent('..') cmds.showWindow()
def __init__(s): with report.Report(): tracker = JointTracker() winName = "Orient_Joints" if cmds.window(winName, ex=True): cmds.deleteUI(winName) s.win = cmds.window(rtf=True, w=300, t="Orient Joints") cmds.columnLayout(adj=True) cmds.button( l="Attach Marker", h=50, c=Callback(tracker.addMarker), ann=""" Attach a Marker to the selected Joint. Rotate the marker into the desired joint rotation. """ ) cmds.button( l="Update Joints", h=50, c=Callback(tracker.orientJoints), ann=""" Rotate all joints that have markers to their respective rotations. """ ) cmds.showWindow(s.win) cmds.scriptJob(uid=[s.win, tracker.removeMarkers])
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)
def create(self): if cmds.window( WinA_Global.winName, ex=1 ): cmds.deleteUI( WinA_Global.winName, wnd=1 ) cmds.window( WinA_Global.winName, title= WinA_Global.title, titleBarMenu = WinA_Global.titleBarMenu ) form = cmds.formLayout() importPathForm = self.uiImportPath.create() importByMatrixForm = self.importByMatrix.create() buttonForm = self.uiButton.create() cmds.setParent( '..' ) cmds.formLayout( form, e=1, af=[(importPathForm, 'top', 8), (importPathForm, 'left', 0), (importPathForm, 'right', 0), (importByMatrixForm, 'left', 120 ), (importByMatrixForm, 'right', 0 ), (buttonForm, 'left', 0 ), (buttonForm, 'right', 0 )], ac=[(importByMatrixForm, 'top', 8, importPathForm), (buttonForm, 'top', 8, importByMatrixForm)] ) cmds.window( WinA_Global.winName, e=1, w= WinA_Global.width, h= WinA_Global.height, rtf=1 ) cmds.showWindow( WinA_Global.winName ) WinA_uiCmd.setUiDefault() WinA_uiCmd.loadInfo() WinA_uiCmd.setUiCommand()
def create(self): if cmds.window( Win_Global.winName, q=1, ex=1 ): cmds.deleteUI( Win_Global.winName ) cmds.window( Win_Global.winName, title= Win_Global.title ) formOuter = cmds.formLayout() stdForm = self.stdArea.create() rigForm = self.rigArea.create() followForm = self.followArea.create() addRigForm = self.addRigArea.create() cmds.setParent( '..' ) cmds.formLayout( formOuter, e=1, af = [ (stdForm, 'left', 5), (stdForm, 'right', 5), (stdForm, 'top', 5), (rigForm, 'left', 5), (rigForm, 'right', 5), (followForm, 'left', 5), (followForm, 'right', 5), (addRigForm, 'left', 5), (addRigForm, 'right', 5), (addRigForm, 'bottom', 5) ], ac = [ (rigForm, 'top', 5, stdForm ), (followForm, 'top', 5, rigForm ), (addRigForm, 'top', 5, followForm )] ) cmds.window( Win_Global.winName, e=1, width = Win_Global.width, height= Win_Global.height ) cmds.showWindow( Win_Global.winName ) Win_Global.loadInfo()
def UI(): if cmds.window("TressFXExporterUI", exists = True): cmds.deleteUI("TressFXExporterUI") windowTitle = 'TressFX Exporter' + ' ' + 'v' + tressfx_exporter_version window = cmds.window("TressFXExporterUI", title = windowTitle, w=280, h = 260, mnb=False, sizeable=False) mainLayout = cmds.columnLayout(w=280, h=260) cmds.separator(h=8, style='in') cmds.text(label='Number of vertices per strand (4, 8, 16, 32 or 64):', align='left') cmds.intField("numVerticesPerStrand", w=30, minValue=4, maxValue=64, value=16 ) cmds.separator(h=8, style='in') cmds.checkBox("bothEndsImmovable", label='Both ends immovable') cmds.checkBox("InvertZ", label='Invert Z', value = True) cmds.checkBox("exportSkinCheckBox", label='Export skin data', value = False) cmds.checkBox("randomStrandCheckBox", label='Randomize strands for LOD', value = True) cmds.separator(h=15) cmds.button(label="Set the base mesh", w=170, h=30, command=SetBaseMesh) cmds.textField("MeshNameLabel", w=170, editable=False) cmds.separator(height=10, style='none') cmds.button(label="Export as binary (*.tfx)", w=170, h=30, command=ExportBinary) cmds.separator(h=15) version_text = 'v' + tressfx_exporter_version cmds.text(label=version_text, align='left') global selected_mesh_shape_name selected_mesh_shape_name = '' cmds.showWindow(window)
def addMultiAttr(): #Create a variable for the window name winName = 'blend' winTitle = 'rh_addMultiAttr' #Delete the window if it exists if cmds.window(winName, exists=True): cmds.deleteUI(winName, window=True) #Build the main window cmds.window(winName, title=winTitle, sizeable=True) cmds.textFieldButtonGrp('Obj',label='Object :', text='', ed = False,buttonLabel='Load Sel',bc = 'sel()') cmds.columnLayout(adjustableColumn=True) cmds.textFieldGrp('Attr',l='Attribute:',text='') cmds.columnLayout(adjustableColumn=True) cmds.floatFieldGrp('minAttr', numberOfFields=1, label='Min Value', value1=0) cmds.columnLayout(adjustableColumn=True) cmds.floatFieldGrp('maxAttr', numberOfFields=1, label='Max Value', value1=0) cmds.columnLayout(adjustableColumn=True) cmds.button(label='Contact', command='Connect()') cmds.columnLayout(adjustableColumn=True) #Show the window cmds.showWindow(winName) cmds.window(winName, edit=True, width=300, height=120)
def create(self): if cmds.window( Win_Global.winName, q=1, ex=1 ): cmds.deleteUI( Win_Global.winName ) cmds.window( Win_Global.winName, title=Win_Global.title ) form = cmds.formLayout() text = cmds.text( l= "Select joint tops", al='center', h=30, bgc=[.5,.5,.5] ) check = cmds.checkBox( l='Add Pin Control' ) controllerName = self.ui_controllerName.create() colorIndex = self.ui_colorIndex.create() controllerSize = self.ui_controllerSize.create() button = self.ui_buttons.create() cmds.setParent( '..' ) cmds.formLayout( form, e=1, af=[ (text, 'top', 0 ), (text, 'left', 0 ), (text, 'right', 0 ), (check, 'top', 5 ), (check, 'left', 10 ), (check, 'right', 0 ), (controllerName, 'left', 10 ), (controllerName, 'right', 5 ), (colorIndex, 'left', 10 ), (colorIndex, 'right', 5 ), (controllerSize, 'left', 10 ), (controllerSize, 'right', 5 ), (button, 'left', 0 ), (button, 'right', 0 ), (button, 'bottom', 0 )], ac=[ (check, 'top', 5, text), (controllerName, 'top', 5, check), (colorIndex, 'top', 5, controllerName), (controllerSize, 'top', 5, colorIndex), (button, 'top', 5, controllerSize) ] ) cmds.window( Win_Global.winName, e=1, width = Win_Global.width, height = Win_Global.height, rtf=1 ) cmds.showWindow( Win_Global.winName ) Win_Global.checkBox = check
def __init__(self) : # get the currently selected objects and make sure we have only one object selected = OM.MSelectionList() OM.MGlobal.getActiveSelectionList(selected) self.selectedObjects = [] selected.getSelectionStrings(self.selectedObjects) if len(self.selectedObjects) == 0 : cmds.confirmDialog( title='No objects Selected', message='Select a Mesh Object', button=['Ok'], defaultButton='Ok', cancelButton='Ok', dismissString='Ok' ) elif len(self.selectedObjects) > 1 : cmds.confirmDialog( title='Select One Object', message='Only One Mesh mat be exported at a time', button=['Ok'], defaultButton='Ok', cancelButton='Ok', dismissString='Ok' ) # now we have the correct criteria we can proceed with the export else : # get the start and end values for our UI sliders anim=OMA.MAnimControl() minTime=anim.minTime() maxTime=anim.maxTime() self.m_start=int(minTime.value()) self.m_end=int(maxTime.value()) # now we create a window ready to populate the components self.m_window = cmds.window( title='NCCA Pointbake Export' ) # create a layout cmds.columnLayout() # create two sliders for start and end we also attach methods to be called when the slider # changes self.m_startSlider=cmds.intSliderGrp( changeCommand=self.startChanged,field=True, label='Start Frame', minValue=self.m_start, maxValue=self.m_end, fieldMinValue=self.m_start, fieldMaxValue=self.m_end, value=self.m_start ) self.m_endSlider=cmds.intSliderGrp( changeCommand=self.endChanged ,field=True, label='End Frame', minValue=self.m_start, maxValue=self.m_end, fieldMinValue=self.m_end, fieldMaxValue=self.m_end, value=self.m_end ) # create a button and add the method called when pressed cmds.button( label='Export', command=self.export ) # finally show the window cmds.showWindow( self.m_window )
def create(self): if cmds.window( self.winName, ex=1 ): cmds.deleteUI( self.winName, wnd=1 ) cmds.window( self.winName, title= self.title ) form = cmds.formLayout() field_meshForm = self.field_mesh.create() field_uvForm = self.field_uv.create() checkForm = self.check.create() buttons_form = self.buttons.create() cmds.setParent( '..' ) cmds.formLayout( form, e=1, af=[(field_meshForm, 'top', 0 ), ( field_meshForm, 'left', 0 ), ( field_meshForm, 'right', 0 ), (field_uvForm, 'left', 0 ), ( field_uvForm, 'right', 0 ), (checkForm, 'left', 0 ), (checkForm, 'right', 0 ), (buttons_form, 'left', 0 ), ( buttons_form, 'right', 0 ) ], ac=[(field_uvForm, 'top', 0, field_meshForm ), (checkForm, 'top', 0, field_uvForm), (buttons_form, 'top', 0, checkForm )]) cmds.window( self.winName, e=1, w=self.width, h=self.height ) cmds.showWindow( self.winName ) self.setTextInfomation() self.popupSetting() self.buttonCommandSetting()
def setupRLUI(): if cmds.window("RLWin", exists=True): cmds.deleteUI("RLWin") widgets["win"] = cmds.window("RLWin", t="zbw_setupRL", w=200, h=400) widgets["mainCL"] = cmds.columnLayout(w=200) widgets["mainFrame"] = cmds.frameLayout(l="Create Render Layers", w=200, cll=True, bgc=(.2,.2,.2)) widgets["CarKey"] = cmds.checkBox(l="Car_Env", v=True) widgets["CarEnv"] = cmds.checkBox(l="Car_Key", v=True) widgets["BGKey"] = cmds.checkBox(l="BG_Env", v=True) widgets["BGEnv"] = cmds.checkBox(l="BG_Key", v=True) widgets["AO"] = cmds.checkBox(l="All_AO", v=True) widgets["MatteA"] = cmds.checkBox(l="All_MatteA", v=True) widgets["MatteB"] = cmds.checkBox(l="All_MatteB", v=True) widgets["MoVec"] = cmds.checkBox(l="All_MoVec", v=True) widgets["Shadow"] = cmds.checkBox(l="All_Shadow", v=True) widgets["createBut"] = cmds.button(l="Create Layers", w=200, h=40, bgc=(.6,.8,.6), c=createRL) cmds.text("NOTE: this is setting the overrides for \nthe moVec layer RG's and materials \n(if you have them in scene\n for the AO and Movec layers but \n NO passes are set up") cmds.separator(h=20, style = "double") #widgets["copyBut"] = cmds.button(l="Copy Selected Layer", w=200, h=40, bgc=(.8,.8,.6), c=copyRL) #cmds.separator(h=20, style = "double") widgets["importBut"] = cmds.button(l="Import RL Shaders File", w=200, h=40, bgc=(.8,.6,.6), c=importRL) cmds.showWindow(widgets["win"]) cmds.window(widgets["win"], e=True, w=200, h=400)
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
def secondaryUI(): sec_UIname = 'secondary' if cmds.window(sec_UIname,exists = True): cmds.deleteUI(sec_UIname) cmds.window(sec_UIname,title = 'rosa_secondary') clmLot = cmds.columnLayout( adjustableColumn=True) cmds.textField('ctrl_name',text = 'ctrl_name') cmds.button('createctrl',label = 'create ctrl',h = 30,c = 'ctrl()') cmds.button('load_model',label = 'load "org" model',c = 'load_org()') cmds.textField('org_model',text = '"org" model') cmds.button('load_property_obj',label = 'loading property add object',c = 'load_vis()') cmds.textField('vis',text = 'Visibility') # flLot = cmds.flowLayout(columnSpacing = 6) cmds.text(label = 'ctrl axial:') cmds.radioCollection() cmds.radioButton('follic',label = 'follic',select = 0) cmds.radioButton('Custom',label = 'Custom',select = 1) # cmds.setParent( clmLot) cmds.button(label = 'Generate',c = 'secondary_add()') cmds.button('add_ctrl',label = 'add controller',c = 'add_controller()') cmds.button('Add_modelSec',label = 'Add_modelSec',c = 'Add_modelSec()') cmds.button(label = 'inverse_connect',c = 'inverse_connect01()') # cmds.frameLayout( label='modify ctrl:',borderStyle='etchedOut') cmds.setParent( clmLot) cmds.button(label = 'loding want to modify the controller',c = 'load_ctrl()') cmds.textField('sec_ctrl',text = 'secondary_ctrl') cmds.button(label = 'modify the controller position',c = 'ctrl_modify()') cmds.button(label = 'complete controller modifies',c = 'modify_complete()') cmds.showWindow()
def smoothEdgeLineUI(): """ Smooth Edge Line UI """ # Window window = 'smoothEdgesUI' if cmds.window(window, q=True, ex=1): cmds.deleteUI(window) window = cmds.window(window, t='Smooth Edge Line', s=True) # Layout CL = cmds.columnLayout() # UI Elements cmds.intSliderGrp('smoothEdges_smoothISG', label='Smooth', field=True, minValue=1, maxValue=20, fieldMinValue=1, fieldMaxValue=100, value=4) cmds.floatSliderGrp('smoothEdges_falloffFSG', label='Falloff Distance', field=True, precision=3, minValue=0.0, maxValue=10.0, fieldMinValue=0.0, fieldMaxValue=100.0, value=0.01) cmds.checkBoxGrp('smoothEdges_edgeSpacingCBG', label='Maintain Edge Spacing', numberOfCheckBoxes=1, v1=False) cmds.checkBoxGrp('smoothEdges_snapToOrigCBG', label='Maintain Shape', numberOfCheckBoxes=1, v1=False) # columnWidth2=[100,165] cmds.checkBoxGrp('smoothEdges_deleteHistoryCBG', label='Delete History', numberOfCheckBoxes=1, v1=False) cmds.button('smoothEdgesB', l='Smooth', w=390, c='glTools.model.straightenVerts.smoothEdgeLineFromUI()') # Show Window cmds.window(window, e=True, wh=[392, 115]) cmds.showWindow(window)
def evenEdgeSpacingUI(): """ Even Edge Spacing UI """ # Window window = 'evenEdgeSpacingUI' if cmds.window(window, q=True, ex=1): cmds.deleteUI(window) window = cmds.window(window, t='Even Edge Spacing', s=True) # Layout CL = cmds.columnLayout() # UI Elements cmds.intSliderGrp('evenEdgeSpacing_smoothISG', label='Smooth', field=True, minValue=0, maxValue=20, fieldMinValue=0, fieldMaxValue=100, value=4) cmds.floatSliderGrp('evenEdgeSpacing_influenceFSG', label='Influence', field=True, minValue=0.0, maxValue=1.0, fieldMinValue=0.0, fieldMaxValue=1.0, value=1.0) cmds.checkBoxGrp('evenEdgeSpacing_snapToOrigCBG', label='Maintain Shape', numberOfCheckBoxes=1, v1=False) # columnWidth2=[100,165] cmds.checkBoxGrp('evenEdgeSpacing_deleteHistoryCBG', label='Delete History', numberOfCheckBoxes=1, v1=False) cmds.button('evenEdgeSpacingB', l='Even Edge Spacing', w=390, c='glTools.model.straightenVerts.evenEdgeSpacingFromUI()') # Show Window cmds.window(window, e=True, wh=[392, 99]) cmds.showWindow(window)
def createMayaWindow(title, new, brand="studio.coop", tooltip="introduction to the UI"): if cmds.window(title, exists=True): if not new: cmds.showWindow(title) return None, True cmds.deleteUI(title, wnd=True) # delete old window mWindow = mayaUI() mWindow.setWindowTitle(title) mWindow.setObjectName(title) mWindow.setWindowFlags(QtCore.Qt.Tool) # always on top (multiplatform) # Default UI elements """ Create the widgets for the dialog """ mWindow.header = QtGui.QLabel(title) mWindow.header.setAlignment(QtCore.Qt.AlignHCenter) mWindow.header.setFont(fontHeader) mWindow.header.setContentsMargins(10, 10, 10, 10) mWindow.brand = QtGui.QLabel(brand) mWindow.brand.setToolTip(tooltip) mWindow.brand.setStyleSheet("background-color: rgb(40,40,40); color: rgb(180,180,180); border:solid black 1px") mWindow.brand.setAlignment(QtCore.Qt.AlignHCenter) mWindow.brand.setGeometry(10, 10, 20, 20) mWindow.brand.setFont(fontFooter) print "window successfully created" return mWindow, False
def windowSHM(*args): if cmds.window("shdrmnWin", exists = 1): cmds.deleteUI("shdrmnWin") win = cmds.window("shdrmnWin", title = "Shader manager", w = 500, sizeable = 0) mainLayout = cmds.columnLayout (w = 500) cmds.rowColumnLayout(w = 500, nc = 4, parent = mainLayout ) cmds.textFieldGrp( 'getAiAttrField', text = 'mColor') cmds.button(label = "GET TX", w= 83, h = 50, c = getTextureFromShader ) cmds.button(label = "SHOW TX", w= 83, h = 50, c = assignPREVShader) cmds.button(label = "TILE UV", w= 83, h = 50, c = setTileUV) cmds.rowColumnLayout(w = 500, nc = 1, parent = mainLayout ) cmds.button(label = "DELETE PREVIEW", w= 500, h = 50, c = deleteShaders, parent = mainLayout ) cmds.separator(height=10, parent = mainLayout) cmds.rowColumnLayout(w = 500, nc = 2, parent = mainLayout ) cmds.button(label = "GET MATERIALS", w= 250, h = 50, c = getMaterial ) cmds.button(label = "ASSIGN MATERIALS", w= 250, h = 50, c = asignMaterial ) cmds.showWindow(win)
def transfertSelectionToTarget_window(): """ This definition creates the 'Transfert Selection To Target' main window. """ cmds.windowPref(enableAll=False) if (cmds.window("transfertSelectionToTarget_window", exists=True)): cmds.deleteUI("transfertSelectionToTarget_window") cmds.window("transfertSelectionToTarget_window", title="Transfert Selection To Target", width=320) spacing = 5 cmds.columnLayout(adjustableColumn=True, rowSpacing=spacing) cmds.rowLayout(numberOfColumns=3, columnWidth3=(125, 150, 130), adjustableColumn=2, columnAlign=(2, "left"), columnAttach=[(1, "both", spacing), (2, "both", spacing), (3, "both", spacing)]) cmds.text(label="Target:") sources_textField = cmds.textField("target_textField") cmds.button("pickTarget_button", label="Pick Target!", command=pickTarget_button_OnClicked) cmds.setParent(topLevel=True) cmds.separator(style="single") cmds.button("transfertSelection_button", label="Transfert Selection!", command=transfertSelection_button_OnClicked) setUnsetContextHotkeys() scriptJob = cmds.scriptJob(uiDeleted=("transfertSelectionToTarget_window", setUnsetContextHotkeys), runOnce=True) cmds.showWindow("transfertSelectionToTarget_window") cmds.windowPref(enableAll=True)
def load_ui(): current_script_path = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) if (cmds.window('jt_autorig', exists=True)): cmds.deleteUI('jt_autorig') window = cmds.loadUI(uiFile=os.path.join(current_script_path, 'jt_autorig.ui')) cmds.showWindow(window)
def create(self): if cmds.window('uvShellAlignWindow', exists = True): cmds.deleteUI('uvShellAlignWindow') self.window = cmds.window(self.window, title = self.title, widthHeight = self.size) self.frameForm = cmds.frameLayout(label = " 1. 基準とする UVShell を選択して登録", bgc = (0.5, 0.3, 0.2), cll = False) self.setUVSBtn1 = cmds.button(label = "基準 UVShell を登録" , command = self.registUVBndBox1, height = 30 ) cmds.rowLayout( numberOfColumns = 1, adj = True) cmds.setParent("..") self.frameForm = cmds.frameLayout(label = " 2. 位置を揃えたい UVShell を選択して実行", bgc = (0.2, 0.3, 0.5), cll = False) self.distDcheckBox = cmds.radioButtonGrp('radioBtn', label = "", numberOfRadioButtons = 4 , sl = 1, cl4 = ['left','left','left','left'] , la4 = [ 'Left', 'Right', 'Bottom', 'Top'], adj = True) self.backupPathText = cmds.text("※ 2016/1/5 現在、複数UVを選択した状態での位置揃えには対応していません", font = "smallBoldLabelFont", align = 'left'); self.setUVSBtn2 = cmds.button(label = "選択した UVShell を揃える" , command = self.registUVBndBox2, height = 30 ) cmds.setParent("..") cmds.separator(width = self.width, style = 'in') cmds.text("【問い合わせ先】 : TAセクション.村岡", bgc = (0.2, 0.2, 0.2), align = 'left', width = self.width); cmds.setParent("..") cmds.showWindow()
def repathUI(): global eloadNameSpace global epathShader global epathAlembic global iloadNameSpace global ipathShader global ipathAlembic global uloadNameSpace global upathShader global upathAlembic global tabs wPathUI='EXPORPACO v1.1' if cmds.window(wPathUI, exists=True): cmds.deleteUI(wPathUI) cmds.deleteUI(tabs) cmds.deleteUI(tabl) wPathUI=cmds.window(wPathUI,title=wPathUI,resizeToFitChildren=True,s=1) tabs = cmds.tabLayout(innerMarginWidth=100, innerMarginHeight=5) #Creo columna de Export ecl1=cmds.columnLayout(parent=tabs,adjustableColumn=True,columnOffset=['both',5],rowSpacing=5 ) etx1=cmds.text("EXPORT ALEMBIC!!",parent=ecl1,bgc=(1,8,0)) ecl2=cmds.columnLayout(parent=ecl1) efl1=cmds.rowLayout(numberOfColumns=3,columnWidth3=[90,100,70],parent=ecl2) etx0=cmds.text("NAMESPACE->",h=25,parent=efl1) eloadNameSpace=cmds.textField(w=250,h=25,parent=efl1) efl2=cmds.rowLayout(numberOfColumns=3,columnWidth3=[90,100,70],parent=ecl2) etx2=cmds.text("FILE SHADER->",h=25,parent=efl2) epathShader=cmds.textField(w=250,h=25,parent=efl2) eloadBtnShd=cmds.button(w=100,label="SELECT FILE",c="PH_EXPORTPACO.selectDir()",parent=efl2) efl3=cmds.rowLayout(numberOfColumns=3,columnWidth3=[90,100,70],parent=ecl2) etx3=cmds.text("SAVE ALEMBIC->",h=25,parent=efl3) epathAlembic=cmds.textField(w=250,h=25,parent=efl3) eloadBtnAbc=cmds.button(w=100,label="SELECT FOLDER ",c="PH_EXPORTPACO.selectDir(F=False)",parent=efl3) cmds.setParent( '..' ) efixit=cmds.button(l="MANUEAL CREATE ALEMBIC", c="PH_EXPORTPACO.alembic()",w=70,h=80,bgc=(0.8,0.6,0),parent=ecl1) auto=cmds.button(l="AUTO CREATE ALEMBIC", c="PH_EXPORTPACO.automaticExport()",w=70,h=80,bgc=(0.8,0.6,0),parent=ecl1) cmds.setParent( '..' ) #Creo columna de Import icl1=cmds.columnLayout(parent=tabs,adjustableColumn=True,columnOffset=['both',5],rowSpacing=5 ) itx1=cmds.text("IMPORT ALEMBIC!!",parent=icl1,bgc=(0.5,0.8,1)) icl2=cmds.columnLayout(parent=icl1) ifl1=cmds.rowLayout(numberOfColumns=3,columnWidth3=[90,100,70],parent=icl2) itx0=cmds.text("NAMESPACE->",h=25,parent=ifl1) iloadNameSpace=cmds.textField(w=250,h=25,parent=ifl1) ifl2=cmds.rowLayout(numberOfColumns=3,columnWidth3=[90,100,70],parent=icl2) itx2=cmds.text("FILE SHADER->",h=25,parent=ifl2) ipathShader=cmds.textField(w=250,h=25,parent=ifl2) iloadBtnShd=cmds.button(w=100,label="SELECT FILE",c="PH_EXPORTPACO.selectDir(True)",parent=ifl2) ifl3=cmds.rowLayout(numberOfColumns=3,columnWidth3=[90,100,70],parent=icl2) itx3=cmds.text("FILE ALEMBIC->",h=25,parent=ifl3) ipathAlembic=cmds.textField(w=250,h=25,parent=ifl3) iloadBtnAbc=cmds.button(w=100,label="SELECT FILE",c="PH_EXPORTPACO.selectDir(F=False)",parent=ifl3) ifixit=cmds.button(l="IMPORT ALEMBIC", c="PH_EXPORTPACO.alembic()",w=70,h=80,bgc=(0.5,0.8,1),parent=icl1) #Creo columna de Update ucl1=cmds.columnLayout(parent=tabs,adjustableColumn=True,columnOffset=['both',5],rowSpacing=5 ) utx1=cmds.text("UPDATE ALEMBIC!!",parent=ucl1,bgc=(0.29,0.87,0.35)) ucl2=cmds.columnLayout(parent=ucl1) ufl1=cmds.rowLayout(numberOfColumns=3,columnWidth3=[90,100,70],parent=ucl2) utx0=cmds.text("NAMESPACE->",h=25,parent=ufl1) uloadNameSpace=cmds.textField(w=250,h=25,parent=ufl1) ufl2=cmds.rowLayout(numberOfColumns=3,columnWidth3=[90,100,70],parent=ucl2) ufl3=cmds.rowLayout(numberOfColumns=3,columnWidth3=[90,100,70],parent=ucl2) utx3=cmds.text("FILE ALEMBIC->",h=25,parent=ufl3) upathAlembic=cmds.textField(w=250,h=25,parent=ufl3) uloadBtnAbc=cmds.button(w=100,label="SELECT FILE ",c="PH_EXPORTPACO.selectDir()",parent=ufl3) fixit=cmds.button(l="UPDATE ALEMBIC", c="alembic()",w=70,h=80,bgc=(0.29,0.87,0.35),parent=ucl1) #Creo los Tabs tabl=cmds.tabLayout( tabs, edit=True, tabLabel=((ecl1, 'CREATE ALEMBIC'),(icl1, 'IMPORT ALEMBIC'),(ucl1, 'UPDATE ALEMBIC'))) cmds.showWindow(wPathUI)
def attachToMeshUI(): ''' UI for attachToMesh() ''' # Window window = 'attachToMeshUI' if mc.window(window,q=True,ex=1): mc.deleteUI(window) window = mc.window(window,t='Attach To Mesh') # Layout FL = mc.formLayout(numberOfDivisions=100) # UI Elements #--- # Surface meshTFB = mc.textFieldButtonGrp('attachToMeshTFB',label='Target Mesh',text='',buttonLabel='Load Selected') # Transform transformTFB = mc.textFieldButtonGrp('attachToMeshTransformTFB',label='Transform',text='',buttonLabel='Load Selected') # Transform prefixTFG = mc.textFieldGrp('attachToMeshPrefixTFG',label='Prefix',text='') # Orient orientCBG = mc.checkBoxGrp('attachToMeshOrientCBG',label='Orient To Face',ncb=1,v1=False) # Orient Frame orientFrameL = mc.frameLayout('attachToMeshOriFL',l='Orient Options',cll=0,en=0) orientFormL = mc.formLayout(numberOfDivisions=100) # OMG axList = ['X','Y','Z','-X','-Y','-Z'] orientNormAxisOMG = mc.optionMenuGrp('attachToMeshNormOMG',label='Normal Axis',en=False) for ax in axList: mc.menuItem(label=ax) orientTanAxisOMG = mc.optionMenuGrp('attachToMeshTanOMG',label='Tangent Axis',en=False) for ax in axList: mc.menuItem(label=ax) # Set Default Value mc.optionMenuGrp(orientTanAxisOMG,e=True,sl=2) mc.setParent('..') mc.setParent('..') # UI callback commands mc.textFieldButtonGrp(meshTFB,e=True,bc='glTools.ui.utils.loadMeshSel("'+meshTFB+'")') mc.textFieldButtonGrp(transformTFB,e=True,bc='glTools.ui.utils.loadObjectSel("'+transformTFB+'","'+prefixTFG+'")') mc.checkBoxGrp(orientCBG,e=True,cc='glTools.ui.utils.checkBoxToggleLayout("'+orientCBG+'","'+orientFrameL+'")') # Buttons snapB = mc.button('attachToMeshAttachB',l='Attach',c='glTools.ui.mesh.attachToMeshFromUI(False)') snapCloseB = mc.button('attachToMeshAttachCloseB',l='Attach and Close',c='glTools.ui.mesh.attachToMeshFromUI(True)') cancelB = mc.button('attachToMeshCancelB',l='Cancel',c='mc.deleteUI("'+window+'")') # Form Layout - MAIN mc.formLayout(FL,e=True,af=[(meshTFB,'top',5),(meshTFB,'left',5),(meshTFB,'right',5)]) mc.formLayout(FL,e=True,ac=[(transformTFB,'top',5,meshTFB)]) mc.formLayout(FL,e=True,af=[(transformTFB,'left',5),(transformTFB,'right',5)]) mc.formLayout(FL,e=True,ac=[(prefixTFG,'top',5,transformTFB)]) mc.formLayout(FL,e=True,af=[(prefixTFG,'left',5),(prefixTFG,'right',5)]) mc.formLayout(FL,e=True,ac=[(orientCBG,'top',5,prefixTFG)]) mc.formLayout(FL,e=True,af=[(orientCBG,'left',5),(orientCBG,'right',5)]) mc.formLayout(FL,e=True,ac=[(orientFrameL,'top',5,orientCBG)]) mc.formLayout(FL,e=True,af=[(orientFrameL,'left',5),(orientFrameL,'right',5)]) mc.formLayout(FL,e=True,ac=[(orientFrameL,'bottom',5,snapB)]) mc.formLayout(FL,e=True,ac=[(snapB,'bottom',5,snapCloseB)]) mc.formLayout(FL,e=True,af=[(snapB,'left',5),(snapB,'right',5)]) mc.formLayout(FL,e=True,ac=[(snapCloseB,'bottom',5,cancelB)]) mc.formLayout(FL,e=True,af=[(snapCloseB,'left',5),(snapCloseB,'right',5)]) mc.formLayout(FL,e=True,af=[(cancelB,'left',5),(cancelB,'right',5),(cancelB,'bottom',5)]) # Form Layout - Orient mc.formLayout(orientFormL,e=True,af=[(orientNormAxisOMG,'top',5),(orientNormAxisOMG,'left',5),(orientNormAxisOMG,'right',5)]) mc.formLayout(orientFormL,e=True,ac=[(orientTanAxisOMG,'top',5,orientNormAxisOMG)]) mc.formLayout(orientFormL,e=True,af=[(orientTanAxisOMG,'left',5),(orientTanAxisOMG,'right',5)]) # Show Window mc.showWindow(window)
def __init__(self): name = "cmt_orientjoints" if cmds.window(name, exists=True): cmds.deleteUI(name, window=True) if cmds.windowPref(name, exists=True): cmds.windowPref(name, remove=True) self.window = cmds.window(name, title="CMT Orient Joints", widthHeight=(358, 380)) cmds.columnLayout(adjustableColumn=True) margin_width = 4 cmds.frameLayout(bv=False, label="Operations", collapsable=True, mw=margin_width) cmds.rowColumnLayout(numberOfColumns=2, adj=1) self.insert_joint_field = cmds.intField(minValue=1, value=1) cmds.button(label="Insert Joints", c=self.insert_joints) cmds.setParent("..") cmds.setParent("..") cmds.frameLayout(bv=False, label="Quick Actions", collapsable=True, mw=margin_width) cmds.gridLayout(numberOfColumns=2, cellWidthHeight=(175, 65)) cmds.button(label="Make Planar Orientation", command=self.make_planar) cmds.button(label="Project to Planar Position", command=partial(make_position_planar)) cmds.button(label="Align Up With Child", command=self.align_with_child) cmds.button(label="Zero Orient", command=self.zero_orient) cmds.button(label="Orient to World", command=self.orient_to_world) cmds.rowColumnLayout(numberOfColumns=4) height = 20 label_width = 60 icon_left = "nudgeLeft.png" icon_right = "nudgeRight.png" cmds.text(label="Offset X", align="right", width=label_width) cmds.iconTextButton( style="iconOnly", image1=icon_left, label="spotlight", h=height, w=height, c=partial(self.offset_orient_x, direction=-1), ) self.offset_x = cmds.floatField(value=90.0) cmds.iconTextButton( style="iconOnly", image1=icon_right, label="spotlight", h=height, w=height, c=partial(self.offset_orient_x, direction=1), ) cmds.text(label="Offset Y", align="right", width=label_width) cmds.iconTextButton( style="iconOnly", image1=icon_left, label="spotlight", h=height, w=height, c=partial(self.offset_orient_y, direction=-1), ) self.offset_y = cmds.floatField(value=90.0) cmds.iconTextButton( style="iconOnly", image1=icon_right, label="spotlight", h=height, w=height, c=partial(self.offset_orient_y, direction=1), ) cmds.text(label="Offset Z", align="right", width=label_width) cmds.iconTextButton( style="iconOnly", image1=icon_left, label="spotlight", h=height, w=height, c=partial(self.offset_orient_z, direction=-1), ) self.offset_z = cmds.floatField(value=90.0) cmds.iconTextButton( style="iconOnly", image1=icon_right, label="spotlight", h=height, w=height, c=partial(self.offset_orient_z, direction=1), ) cmds.setParent("..") cmds.setParent("..") cmds.setParent("..") cmds.frameLayout(bv=False, label="Manual Orient", collapsable=True, mw=margin_width) cmds.columnLayout(adj=True) cmds.rowLayout(numberOfColumns=2, cw2=(150, 150)) self.reorient_children = cmds.checkBox(label="Reorient children", value=True, align="left") self.reset_orientation = cmds.checkBox(label="Reset orientation", value=True, align="left") cmds.setParent("..") cmds.gridLayout(numberOfColumns=2, cellWidthHeight=(175, 65)) cmds.button(label="Template Joints", command=partial(self.template_joints)) cmds.button(label="Rebuild Joints", command=partial(rebuild_joints)) cmds.setParent("..") cmds.setParent("..") cmds.setParent("..") cmds.showWindow(self.window)
import maya.cmds as cmds # We will use one line of PyMel import pymel.core as pm def buttonPressed(name): print "pressed %s!" % name # Using lambda win = cmds.window(title="My Window") layout = cmds.columnLayout() btn = cmds.button( command = lambda *args: buttonPressed('chad') ) cmds.showWindow() # Callback objects win = cmds.window(title="My Window") layout = cmds.columnLayout() names = [ 'chad', 'robert', 'james' ] for name in names: """ Lambda won't work inside a loop. We could use Callback if we switch over to PyMel for a moment. I realize this is a Python class but it is neat to get a taste of PyMel. """ pm.button( label=name, command = Callback( buttonPressed, name ) ) cmds.showWindow()
def tkFollicleAdjustUI(*args): ver = 0.1 colSilverDark = [0.08, 0.09, 0.10] colSilverMid = [0.23, 0.23, 0.23] colSilverLight = [0.39, 0.46, 0.50] colRed = [0.46, 0.39, 0.39] colGreen = [0.39, 0.46, 0.39] windowStartHeight = 50 windowStartWidth = 450 bh1 = 22 if (cmds.window('win_tkFollicleAdjust', exists=1)): cmds.deleteUI('win_tkFollicleAdjust') myWindow = cmds.window('win_tkFollicleAdjust', t=('tkFollicleAdjust ' + str(ver)), s=1) cmds.columnLayout(adj=1, bgc=(colSilverMid[0], colSilverMid[1], colSilverMid[2])) cmds.frameLayout('flFollicleAttributes', l='Follicle Attributes', bgc=(colSilverMid[0], colSilverMid[1], colSilverMid[2]), cll=1, cl=0, cc=partial(cShrinkWin, "win_tkFollicleAdjust")) cmds.rowColumnLayout(bgc=(colSilverMid[0], colSilverMid[1], colSilverMid[2]), nc=4, cw=[(1, 60), (2, 180), (3, 60), (4, 60)]) cmds.button(l='Read All', h=bh1, c=partial(tkGetAllFolAttrib), bgc=(colGreen[0], colGreen[1], colGreen[2])) cmds.text(' ') cmds.button(l='Default', h=bh1, c=partial(tkDefaultAllFolAttrib)) cmds.button(l='Set All', h=bh1, c=partial(tkSetAllFolAttrib), bgc=(colRed[0], colRed[1], colRed[2])) cmds.setParent('..') cmds.separator(bgc=(colSilverDark[0], colSilverDark[1], colSilverDark[2])) cmds.rowColumnLayout(bgc=(colSilverMid[0], colSilverMid[1], colSilverMid[2]), nc=4, cw=[(1, 60), (2, 180), (3, 60), (4, 60)]) cmds.button(l='Read', h=bh1, c=partial(tkGetFolAttrib, 'overrideDynamics'), bgc=(colGreen[0], colGreen[1], colGreen[2])) cmds.textField('overrideDynamics', tx='overrideDynamics', ed=0) cmds.checkBox('overrideDynamics', l='on') cmds.button(l='Set Values', h=bh1, c=partial(tkSetFolAttrib, 'overrideDynamics'), bgc=(colRed[0], colRed[1], colRed[2])) cmds.button(l='Read', h=bh1, c=partial(tkGetFolAttrib, 'stiffness'), bgc=(colGreen[0], colGreen[1], colGreen[2])) cmds.textField('stiffness', tx='stiffness', ed=0) cmds.floatField('stiffness', min=0, max=1, h=bh1, ed=1, bgc=(0, 0, 0)) cmds.button(l='Set Values', h=bh1, c=partial(tkSetFolAttrib, 'stiffness'), bgc=(colRed[0], colRed[1], colRed[2])) cmds.button(l='Read', h=bh1, c=partial(tkGetFolAttrib, 'damp'), bgc=(colGreen[0], colGreen[1], colGreen[2])) cmds.textField('damp', tx='damp', ed=0) cmds.floatField('damp', min=0, h=bh1, ed=1, bgc=(0, 0, 0)) cmds.button(l='Set Values', h=bh1, c=partial(tkSetFolAttrib, 'damp'), bgc=(colRed[0], colRed[1], colRed[2])) cmds.button(l='Read', h=bh1, c=partial(tkGetFolAttrib, 'clumpWidth'), bgc=(colGreen[0], colGreen[1], colGreen[2])) cmds.textField('clumpWidth', tx='clumpWidth', ed=0) cmds.floatField('clumpWidth', h=bh1, ed=1, bgc=(0, 0, 0)) cmds.button(l='Set Values', h=bh1, c=partial(tkSetFolAttrib, 'clumpWidth'), bgc=(colRed[0], colRed[1], colRed[2])) cmds.button(l='Read', h=bh1, c=partial(tkGetFolAttrib, 'clumpWidthMult'), bgc=(colGreen[0], colGreen[1], colGreen[2])) cmds.textField('clumpWidthMult', tx='clumpWidthMult', ed=0) cmds.floatField('clumpWidthMult', h=bh1, ed=1, bgc=(0, 0, 0)) cmds.button(l='Set Values', h=bh1, c=partial(tkSetFolAttrib, 'clumpWidthMult'), bgc=(colRed[0], colRed[1], colRed[2])) cmds.button(l='Read', h=bh1, c=partial(tkGetFolAttrib, 'densityMult'), bgc=(colGreen[0], colGreen[1], colGreen[2])) cmds.textField('densityMult', tx='densityMult', ed=0) cmds.floatField('densityMult', h=bh1, ed=1, bgc=(0, 0, 0)) cmds.button(l='Set Values', h=bh1, c=partial(tkSetFolAttrib, 'densityMult'), bgc=(colRed[0], colRed[1], colRed[2])) cmds.button(l='Read', h=bh1, c=partial(tkGetFolAttrib, 'curlMult'), bgc=(colGreen[0], colGreen[1], colGreen[2])) cmds.textField('curlMult', tx='curlMult', ed=0) cmds.floatField('curlMult', h=bh1, ed=1, bgc=(0, 0, 0)) cmds.button(l='Set Values', h=bh1, c=partial(tkSetFolAttrib, 'curlMult'), bgc=(colRed[0], colRed[1], colRed[2])) cmds.setParent('..') cmds.showWindow(myWindow)
def createWindow(): if cmds.window('MeshLightSetter',ex=True): cmds.deleteUI('MeshLightSetter') cmds.window('MeshLightSetter',t='MeshLight Setter',w=600,h=800) cmds.rowLayout(nc=2) cmds.frameLayout(l='aiTranslatorAttributes',w=450) cmds.formLayout('MeshLight_FormLayout') f1 = cmds.optionMenu('MeshLight_aiTranslator') cmds.menuItem(l='polymesh',p='MeshLight_aiTranslator') cmds.menuItem(l='mesh_light',p='MeshLight_aiTranslator') cmds.menuItem(l='procedural',p='MeshLight_aiTranslator') f2 = cmds.colorSliderGrp('MeshLight_aiColor',l='Color') f3 = cmds.floatFieldGrp('MeshLight_aiIntensity',l='Intensity') f4 = cmds.floatSliderGrp('MeshLight_aiExposure',l='Exposure',field=True) f5 = cmds.checkBox('MeshLight_aiUseTemp',l='Use Temperature') f6 = cmds.floatSliderGrp('MeshLight_aiTemperature',l='Temperature',minValue=0.0,maxValue=20000.0,field=True) f7 = cmds.checkBox('MeshLight_aiVisible',l='Light Visible') f8 = cmds.intFieldGrp('MeshLight_aiSample',l='Sample') f9 = cmds.checkBox('MeshLight_aiNormalize',l='Normalize') f10 = cmds.checkBox('MeshLight_aiCastShadows',l='Cast Shadows') f11 = cmds.floatSliderGrp('MeshLight_aiShadowDensity',l='ShadowDensity',minValue=0.0,maxValue=1.0,field=True) f12 = cmds.colorSliderGrp('MeshLight_aiShadowColor',l='Shadow Color') f13 = cmds.checkBox('MeshLight_aiCastVolumeShadow',l='Cast Volumeric Shadow') f14 = cmds.intFieldGrp('MeshLight_aiVolumeSample',l='Volume Sample') f15 = cmds.textFieldGrp('MeshLight_aiAov',l='AOV Group') f16 = cmds.rowLayout(nc=2) f17 = cmds.button(l='List LightGroup',c=lambda *args:refreshLightGroupMenu(),w=98) f18 = cmds.button(l='Set LightGroup',c=lambda *args:setLightGroupFromMenu(),w=98) cmds.setParent(u=True) f19 = cmds.textScrollList('MeshLight_LightGroupList',w=200,h=372) cmds.formLayout('MeshLight_FormLayout',e=True,af = [(f1,'top',0),(f1,'left',140), (f2,'top',22),(f2,'left',0), (f3,'top',44),(f3,'left',0), (f4,'top',66),(f4,'left',0), (f5,'top',88),(f5,'left',130), (f6,'top',110),(f6,'left',0), (f7,'top',132),(f7,'left',130), (f8,'top',154),(f8,'left',0), (f9,'top',176),(f9,'left',130), (f10,'top',198),(f10,'left',130), (f11,'top',220),(f11,'left',0), (f12,'top',242),(f12,'left',0), (f13,'top',264),(f13,'left',130), (f14,'top',286),(f14,'left',0), (f15,'top',308),(f15,'left',0), (f16,'top',333),(f16,'left',130), (f19,'top',360),(f19,'left',130) ]) cmds.setParent(u=True) cmds.setParent(u=True) cmds.frameLayout(l='Mesh Light List') cmds.rowLayout(nc=5) cmds.button(l='ALL MESH light',c=lambda *args:lightListRefresh(True)) cmds.button(l='Sel MESH Light',c=lambda *args:lightListRefresh(False)) cmds.textFieldGrp('MeshLight_Template',l='Template') cmds.button(l='Set Template',c=lambda *args:cmds.textFieldGrp('MeshLight_Template',e=True,tx=cmds.ls(sl=True,dag=True,ni=True,type='mesh')[0])) cmds.button(l='Convert!',c=lambda *args:convertMeshToMeshLight()) cmds.setParent(u=True) cmds.textScrollList('MeshLightList',w=600,h=700,ams=True) cmds.setParent(u=True) cmds.popupMenu('MeshLightListMenu',p='MeshLightList') cmds.menuItem(l='Select...',p='MeshLightListMenu',c=lambda *args:cmds.select([item for item in cmds.textScrollList('MeshLightList',q=True,si=True)])) cmds.showWindow('MeshLightSetter') cmds.textScrollList('MeshLightList',e=True,dcc=lambda *args:cmds.select(cmds.textScrollList('MeshLightList',q=True,si=True),r=True)) cmds.textScrollList('MeshLightList',e=True,sc=lambda *args:getMeshLightAttrsAndShow()) cmds.textScrollList('MeshLight_LightGroupList',e=True,dcc=lambda *args:selectLightByGroupName()) cmds.optionMenu(f1,e=True,cc=lambda *args:setMeshLightAttrsAndShow('translator')) cmds.colorSliderGrp(f2,e=True,cc=lambda *args:setMeshLightAttrsAndShow('color')) cmds.floatFieldGrp(f3,e=True,cc=lambda *args:setMeshLightAttrsAndShow('intensity')) cmds.floatSliderGrp(f4,e=True,cc=lambda *args:setMeshLightAttrsAndShow('exposure')) cmds.checkBox(f5,e=True,cc=lambda *args:setMeshLightAttrsAndShow('useTemp')) cmds.floatSliderGrp(f6,e=True,cc=lambda *args:setMeshLightAttrsAndShow('temp')) cmds.checkBox(f7,e=True,cc=lambda *args:setMeshLightAttrsAndShow('visible')) cmds.intFieldGrp(f8,e=True,cc=lambda *args:setMeshLightAttrsAndShow('sample')) cmds.checkBox(f9,e=True,cc=lambda *args:setMeshLightAttrsAndShow('normalize')) cmds.checkBox(f10,e=True,cc=lambda *args:setMeshLightAttrsAndShow('castShadows')) cmds.floatSliderGrp(f11,e=True,cc=lambda *args:setMeshLightAttrsAndShow('shadowDensity')) cmds.colorSliderGrp(f12,e=True,cc=lambda *args:setMeshLightAttrsAndShow('shadowColor')) cmds.checkBox(f13,e=True,cc=lambda *args:setMeshLightAttrsAndShow('castVolumeShadow')) cmds.intFieldGrp(f14,e=True,cc=lambda *args:setMeshLightAttrsAndShow('volumeSample')) cmds.textFieldGrp(f15,e=True,cc=lambda *args:setMeshLightAttrsAndShow('aiAov'))
def snapToMeshUI(): ''' UI for snapToMesh() ''' # Window window = 'snapToMeshUI' if mc.window(window,q=True,ex=1): mc.deleteUI(window) window = mc.window(window,t='Snap To Mesh') # Layout FL = mc.formLayout(numberOfDivisions=100) # UI Elements #--- # Mesh meshTFB = mc.textFieldButtonGrp('snapToMeshTFB',label='Target Mesh',text='',buttonLabel='Load Selected') # Orient orientCBG = mc.checkBoxGrp('snapToMeshOrientCBG',label='Orient To Face',ncb=1,v1=False) # ---------- # - Orient - # ---------- # Orient Frame orientFrameL = mc.frameLayout('snapToMeshOriFL',l='Orient Options',cll=0,en=0) orientFormL = mc.formLayout(numberOfDivisions=100) # OptionMenuGrp axList = ['X','Y','Z','-X','-Y','-Z'] orientNormAxisOMG = mc.optionMenuGrp('snapToMeshNormOMG',label='Normal Axis',en=False) for ax in axList: mc.menuItem(label=ax) orientUpVecAxisOMG = mc.optionMenuGrp('snapToMeshUpVecOMG',label='UpVector Axis',en=False) for ax in axList: mc.menuItem(label=ax) # Set Default Value mc.optionMenuGrp('snapToMeshUpVecOMG',e=True,sl=2) # Up Vector upVectorFFG = mc.floatFieldGrp('snapToMeshUpVecFFG',label='UpVector',nf=3,v1=0,v2=1,v3=0,en=0) upVectorObjectTFB = mc.textFieldButtonGrp('snapToMeshUpVecObjTFG',label='WorldUpObject',text='',buttonLabel='Load Selected',en=0) mc.setParent('..') mc.setParent('..') # UI callback commands mc.textFieldButtonGrp(meshTFB,e=True,bc='glTools.ui.utils.loadMeshSel("'+meshTFB+'")') mc.checkBoxGrp(orientCBG,e=True,cc='glTools.ui.utils.checkBoxToggleLayout("'+orientCBG+'","'+orientFrameL+'")') mc.textFieldButtonGrp(upVectorObjectTFB,e=True,bc='glTools.ui.utils.loadObjectSel("'+upVectorObjectTFB+'")') # Buttons snapB = mc.button('snapToMeshSnapB',l='Snap!',c='glTools.ui.mesh.snapToMeshFromUI(False)') snapCloseB = mc.button('snapToMeshSnapCloseB',l='Snap and Close',c='glTools.ui.mesh.snapToMeshFromUI(True)') cancelB = mc.button('snapToMeshCancelB',l='Cancel',c='mc.deleteUI("'+window+'")') # Form Layout - MAIN mc.formLayout(FL,e=True,af=[(meshTFB,'top',5),(meshTFB,'left',5),(meshTFB,'right',5)]) mc.formLayout(FL,e=True,ac=[(orientCBG,'top',5,meshTFB)],af=[(orientCBG,'left',5),(orientCBG,'right',5)]) mc.formLayout(FL,e=True,ac=[(orientFrameL,'top',5,orientCBG),(orientFrameL,'bottom',5,snapB)],af=[(orientFrameL,'left',5),(orientFrameL,'right',5)]) mc.formLayout(FL,e=True,ac=[(snapB,'bottom',5,snapCloseB)],af=[(snapB,'left',5),(snapB,'right',5)]) mc.formLayout(FL,e=True,ac=[(snapCloseB,'bottom',5,cancelB)],af=[(snapCloseB,'left',5),(snapCloseB,'right',5)]) mc.formLayout(FL,e=True,af=[(cancelB,'left',5),(cancelB,'right',5),(cancelB,'bottom',5)]) # Form Layout - Orient mc.formLayout(orientFormL,e=True,af=[(orientNormAxisOMG,'top',5),(orientNormAxisOMG,'left',5),(orientNormAxisOMG,'right',5)]) mc.formLayout(orientFormL,e=True,ac=[(orientUpVecAxisOMG,'top',5,orientNormAxisOMG)]) mc.formLayout(orientFormL,e=True,af=[(orientUpVecAxisOMG,'left',5),(orientUpVecAxisOMG,'right',5)]) mc.formLayout(orientFormL,e=True,ac=[(upVectorFFG,'top',5,orientUpVecAxisOMG)]) mc.formLayout(orientFormL,e=True,af=[(upVectorFFG,'left',5),(upVectorFFG,'right',5)]) mc.formLayout(orientFormL,e=True,ac=[(upVectorObjectTFB,'top',5,upVectorFFG)]) mc.formLayout(orientFormL,e=True,af=[(upVectorObjectTFB,'left',5),(upVectorObjectTFB,'right',5)]) # Show Window mc.showWindow(window)
def showUI(): """Build and show the main installer window. """ deleteExistingWindow(EULA_WIN) deleteExistingWindow(INSTALL_WIN) cmds.window(INSTALL_WIN, title="Install {}".format(MODULE_NAME), width=550, sizeable=False, resizeToFitChildren=True) layout = cmds.rowColumnLayout() showLogo() # ------------------------------------------------------------------ # paths # ------------------------------------------------------------------ cmds.frameLayout(label="Paths", width=550, collapsable=False, collapse=False, marginWidth=5, marginHeight=5) cmds.columnLayout(columnAlign="left", adjustableColumn=True) cmds.separator(style="none", height=5) cmds.text(INFO_TEXT, label="", align="center") cmds.separator(style="none", height=15) cmds.textFieldButtonGrp(CONTENT_PATH_FIELD, label="Install Path", buttonLabel="Select", columnAttach3=("left", "both", "right"), columnWidth3=(80, 405, 55), columnOffset3=(5, 0, 5), buttonCommand=selectContentPath) addFieldComment( "The path where all files of the module{} will be installed.".format( multiSuffix())) cmds.separator(style="none", height=5) cmds.textFieldButtonGrp(MODULE_PATH_FIELD, label="Module Path", buttonLabel="Select", columnAttach3=("left", "both", "right"), columnWidth3=(80, 405, 55), columnOffset3=(5, 0, 5), buttonCommand=selectModulePath) addFieldComment("The path where the {}.mod file{} will be saved.".format( MODULE_NAME, multiSuffix())) cmds.setParent(layout) cmds.separator(style="none", height=10) # ------------------------------------------------------------------ # progress # ------------------------------------------------------------------ cmds.frameLayout(label="Progress", width=550, collapsable=False, collapse=False, marginWidth=5, marginHeight=5) cmds.columnLayout(columnAlign="left") cmds.textScrollList(PROGRESS_LIST, width=537, height=120) cmds.setParent(layout) cmds.separator(style="none", height=10) # ------------------------------------------------------------------ # buttons # ------------------------------------------------------------------ form = cmds.formLayout(width=550) cmds.button(INSTALL_BUTTON, label="Install", width=150, height=30, command=performInstallation) cmds.button(UNINSTALL_BUTTON, label="Uninstall", width=150, height=30, command=performUninstall) cmds.button(HELP_BUTTON, label="Help", width=60, height=30, command=openHelp, enable=helpExists()) cmds.button(MODULE_BUTTON, label="Create .mod file{} only".format(multiSuffix()), width=150, height=30, command=performBuildModuleFiles) cmds.formLayout(form, edit=True, attachForm=[(INSTALL_BUTTON, "left", 0), (INSTALL_BUTTON, "bottom", 0), (UNINSTALL_BUTTON, "bottom", 0), (MODULE_BUTTON, "bottom", 0), (HELP_BUTTON, "right", 0), (HELP_BUTTON, "bottom", 0)], attachControl=[ (UNINSTALL_BUTTON, "left", 5, INSTALL_BUTTON), (MODULE_BUTTON, "left", 5, UNINSTALL_BUTTON) ], attachNone=[(HELP_BUTTON, "left")]) cmds.setParent(layout) cmds.showWindow(INSTALL_WIN)
def show(self): """ Opens the window. """ mc.showWindow(self.name)
def attrUI(*args): """UI for the script""" if cmds.window("attrWin", exists=True): cmds.deleteUI("attrWin") widgets["win"] = cmds.window("attrWin", t="zbw_attributes", h=370, w=250, s=True) widgets["tabLO"] = cmds.tabLayout() widgets["channelColLO"] = cmds.columnLayout("Object/Attr Controls", w=250, bgc=(.8, .8, .8)) widgets["lockFrLO"] = cmds.frameLayout(l="Lock/Hide", cll=True, w=250, bgc=(.7, .6, .6)) widgets["lockColLO"] = cmds.columnLayout(bgc=(.8, .8, .8)) #lock and hide controls #switch to Row column layout to break up the channels widgets["attrRCLO"] = cmds.rowColumnLayout(nc=2, cw=([1, 100], [2, 150])) widgets["transCB"] = cmds.checkBox(l="Translates", v=0, cc=partial(enableChannel, "transCB", "translateCBG")) widgets["translateCBG"] = cmds.checkBoxGrp(w=150, cw3=(50, 50, 50), ncb=3, l1="TX", l2="TY", l3="TZ", l4="Vis", va3=(0, 0, 0), bgc=(.5, .5, .5), en=False) widgets["rotCB"] = cmds.checkBox(l="Rotates", v=0, cc=partial(enableChannel, "rotCB", "rotateCBG")) widgets["rotateCBG"] = cmds.checkBoxGrp(w=150, cw3=(50, 50, 50), ncb=3, l1="RX", l2="RY", l3="RZ", l4="Vis", va3=(0, 0, 0), bgc=(.5, .5, .5), en=False) widgets["scaleCB"] = cmds.checkBox(l="Scales", v=1, cc=partial(enableChannel, "scaleCB", "scaleCBG")) widgets["scaleCBG"] = cmds.checkBoxGrp(w=150, cw3=(50, 50, 50), ncb=3, l1="SX", l2="SY", l3="SZ", l4="Vis", va3=(1, 1, 1), bgc=(.5, .5, .5), en=True) widgets["visCB"] = cmds.checkBox(l="Visibility", v=1) #back to frame layout cmds.setParent(widgets["lockFrLO"]) widgets["lockRBG"] = cmds.radioButtonGrp(nrb=2, l1="Unlock", l2="Lock", sl=2) widgets["hideRBG"] = cmds.radioButtonGrp(nrb=2, l1="Show", l2="Hide", sl=2) widgets["channelsBut"] = cmds.button(l="Lock/Hide Channels", w=150, h=30, bgc=(.5, .5, .5), rs=True, c=channelLockHide) cmds.separator(h=5, st="none") #back to columnLayout cmds.setParent(widgets["channelColLO"]) widgets["colorFrLO"] = cmds.frameLayout(l="Object Color", cll=True, w=250, bgc=(.7, .6, .6)) widgets["colorRCLO"] = cmds.rowColumnLayout(nr=4, bgc=(.8, .8, .8)) #color controls (red, green, blue, yellow, other) cmds.canvas(w=50, h=20, rgb=(1, 0, 0), pc=partial(changeColor, colors["red"])) cmds.canvas(w=50, h=20, rgb=(.5, .1, .1), pc=partial(changeColor, colors["darkRed"])) cmds.canvas(w=50, h=20, rgb=(.659, .275, .449), pc=partial(changeColor, colors["lightRed"])) cmds.canvas(w=50, h=20, rgb=(1, .8, .965), pc=partial(changeColor, colors["pink"])) cmds.canvas(w=50, h=20, rgb=(0, 1, 0), pc=partial(changeColor, colors["green"])) cmds.canvas(w=50, h=20, rgb=(0, .35, 0), pc=partial(changeColor, colors["darkGreen"])) cmds.canvas(w=50, h=20, rgb=(0, .55, .335), pc=partial(changeColor, colors["medGreen"])) cmds.canvas(w=50, h=20, rgb=(.35, .635, .15), pc=partial(changeColor, colors["yellowGreen"])) cmds.canvas(w=50, h=20, rgb=(0, 0, 1), pc=partial(changeColor, colors["blue"])) cmds.canvas(w=50, h=20, rgb=(0, 0, .35), pc=partial(changeColor, colors["darkBlue"])) cmds.canvas(w=50, h=20, rgb=(0, .2, .6), pc=partial(changeColor, colors["medBlue"])) cmds.canvas(w=50, h=20, rgb=(.65, .8, 1), pc=partial(changeColor, colors["lightBlue"])) cmds.canvas(w=50, h=20, rgb=(1, 1, 0), pc=partial(changeColor, colors["yellow"])) cmds.canvas(w=50, h=20, rgb=(.225, .1, 0), pc=partial(changeColor, colors["darkBrown"])) cmds.canvas(w=50, h=20, rgb=(.5, .275, 0), pc=partial(changeColor, colors["brown"])) cmds.canvas(w=50, h=20, rgb=(.922, .707, .526), pc=partial(changeColor, colors["darkYellow"])) cmds.canvas(w=50, h=20, rgb=(.33, 0, .33), pc=partial(changeColor, colors["purple"])) cmds.canvas(w=50, h=20, rgb=(.2, 0, .25), pc=partial(changeColor, colors["darkPurple"])) cmds.canvas(w=50, h=20, rgb=(.0, 0, .0), pc=partial(changeColor, colors["black"])) cmds.canvas(w=50, h=20, rgb=(1, 1, 1), pc=partial(changeColor, colors["white"])) #TO-DO----------------figure out breaking connections(to delete or not?), call add attr win # cmds.setParent(widgets["channelColLO"]) # widgets["channelFrLO"] = cmds.frameLayout(l="Channels", cll=True, w=250, bgc=(1,1,1)) # widgets["channelRCLO"] = cmds.columnLayout(bgc=(.8,.8,.8)) # widgets["breakAllBut"] = cmds.button(l="Break All Connections", w=150, h=30, bgc=(.5,.5,.5)) # widgets["breakSelBut"] = cmds.button(l="Break Selected Connections", w=150, h=30, bgc=(.5,.5,.5)) # cmds.separator(h=10, st="none") # widgets["addAttBut"] = cmds.button(l="Show 'Add Attribute' win", w=150, h=30, bgc=(.5,.5,.5)) cmds.setParent(widgets["tabLO"]) widgets["connectColLO"] = cmds.columnLayout("Connections", w=250, bgc=(.8, .8, .8)) widgets["connectFrame"] = cmds.frameLayout(l="Make General Connections", cll=True, bgc=(.6, .8, .6)) widgets["connectionColLO"] = cmds.columnLayout(bgc=(.8, .8, .8)) #connection stuff cmds.text("Select a source object and a channel:") widgets["connector"] = cmds.textFieldButtonGrp( l="Connector", w=250, bl="<<<", cal=[(1, "left"), (2, "left"), (3, "left")], cw3=[60, 140, 30], bc=partial(getChannel, "connector")) cmds.separator(h=5, st="none") cmds.text("Select a target object and channel:") widgets["connectee"] = cmds.textFieldButtonGrp( l="Connectee", w=250, bl="<<<", cal=[(1, "left"), (2, "left"), (3, "left")], cw3=[60, 140, 30], bc=partial(getChannel, "connectee")) cmds.separator(h=10, st="none") widgets["connectBut"] = cmds.button(l="Connect Two Channels", w=240, h=30, bgc=(.5, .5, .5), c=connectChannels) cmds.separator(h=5, st="none") cmds.setParent(widgets["connectColLO"]) widgets["shapeFrame"] = cmds.frameLayout(l="Connect to Shape Visibility", cll=True, bgc=(.6, .8, .6)) widgets["shapeColLO"] = cmds.columnLayout(bgc=(.8, .8, .8)) widgets["toShapeVis"] = cmds.textFieldButtonGrp(l="Vis Driver", w=250, bl="<<<", cal=[(1, "left"), (2, "left"), (3, "left")], cw3=[60, 140, 30], bc=partial( getChannel, "toShapeVis")) cmds.separator(h=5, st="none") cmds.text("Now select the objs to drive:") widgets["shapeBut"] = cmds.button(l="Connect to Shapes' vis", w=240, h=30, bgc=(.5, .5, .5), c=connectShapeVis) cmds.separator(h=5, st="none") cmds.setParent(widgets["connectColLO"]) widgets["inoutFrame"] = cmds.frameLayout( l="Select Connections (and print)", cll=True, bgc=(.6, .8, .6)) widgets["inOutColLO"] = cmds.columnLayout(bgc=(.8, .8, .8)) widgets["conversionCB"] = cmds.checkBox(l="Skip 'conversion' nodes?", v=1) cmds.text("Select an attribute in the channel box:") widgets["getInputBut"] = cmds.button(l="Select inConnection object", w=240, h=30, bgc=(.5, .5, .5), c=getInput) widgets["getOutputBut"] = cmds.button(l="Select outConnection objects", w=240, h=30, bgc=(.5, .5, .5), c=getOutput) #show window cmds.showWindow(widgets["win"]) cmds.window(widgets["win"], e=True, w=250, h=370)
# Format with a seperator cmds.separator(style='none', height=20) # Asset options cmds.text( label='Animation Options', align='left' ) # Format with a seperator cmds.separator(style='in', height=15) # Make a row for the animation frame settings cmds.rowLayout(nc=2, columnAlign2=("left", "left")) cmds.text( label='Start Frame ', align='left' ) cmds.text( label='End Frame', align='left' ) cmds.setParent("..") cmds.rowLayout(nc=2, columnAlign2=("left", "left")) cmds.textField('startFrame') cmds.textField('endFrame') cmds.setParent("..") # Format with a seperator cmds.separator(style='in', height=20) # Make a row for the export and cancel buttons cmds.rowLayout(nc=2, columnAlign2=("right", "right")) cmds.button(label="Export", width=100, backgroundColor=(.2,.4,.2), command=export) cmds.button(label="Cancel", width=100, backgroundColor=(.4,.2,.2), command=('cmds.deleteUI(\"' + window + '\", window=True)') ) cmds.setParent("..") cmds.showWindow( window )
def create(self, verbose=False): if cmds.window(self.window, exists=True): cmds.deleteUI(self.window) self.window = cmds.loadUI(uiFile=self.uiFile, verbose=verbose) cmds.showWindow(self.window)
def parentListUI(): ''' UI for parentList() ''' # Window window = 'parentListUI' if mc.window(window, q=True, ex=1): mc.deleteUI(window) window = mc.window(window, t='Parent List') # Layout fl = mc.formLayout(numberOfDivisions=100) # UI Elements childTXT = mc.text(l='Child List:', al='left') childTSL = mc.textScrollList('parentList_childListTSL', allowMultiSelection=True) parentTXT = mc.text(l='Parent List:', al='left') parentTSL = mc.textScrollList('parentList_parentListTSL', allowMultiSelection=True) parentB = mc.button(label='Parent', c='glTools.ui.base.parentListFromUI()') cancelB = mc.button(label='Cancel', c='mc.deleteUI("' + window + '")') # Layout mc.formLayout(fl, e=True, af=[(childTXT, 'left', 5), (childTXT, 'top', 5)], ap=[(childTXT, 'right', 5, 50)]) mc.formLayout(fl, e=True, af=[(childTSL, 'left', 5)], ap=[(childTSL, 'right', 5, 50)], ac=[(childTSL, 'top', 5, childTXT), (childTSL, 'bottom', 5, parentB)]) mc.formLayout(fl, e=True, af=[(parentTXT, 'right', 5), (parentTXT, 'top', 5)], ap=[(parentTXT, 'left', 5, 50)]) mc.formLayout(fl, e=True, af=[(parentTSL, 'right', 5)], ap=[(parentTSL, 'left', 5, 50)], ac=[(parentTSL, 'top', 5, parentTXT), (parentTSL, 'bottom', 5, cancelB)]) mc.formLayout(fl, e=True, af=[(parentB, 'left', 5), (parentB, 'bottom', 5)], ap=[(parentB, 'right', 5, 50)]) mc.formLayout(fl, e=True, af=[(cancelB, 'right', 5), (cancelB, 'bottom', 5)], ap=[(cancelB, 'left', 5, 50)]) # UI Callbacks mc.textScrollList(childTSL, e=True, dcc='glTools.ui.utils.selectFromTSL("' + childTSL + '")') mc.textScrollList(childTSL, e=True, dkc='glTools.ui.utils.removeFromTSL("' + childTSL + '")') mc.textScrollList(parentTSL, e=True, dcc='glTools.ui.utils.selectFromTSL("' + parentTSL + '")') mc.textScrollList(parentTSL, e=True, dkc='glTools.ui.utils.removeFromTSL("' + parentTSL + '")') # Popup menu childPUM = mc.popupMenu(parent=childTSL) mc.menuItem(l='Add Selected', c='glTools.ui.utils.addToTSL("' + childTSL + '")') mc.menuItem(l='Remove Selected', c='glTools.ui.utils.removeFromTSL("' + childTSL + '")') mc.menuItem(l='Clear List', c='mc.textScrollList("' + childTSL + '",e=True,ra=True)') mc.menuItem(l='Select Hilited', c='glTools.ui.utils.selectFromTSL("' + childTSL + '")') parentPUM = mc.popupMenu(parent=parentTSL) mc.menuItem(l='Add Selected', c='glTools.ui.utils.addToTSL("' + parentTSL + '")') mc.menuItem(l='Remove Selected', c='glTools.ui.utils.removeFromTSL("' + parentTSL + '")') mc.menuItem(l='Clear List', c='mc.textScrollList("' + parentTSL + '",e=True,ra=True)') mc.menuItem(l='Select Hilited', c='glTools.ui.utils.selectFromTSL("' + parentTSL + '")') # Display UI mc.showWindow(window)