def buildUI(self): column = cmds.columnLayout() cmds.frameLayout(label='Choose an axis') cmds.gridLayout(numberOfColumns=3, cellWidth=50) cmds.radioCollection() self.xAxis = cmds.radioButton(label='x', select=True) self.yAxis = cmds.radioButton(label='y') self.zAxis = cmds.radioButton(label='z') createIconButton('XAxis.png', command=partial(self.onOptionClick, self.xAxis)) createIconButton('YAxis.png', command=partial(self.onOptionClick, self.yAxis)) createIconButton('ZAxis.png', command=partial(self.onOptionClick, self.zAxis)) cmds.setParent(column) cmds.frameLayout(label='Choose where to align') cmds.gridLayout(numberOfColumns=3,cellWidth=50) cmds.radioCollection() self.minMode = cmds.radioButton(label='min') self.midMode = cmds.radioButton(label='mid', select=True) self.maxMode = cmds.radioButton(label='max') createIconButton('MinAxis.png', command=partial(self.onOptionClick, self.minMode)) createIconButton('MidAxis.png', command=partial(self.onOptionClick, self.midMode)) createIconButton('MaxAxis.png', command=partial(self.onOptionClick, self.maxMode)) cmds.setParent(column) cmds.button(label='Align', command=self.onApplyClick, bgc=(0.2, 0.5, 0.9))
def create(self): if mc.window(self.window,exists=True): mc.deleteUI(self.window,window=True) self.window = mc.window(self.window, title=self.title,widthHeight=self.size,menuBar=True) self.mainForm = mc.formLayout(nd=100) self.commandMenu() self.commonButtons() self.secondForm = mc.formLayout(nd=100) self.lightRigTypeText = mc.text( label = "Rig Type:", height = 15) radBtnCollection1 = mc.radioCollection() self.indoorRadBtn = mc.radioButton( "indoorRadBtn", label = "Indoor", onCommand = partial(self.rigBtnToggle,1) ) self.outdoorRadBtn = mc.radioButton( "outdoorRadBtn",label = "Outdoor", onCommand = partial(self.rigBtnToggle,2) ) self.timeOfDayText = mc.text( label = "Time of Day:", height = 15) radBtnCollection2 = mc.radioCollection() self.morningRadBtn = mc.radioButton( "morningRadBtn", label = "Morning", enable = True, onCommand = partial(self.dayBtnToggle,1) ) self.noonRadBtn = mc.radioButton( "noonRadBtn", label = "Noon", enable = True, onCommand = partial(self.dayBtnToggle,2) ) self.nightRadBtn = mc.radioButton( "nightRadBtn", label = "Night", enable = True, onCommand = partial(self.dayBtnToggle,3) ) mc.formLayout( self.secondForm, e = True, attachForm = ( [self.lightRigTypeText,"left", 135],[self.lightRigTypeText, "bottom", 500], [self.indoorRadBtn, "left", 185],[self.indoorRadBtn, "bottom", 497], [self.outdoorRadBtn, "left", 185],[self.outdoorRadBtn, "bottom", 477], [self.timeOfDayText,"left", 120], [self.timeOfDayText, "bottom", 452], [self.morningRadBtn, "left", 185],[self.morningRadBtn, "bottom", 449], [self.noonRadBtn, "left", 185],[self.noonRadBtn, "bottom", 429], [self.nightRadBtn, "left", 185],[self.nightRadBtn, "bottom", 409])) mc.radioCollection( radBtnCollection1, edit=True, select = self.indoorRadBtn ) self.displayOptions() mc.showWindow()
def buildUI(self): column = cmds.columnLayout() cmds.frameLayout(label="Choose an Object type") cmds.columnLayout() self.objType = cmds.radioCollection("objectCreationType") cmds.radioButton(label="Sphere") cmds.radioButton(label="Cube", select=True) cmds.radioButton(label="Cone") self.intField = cmds.intField("numObjects", value=3) cmds.setParent(column) frame = cmds.frameLayout("Choose your max range") cmds.gridLayout(numberOfColumns=2, cellWidth=100) for axis in 'xyz': cmds.text(label='%s axis' % axis) cmds.floatField('%sAxisField' % axis, value=random.uniform(0, 10)) cmds.setParent(frame) cmds.rowLayout(numberOfColumns=2) cmds.radioCollection("randomMode") cmds.radioButton(label='Absolute', select=True) cmds.radioButton(label='Relative') cmds.setParent(column) cmds.rowLayout(numberOfColumns=2) cmds.button(label='Create', command=self.onCreateClick) cmds.button(label='Randomize', command=self.onRandomClick)
def createClosestJointGroup(self,layout): group = self.createUIGroup(layout,"Assign Weights From Closest Joint") # influence chooser group influenceFiltersForm = cmds.formLayout(parent=group) l = cmds.text(label='Influences to choose from: ') cmds.formLayout(influenceFiltersForm,e=True,attachForm=[(l,'left',0),(l,'top',0)],attachNone=[(l,'bottom'),(l,'right')]) radios = cmds.columnLayout(); cmds.radioCollection() cmds.formLayout(influenceFiltersForm,e=True,attachForm=[(radios,'left',Constants.MARGIN_BLOCK_INDENT),(radios,'right',0),(radios,'bottom',0)],attachControl=[(radios,'top',0,l)]) RadioButtonField(self.VAR_CJ_PREFIX+'useAllInfluences',defaultValue=1,label='All influences available in skin cluster', annotation='Use all influences present in skin cluster for closest joint search') self.controls.rdioUseListerInfluences = RadioButtonField(self.VAR_CJ_PREFIX+'useSelectedInfluences', defaultValue=0,label='Selected influences in lister', annotation='Use only those influences that are selected in "List Influences" tab') cmds.setParent(group) self.controls.cjIntensity = IntensitySlider( 'amount of effect to apply', self.VAR_CJ_PREFIX+'Intensity') self.createTitledRow(group, "Intensity",innerContentConstructor=self.controls.cjIntensity.create) self.controls.cjSoftSelection = SoftSelectionRow(self.VAR_CJ_PREFIX+'softSelection') self.controls.cjSoftSelection.create(group) cmds.setParent(group) cmds.rowLayout(nc=2,adjustableColumn=2,columnWidth2=[Constants.BUTTON_WIDTH_SMALL,50], columnAttach2=["both","both"],columnAlign2=["center","center"]) BaseTab.createHelpButton(SkinToolsDocs.ASSIGNWEIGHTS_CLOSESTJOINT_INTERFACE) cmds.button(height=Constants.BUTTON_HEIGHT,label='Assign',command=lambda *args:self.execClosestJointAssign()) cmds.setParent(layout)
def createBrushSettingsGroup(self,parent): group = self.createUIGroup(parent, 'Brush Settings') self.createTitledRow(group, 'Brush Shape') brushWidth = 35; cmds.rowLayout(nc=4,cw4=[brushWidth,brushWidth,brushWidth,brushWidth]) self.createBrushShapeButtons() cmds.setParent("..") def innerLayout(): return cmds.rowColumnLayout( numberOfColumns=2,columnWidth=[(1,100),(2,100)]) self.createTitledRow(group, 'Mode',innerContentConstructor=innerLayout) cmds.radioCollection() for index,i in enumerate(['Replace','Add','Scale','Smooth']): ctrl = self.controls.__dict__['paintMode'+i] = RadioButtonField(self.VAR_PREFIX+'paintMode'+i,defaultValue=1 if index==0 else 0,label=i) ctrl.changeCommand.addHandler(self.paintValuesChanged) self.controls.intensitySlider = FloatSliderField() self.controls.intensitySlider.flexibleRange = True self.createTitledRow(group, 'Intensity',self.controls.intensitySlider.create) self.controls.intensitySlider.onChange.addHandler(self.paintValuesChanged) self.controls.brushRadiusSlider = FloatSliderField(range=[0,30]) self.controls.brushRadiusSlider.flexibleRange = True self.createTitledRow(group, 'Brush Radius',self.controls.brushRadiusSlider.create) self.controls.brushRadiusSlider.onChange.addHandler(self.changeBrushRadius)
def build(self): if mc.windowPref(self.win, exists=1): mc.windowPref(self.win, remove=1) if mc.window(self.win,exists=1): mc.deleteUI(self.win) mc.window( self.win, title=self.title, widthHeight=(500, 210) ) cl1 = mc.columnLayout( columnAttach=('both', 2), rowSpacing=3, columnWidth=500, adjustableColumn = True) mc.radioCollection() self.mouth = mc.radioButton( l='user import', select=1, p=cl1 ) self.autoR = mc.radioButton( l='auto import', p=cl1 ) mc.separator() mc.frameLayout('selected') mc.rowLayout(numberOfColumns=3, columnWidth3=(80, 75, 150), adjustableColumn=2, columnAlign=(1, 'right'), columnAttach=[(1, 'both', 0), (2, 'both', 0), (3, 'both', 0)] ) mc.text(l='Mode') mc.columnLayout() mc.radioCollection() self.prop = mc.radioButton( l='Prop', select=1 ) self.character = mc.radioButton( l='Character' ) mc.setParent( '..' ) mc.setParent( '..' ) self.numText = mc.floatFieldGrp( l='Num' ) self.txtProp = mc.textFieldButtonGrp( label='File Path', text='', buttonLabel='Browse', cw3 = (40,400,50), adjustableColumn3 = 2, cl3 = ('left', 'center', 'right'), bc = self.browse,cc=self.getPath ) #mc.separator() #self.txtCharacter = mc.textFieldButtonGrp( label='Path', text='', buttonLabel='Browse', cw3 = (40,400,50), adjustableColumn3 = 2, cl3 = ('left', 'center', 'right'), bc = self.browse,cc=self.getPath ) #mc.separator() mc.separator(p=cl1) mc.button( 'importR', l='Import Reference File', p=cl1 ) mc.setParent( '..' )
def buildAttributeTool(self,parent,vis=True): OptionList = ['Tools','Manager','Utilities'] RadioCollectionName ='AttributeMode' RadioOptionList = 'AttributeModeSelectionChoicesList' ShowHelpOption = mc.optionVar( q='cgmVar_TDToolsShowHelp' ) self.AttributeModeOptionVar = OptionVarFactory( 'cgmVar_AttributeMode',defaultValue = OptionList[0]) MelSeparator(parent,ut = 'cgmUIHeaderTemplate',h=5) #Mode Change row self.ModeSetRow = MelHLayout(parent,ut='cgmUISubTemplate',padding = 0) MelLabel(self.ModeSetRow, label = 'Choose Mode: ',align='right') self.RadioCollectionName = MelRadioCollection() self.RadioOptionList = [] #build our sub section options self.ContainerList = [] self.ContainerList.append( self.buildAttributeEditingTool(parent,vis=False) ) self.ContainerList.append( self.buildAttributeManagerTool( parent,vis=False) ) self.ContainerList.append( self.buildAttributeUtilitiesTool( parent,vis=False) ) for item in OptionList: self.RadioOptionList.append(self.RadioCollectionName.createButton(self.ModeSetRow,label=item, onCommand = Callback(guiFactory.toggleModeState,item,OptionList,self.AttributeModeOptionVar.name,self.ContainerList))) self.ModeSetRow.layout() mc.radioCollection(self.RadioCollectionName,edit=True, sl=self.RadioOptionList[OptionList.index(self.AttributeModeOptionVar.value)])
def createPlane(*args): import math path = cmds.textField(Window_global.txf_imagePath, q=1, tx=1) width = cmds.floatField(Window_global.floatf_planeWidth, q=1, v=1) height = cmds.floatField(Window_global.floatf_planeHeight, q=1, v=1) plane = cmds.polyPlane(w=height, h=width, cuv=1, sw=1, sh=1) radioSelObject = cmds.radioCollection(Window_global.radio_dir, q=1, sl=1).split('|')[-1] items = cmds.radioCollection(Window_global.radio_dir, q=1, cia=1) items = map(lambda x: x.split("|")[-1], items) selIndex = items.index(radioSelObject) directions = [(90, 90, 0), (0, 0, 0), (90, 0, 0), (90, -90, 0), (180, 0, 0), (90, 180, 0)] rotValue = directions[selIndex] cmds.rotate(rotValue[0], rotValue[1], rotValue[2], plane) lambert = cmds.shadingNode('lambert', asShader=1) shadingGrp = cmds.sets(name="%sSG" % lambert, renderable=1, noSurfaceShader=1, empty=1) cmds.connectAttr(lambert + ".outColor", shadingGrp + ".surfaceShader", f=1) cmds.sets(plane, e=1, forceElement=shadingGrp) fileNode = cmds.shadingNode('file', asTexture=1) cmds.connectAttr(fileNode + ".outColor", lambert + ".color", f=1) cmds.setAttr(fileNode + ".fileTextureName", path, type="string")
def read_windowInfo(): import cPickle import sgBFunction_fileAndPath if not os.path.exists( WinA_Global.infoPath ): sgBFunction_fileAndPath.makeFile( WinA_Global.infoPath ) sgBFunction_fileAndPath.makeFile( WinA_Global.infoPathPath ) try: f = open( WinA_Global.infoPath, 'r' ) data = cPickle.load( f ) f.close() except: return None if not data: return None try:exportPath, exportType, searchFor, searchForType, splitStringAndSerchCheck, splitStringAndSearchString = data except: return None cmds.textField( WinA_Global.exportPath_txf, e=1, tx= exportPath ) items = cmds.radioCollection( WinA_Global.exportType_radio, q=1, cia=1 ) cmds.radioButton( items[ exportType ], e=1, sl=1 ) cmds.textField( WinA_Global.searchFor_txf, e=1, tx=searchFor ) items = cmds.radioCollection( WinA_Global.searchForType_radio, q=1, cia=1 ) cmds.radioButton( items[ searchForType ], e=1, sl=1 ) cmds.checkBox( WinA_Global.searchForType_check, e=1, v=splitStringAndSerchCheck ) cmds.textField( WinA_Global.searchForType_txf, e=1, tx=splitStringAndSearchString )
def addOptions(parent): with ParentGuard(): cmds.setParent(parent) cmds.frameLayout(label=kGeneralOptions, collapsable=True, marginWidth= DEFAULT_UI_INDENTATION) cmds.radioCollection() cmds.radioButton(label=kOverwrite, onCommand=ImportAllUI.setOverwriteImportType, select=True if ImportAllUI.importType==jsonTranslatorGlobals.DECODE_AND_ADD else False) cmds.text(label=kOverwriteExplanation, align='left') cmds.radioButton(label=kMerge, onCommand=ImportAllUI.setMergeImportType, select=True if ImportAllUI.importType==jsonTranslatorGlobals.DECODE_AND_MERGE else False) cmds.text(label=kMergeExplanation, align='left') cmds.radioButton(label=kRename, onCommand=ImportAllUI.setRenameImportType, select=True if ImportAllUI.importType==jsonTranslatorGlobals.DECODE_AND_RENAME else False) cmds.text(label=kRenameExplanation, align='left') with ParentGuard(): cmds.columnLayout(columnOffset=('left', DEFAULT_UI_INDENTATION)) cmds.text(label=kTextToPrepend, align='left') ImportAllUI.importTextEditor = \ cmds.textField(text=ImportAllUI.importText, textChangedCommand=ImportAllUI.setImportText, enable= True if ImportAllUI.importType==jsonTranslatorGlobals.DECODE_AND_RENAME else False) cmds.text(label=kNotes, align='left') ImportAllUI.notesEditor = cmds.scrollField(editable=False) cmds.text(label=kPreview, align='left') ImportAllUI.previewEditor = cmds.scrollField(editable=False)
def buildAttrTypeRow(self, parent): #>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> # Attr type row #>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> self.attrTypes = [ 'string', 'float', 'int', 'double3', 'bool', 'enum', 'message' ] attrShortTypes = [ 'str', 'float', 'int', '[000]', 'bool', 'enum', 'msg' ] self.CreateAttrTypeRadioCollection = MelRadioCollection() self.CreateAttrTypeRadioCollectionChoices = [] #build our sub section options AttrTypeRow = MelHLayout(self.containerName, ut='cgmUISubTemplate', padding=5) for cnt, item in enumerate(self.attrTypes): self.CreateAttrTypeRadioCollectionChoices.append( self.CreateAttrTypeRadioCollection.createButton( AttrTypeRow, label=attrShortTypes[cnt], onCommand=Callback(self.CreateAttrTypeOptionVar.set, item))) MelSpacer(AttrTypeRow, w=2) if self.CreateAttrTypeOptionVar.value: mc.radioCollection(self.CreateAttrTypeRadioCollection, edit=True, sl=(self.CreateAttrTypeRadioCollectionChoices[ self.attrTypes.index( self.CreateAttrTypeOptionVar.value)])) AttrTypeRow.layout()
def createBrushSettingsGroup(self,parent): group = self.createUIGroup(parent, 'Brush Settings') self.createTitledRow(group, 'Brush Shape') brushWidth = 35; cmds.rowLayout(nc=4,cw4=[brushWidth,brushWidth,brushWidth,brushWidth]) self.createBrushShapeButtons() cmds.setParent("..") def innerLayout(): return cmds.rowColumnLayout( numberOfColumns=2,columnWidth=[(1,100),(2,100)]) self.createTitledRow(group, 'Mode',innerContentConstructor=innerLayout) cmds.radioCollection() for index,i in enumerate(['Replace','Add','Scale','Smooth']): ctrl = self.controls.__dict__['paintMode'+i] = RadioButtonField(self.VAR_PREFIX+'paintMode'+i,defaultValue=1 if index==0 else 0,label=i) ctrl.changeCommand.addHandler(self.paintValuesChanged) self.controls.intensitySlider = FloatSliderField() self.createTitledRow(group, 'Intensity',self.controls.intensitySlider.create) self.controls.intensitySlider.onChange.addHandler(self.paintValuesChanged) self.controls.brushRadiusSlider = FloatSliderField(range=[0,30]) self.controls.brushRadiusSlider.flexibleRange = True self.createTitledRow(group, 'Brush Radius',self.controls.brushRadiusSlider.create) self.controls.brushRadiusSlider.onChange.addHandler(self.changeBrushRadius)
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 __init__(self): if(cmds.window('win_acac',exists=1)): cmds.deleteUI('win_acac') cmds.window('win_acac',title='Average Curve CV number') cmds.formLayout('form_acacMain') cmds.radioCollection('rdc_acac1') cmds.radioButton('rd_acacFL',label='Fit longest',select=1) cmds.radioButton('rd_acacFS',label='Fit shortest') cmds.radioButton('rd_acacSL',label='Specific Length') cmds.intField('if_acacFL',minValue=0,value=10) cmds.intField('if_acacFS',minValue=0,value=3) cmds.floatField('ff_acacSL',minValue=0,value=5) cmds.button('btn_acacEx',label='Execute',width=20,height=20,command=self.execute) cmds.window('win_acac',e=1,resizeToFitChildren=1,widthHeight=[215,130]) cmds.showWindow('win_acac') cmds.formLayout('form_acacMain',e=1,af=[('rd_acacFL','top',5),('rd_acacFL','left',5)]) cmds.formLayout('form_acacMain',e=1,af=('rd_acacFS','left',5),ac=('rd_acacFS','top',5,'rd_acacFL')) cmds.formLayout('form_acacMain',e=1,af=('rd_acacSL','left',5),ac=('rd_acacSL','top',5,'rd_acacFS')) cmds.formLayout('form_acacMain',e=1,ac=[('if_acacFL','top',-18,'rd_acacFL'),('if_acacFL','left',5,'rd_acacFL')]) cmds.formLayout('form_acacMain',e=1,ac=[('if_acacFS','top',-18,'rd_acacFS'),('if_acacFS','left',5,'rd_acacFS')]) cmds.formLayout('form_acacMain',e=1,ac=[('ff_acacSL','top',-18,'rd_acacSL'),('ff_acacSL','left',5,'rd_acacSL')]) cmds.formLayout('form_acacMain',e=1,ac=('btn_acacEx','top',10,'rd_acacSL'),af=[('btn_acacEx','left',5),('btn_acacEx','right',5),('btn_acacEx','bottom',5)])
def collapseComponents(axis, *args): vertList = getVertFromSel() if len(vertList) == 0: cmds.warning('Nothing is Selected') else: coordlist = getVertCoordList(vertList, axis) alignValue = 0 if cmds.radioCollection('align_radioCollection', sl=True, q=True) == 'avg_radioButton': alignValue = sum(coordlist) / float(len(coordlist)) if cmds.radioCollection('align_radioCollection', sl=True, q=True) == 'min_radioButton': alignValue = min(coordlist) if cmds.radioCollection('align_radioCollection', sl=True, q=True) == 'max_radioButton': alignValue = max(coordlist) for v in vertList: if int(axis) == 0: cmds.move(alignValue, v, x=True, absolute=True) if int(axis) == 1: cmds.move(alignValue, v, y=True, absolute=True) if int(axis) == 2: cmds.move(alignValue, v, z=True, absolute=True)
def searchNameChangeCmd( self, *args ): searchName = cmds.textField( self._searchField, q=1, tx=1 ) cia = cmds.radioCollection( self._fileTypeCollection, q=1, cia=1 ) sel = cmds.radioCollection( self._fileTypeCollection, q=1, sl=1 ) for i in range( 3 ): if cia[i].split( '|' )[-1] == sel: if i == 0: extList = ['.motion'] elif i == 1: extList = ['.hik' ] else: extList = ['.motion', '.hik'] fileNames = [] self._realFileNames = [] for filePath in command.getFiles( extList, searchName ): filePath = os.path.abspath( filePath ) folder, fileName = os.path.split( filePath ) lastFolderName = folder.split( '\\' )[-1] fileNames.append( "../"+lastFolderName+"/"+fileName ) self._realFileNames.append( filePath ) cmds.textScrollList( self._fileNameScrollList, e=1, ra=1, a=fileNames )
def changeConvertFrom(*args): savePreset() global convertFrom convertFrom = mc.optionMenuGrp('convertFromOptionMenu', q=1, v=1) convertTo = mc.optionMenuGrp('convertToOptionMenu', q=1, v=1) itemsShort = mc.optionMenuGrp('convertToOptionMenu', q=1, ils=1) itemsLong = mc.optionMenuGrp('convertToOptionMenu', q=1, ill=1) itemsDict = {} for i in range(len(itemsLong)): itemsDict[itemsShort[i]] = itemsLong[i] for i, item in enumerate(itemsShort): mc.menuItem(itemsDict[item], e=1, en=1) if item == convertFrom: mc.menuItem(itemsDict[item], e=1, en=0) if item == convertTo: changeTo = itemsShort[(i + 1) % len(itemsShort)] mc.optionMenuGrp('convertToOptionMenu', e=1, v=changeTo) if convertFrom == 'RedshiftArchitectural' or convertFrom == 'aiStandardSurface': mc.radioCollection('origRadioCollection', e=1, sl='orig_use_maya_colorSpace') elif convertFrom == 'aiStandard': mc.radioCollection('origRadioCollection', e=1, sl='orig_classic_gamma_2point2') changeConvertTo()
def editUiInfo(self, *args ): cia = cmds.radioCollection( self._nameCollection, q=1, cia=1 ) sel = cmds.radioCollection( self._nameCollection, q=1, sl=1 ) for i in range( 2 ): if cia[i].split( '|' )[-1] == sel: if i == 0: mainInfo.namespaceOption = 'prefix' else: mainInfo.namespaceOption = 'namespace' if cmds.optionMenu( self._frontNameOptionMenu, q=1, sl=1 ) == 1: mainInfo.frontNameOption = 'fileName' cmds.textField( self._thisStringField, e=1, en=0 ) else: mainInfo.frontNameOption = 'thisString' cmds.textField( self._thisStringField, e=1, en=1 ) mainInfo.thisString = cmds.textField( self._thisStringField, q=1, tx=1 ) fileString = mainInfo.fileTypeOption + '\n' + mainInfo.namespaceOption +'\n' + mainInfo.frontNameOption + '\n' + mainInfo.thisString f = open( mainInfo.uiInfoPath, 'w' ) f.write( fileString ) f.close() self._namespaceOption = mainInfo.namespaceOption self._frontNameOption = mainInfo.frontNameOption self._thisString = mainInfo.thisString
def createClosestJointGroup(self,layout): group = self.createUIGroup(layout,"From Closest Joint") # influence chooser group influenceFiltersForm = cmds.formLayout(parent=group) l = cmds.text(label='Influences to choose from: ') cmds.formLayout(influenceFiltersForm,e=True,attachForm=[(l,'left',0),(l,'top',0)],attachNone=[(l,'bottom'),(l,'right')]) radios = cmds.columnLayout(); cmds.radioCollection() cmds.formLayout(influenceFiltersForm,e=True,attachForm=[(radios,'left',Constants.MARGIN_BLOCK_INDENT),(radios,'right',0),(radios,'bottom',0)],attachControl=[(radios,'top',0,l)]) RadioButtonField(self.VAR_CJ_PREFIX+'useAllInfluences',defaultValue=1,label='All influences available in skin cluster', annotation='Use all influences present in skin cluster for closest joint search') self.controls.rdioUseListerInfluences = RadioButtonField(self.VAR_CJ_PREFIX+'useSelectedInfluences', defaultValue=0,label='Selected influences in lister', annotation='Use only those influences that are selected in "List Influences" tab') cmds.setParent(group) self.controls.cjIntensity = IntensitySlider( 'amount of effect to apply', self.VAR_CJ_PREFIX+'Intensity') self.createTitledRow(group, "Intensity",innerContentConstructor=self.controls.cjIntensity.create) self.controls.cjSoftSelection = SoftSelectionRow(self.VAR_CJ_PREFIX+'softSelection') self.controls.cjSoftSelection.create(group) cmds.setParent(group) cmds.rowLayout(nc=2,adjustableColumn=2,columnWidth2=[Constants.BUTTON_WIDTH_SMALL,50], columnAttach2=["both","both"],columnAlign2=["center","center"]) BaseTab.createHelpButton(SkinToolsDocs.ASSIGNWEIGHTS_CLOSESTJOINT_INTERFACE) cmds.button(height=Constants.BUTTON_HEIGHT,label='Assign',command=lambda *args:self.execClosestJointAssign())
def create(self): form = cmds.formLayout() text = cmds.text(l="Plane Direction : ", w=100, al="right", h=self.height) radio = cmds.radioCollection() rbx = cmds.radioButton(l="X", h=self.height) rby = cmds.radioButton(l="Y", h=self.height) rbz = cmds.radioButton(l="Z", h=self.height) rbmx = cmds.radioButton(l="-X", h=self.height) rbmy = cmds.radioButton(l="-Y", h=self.height) rbmz = cmds.radioButton(l="-Z", h=self.height) cmds.setParent('..') cmds.radioCollection(radio, edit=True, select=rbx) cmds.formLayout(form, e=1, af=[(text, "top", 0), (text, "left", 0), (rbx, "top", 0), (rby, "top", 0), (rbz, "top", 0)], ac=[(rbx, "left", 0, text), (rby, "left", 0, rbx), (rbz, "left", 0, rby), (rbmx, "left", 0, text), (rbmy, "left", 0, rbmx), (rbmz, "left", 0, rbmy), (rbmx, "top", 0, text), (rbmy, "top", 0, text), (rbmz, "top", 0, text)]) self.form = form Window_global.radio_dir = radio
def create(self): form = cmds.formLayout(en=0) delAniButton = cmds.button(l='Delete Animation', w=255, c=BakeUIInfo.cmdDeleteAnim) bakeButton = cmds.button(l='Bake', w=125, c=BakeUIInfo.cmdBake) cmds.radioCollection() byKeyframe = cmds.radioButton(l='By Keyframe', sl=1, w=100) byFrame = cmds.radioButton(l='By Frame', w=100) cmds.formLayout(form, e=1, attachForm=[(delAniButton, 'right', 5), (byKeyframe, 'left', 0)], attachControl=[(byFrame, 'left', 0, byKeyframe), (bakeButton, 'left', 20, byFrame)], attachPosition=[(bakeButton, 'right', 0, 50)]) cmds.setParent('..') BakeUIInfo._radio = byKeyframe.split('|')[-1] BakeUIInfo._form = form.split('|')[-1] return form
def evenDistributeUI(): windowSize = 300 if (cmds.window("evenDistribute_window", exists=True)): cmds.deleteUI("evenDistribute_window") window = cmds.window("evenDistribute_window", title=__title__ + ' ' + __version__, iconName='evenDistribute', width=windowSize) cmds.columnLayout(adjustableColumn=True) cmds.separator(height=5, style='none') cmds.text('Vertex Spacing') cmds.separator(height=5, style='none') cmds.button(label='Even Distribute', height=30, command=distributeTrigger) cmds.rowLayout(numberOfColumns=2) cmds.radioCollection('interpolation_radioCollection2') cmds.radioButton('staight_radioButton', label='Straight', sl=True) cmds.radioButton('curved_radioButton', label='Curved') cmds.setParent(upLevel=True) cmds.separator(height=20, style='double') cmds.button(label='Close', height=50, command=('cmds.deleteUI(\"' + window + '\", window=True)')) cmds.setParent(upLevel=True) cmds.showWindow(window)
def __init__(self): self.main_win = cmds.window(t='SpToMaya') main_lay = cmds.columnLayout() lay_one = cmds.rowLayout(p=main_lay,numberOfColumns=4) cmds.radioCollection() self.vray_radio = cmds.radioButton(l='Vray',sl=1) self.redshift_radio = cmds.radioButton(l='Redshift',onc=partial(self._create_flip_check),ofc=partial(self._del_flip_check),ed=1) self.arnold4_radio = cmds.radioButton(l='Arnold4',ed=0) self.arnold5_radio = cmds.radioButton(l='Arnold5',ed=0) lay_two = cmds.rowLayout(p=main_lay,numberOfColumns=3) cmds.text(l='Path: ') self.path_text = cmds.textField(w=200) cmds.button(l='...',c=partial(self._sel_file)) self.lay_there = cmds.rowLayout(p=main_lay,numberOfColumns=3) cmds.text(l='shader:') self.shade_name = cmds.optionMenu() cmds.text(p=main_lay,l=' ') self.custom_lay = cmds.rowLayout(p=main_lay,numberOfColumns=3) self.all_shader = cmds.checkBox(l='Create_all',ed=1) self.display_sel = cmds.checkBox(l='Displayment') cmds.text(p=main_lay,l=' \n') lay_five = cmds.rowLayout(p=main_lay,numberOfColumns=3) cmds.text(l=' ') cmds.button(l='create_shader',c=partial(self.on_clicked_create))
def CreateWindow(): name = "Asset Modifier/Evaluator" #if (mc.window(name, exists= True)): # mc.deleteUI(name, window = True) mc.window(name) mc.showWindow() column = mc.columnLayout(adjustableColumn=True) mc.setParent(column) mc.textField(text="Y-Top and Z-Front (Maya to Unreal preference)", editable=False, height=30) mc.radioCollection("Pivot_Location") mc.radioButton(label="Bottom-Centre") mc.radioButton(label="Left-Bottom-Front") mc.radioButton(label="Top-Centre") mc.radioButton(label="Left-Top-Front") mc.radioButton(label="Left-Bottom-Back") mc.radioButton(label="Left-Top-Back") mc.radioButton(label="Centre") btnPivot = mc.button(label="Change Pivot to", command=ChangePivotPosition) mc.text("----------------------------") btnPivot = mc.button(label="Move Mesh to Origin", command=SetToOrigin) mc.text("----------------------------") btnPivot = mc.button(label="Freeze Transformation", command=Freeze) mc.text("----------------------------") btnPivot = mc.button(label="Delete History", command=History)
def gui(): global head_mesh_field global teeth_mesh_field global gender_coll global skeleton_coll window_name = 'Set_FX_graph' if cmds.window(window_name, exists=True): cmds.deleteUI(window_name) cmds.window(window_name.replace('_', ' '), width=250) cmds.columnLayout(adjustableColumn=False) head_mesh_field = cmds.textField(h=30, pht='Head', width=250) teeth_mesh_field = cmds.textField(h=30, pht='Teeth', width=250) cmds.separator(vis=True) cmds.text(label='Gender', h=30, align='right') gender_coll = cmds.radioCollection() cmds.radioButton(label='Male', align='right') cmds.radioButton(label='Female') cmds.separator(vis=True) cmds.text(label='Skeleton', h=30) skeleton_coll = cmds.radioCollection() cmds.radioButton(label='Old') cmds.radioButton(label='New') cmds.separator(vis=True) cmds.button(label='Set', h=30, width=250, c='set()') cmds.showWindow()
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 exportAssets_UI(self, *args): self.UIElements = {} # If the window exists, delete it. if cmds.window("ExportAssets", exists=True): cmds.deleteUI("ExportAssets") # Create the main window self.UIElements["window"] = cmds.window("ExportAssets", widthHeight=(240, 200), s=True ) # Create a flow layout to hold the UI Elements self.UIElements["radioFlowLayout"] = cmds.flowLayout(v=True, w=220) cmds.setParent( '..' ) cmds.setParent(self.UIElements["radioFlowLayout"]) cmds.radioCollection() self.UIElements['rigRadioButton'] = cmds.radioButton(l='Export Rig?') cmds.radioCollection() self.UIElements['setupRadioButton'] = cmds.radioButton(l='Export Setup?') cmds.separator( height=7, style='in' ) cmds.text(l=' Rename the Setup?') self.UIElements['nameTxt'] = cmds.textField(w=220, tx=self.characterName) self.UIElements['exportButton'] = cmds.button(label='Export Game Assets', width=220, c=self.exportGameAssets) cmds.showWindow(self.UIElements["window"])
def searchNameChangeCmd(self, *args): searchName = cmds.textField(self._searchField, q=1, tx=1) cia = cmds.radioCollection(self._fileTypeCollection, q=1, cia=1) sel = cmds.radioCollection(self._fileTypeCollection, q=1, sl=1) for i in range(3): if cia[i].split('|')[-1] == sel: if i == 0: extList = ['.motion'] elif i == 1: extList = ['.hik'] else: extList = ['.motion', '.hik'] fileNames = [] self._realFileNames = [] for filePath in command.getFiles(extList, searchName): filePath = os.path.abspath(filePath) folder, fileName = os.path.split(filePath) lastFolderName = folder.split('\\')[-1] fileNames.append("../" + lastFolderName + "/" + fileName) self._realFileNames.append(filePath) cmds.textScrollList(self._fileNameScrollList, e=1, ra=1, a=fileNames)
def createUI(self, parent): result = group = self.mainLayout = uiWrappers.frameLayout( parent=parent, label="Influence Filter", marginWidth=Constants.MARGIN_SPACING_HORIZONTAL, marginHeight=Constants.MARGIN_SPACING_VERTICAL, collapsable=True, expandCommand=self.isVisible.save, collapseCommand=self.isVisible.save, borderStyle='etchedIn') cmds.frameLayout(group, e=True, collapse=self.isVisible.get()) column = cmds.columnLayout( parent=group, adjustableColumn=1, rowSpacing=Constants.MARGIN_SPACING_VERTICAL) form = FormLayout(parent=column) label = cmds.text(label='Influence Filter:') textField = self.influenceNameFilter = TextEdit( annotation="Filter influence list by name") clearButton = cmds.button(label='clear', width=50, command=self.clearNameFilter) form.attachForm(label, 10, None, 0, Constants.MARGIN_SPACING_HORIZONTAL) form.attachForm(clearButton, 10, Constants.MARGIN_SPACING_HORIZONTAL, 0, None) form.attachForm(textField, 10, None, 0, None) form.attachControl(textField, label, None, None, None, Constants.MARGIN_SPACING_HORIZONTAL) form.attachControl(textField, clearButton, None, Constants.MARGIN_SPACING_HORIZONTAL, None, None) textField.changeCommand.addHandler(self.filterChanged.emit) cmds.setParent(result) cmds.radioCollection() form = FormLayout(parent=column) self.radioAllInfluences = RadioButtonField(self.VAR_PREFIX + "allInfluences", defaultValue=1, label='Show all influences') self.radioAllInfluences.changeCommand.addHandler( self.radioAllInfluencesChanged) self.radioActiveInfluences = RadioButtonField( self.VAR_PREFIX + "activeInfluences", defaultValue=0, label='Only influences with non-zero weights') form.attachForm(self.radioAllInfluences, 0, 0, None, 90) form.attachForm(self.radioActiveInfluences, None, 0, None, 90) form.attachControl(self.radioActiveInfluences, self.radioAllInfluences, 0, None, None, None) return result
def createBrushSettingsGroup(self, parent): group = self.createUIGroup(parent, 'Brush Settings') self.createTitledRow(group, 'Brush Shape') brushWidth = 35 cmds.rowLayout(nc=4, cw4=[brushWidth, brushWidth, brushWidth, brushWidth]) self.createBrushShapeButtons() cmds.setParent("..") def innerLayout(): return cmds.rowColumnLayout(numberOfColumns=2, columnWidth=[(1, 100), (2, 100)]) self.createTitledRow(group, 'Mode', innerContentConstructor=innerLayout) cmds.radioCollection() for index, i in enumerate( ['Replace', 'Add', 'Scale', 'Smooth', 'Sharpen']): ctrl = self.controls.__dict__['paintMode' + i] = RadioButtonField( self.VAR_PREFIX + 'paintMode' + i, defaultValue=1 if index == 0 else 0, label=i) ctrl.changeCommand.addHandler(self.paintValuesChanged) self.createTitledRow(group, title=None) self.controls.mirroredMode = CheckBoxField( self.VAR_PREFIX + 'mirroredMode', label="Interactive mirror", annotation= 'Paint stroke is mirrored on the other side. Needs initialized mirror', defaultValue=0) self.controls.mirroredMode.changeCommand.addHandler( self.paintValuesChanged) self.controls.redistributeWeightSetting = CheckBoxField( self.VAR_PREFIX + 'redistributeWeight', label="Distribute removed weights", annotation= 'When reducing weight on current influence, share that weight to other influences', defaultValue=1) self.controls.redistributeWeightSetting.changeCommand.addHandler( self.paintValuesChanged) self.controls.intensitySlider = FloatSliderField() self.controls.intensitySlider.flexibleRange = True self.createTitledRow(group, 'Intensity', self.controls.intensitySlider.create) self.controls.intensitySlider.onChange.addHandler( self.paintValuesChanged) self.controls.brushRadiusSlider = FloatSliderField(range=[0, 30]) self.controls.brushRadiusSlider.flexibleRange = True self.createTitledRow(group, 'Brush Radius', self.controls.brushRadiusSlider.create) self.controls.brushRadiusSlider.onChange.addHandler( self.changeBrushRadius)
def setGridUE4(self, *args): """ Configures Maya for Unreal Engine 4 """ self._changeGrid(200, 10, 1, 1, 3, 2, 100000, 1.5, 1000) cmds.radioCollection(self._gridCollection, edit=True, select=self._gridRadio10)
def setGridDefault(self, *args): """ Configures Maya to defaults """ self._changeGrid(12, 5, 5, 1, 3, 3, 10000, 0.1, 100.1) cmds.radioCollection(self._gridCollection, edit=True, select=self._gridRadio5)
def build_layoutWrapper(self, parent): uiColumn_main = zooUI.MelColumnLayout(parent) cgmUI.add_Header('Setup Hotkey') cgmUI.add_TextBlock(self.mi_cgmHotkeyer._d_kws['name']) #>>>Modifier row ------------------------------------------------------------------------------------ self.uiRow_Modifier = zooUI.MelHSingleStretchLayout( uiColumn_main, ut='cgmUISubTemplate', padding=2) #zooUI.MelSpacer(self.uiRow_Modifier,w=5) #zooUI.MelLabel(self.uiRow_Modifier, label = 'Modifier: ',align='right') self.uiRow_Modifier.setStretchWidget( zooUI.MelSeparator(self.uiRow_Modifier)) self.uiRow_Modifier.layout() self.uiRadioCollection_modifier = zooUI.MelRadioCollection() self.uiOptions_modifier = [] for i, item in enumerate(cgmHotkeyer._l_modifierOptions): self.uiOptions_modifier.append( self.uiRadioCollection_modifier.createButton( self.uiRow_Modifier, label=item)) self.uiRow_Modifier.layout() mc.radioCollection(self.uiRadioCollection_modifier, edit=True, sl=self.uiOptions_modifier[0]) #>>>Text row ------------------------------------------------------------------------------------ uiRow_key = zooUI.MelHLayout(uiColumn_main, ut='cgmUISubTemplate', padding=15) self.uiText_key = zooUI.MelTextField( uiRow_key, backgroundColor=[1, 1, 1], h=20, text=self.mi_cgmHotkeyer._defaultKey, ut='cgmUITemplate', #ec = lambda *a:self._UTILS.puppet_doChangeName(self), annotation="Hotkey to use") uiRow_key.layout() #>>> Button row mc.setParent(uiColumn_main) cgmUI.add_LineSubBreak() uiRow_buttons = zooUI.MelHLayout(uiColumn_main, ut='cgmUISubTemplate', padding=5) cgmUI.add_Button(uiRow_buttons, 'Go', commandText=lambda *a: self.buttonPress_go(), annotationText="Set it up") cgmUI.add_Button( uiRow_buttons, 'Reset', commandText=lambda *a: self.buttonPress_reset(), en=False, annotationText="Reset given key to the default maya setting") uiRow_buttons.layout()
def uvSetOptions(self): window_name = "uvSetOptions" if cmds.window(window_name, q=True, exists=True): cmds.deleteUI(window_name) self.optionWindow = cmds.window(window_name, title="Lightmap Options") tabs = cmds.tabLayout(innerMarginWidth=5, innerMarginHeight=5) standardLayout = cmds.columnLayout(parent=self.optionWindow, adj=True) self.uvSetChoice = cmds.optionMenuGrp(label="Source UV Set") for uvSet in self.uvList: #lists selections' uv sets cmds.menuItem(label=uvSet) self.lightmapBox = cmds.textFieldGrp(label="New UV Set Name", text=self.lightmap) self.presetSelect = cmds.optionMenuGrp(self.presetSelect, label="Spacing Presets", cc=self.presetValue) for preset in self.spacingPresets: cmds.menuItem(label=preset) cmds.floatSliderGrp(self.shellSpacingSlider, label="Percentage Space:", v=3.200, step=0.001, max=5.000, field=True) print cmds.floatSliderGrp(self.shellSpacingSlider, q=True, v=True) cmds.button(label="Generate Lightmap", width=200, c=self.copyAndLayoutCheck) advancedLayout = cmds.columnLayout(parent=self.optionWindow, adj=True) layoutObjectsCollection = cmds.radioCollection() #radial button, creates new layout layoutObjectsCollection_layout = cmds.columnLayout() cmds.text(label = "Layout objects:", p=layoutObjectsCollection_layout) rbl = cmds.radioButton(label="Per object(overlapping)", p=layoutObjectsCollection_layout, onc=lambda *args: self.perObjectLayout(0)) rbl = cmds.radioButton(label="Single or multiple objects(non-overlapping)", p=layoutObjectsCollection_layout, onc=lambda *args: self.perObjectLayout(1), sl=True ) prescaleCollection = cmds.radioCollection() #radial button, creates new layout prescaleCollection_layout = cmds.columnLayout() cmds.text(label = "Prescale:", p=prescaleCollection_layout) rbl = cmds.radioButton(label="None", p=prescaleCollection_layout, onc=lambda *args: self.prescaleLayout(0)) rbl = cmds.radioButton(label="Object", p=prescaleCollection_layout, onc=lambda *args: self.prescaleLayout(1)) rbl = cmds.radioButton(label="World", p=prescaleCollection_layout, onc=lambda *args: self.prescaleLayout(2), sl=True) collection = cmds.radioCollection() #radial button, creates new layout collection_layout = cmds.columnLayout() cmds.text(label = "Shell Layout:", p=collection_layout) rbl = cmds.radioButton(label="Into region", p=collection_layout, onc=lambda *args: self.shellLayout(0), sl=True) rbl = cmds.radioButton(label="Along U", p=collection_layout, onc=lambda *args: self.shellLayout(1)) rbl = cmds.radioButton(label="None", p=collection_layout, onc=lambda *args: self.shellLayout(2)) collection = cmds.radioCollection() #radial button, creates new layout collection_layout = cmds.columnLayout() cmds.text(label = "Scale:", p=collection_layout) rbl = cmds.radioButton(label="None", p=collection_layout, onc=lambda *args: self.scaleLayout(0)) rbl = cmds.radioButton(label="Uniform", p=collection_layout, onc=lambda *args: self.scaleLayout(1), sl=True) rbl = cmds.radioButton(label="Stretch", p=collection_layout, onc=lambda *args: self.scaleLayout(2)) rotateCollection = cmds.radioCollection() #radial button, creates new layout rotateCollection_layout = cmds.columnLayout() cmds.text(label = "Rotate:", p=rotateCollection_layout) rbl = cmds.radioButton(label="None", p=rotateCollection_layout, onc=lambda *args: self.rotationLayout(0)) rbl = cmds.radioButton(label="90 degrees", p=rotateCollection_layout, onc=lambda *args: self.rotationLayout(1), sl=True) rbl = cmds.radioButton(label="Free", p=rotateCollection_layout, onc=lambda *args: self.rotationLayout(2)) cmds.tabLayout( tabs, edit=True, tabLabel=((standardLayout, 'General'), (advancedLayout, 'Advanced')) ) cmds.showWindow(self.optionWindow)
def showWindow(): name = "RandomizerWindow" if cmds.window(name , query=True , exists=True): cmds.deleteUI(name) cmds.window(name) cmds.showWindow() column = cmds.columnLayout() cmds.showWindow() column = cmds.columnLayout() cmds.frameLayout(label = "Select a object type") cmds.columnLayout() cmds.radioCollection("objectCreationType ") cmds.radioButton(label="Sphere") cmds.radioButton(label="Cube", select=True) cmds.radioButton(label="Cone") cmds.intField("numObjects", value=3) cmds.setParent(column) frame = cmds.frameLayout("Choose range") cmds.gridLayout(numberOfColumns=2, cellWidth=100) for axis in 'xyz': cmds.text(label = '%s axis' % axis) cmds.float('%sAxisField' % axis, value=random.uniform(0,10)) cmds.setParent(frame) cmds.rowLayout(numberOfColumns=2) cmds.radioCollection('randomMode') cmds.radioButton(label = 'Absolute', select = True) cmds.radioButton(label = 'Relative') cmds.setParent(column) cmds.rowLayout(numberOfColumns=2) cmds.button(label='Create', command=onCreateClick) cmds.button(label='Randomize', command = onRandomClick ) def onCreateClick(*args): radio = cmds.radioCollection("objectCreationType", query=True, select=True) mode = cmds.radioButton(radio, query=True, label=True) numObjects = cmds.intField("numObjects", query=True, label=True) createObjects(mode, numObects) onRandomClick() def onRandomClick(*args): radio = cmds.radioCollection("randomMode", query=True, select=True) mode = cmds.radioButton(radio, query=True, label=True) for axis in xyz: val =cmds.floatField("%s AxisField" % axis, query=True, label=True) randomize(minValue=val*=-1, maxValue = val, mode=mode, axes = axis)
def addString(*args): selCheck() add_name = cmds.textField('addString', q=True, tx=True) add_type = cmds.radioCollection('addNumberType', q=True, select=True) add_place = cmds.radioCollection('addType', q=True, select=True) padding_num = cmds.textField('add_paddingNumber', q=True, tx=True) sel = cmds.ls(sl=True) num_count = 1 alpha_count = 0 return_list = [] before_list = OrderedDict() print add_place if add_place == 'NONE': cmds.warning( u'Please select the place to add letters from the radio button(e.g.:)' ) return if add_type == 'add_sereal_alphabet': abc_list = list(string.ascii_uppercase) #Get uppercase alphabet list alphabet_list = itertools.product( abc_list, repeat=int(padding_num)) #Set padding for i in alphabet_list: return_list.append(''.join(i)) if len(return_list) > len(sel): break for i in sel: if add_type == 'add_serial_number': tmp_number = '{0:0' + str(padding_num) + 'd}' add_name = tmp_number.format(num_count) elif add_type == 'add_sereal_alphabet': add_name = str(return_list[alpha_count]) if add_place == 'top': before_list[i] = add_name + i elif add_place == 'bottom': before_list[i] = i + add_name elif add_place == 'topFrom': split_point = cmds.textField('topFromPoint', q=True, tx=True) front_string = i[:int(split_point)] back_string = i[int(split_point):] before_list[i] = front_string + add_name + back_string elif add_place == 'bottomFrom': split_point = cmds.textField('bottomFromPoint', q=True, tx=True) front_string = i[:int(split_point) * -1] back_string = i[int(split_point) * -1:] before_list[i] = front_string + add_name + back_string if before_list: checkWindow(before_list) else: cmds.warning(u'cannot find object')
def ui(self): if mc.window(self.winName,ex=True): mc.deleteUI(self.winName,window=True) else: pass #----- window -----# mc.window(self.winName , t = 'Edit Crv v1.0',w = 235,h = 160 , sizeable=False) # main self.form = mc.formLayout() #1 rowColumnLayout row = mc.rowColumnLayout(nc = 2,cat = [1,'right',5],ro = [(1,'both',2),(2,'both',2),(3,'both',2),(4,'both',2)]) self.rotateBN = mc.iconTextButton( style='textOnly' , w=150 , bgc=[0.5, 0.4, 0.33] , label='r o t a t e - c r v' , c=lambda *args:self.uiRunCmd('rotate') ) self.rotateFLE = mc.textField( 'rotateText' , w=70 , ed=True , text='45' ) self.scaleBN = mc.iconTextButton( style='textOnly' , w=150 , bgc=[0.5, 0.4, 0.33] , label='s c a l e - c r v' , c=lambda *args:self.uiRunCmd('scale') ) self.scaleFLE = mc.textField( 'scaleText' , w=70 , ed=True ,text='0.5' ) mc.setParent('..') #2 columnLayout column = mc.columnLayout(adj = True) mc.separator( style="in" , h=10 ) #2.1 rowLayout self.RIDRow = mc.rowLayout(nc = 3,cat = [1,'left',30]) self.AxisRID = mc.radioCollection() self.xAxisTypeRID = mc.radioButton('x' , l='X', w=60) self.yAxisTypeRID = mc.radioButton('y' , l='Y', w=60) self.zAxisTypeRID = mc.radioButton('z' , l='Z', w=60) mc.radioCollection( self.AxisRID, edit=True, select=self.xAxisTypeRID ) mc.setParent('..') self.runBN = mc.iconTextButton( style='textOnly' , h=30 , bgc=[0.23,0.33,0.39] , label='m i r r o r' , c=lambda *args:self.uiRunCmd('mirror')) mc.separator( style="in" , h=10 ) #2.2 rowLayout self.eximRow = mc.rowLayout(nc = 2) self.exportBN = mc.iconTextButton( style='textOnly' , w=110 , bgc=[0.5, 0.4, 0.33] , label='e x p o r t - s h a p e' , c=lambda *args:self.exportCurveShape() ) self.importBN = mc.iconTextButton( style='textOnly' , w=110 , bgc=[0.5, 0.4, 0.33] , label='i m p o r t - s h a p e' , c=lambda *args:self.importCurveShape() ) mc.setParent('..') mc.formLayout(self.form, edit=True, attachForm=[(row, 'top', 5), (row, 'left', 5), (row, 'right', 5), (column, 'bottom', 5), (column, 'right', 5), (column, 'left', 5) ], attachControl=[(row, 'bottom', 5, column)]) mc.showWindow(self.winName)
def UVsTransfert(*args): sourceObject = str( cmds.textField('sourceObject_textField', q=True, text=True)) targetObjects = cmds.ls(sl=True, l=True) if len(sourceObject) == 0: cmds.warning('Nothing is defined as a source.') elif len(targetObjects) == 0: cmds.warning('Nothing is selected.') elif sourceObject in targetObjects: cmds.warning('The source object cant be in the target objects list.') else: if len( cmds.listRelatives(targetObjects, path=True, fullPath=True, type='mesh')) == 0: cmds.warning('Select only Polygonal objects as target.') else: transfertMode = int() UVsets = int() if cmds.radioCollection('transfertMode_radioCollection', q=True, sl=True) == 'componentMode_radioButton': transfertMode = 4 else: transfertMode = 5 if cmds.radioCollection('transfertUV_radioCollection', q=True, sl=True) == 'currentUVset_radioButton': UVsets = 1 else: UVsets = 2 for t in targetObjects: cmds.transferAttributes(sourceObject, t, transferUVs=UVsets, sampleSpace=transfertMode, searchMethod=3) cmds.delete(t, ch=True) print('UVs transfered on ' + str(len(targetObjects)) + ' object(s) succesfully.')
def __init__(self): #liste des attributs self.listNamespace = [] self.listEmptyNamespace = [] self.listSelectedNamespace = [] #If the window already exists, erase it if cmds.window('InE_NSMWin', exists=True): cmds.deleteUI('InE_NSMWin') #Create the window #s : Can window be resized? #rtf : Resize to fit childrens? self.window = cmds.window('InE_NSMWin', title = "Namespace Manager", widthHeight=(520, 435), s = False, rtf=True) #Main layout cmds.formLayout("InE_NSMFlowLayout", p = 'InE_NSMWin', w = 50, h = 50) cmds.image(image="R:\Benoit\Scripts\maya\icons\NSMBackground.png") #Layout that draws an empty space at the top to see the beautyful flowers cmds.columnLayout('InE_NSMEmptyLayout', p = "InE_NSMFlowLayout", columnAttach=('both', 14), rowSpacing=5, columnWidth=520, cal="left" ) cmds.text(label = "", p = 'InE_NSMEmptyLayout') cmds.text(label = "", p = 'InE_NSMEmptyLayout') cmds.text(label = "", p = 'InE_NSMEmptyLayout') cmds.text(label = "", p = 'InE_NSMEmptyLayout') cmds.text(label = "", p = 'InE_NSMEmptyLayout') #Real main layout containing all the UI cmds.rowColumnLayout( 'InE_NSMMainLayout', p = "InE_NSMEmptyLayout", numberOfColumns=2, columnWidth=[(1, 300), (2, 190)], h = 330, ro = [[1, "both", 20], [2, "both", 10]], co = [[1, "both", 10], [2, "both", 0]]) cmds.treeView('InE_NSMTextScrollList', parent = "InE_NSMMainLayout", numberOfButtons = 0, h= 150, abr = False, ams = True, adr = True, arp = True, idc = self.emptyMethod, sc = self.selectNamespace ) cmds.treeView('InE_NSMTextScrollList', edit = True, enk = True) cmds.columnLayout('InE_NSMInformations', p = "InE_NSMMainLayout", columnAttach=('both', 0), cw = 250, rowSpacing=5, cal="left" , ebg = True) cmds.text(p = 'InE_NSMInformations', label = "Informations") cmds.text('InE_NSMNameInformations', p = 'InE_NSMInformations', label = "") cmds.text('InE_NSMEmptyInformations', p = 'InE_NSMInformations', label = "") cmds.columnLayout('InE_NSMModifications', p = "InE_NSMMainLayout", columnAttach=('both', 20), co = ("both", 10), cw = 250, rowSpacing=6, cal="left" , ebg = True) cmds.text(p = 'InE_NSMModifications', label = "Rename selected to: ") cmds.textField('InE_NSMNameInput', p = 'InE_NSMModifications') cmds.radioCollection('InE_NSMRadioCollection', p = 'InE_NSMModifications') cmds.radioButton('InE_NSMRadioButton1', label='and keep namespace hierarchy', select=True ) cmds.radioButton('InE_NSMRadioButton2', label='and move namespace to root' ) cmds.button('InE_NSMRenameSelected', p = 'InE_NSMModifications', label = "Rename selected", en = True, command = self.renameSelected) cmds.columnLayout('InE_NSMButtons', p = "InE_NSMMainLayout", columnAttach=('both', 20), co = ("both", 10), rowSpacing=23, cal="left" , ebg = True) cmds.button('InE_NSMRemoveSelected', p = 'InE_NSMButtons', label = "Remove selected", w = 128, en = True, command = self.removeSelected) cmds.button('InE_NSMRemoveEmpty', p = 'InE_NSMButtons', label = "Remove empty", w = 128, en = True, command = self.removeEmpty) cmds.button('InE_NSMRemoveAll', p = 'InE_NSMButtons', label = "Remove all", w = 128, en = True, command = self.removeAll) cmds.showWindow() self.updateTreeView() print self.listNamespace
def rigType(self): '''Returns: int: option selected in ui''' # DW : demonstrating property usage and partial rb = cmds.radioCollection(self.rc_ikfk, q=True, select=True) cia = [ i.split('|')[-1] for i in cmds.radioCollection(self.rc_ikfk, q=True, cia=True) ] return cia.index(rb)
def radioButtonGrp_ui(self, cameraName, cameraNum): mc.rowLayout(nc=100, p=self.camColumnLay, h=25) mc.text(l=cameraName, w=100, h=25) cam_radio_name = '%s_radio' % (cameraName) mc.radioCollection(cam_radio_name) for num in xrange(cameraNum + 1): cam_radioButton_name = '%s_%s' % (cameraName, str(num)) mc.radioButton(cam_radioButton_name, label=str(num)) mc.setParent('..') mc.radioCollection(cam_radio_name, e=True, sl='%s_0' % (cameraName))
def testApp(self, *args ): title = cmds.textField( self.pWindow.titleField, q=1, tx=1 ) selItem = cmds.radioCollection( self.pWindow.collection, q=1, sl=1 ) collectionItems = cmds.radioCollection( self.pWindow.collection, q=1, collectionItemArray=1 ) selItems = ['mel','python'] for i in range( len( collectionItems ) ): if collectionItems[i].find( selItem ) != -1: break cmdTestApp( self.pWindow.tab, title, selItems[i] )
def cmdLoadBeforeSetting( pWindow, textField, tabLayout, radioCollection, packageFolderPath ): packageFolderPath = packageFolderPath.replace( '\\', '/' ) packageFolderName = packageFolderPath.split( '/' )[-1] codeNames = [] codePaths = [] codeTypeIndex = 0 for root, dirs, names in os.walk( packageFolderPath ): if not names: return None else: for name in names: codeName, extension = name.split( '.' ) if codeName == '__init__': continue if extension == 'mel': codeTypeIndex = 0 elif extension == 'py': codeTypeIndex = 1 else: continue codeNames.append( codeName ) codePaths.append( root+'/'+name ) break items = [] cmds.setParent( tabLayout ) mainCommandField = cmds.tabLayout( tabLayout, q=1, ca=1 )[0] uiCmdInst = uiCmd( pWindow ) for i in range( len( codeNames ) ): codeName = codeNames[i] codePath = codePaths[i] f = open( codePath, 'r' ) data = f.read() f.close() if codeName == 'MainCommand': scrollField = mainCommandField else: scrollField = uiCmdInst.addChild(tabLayout, codeName) cmds.scrollField( scrollField, e=1, tx=data ) cmds.setParent( '..' ) childItems = cmds.radioCollection( radioCollection, q=1, cia=1 ) cmds.radioCollection( radioCollection, e=1, sl=childItems[codeTypeIndex] ) cmds.textField( textField, e=1, tx=packageFolderName ) cmds.tabLayout( tabLayout, e=1, tabLabel=items )
def generate_mirror_function_controls(self, module_name, scroll_width): rotation_radio_collection = "rotation_radioCollection_all" translation_radio_collection = "translation_radioCollection_all" text_label = "Mirror Settings:" behavior_name = "behavior__" orientation_name = "orientation__" mirrored_name = "mirrored__" worldspace_name = "worldSpace__" if module_name != None: rotation_radio_collection = "rotation_radioCollection_"+module_name translation_radio_collection = "translation_radioCollection_"+module_name text_label = module_name+" Mirror Settings:" behavior_name = "behavior__"+module_name orientation_name = "orientation__"+module_name mirrored_name = "mirrored__"+module_name worldspace_name = "worldSpace__"+module_name cmds.text(label=text_label) mirror_settings_text_width = 100 mirror_settings_column_width = (scroll_width - mirror_settings_text_width / .55) cmds.rowColumnLayout( nc=3, columnAttach=(1, "right", 0), columnWidth=[ (1, mirror_settings_text_width), (2, mirror_settings_column_width), (3, mirror_settings_column_width) ] ) cmds.text(label="Rotation Mirror: ") self.ui_elements[rotation_radio_collection] = cmds.radioCollection() cmds.radioButton(behavior_name, label="Behavior", select=True) cmds.radioButton(orientation_name, label="Orientation", select=False) cmds.text(label="Translation Mirror: ") self.ui_elements[translation_radio_collection] = cmds.radioCollection() cmds.radioButton(mirrored_name, label="Mirrored", select=True) cmds.radioButton(worldspace_name, label="World Space", select=False) cmds.setParent(self.ui_elements["top_column_layout"]) cmds.text(label="")
def resetSettings(self, *args): cmds.optionVar(stringValue = ('kT_aPT_alignAxis', 'Y')) cmds.optionVar(intValue = ('kT_aPT_direction', 2)) cmds.optionVar(intValue = ('kT_aPT_centerAxis', 1)) self.alignAxis = cmds.optionVar(query = 'kT_aPT_alignAxis') self.direction = cmds.optionVar(query = 'kT_aPT_direction') self.centerAxis = cmds.optionVar(query = 'kT_aPT_centerAxis') cmds.radioCollection('n_aPT_rC_align', edit = True, sl = self.axisY) cmds.optionMenu('n_oM_direction', edit = True, sl = self.direction) cmds.checkBox('n_cB_centerAxis', edit = True, v = self.centerAxis)
def smartOrient (): _axis = cmds.radioCollection ( 'radioCollection_axis', query = True, select = True ) if _axis == 'axisX': _axis = 0 elif _axis == 'axisY': _axis = 1 else: _axis = 2 _direction = cmds.radioCollection ( 'radioCollection_direction', query = True, select = True ) if _direction == 'plus': _direction = 1 else: _direction = -1 _keepShape = cmds.checkBox ( 'check_keepShape', query = True, value = True ) _selList = cmds.ls ( selection = True, long = True ) _rotation = [ ( 90 * _direction, 0, 0 ), ( 0, 90 * _direction, 0 ), ( 0, 0, 90 * _direction ) ] if len ( _selList ) > 0: for _selected in _selList: if cmds.nodeType ( _selected ) == 'joint': cmds.select ( _selected + '.rotateAxis', replace = True ) cmds.xform ( rotation = _rotation[_axis], relative = True ) elif cmds.nodeType ( _selected ) == 'transform': _offsetGroup = cmds.listRelatives ( parent = True ) if _offsetGroup != None: cmds.xform ( _offsetGroup[0], rotation = _rotation[_axis], relative = True, objectSpace = True ) if _keepShape: mm.eval ( 'SelectCurveCVsAll;' ) cmds.xform ( rotation = (_rotation[_axis][0] * -1, _rotation[_axis][1] * -1, _rotation[_axis][2] * -1 ), relative = True, objectSpace = True ) print; print; print '>>> SO FAR SO GOOD'; print # <<< DEBUG ONLY LINE, CAN BE DELETED <<< ########## else: raiseWarning ( 'Group selected' ) else: raiseWarning ( 'this works only on control transForms and joints' ) cmds.select ( _selList ) else: raiseWarning ( 'Nothing selected' )
def BuildUI( self ): self.Window = cmds.window( title = self.WINDOW_NAME + " " + self.PLUGIN_VERSION, sizeable = True, resizeToFitChildren = True, widthHeight = ( 1, 1 ) ) HalfWidth = ( self.WINDOW_WIDTH / 2 ) # main column cmds.columnLayout() # rotate around layout cmds.radioCollection() cmds.frameLayout( label = "Rotate Around", collapsable = False, width = self.WINDOW_WIDTH ) cmds.columnLayout() cmds.rowColumnLayout( numberOfColumns = 1, columnWidth = [ ( 1, self.WINDOW_WIDTH ) ] ) self.rbRotateAroundCenterBB = cmds.radioButton( label = "Center of objects", onCommand = self.OnRotateAroundCenterBBoxSelected, select = True ) cmds.setParent( ".." ) #rowColumnLayout cmds.rowColumnLayout( numberOfColumns = 2, columnWidth = [ ( 1, HalfWidth ), ( 2, HalfWidth - 5 ) ] ) self.rbRotateAroundObject = cmds.radioButton( label = "Object Pivot", onCommand = self.OnRotateAroundObjectSelected ) self.bPickObjectToRotateAround = cmds.button( label = "Pick", command = self.OnPickObject ) cmds.setParent( ".." ) #rowColumnLayout cmds.rowColumnLayout( numberOfColumns = 2, columnWidth = [ ( 1, HalfWidth ), ( 2, HalfWidth - 5 ) ] ) self.rbRotateAroundPosition = cmds.radioButton( label = "Position (XYZ)", onCommand = self.OnRotateAroundPositionSelected ) cmds.rowColumnLayout( numberOfColumns = 3, columnWidth = [ ( 1, ( HalfWidth / 3 ) - 1 ), ( 2, ( HalfWidth / 3 ) - 1 ), ( 3, ( HalfWidth / 3 ) - 1 ) ] ) self.txtRAPX = cmds.textField( text = "0", changeCommand = self.OnTextFieldValueChange ) self.txtRAPY = cmds.textField( text = "0", changeCommand = self.OnTextFieldValueChange ) self.txtRAPZ = cmds.textField( text = "0", changeCommand = self.OnTextFieldValueChange ) cmds.setParent( ".." ) #rowColumnLayout cmds.setParent( ".." ) #rowColumnLayout cmds.setParent( ".." ) #columnLayout cmds.setParent( ".." ) #frameLayout # info layout cmds.frameLayout( label = "Rotate Info", collapsable = False, width = self.WINDOW_WIDTH ) cmds.columnLayout() self.txtObjectsToRotate = cmds.text( label = "Objects To Rotate: 0" ) self.txtRotationPivot = cmds.text( label = "Rotate around: none" ) cmds.setParent( ".." ) #columnLayout cmds.setParent( ".." ) #frameLayout # buttons layout cmds.rowColumnLayout( numberOfColumns = 2, columnWidth = [ ( 1, HalfWidth ), ( 2, HalfWidth ) ] ) self.bStartRotate = cmds.button( label = "Start", command = self.OnStartRotate, enable = False ) self.bClose = cmds.button( label = "Close", command = self.OnClose ) cmds.setParent( ".." ) # rowColumnLayout # ... cmds.showWindow( self.Window ) # main column
def cmdUpdateApp( self, *args ): title = cmds.textField( self.pWindow.titleField, q=1, tx=1 ) selItem = cmds.radioCollection( self.pWindow.collection, q=1, sl=1 ) collectionItems = cmds.radioCollection( self.pWindow.collection, q=1, collectionItemArray=1 ) selItems = ['mel','python'] for i in range( len( collectionItems ) ): if collectionItems[i].find( selItem ) != -1: break cmdModel.cmdUpdateApp( self.pWindow.tab, self.currentCategoryInst.optionMenu, title, selItems[i] ) cmds.deleteUI( self.winName, wnd=1 ) view.showUserSetupMenu()
def core(self): addSpaceWidth = 20 editWidt = self._width-addSpaceWidth halfWidth = editWidt/2 lastWidth = editWidt - halfWidth cmds.rowColumnLayout( nc=4, cw=[(1,addSpaceWidth+self._sideWidth), (2,halfWidth), (3,lastWidth), (4,self._sideWidth)] ) self._nameCollection = cmds.radioCollection() mainInfo.setSpace() cmds.radioButton( l='Prefix', sl=1 ) cmds.radioButton( l='Namespace' ) mainInfo.setSpace() cmds.setParent( '..' ) mainInfo.setSpaceH( 5 ) buttonWidth = self._width/2 lastWidth = self._width - buttonWidth cmds.rowColumnLayout( nc=4, cw=[(1,self._sideWidth), (2,buttonWidth), (3,lastWidth), (4,self._sideWidth)] ) mainInfo.setSpace() self._frontNameOptionMenu = cmds.optionMenu( ) cmds.menuItem( l='the file name' ) cmds.menuItem( l='this string') self._thisStringField = cmds.textField( en=0 ) mainInfo.setSpace() cmds.setParent( '..' )
def mirrorClusterCmd(self): """""" sels = cmds.ls(sl=1, ap=1) if not sels: cmds.error("Please select clusters or joints!") # Prepare parameters axisBtn = cmds.radioCollection(self.axisCol, q=1, sl=1) axisId = cmds.radioButton(axisBtn, q=1, l=1).lower() axises = scData.getAxisMap(axisId) mirrorPivot = cmds.textField(self.mirPivTxFld, q=1, tx=1) tol = float(cmds.textFieldGrp(self.tolTxFld, q=1, tx=1)) search = cmds.textFieldGrp(self.searchTxFld, q=1, tx=1) replace = cmds.textFieldGrp(self.replaceTxFld, q=1, tx=1) # Deal with mirror pivot matrix if mirrorPivot: pivotMatrixList = cmds.xform(mirrorPivot, q=1, ws=1, m=1) else: pivotMatrixList = scData.getWorldMatrixList() start = clock() for sel in sels: if cmds.objectType( sel, isType='joint' ): scData.JointFn.mirrorJnt(sel, pivotMatrixList, axises, search, replace, tol) elif cmds.listRelatives(sel, s=1, typ='clusterHandle'): scData.ClusterFn.mirrorCluster(sel, pivotMatrixList, axises, search, replace, tol) else: cmds.warning("%s is skipped!" % sel) finish = clock() om.MGlobal.displayInfo( "Mirror Time Cost: %fs" % (finish-start) )
def sjModeSwitch(): ''' Will adjust the interface for the different modes that are available. ''' # Get Radio Button info rc = cmds.radioCollection(radioCol, q=True, sl=True) # Label is the same name as the scriptJob type sjType = cmds.radioButton(rc, q=True, label=True) # Get selected items from the textScrollList try: selectedTSL = cmds.textScrollList(tsl, q=True, si=True)[0] except TypeError: selectedTSL = "" cmds.textFieldGrp("mecSJConLabel", edit=True, en=True) cmds.textFieldGrp("mecSJConLabel", edit=True, text="") if( sjType == "event"): cmds.textFieldGrp("mecSJConLabel", edit=True, text=selectedTSL) cmds.textFieldGrp("mecSJConLabel", edit=True, label="Event Type") elif( sjType == "attributes" or sjType == "connectionChange"): cmds.textFieldGrp("mecSJConLabel", edit=True, label="Attribute") elif( sjType == "condition"): cmds.textFieldGrp("mecSJConLabel", edit=True, text=selectedTSL) cmds.textFieldGrp("mecSJConLabel", edit=True, label="Condition Type") elif( sjType == "nodeNameChanged"): cmds.textFieldGrp("mecSJConLabel", edit=True, label="Node Name") elif( sjType == "uiDeleted"): cmds.textFieldGrp("mecSJConLabel", edit=True, label="uiName") elif(sjType == "timeChange"): cmds.textFieldGrp("mecSJConLabel", edit=True, label="") cmds.textFieldGrp("mecSJConLabel", edit=True, en=False)
def loadDisc(): ''' When a type of script job is selected in the textScrollList the discription of that event will be posted in the adjacent scrollField. ''' # Get RadioButton selectedRC = cmds.radioCollection(radioCol, q=True, sl=True) xmlDict = { "mecSJEvent":"Events", "mecSJAttr":"attributes", "mecSJCond":"Conditions", "mecSJNode":"nodeNameChanged", "mecSJConn":"connectionChange", "mecSJUI":"uiDeleted", "mecSJTime":"timeChange"} # get selected element from the textScrollList # Get which event was selected. Only the first item will be addressed. selectedTSL = cmds.textScrollList(tsl, q=True, si=True)[0] # Access proper tag from xml file elem = sjXML.getroot() sjType = xmlDict[selectedRC] curSel = elem.find(sjType) # find which type is selected. disc = "" for item in curSel: if( item.text == selectedTSL ): disc = item[0].text # apply disc name to the scrollField cmds.scrollField( sfDisc, edit=True, text=disc) sjModeSwitch()
def apply(self,*args): selectedAxisBtn = cmds.radioCollection('n_aPT_rC_align', query = True, sl = True) cmds.optionVar(stringValue=['kT_aPT_alignAxis', cmds.radioButton(selectedAxisBtn, query = True, l = True)]) cmds.optionVar(intValue =['kT_aPT_centerAxis', cmds.checkBox('n_cB_centerAxis', query = True, v = True)]) cmds.optionVar(intValue=['kT_aPT_direction', cmds.optionMenu('n_oM_direction', query = True, sl = True)]) alignPivotTool()
def create(self): form = cmds.formLayout() text = cmds.text( l= self.label, w=self.width1, h=self.height, al= self.aline ) radio = cmds.radioCollection() rb1 = cmds.radioButton( l=self.rbLabel1, w=self.width2, sl=1 ) rb2 = cmds.radioButton( l=self.rbLabel2, w=self.width3 ) rb3 = cmds.radioButton( l=self.rbLabel3, w=self.width4 ) check = cmds.checkBox( l=self.rbLabel4 ) txf = cmds.textField( en=0 ) cmds.setParent( '..' ) cmds.formLayout( form, e=1, af = [( text, 'top', 0 ),( text, 'left', 0 ), ( rb1, 'top', 0 ), ( rb2, 'top', 0 ), ( rb3, 'top', 0 )], ac = [( rb1, 'left', 0, text ), ( rb2, 'left', 0, rb1 ), ( rb3, 'left', 0, rb2 ), ( check, 'top', 0, text ), ( check, 'left', 0, text ), ( txf, 'top', 0, text ), ( txf, 'left', 0, check )] ) WinA_Global.searchForType_radio = radio WinA_Global.searchForType_check = check WinA_Global.searchForType_txf = txf WinA_Global.searchForType_form = form return form
def getSearchForType(): items = cmds.radioCollection( WinA_Global.searchForType_radio, q=1, cia=1 ) for i in range( len( items ) ): if cmds.radioButton( items[i], q=1, sl=1 ): break return i
def createInfluenceMappingGroup(self): group = self.createUIGroup(self.cmdLayout.innerLayout, 'Influence Mapping') self.createFixedTitledRow(group, 'Infl. Distance Error') self.controls.influenceDistanceError = FloatField(self.VAR_PREFIX+'distanceError', minValue=0, maxValue=None, step=0.01, defaultValue=0.001, annotation='Defines maximum inaccuracy between left and right influence positions') self.controls.influenceDistanceError.changeCommand.addHandler(self.previewInfluenceMapping, group) if self.mirrorMode: self.createTitledRow(group, 'Ignore') cmds.radioCollection() for index,i in enumerate(['Prefixes','Suffixes']): ctrl = self.controls.__dict__['ignore'+i] = RadioButtonField(self.VAR_PREFIX+'ignoreMode'+i,defaultValue=1 if index==0 else 0,label=i) ctrl.changeCommand.addHandler(self.ignoreModeChanged,group) self.controls.prefixesGroup = self.createTitledRow(group, 'Influence Prefixes') self.controls.influencePrefixes = StoredTextEdit(self.VAR_PREFIX+'inflPrefix', annotation='Specifies influence prefixes to be ignored when matching by name;\nUsually you would put your left/right influence prefixes here;\nseparate them with commas, e.g. "L_, R_"') self.controls.influencePrefixes.changeCommand.addHandler(self.previewInfluenceMapping, group) self.controls.suffixesGroup = self.createTitledRow(group, 'Influence Suffixes') self.controls.influenceSuffixes = StoredTextEdit(self.VAR_PREFIX+'inflSuffix', annotation='Specifies influence suffixes to be ignored when matching by name;\nUsually you would put your left/right influence suffixes here;\nseparate them with commas, e.g. "_Lf, _Rt"') self.controls.influenceSuffixes.changeCommand.addHandler(self.previewInfluenceMapping, group) influencesLayout = cmds.columnLayout(parent=group,adjustableColumn=1,rowSpacing=Constants.MARGIN_SPACING_VERTICAL) cmds.text(parent=influencesLayout,label="Influence mapping to be used:",align='left') self.controls.influencesList = cmds.textScrollList(parent=influencesLayout, height=200, numberOfRows=5, allowMultiSelection=True, selectCommand=self.onInfluenceSelected, deleteKeyCommand=lambda *args: self.removeSelectedManualMappings()) manualGroup = self.createUIGroup(self.cmdLayout.innerLayout, 'Manual influence mapping') cmds.rowLayout(parent=manualGroup,nc=3) buttonWidth = 110 cmds.button('Disconnect link',width=buttonWidth,command=lambda *args: self.doDisconnectMapping(),annotation='Disconnect two associated influences, and make each influence point to itself') if self.mirrorMode: cmds.button('Link, both ways',width=buttonWidth,command=lambda *args: self.doConnectMapping(bidirectional=True),annotation='Connect two selected influences and link them both ways') cmds.button('Link, one way' if self.mirrorMode else "Link",width=buttonWidth,command=lambda *args: self.doConnectMapping(bidirectional=False),annotation='Connect two selected influences and link on source to destination') cmds.rowLayout(parent=manualGroup,nc=2) cmds.button('Remove manual rule',width=buttonWidth,command=lambda *args: self.removeSelectedManualMappings(),annotation='Remove manual rule; influence will be a subject to automatic matching') self.ignoreModeChanged() cmds.setParent(group)
def show(self): if cmds.window( self._winName, ex=1 ): cmds.deleteUI( self._winName, wnd=1 ) cmds.window( self._winName, title= self._title ) columnWidth = self._width - 2 sliderFirstWidth = columnWidth * 0.4 sliderSecondWidth = 50 sliderThirdWidth = columnWidth - sliderFirstWidth - sliderSecondWidth firstWidth = ( columnWidth -2 )/ 2 secondWidth = ( columnWidth - 2 ) - firstWidth cmds.columnLayout() cmds.rowColumnLayout( nc=2, co=[(1, 'left',30)], cw=[(1,firstWidth),(2,secondWidth)]) cmds.radioCollection() radio1 = cmds.radioButton( l='By Number', sl=1, onc = self.cmdOn, ofc = self.cmdOff ) radio2 = cmds.radioButton( l='By Length' ) cmds.setParent( '..' ) cmds.rowColumnLayout( nc=1, cw=(1,columnWidth) ) cmds.separator() slider1 = cmds.intSliderGrp( l='Num of Joint : ', f=1, cw=[(1,sliderFirstWidth),(2,sliderSecondWidth),(3,sliderThirdWidth)], min=1, max=20, fmn=1, fmx=1000, v=5 ) slider2 = cmds.floatSliderGrp( l='Mult Rate : ', f=1, cw=[(1,sliderFirstWidth),(2,sliderSecondWidth),(3,sliderThirdWidth)], min=0.01, max=10, fmn=0.01, fmx=100, v=1.0, pre=2, en=0 ) cmds.separator() cmds.rowColumnLayout( nc=2, cw=[( 1, 50 ), (2,columnWidth-52)]) cmds.text( l='' ) check = cmds.checkBox( l='Connect Distance Node', value =1 ) cmds.setParent( '..' ) cmds.text( l='', h=5 ) cmds.button( l='Create', c=self.cmdCreate ) cmds.setParent( '..' ) cmds.window( self._winName, e=1, w = self._width, h= self._height ) cmds.showWindow( self._winName ) self._slider1 = slider1 self._slider2 = slider2 self._radio1 = radio1 self._radio2 = radio2 self._check = check