def sliderBld(attrLabel, attr, curParent, minVal=0, maxVal=1, reset=0): row = cmds.rowColumnLayout(nc=3, cw=[[1, 280], [2, 50], [3, 50]], parent=curParent) slider = cmds.floatSliderGrp(label=attrLabel, field=True, min=minVal, max=maxVal, cw=[[1, 60], [2, 60], [3, 100]]) # attribute needs to be sent to the function. cmds.button(label="Key", command=scriptName + ".key( '" + attr + "')") ''' # Python's string concatination (adding strings) cmds.button(label="Key", command=scriptName + ".key('%s')" %attr) # The %s means its a stand in for a string. # %attr is the value being placed inside the string. # %(attr, ??? ) for multiple strings. ''' # attribute and reset value need to sent to the function. cmds.button(label="Reset", command=scriptName + ".reset( '" + attr + "', " + str(reset) + ")") ''' cmds.button(label="Reset", command=scriptName + ".reset('%s', %s)" %(attr, reset)) # Multiple strings can be inputted # %( attr, reset ) places values by order. ''' cmds.connectControl(slider, attr) cmds.setParent(curParent) return row
def sliderBld(labelName, attr, currParent, minVal=0, maxVal=1, resetVal=0, cw1=60): frm = cmds.formLayout(parent=currParent) ''' slider = cmds.floatSliderGrp( label=labelName, field=True, min=minVal, max=maxVal, cw=[[1,cw1],[2,60], [3,70]], co3=[0, 0, 10], cat=[3,"left",0]) ''' text = cmds.text( width=cw1, label=labelName, align="center" ) field = cmds.floatField( min=minVal, max=maxVal, w=60 ) slider = cmds.floatSlider( min=minVal, max=maxVal, w=100 ) cmds.connectControl(field, attr) cmds.connectControl(slider, attr) btn1 = cmds.button( label="Key", command=scriptName + ".key('" + attr + "')") btn2 = cmds.button( label="Reset", command=scriptName + ".reset('" + attr + "', " + str(resetVal) +")" ) # text position cmds.formLayout( frm, e=1, attachForm=[[text, "left", 0],[text, "top", 0]]) # field position cmds.formLayout( frm, e=1, attachForm=[field, "top", 0], attachControl=[field, "left", 0, text]) # slider position cmds.formLayout( frm, e=1, attachForm=[slider, "top", 0], attachControl=[slider, "left", 0, field]) # buttons position cmds.formLayout( frm, e=1, attachForm=[btn1, "top", 0], attachControl=[btn1, "left", 0, slider]) cmds.formLayout( frm, e=1, attachForm=[btn2, "top", 0], attachControl=[btn2, "left", 0, btn1]) cmds.setParent( currParent ) return frm
def visCntrls(curParent): ''' Different visibility controls for character. ''' imgDef = lambda x: os.path.join( iconPath, x ) visRC = cmds.rowColumnLayout( nc=5, cw=[[1,60],[2,50],[3,50],[4,50],[5,50]], parent=curParent) jointVis = cmds.symbolCheckBox(image=imgDef("JointVis_On.xpm"), w=60, h=45, oni=imgDef("JointVis_On.xpm") , ofi=imgDef("JointVis_Off.xpm") ) cmds.connectControl( jointVis, "rig.v") ctrlVis = cmds.symbolCheckBox(image=imgDef("ctrlVis_On.xpm"), w=60, h=45, oni=imgDef("ctrlVis_On.xpm") , ofi=imgDef("ctrlVis_Off.xpm") ) cmds.connectControl( ctrlVis, "move_all_control.visibility") # Row and High Rez # Dress # Face Controls # T-Pose cmds.setParent(curParent)
def expose_driver_unit(self, anchor, writeData, index, root): mc.frameLayout(collapsable=True, labelVisible=True, borderStyle='out', l='driver%s' % index, mw=2, mh=2, p=anchor) if writeData[5] == True: mc.textField(tx=writeData[0], ed=False, font='boldLabelFont') else: mc.textField(tx=writeData[0], ed=False) mc.separator() mc.text(l='label') lblFld = mc.textField(ed=True) mc.connectControl(lblFld, writeData[3]) mc.text(l='widgetID') wdgFld = mc.textField(ed=True) mc.connectControl(wdgFld, writeData[4]) mc.separator() rmBtn = mc.button(l='remove', c=partial(self.validate_driver_deletion, root, index))
def sliderBld(attrLabel, attr, curParent, minVal=0, maxVal=1, reset=0): frm = cmds.formLayout(parent=curParent) text = cmds.text(label=attrLabel, w=60) field = cmds.floatField(w=60, min=minVal, max=maxVal) slider = cmds.floatSlider(w=100, min=minVal, max=maxVal) # attribute needs to be sent to the function. btn1 = cmds.button( label="Key", # command=scriptName + ".key( '" + attr + "')") command="%s.key( '%s' )" % (scriptName, attr), ) # attribute and reset value need to sent to the function. btn2 = cmds.button( label="Reset", # command=scriptName + ".reset( '" + attr + "', " + str(reset) + ")") command="%s.reset( '%s', %s )" % (scriptName, attr, reset), ) # attach Form (text control) cmds.formLayot(frm, edit=True, attachForm=[[text, "left", 0], [text, "top", 0]]) # attachForm and attachControl cmds.formLayout(frm, edit=True, attachForm=[field, "top", 0], attachControl=[field, "left", 0, text]) cmds.formLayout(frm, edit=True, attachForm=[slider, "top", 0], attachControl=[slider, "left", 0, field]) cmds.formLayout(frm, edit=True, attachForm=[btn1, "top", 0], attachControl=[btn1, "left", 0, slider]) cmds.formLayout(frm, edit=True, attachForm=[btn2, "top", 0], attachControl=[btn2, "left", 0, btn1]) cmds.connectControl(slider, attr) cmds.connectControl(field, attr) cmds.setParent(curParent) return row
def expose_component(self,tabAnchor,rootData): attrib_link = rootData[0] ctrlHgt = 24 nodeData = attrib_link.split('.') typeChk = mc.attributeQuery( nodeData[-1], node=nodeData[0], attributeType=True ) numericType = ['float','double','short','long','int','bool','enum','string'] clm = mc.columnLayout( adjustableColumn=True, rs=5 ,p=tabAnchor, w=420 -30 ) stringType = mc.getAttr(attrib_link,type=True) fildCaption = mc.textField( tx=rootData[1],ed=False,w=410 -30 ,p=clm , font="boldLabelFont",bgc=[0.8,0.8,0.8]) mc.popupMenu( button=3 ,p=fildCaption) mc.menuItem(l='Open in connection Editor' ) if stringType == 'string': attrFld = mc.textField( ed=True,w=410 -30 ,p=clm ) mc.connectControl( attrFld, attrib_link ) else: if typeChk in numericType: mc.attrFieldSliderGrp( attribute=rootData[0],p=clm ) else: flw = mc.flowLayout( columnSpacing=4 , p=clm ) fldLnk = mc.textField( tx=rootData[0],ed=False ,w=385,h=ctrlHgt,p=flw) mc.button( label='<',p=flw)
def sliderBld(attrLabel, attr, curParent, minVal=0, maxVal=1, reset=0): frm = cmds.formLayout(parent=curParent) text = cmds.text( label=attrLabel, w=60 ) field = cmds.floatField( w=60, min=minVal, max=maxVal) slider = cmds.floatSlider( w=100, min=minVal, max=maxVal ) # attribute needs to be sent to the function. btn1 = cmds.button(label="Key", # command=scriptName + ".key( '" + attr + "')") command="%s.key( '%s' )" %(scriptName, attr)) # attribute and reset value need to sent to the function. btn2 = cmds.button(label="Reset", # command=scriptName + ".reset( '" + attr + "', " + str(reset) + ")") command="%s.reset( '%s', %s )" %(scriptName, attr, reset)) # attach Form (text control) cmds.formLayot( frm, edit=True, attachForm=[[text, "left", 0], [text, "top", 0]] ) # attachForm and attachControl cmds.formLayout( frm, edit=True, attachForm=[field, "top", 0], attachControl=[field, "left", 0, text] ) cmds.formLayout( frm, edit=True, attachForm=[slider, "top", 0], attachControl=[slider, "left", 0, field] ) cmds.formLayout( frm, edit=True, attachForm=[btn1, "top", 0], attachControl=[btn1, "left", 0, slider] ) cmds.formLayout( frm, edit=True, attachForm=[btn2, "top", 0], attachControl=[btn2, "left", 0, btn1] ) cmds.connectControl( slider, attr ) cmds.connectControl( field, attr ) cmds.setParent(curParent) return row
def bulge_button( self, *args ): if( cmds.objExists( "ZBend" ) ): cmds.confirmDialog( title="Error", message="First delete the bulge history on the previously\ndeformed object before bulging another.", button="Okie Dokie" ) return 0 latestSelection = cmds.ls( selection=True ) if( len( latestSelection ) == 0 ): return 0 if( len( latestSelection ) == 1 ): self.relatives = cmds.listRelatives( children=True ) if( len(self.relatives) == 1 ): self.bbox = cmds.exactWorldBoundingBox( latestSelection ) cmds.nonLinear( type='bend', curvature=cmds.intSliderGrp( "x_bulge_slider", value=True, query=True ) ) cmds.rename( "XBend" ) cmds.move((self.bbox[0] + self.bbox[3])/2, self.bbox[1], (self.bbox[2] + self.bbox[5])/2, "XBend", rpr=True ) cmds.setAttr( "XBend.rotateZ", -90 ) cmds.select( latestSelection ) cmds.nonLinear( type='bend', curvature=cmds.intSliderGrp( "z_bulge_slider", value=True, query=True ) ) cmds.rename( "ZBend" ) cmds.move((self.bbox[0] + self.bbox[3])/2, self.bbox[1], (self.bbox[2] + self.bbox[5])/2, "ZBend", rpr=True ) cmds.setAttr( "ZBend.rotateZ", -90 ) cmds.setAttr( "ZBend.rotateX", 90 ) cmds.connectControl( "x_bulge_slider", "bend1.curvature" ) cmds.connectControl( "z_bulge_slider", "bend2.curvature" ) cmds.select( latestSelection )
def sliderBld(attrLabel, attr, curParent, minVal=0, maxVal=1, reset=0): row = cmds.rowColumnLayout(nc=3, cw=[[1,220],[2,50],[3,50]], parent=curParent) slider = cmds.floatSliderGrp( label=attrLabel, field=True, min=0, max=1, cw=[[1,60], [2,60], [3,100]], min=minVal, max=maxVal) # attribute needs to be sent to the function. cmds.button(label="Key", command=scriptName + ".key( '" + attr + "')") ''' # Python's string concatination (adding strings) cmds.button(label="Key", command=scriptName + ".key('%s')" %attr) # The %s means its a stand in for a string. # %attr is the value being placed inside the string. # %(attr, ??? ) for multiple strings. ''' # attribute and reset value need to sent to the function. cmds.button(label="Reset", command=scriptName + ".reset( '" + attr + "', " + str(reset) + ")") ''' cmds.button(label="Reset", command=scriptName + ".reset('%s', %s)" %(attr, reset)) # Multiple strings can be inputted # %( attr, reset ) places values by order. ''' cmds.connectControl( slider, attr ) cmds.setParent(curParent) return row
def ArnoldGpuCacheTemplateReplace(plugName) : AttrName = plugName.split('.')[-1] cmds.connectControl('GpuCache%sPath'%AttrName,plugName,fileName=True ) cmds.textField( 'GpuCache%sPath'%AttrName, edit=True, changeCommand=lambda *args: ArnoldGpuCacheEdit(plugName, *args)) cmds.textField( 'GpuCache%sPath'%AttrName, edit=True, text=cmds.getAttr(plugName) ) cmds.symbolButton('GpuCache%sPathButton'%AttrName, edit=True, command=lambda *args: LoadGpuCacheButtonPush(plugName))
def slider_listener(*args): bsn = get_blend_shape_node() attrs = cmds.textScrollList(BSM_TEXT_SCROLL_LIST, query=True, selectItem=True) # list compression attrs_array = [bsn + "." + attr for attr in attrs] # con "*" spacchetto la lista mettendo "," tra gli elementi cmds.connectControl(BSM_FLOAT_SLIDER_GRP, *attrs_array)
def __init__(self, node, label="Max Distance", collapse=True): self.controls = [] self.connectControls = [] def attr(attr): return "%s.%s" % (node, attr) self.node = node if cmds.frameLayout(label=label, collapse=collapse, collapsable=True): if cmds.columnLayout(adj=True): self.use_max_dist = cmds.checkBoxGrp( label="", label1="Use Max Distance", columnWidth=columnWidthData, cc=self.value_changed) self.connectControls.append( ("use_max_dist", self.use_max_dist, 2)) cmds.connectControl(self.use_max_dist, attr("use_max_dist"), index=2) self.max_dist = cmds.attrFieldSliderGrp( attribute=attr("max_dist"), label="Max Dist", columnWidth=columnWidthData) self.controls.append( ("max_dist", self.max_dist, cmds.attrFieldSliderGrp)) self.use_color = cmds.checkBoxGrp( label="", label1="Use Color", columnWidth=columnWidthData, cc=self.value_changed) self.connectControls.append( ("use_max_dist_color", self.use_color, 2)) cmds.connectControl(self.use_color, attr("use_max_dist_color"), index=2) self.color = cmds.attrColorSliderGrp( attribute=attr("max_dist_color"), label="Color", columnWidth=columnWidthData) self.controls.append(("max_dist_color", self.color, cmds.attrColorSliderGrp)) cmds.setParent("..") cmds.setParent("..") self.value_changed()
def currentRendererChanged(): newRenderer = mel.eval("currentRenderer()") logger.debug("currentRendererChanged called, new renderer = %s", newRenderer) if newRenderer != "appleseed": return # Make sure our render globals node exists. createGlobalNodes() # If the render globals window does not exist, create it. if not mc.window("unifiedRenderGlobalsWindow", exists=True): mel.eval("unifiedRenderGlobalsWindow") mc.window("unifiedRenderGlobalsWindow", edit=True, visible=False) # "Customize" the image formats menu. mc.setParent("unifiedRenderGlobalsWindow") mel.eval("setParentToCommonTab;") mc.setParent("imageFileOutputSW") mc.setParent("imageMenuMayaSW") mc.setParent("..") parent = mc.setParent(q=True) # Remove the menu callback and the menu items. mel.eval('optionMenuGrp -e -changeCommand "" imageMenuMayaSW;') items = mc.optionMenuGrp("imageMenuMayaSW", q=True, itemListLong=True) for item in items: mc.deleteUI(item) # Add the formats we support. menu = parent + "|imageMenuMayaSW|OptionMenu" mc.menuItem(parent=menu, label="OpenEXR (.exr)", data=0) mc.menuItem(parent=menu, label="PNG (.png)", data=1) # Connect the control to one internal attribute in our globals node # so that we can add a changed callback to it. mc.connectControl( "imageMenuMayaSW", "appleseedRenderGlobals.imageFormat", index=1) mc.connectControl( "imageMenuMayaSW", "appleseedRenderGlobals.imageFormat", index=2) # Add a callback when our internal attribute changes. # This callback gets the current value from our internal attribute and # uses it to update the original image format attribute (closing the circle.) mc.scriptJob( parent=parent, replacePrevious=True, attributeChange=[ "appleseedRenderGlobals.imageFormat", "import appleseedMaya.renderGlobals; appleseedMaya.renderGlobals.imageFormatChanged()"] ) # Update the image format controls now. imageFormatChanged()
def create_world_button( self, *args ): if( cmds.objExists( "OurSampleWorld" ) ): return 0 else: cmds.sphere( r=10, sections=40, spans=30, name="OurSampleWorld" ) cmds.setAttr( "OurSampleWorld.scale", 9.599, 9.599, 9.599 ) cmds.makeIdentity( apply=True, t=1, r=1, s=1 ) self.wbbox = cmds.exactWorldBoundingBox( "OurSampleWorld" ) cmds.move((self.wbbox[0] + self.wbbox[3])/2, self.wbbox[4], (self.wbbox[2] + self.wbbox[5])/2, "OurSampleWorld.scalePivot", "OurSampleWorld.rotatePivot", absolute=True) cmds.move( 0, 0, 0, "OurSampleWorld", rpr=True ) cmds.connectControl( "world_size_slider", "OurSampleWorld.scaleX", "OurSampleWorld.scaleY", "OurSampleWorld.scaleZ" )
def stereoPlayblastUI(): global txtf win = 'StereoPlayblastWin' core = None Title = 'StereoPlayblastWin' cams = checkCam() heightB = len( cams ) modifyWin = heightB*25 #m = len( checkCam() )*25 if mc.windowPref(win,exists=1):mc.windowPref(win,remove=1) if mc.window(win, exists=1):mc.deleteUI(win) mc.window(win, title = Title, wh=(470,220 + modifyWin)) mc.scrollLayout( 'scrollLayout' ) cl1 = mc.columnLayout( cat=( 'left', 3 ), cw=200, rs=5, adj=1 ) mc.button( l='Creat 3D camera', c="creatStereo();winNewH( len( checkCam() )*25 );stereoPlayblastUI()" ) mc.rowLayout( 'stereoRow', numberOfColumns=3, adjustableColumn=3 ) #mc.text( l='interaxial Separation', w=100, al='right' ) mc.floatSliderGrp( 'interaxialSleder', label='interaxial Separation', w= 450, cal=[100, 'right'], field=True, minValue=-0.000, maxValue=1000.000, fieldMinValue=0.000, fieldMaxValue=1000.000, ss=1.000, value=6.3500, precision=3 ) mc.setParent('..') mc.rowLayout( 'zeroRow', numberOfColumns=3, adjustableColumn=3 ) #mc.text( l='Zero Parallax', w=100, al='right' ) #mc.floatField( 'zeroField', w=80, h=20, value=254.000 ) #mc.floatSlider( 'zeroSleder', w=200, h=2 0, min=0, max=100000, step=0.1) mc.floatSliderGrp( 'zeroSleder', label='Zero Parallax', w= 450, cal=[100, 'right'], field=True, minValue=-0.000, maxValue=1000.000, fieldMinValue=0.000, fieldMaxValue=1000.000, ss=1.00, value=254.000,precision=3 ) camListStereo = mc.ls( type='stereoRigTransform' ) if camListStereo == []: mc.floatSliderGrp( 'interaxialSleder', e=1, enable=False ) mc.floatSliderGrp( 'zeroSleder', e=1, enable=False ) else: stereoShape = mc.listRelatives( camListStereo[0],s=1 )[0] mc.connectControl( 'interaxialSleder', stereoShape+'.interaxialSeparation' ) mc.connectControl( 'zeroSleder', stereoShape+'.zeroParallax' ) #mc.floatField( 'interaxialField', w=80, h=20, value=6.350 ) #mc.floatSlider( 'interaxialSleder', w=200, h=20, min=0, max=100000, step=0.1 ) mc.setParent('..') mc.frameLayout(l = 'Camera List', borderStyle='etchedIn') cl2 = mc.columnLayout() updateCamList(cams) #mc.frameLayout(l = 'button', borderStyle='etchedIn') #cl3 = mc.columnLayout( cat=( 'left', 3 ), cw=200, rs=5, adj=1 ) mc.setParent('..') rl1 = mc.rowLayout( 'camShow', numberOfColumns=4, adjustableColumn=3, p=cl1 ) mc.button( l='Hide some',w=150, c="activeSome()", p=rl1 ) mc.button( l='playblast', w=150, c="playBlastUser( '' )", p=rl1 ) mc.button(l = 'export camera',w=150, c="exportCam()", p=rl1) mc.setParent('..') txtf = mc.textFieldButtonGrp( label='Path', text='', buttonLabel='Browse', cw3 = (40,295,50), adjustableColumn3 = 2, cl3 = ('left', 'center', 'right'),p=cl1,bc = browse, cc = getPath ) rl2 = mc.rowLayout( 'cameraShow', numberOfColumns=4, adjustableColumn=3, p=cl1 ) mc.button( l='path save',w=150, c="saveP()", p=rl2 ) mc.button( l='left',w=150, c="playBlastUser( 'left' )",p= rl2 ) mc.button( l='right',w=150, c="playBlastUser( 'right' )", p=rl2 ) mc.showWindow( win ) loadpreV()
def connect_face(self): ''' This runs through the sliders and the controls and connects them It's dynamic to allow for the change of 'who' ''' for to_connect in self._face_sliders: to_con_attribs = [] for one_who in self._who: # BOOM! for one_attr in to_connect[1]: to_con_attribs.append(one_who+':'+one_attr) cmds.connectControl(to_connect[0], to_con_attribs)
def run(): global job_link_slider global ctrl_attr # Scriptjob command does not accept class instance. # Thats why have taken gui out of class gui() ctrl_attr = 'tmp_connection_object' cmds.sphere(name=ctrl_attr) cmds.hide(ctrl_attr) job_link_slider = cmds.scriptJob( attributeChange=['%s.ty' % ctrl_attr, 'sb.process_blend()']) cmds.connectControl(sb.blend_sl, '%s.ty' % ctrl_attr)
def stereoOr(): global interaxialSleder global zeroSleder camListStereo = mc.ls( type='stereoRigTransform' ) if camListStereo == []: mc.floatSliderGrp( interaxialSleder, e=1, enable=False ) mc.floatSliderGrp( zeroSleder, e=1, enable=False ) else: stereoShape = mc.listRelatives( camListStereo[0],s=1 )[0] mc.floatSliderGrp( interaxialSleder, e=1, enable=True ) mc.floatSliderGrp( zeroSleder, e=1, enable=True ) mc.connectControl( interaxialSleder, stereoShape+'.interaxialSeparation' ) mc.connectControl( zeroSleder, stereoShape+'.zeroParallax' )
def update(self, node): self.setNode(node) nodeType = cmds.nodeType(self.node) # Connect all attributes of the current node to the corresponding control for item in self.connectControls: attr, control = item[:2] index = None try: index = item[2] except IndexError: pass attribute = self.attr(attr) enable = cmds.objExists(attribute) if enable: if index: cmds.connectControl(control, attribute, index=index) else: cmds.connectControl(control, attribute) cmds.control(control, edit=True, manage=enable) for item in self.controls: attr, control, cmd = item[:3] index = None attribute = self.attr(attr) enable = cmds.objExists(attribute) if enable: cmd(control, edit=True, attribute=attribute) cmds.control(control, edit=True, manage=enable) # Update all scriptJob to target the correct node for item in self.scriptJobs: attr, parentControl, scriptJobArg, cmd = item attribute = self.attr(attr) kargs = {scriptJobArg: (attribute, cmd)} cmds.scriptJob(replacePrevious=True, parent=parentControl, **kargs)
def creatStereo(): camL = mc.ls(sl=1) if camL == []: mc.confirmDialog(title="Missing", message="Please select a camera!", button=["Ok"]) return cam = camL[0] camShape = mc.listRelatives(cam, s=1)[0] FL = mc.camera(cam, q=1, fl=1) NCP = mc.camera(cam, q=1, ncp=1) FCP = mc.camera(cam, q=1, fcp=1) cam3d = maya.app.stereo.stereoCameraRig.createStereoCameraRig() mc.parent(cam3d[0], cam) mc.setAttr(cam3d[0] + ".translate", 0, 0, 0, lock=1) mc.setAttr(cam3d[0] + ".rotate", 0, 0, 0, lock=1) mc.setAttr(cam3d[0] + ".scale", 1, 1, 1, lock=1) cam3dShape = mc.listRelatives(cam3d[0], s=1)[0] mc.connectControl("interaxialSleder", stereoShape + ".interaxialSeparation") mc.connectControl("zeroSleder", stereoShape + ".zeroParallax") mc.setAttr(cam3dShape + ".focalLength", FL) mc.setAttr(cam3dShape + ".nearClipPlane", NCP) mc.setAttr(cam3dShape + ".farClipPlane", FCP) mc.setAttr(cam3dShape + ".zeroParallaxPlane", 1) mc.setAttr(cam3dShape + ".safeViewingVolume", 1) for i in cam3d: mc.rename(i, cam + "_" + i) camListStereo = mc.ls(type="stereoRigTransform") if camListStereo == []: mc.floatSliderGrp(interaxialSleder, e=1, enable=False) mc.floatSliderGrp(zeroSleder, e=1, enable=False) else: stereoShape = mc.listRelatives(camListStereo[0], s=1)[0] mc.floatSliderGrp(interaxialSleder, e=1, enable=True) mc.floatSliderGrp(zeroSleder, e=1, enable=True) mc.connectControl(interaxialSleder, cam3dShape + ".interaxialSeparation") mc.connectControl(zeroSleder, cam3dShape + ".zeroParallax")
def ArnoldGpuCacheTemplateReplace(plugName): AttrName = plugName.split('.')[-1] cmds.connectControl('GpuCache%sPath' % AttrName, plugName, fileName=True) cmds.textField( 'GpuCache%sPath' % AttrName, edit=True, changeCommand=lambda *args: ArnoldGpuCacheEdit(plugName, *args)) cmds.textField('GpuCache%sPath' % AttrName, edit=True, text=cmds.getAttr(plugName)) cmds.symbolButton('GpuCache%sPathButton' % AttrName, edit=True, command=lambda *args: LoadGpuCacheButtonPush(plugName))
def doConnectAttrSpinner(self, theAttr): self.theAttr = theAttr if cmds.objExists(self.theAttr): cmds.connectControl(self.floatField, self.theAttr) minValue, maxValue = -16777214, 16777215 listAtt = theAttr.split(".") att = listAtt[-1] node = ".".join(listAtt[:-1]) if cmds.attributeQuery(att, node=node, maxExists=True): maxValue, = cmds.attributeQuery(att, node=node, maximum=True) if cmds.attributeQuery(att, node=node, minExists=True): minValue, = cmds.attributeQuery(att, node=node, minimum=True) self.theSpinner.setRange(minValue, maxValue)
def expose_driver_unit(self, anchor, writeData,index,root ): mc.frameLayout( collapsable=True,labelVisible=True, borderStyle='out' ,l='driver%s'%index ,mw=2,mh=2 ,p=anchor ) if writeData[5] == True: mc.textField(tx=writeData[0],ed=False ,font='boldLabelFont') else: mc.textField(tx=writeData[0],ed=False ) mc.separator() mc.text(l='label') lblFld = mc.textField( ed=True ) mc.connectControl( lblFld, writeData[3]) mc.text(l='widgetID') wdgFld = mc.textField( ed=True ) mc.connectControl( wdgFld, writeData[4] ) mc.separator() rmBtn = mc.button(l='remove',c=partial(self.validate_driver_deletion,root , index))
def sliderBld(labelName, attr, currParent, minVal=0, maxVal=1, resetVal=0, cw1=60): frm = cmds.formLayout(parent=currParent) ''' slider = cmds.floatSliderGrp( label=labelName, field=True, min=minVal, max=maxVal, cw=[[1,cw1],[2,60], [3,70]], co3=[0, 0, 10], cat=[3,"left",0]) ''' text = cmds.text(width=cw1, label=labelName, align="center") field = cmds.floatField(min=minVal, max=maxVal, w=60) slider = cmds.floatSlider(min=minVal, max=maxVal, w=100) cmds.connectControl(field, attr) cmds.connectControl(slider, attr) btn1 = cmds.button(label="Key", command=scriptName + ".key('" + attr + "')") btn2 = cmds.button(label="Reset", command=scriptName + ".reset('" + attr + "', " + str(resetVal) + ")") # text position cmds.formLayout(frm, e=1, attachForm=[[text, "left", 0], [text, "top", 0]]) # field position cmds.formLayout(frm, e=1, attachForm=[field, "top", 0], attachControl=[field, "left", 0, text]) # slider position cmds.formLayout(frm, e=1, attachForm=[slider, "top", 0], attachControl=[slider, "left", 0, field]) # buttons position cmds.formLayout(frm, e=1, attachForm=[btn1, "top", 0], attachControl=[btn1, "left", 0, slider]) cmds.formLayout(frm, e=1, attachForm=[btn2, "top", 0], attachControl=[btn2, "left", 0, btn1]) cmds.setParent(currParent) return frm
def sliderBld(attrLabel, attr, curParent, minVal=0, maxVal=1, reset=0): row = cmds.rowColumnLayout(nc=3, cw=[[1,280],[2,50],[3,50]], parent=curParent) slider = cmds.floatSliderGrp( label=attrLabel, field=True, min=minVal, max=maxVal, cw=[[1,60], [2,60], [3,100]]) # attribute needs to be sent to the function. cmds.button(label="Key", command=scriptName + ".key( '" + attr + "')") # attribute and reset value need to sent to the function. cmds.button(label="Reset", command=scriptName + ".reset( '" + attr + "', " + str(reset) + ")") cmds.connectControl( slider, attr ) cmds.setParent(curParent) return row
def setNode(self, node, forceUpdate=False): #print('setNode: ' + node) self._ignoreCodeChange = False self._node = node cmds.connectControl(self._inputsAPI1, node + '.inputsAsApi1Object') self._jid_codeAttrChange = cmds.scriptJob(p=self.path, rp=True, ac=(node + '.cd', self._codeAttrChanged)) #print('NEW JOB (cd)', self._jid_codeAttrChange) cmds.scriptJob(p=self._inputsAPI1, rp=True, nd=(node, self._nodeDeleted)) if not UINodeTracker.getInstance( self._trackerPath).setNode(node) and forceUpdate: self._refresh(node)
def creatStereo(): global interaxialSleder global zeroSleder global interFloatField global interFloatSlider global zeroFloatField global zeroFloatSlider camL = mc.ls(sl=1) camListStereo = mc.ls( type='stereoRigTransform' ) if camListStereo != []: mc.confirmDialog( title='Error', message='The scene have being a 3D camera, do not create again!', button=['Ok']) return if camL == []: mc.confirmDialog( title='Missing', message='Please select a camera!', button=['Ok']) return cam = camL[0] camShape = mc.listRelatives(cam,s=1)[0] FL = mc.camera(cam,q=1,fl=1) NCP = mc.camera(cam,q=1,ncp=1) FCP = mc.camera(cam,q=1,fcp=1) cam3d = maya.app.stereo.stereoCameraRig.createStereoCameraRig() mc.parent(cam3d[0],cam) mc.setAttr(cam3d[0]+'.translate',0,0,0,lock=1) mc.setAttr(cam3d[0]+'.rotate',0,0,0,lock=1) mc.setAttr(cam3d[0]+'.scale',1,1,1,lock=1) cam3dShape = mc.listRelatives(cam3d[0],s=1)[0] mc.setAttr(cam3dShape+'.focalLength',FL) mc.setAttr(cam3dShape+'.nearClipPlane',NCP) mc.setAttr(cam3dShape+'.farClipPlane',FCP) mc.setAttr( cam3dShape+'.zeroParallaxPlane', 1 ) mc.setAttr( cam3dShape+'.safeViewingVolume', 1 ) mc.floatField( interFloatField, e=1, enable=True ) mc.floatSlider( interFloatSlider, e=1, enable=True ) mc.floatField( zeroFloatField, e=1, enable=True ) mc.floatSlider( zeroFloatSlider, e=1, enable=True ) #mc.floatSliderGrp( interaxialSleder, e=1, enable=True ) #mc.floatSliderGrp( zeroSleder, e=1, enable=True ) mc.connectControl( interFloatField, cam3dShape+'.interaxialSeparation' ) mc.connectControl( interFloatSlider, cam3dShape+'.interaxialSeparation' ) mc.connectControl( zeroFloatField, cam3dShape+'.zeroParallax' ) mc.connectControl( zeroFloatSlider, cam3dShape+'.zeroParallax' ) #mc.floatSliderGrp( interaxialSleder, e=1, enable=True ) #mc.floatSliderGrp( zeroSleder, e=1, enable=True ) #mc.connectControl( interaxialSleder, cam3dShape+'.interaxialSeparation' ) #mc.connectControl( zeroSleder, cam3dShape+'.zeroParallax' ) for i in cam3d: mc.rename(i,cam+'_'+i)
def switches(): # IK FK Switches ltIKFK = cmds.floatSliderGrp(label="Left IKFK", field=True, min=0, max=10, step=.1) rtIKFK = cmds.floatSliderGrp(label="Left IKFK", field=True, min=0, max=10, step=.1) cmds.connectControl(ltIKFK, "lt_hand_controls.IK_FK_Switch") cmds.connectControl(rtIKFK, "rt_hand_controls.IK_FK_Switch") # Face Shapes rtPuff = cmds.floatSliderGrp(label='Right Puff', field=True, min=0, max=2, step=.1) cmds.connectControl( rtPuff, "mouth_control_group|control_slider_curves|puff_marker_r_curve.translateX" )
def creatSphere(*args): circleSel = mc.ls(sl=1)[0] radiusCircle = mc.circle(circleSel, q=1, r=1) radiusSpere = radiusCircle*.75 particleSphere = mc.polySphere(n='%s_Sphere'%circleSel, r=radiusSpere, sx=float(radiusSpere), sy=float(radiusSpere), ax=[0, 1, 0])[0] mc.parentConstraint(circleSel, particleSphere, mo=0, w=1) #mc.parent(particleSphere, circleSel) mc.setAttr('%s.tx'%particleSphere, 0) mc.setAttr('%s.ty'%particleSphere, 0) mc.setAttr('%s.tz'%particleSphere, 0) mc.setAttr('%s.rx'%particleSphere, 0) mc.setAttr('%s.ry'%particleSphere, 0) mc.setAttr('%s.rz'%particleSphere, 0) mc.setAttr('%s.v'%particleSphere, 0) mc.select(particleSphere, r=1) mc.emitter(type='surface', r=4, dx=1, dy=0, dz=0, n='%s_emitter'%circleSel ) mc.particle( n='%s_Particles'%circleSel ) mc.connectDynamic( '%s_Particles'%circleSel, em='%s_emitter'%circleSel ) particlesShape = mc.listRelatives('%s_Particles'%circleSel, s=1)[0] mc.setAttr('%s.lifespanMode'%particlesShape, 1) mc.setAttr('%s.lifespan'%particlesShape, 0.4) mc.setAttr('%s.startFrame'%particlesShape, 1001) mc.connectControl( 'numText', '%s.rate'%('%s_emitter'%circleSel) ) mc.shadingNode('blinn', n='%s_blinn'%circleSel, asShader=1) mc.sets( n='%s_blinnSG'%circleSel, renderable=True, noSurfaceShader=True, empty=1) mc.connectAttr('%s.outColor'%('%s_blinn'%circleSel), '%s.surfaceShader'%('%s_blinnSG'%circleSel)) mc.connectControl( 'myColorIndex', '%s.color'%('%s_blinn'%circleSel) ) mc.connectControl( 'lifeText', '%s.lifespan'%particlesShape ) mc.sets('%s_Particles'%circleSel, e=1, forceElement='%s'%('%s_blinnSG'%circleSel))
def createArnoldMotionBlurRange(*args): pm.text("textArnoldMBAngle", font="smallBoldLabelFont", align="left", enable=False) pm.text("textArnoldMBAngle", edit=True, label=u" Shutter Angle : %i°" % 180) cmds.optionMenuGrp("mb_position", label="Position") cmds.optionMenuGrp("mb_position", edit=True, changeCommand=pm.Callback(arnoldMotionBlurPositionChanged)) cmds.menuItem(label="Start On Frame", data=0) cmds.menuItem(label="Center On Frame", data=1) cmds.menuItem(label="End On Frame", data=2) cmds.menuItem(label="Custom", data=3) cmds.connectControl("mb_position", "defaultArnoldRenderOptions.range_type", index=1) cmds.connectControl("mb_position", "defaultArnoldRenderOptions.range_type", index=2) pm.attrFieldSliderGrp( "mb_motion_frames", label="Length", ann="Motion Range in Frames", attribute="defaultArnoldRenderOptions.motion_frames", cc=arnoldMotionFramesChanged, ) pm.attrFieldSliderGrp( "mb_motion_range_start", label="Start", ann="Motion Range Start in Frames", attribute="defaultArnoldRenderOptions.motion_start", cc=arnoldMotionCustomChanged, ) pm.attrFieldSliderGrp( "mb_motion_range_end", label="End", ann="Motion Range End in Frames", attribute="defaultArnoldRenderOptions.motion_end", cc=arnoldMotionCustomChanged, )
def sliderBld(attrLabel, attr, curParent, minVal=0, maxVal=1, reset=0): row = cmds.rowColumnLayout(nc=3, cw=[[1, 280], [2, 50], [3, 50]], parent=curParent) slider = cmds.floatSliderGrp(label=attrLabel, field=True, min=minVal, max=maxVal, cw=[[1, 60], [2, 60], [3, 100]]) # attribute needs to be sent to the function. cmds.button(label="Key", command=scriptName + ".key( '" + attr + "')") # attribute and reset value need to sent to the function. cmds.button(label="Reset", command=scriptName + ".reset( '" + attr + "', " + str(reset) + ")") cmds.connectControl(slider, attr) cmds.setParent(curParent) return row
def switches(): # IK FK Switches ltIKFK = cmds.floatSliderGrp(label="Left IKFK", field=True, min=0, max=10, step=0.1) rtIKFK = cmds.floatSliderGrp(label="Left IKFK", field=True, min=0, max=10, step=0.1) cmds.connectControl(ltIKFK, "lt_hand_controls.IK_FK_Switch") cmds.connectControl(rtIKFK, "rt_hand_controls.IK_FK_Switch") # Face Shapes rtPuff = cmds.floatSliderGrp(label="Right Puff", field=True, min=0, max=2, step=0.1) cmds.connectControl(rtPuff, "mouth_control_group|control_slider_curves|puff_marker_r_curve.translateX")
def refreshControls(self): if cmds.columnLayout(self.column, exists=True): cmds.setParent(self.column) for rowChild in cmds.columnLayout(self.column, query=True, childArray=True) or []: row = self.column+"|"+rowChild cmds.deleteUI(rowChild) for element in self.listElements: elementName = element[1] cmds.rowLayout(numberOfColumns=6, adjustableColumn=2, columnWidth6=[50, 160, 160, 180, 180, 110], columnAttach=[(1, 'both', 5), (2, 'both', 5), (3, 'both', 5), (4, 'both', 5), (5, 'both', 5), (6, 'both', -5)] ) selectCommand='import maya.cmds as cmds\ncmds.select(\''+elementName+'\')' cmds.nodeIconButton( style='iconOnly', command=selectCommand, image1=element[0]+'.png' ) cmds.text(label=elementName, align='left') cmds.attrColorSliderGrp(label='C:', at=elementName+'.color', columnWidth4=[15,30,70,40], columnAlign=[1,"center"]) if element[0] == 'MeshLightShelf': cmds.attrFieldSliderGrp(label='I:', at=elementName+'.intensity', columnWidth2=[15,45], columnAlign=[1,"center"]) cmds.attrFieldSliderGrp(label='E:', at=elementName+'.aiExposure', columnWidth3=[15,45,70], columnAlign=[1,"center"]) else: cmds.attrFieldSliderGrp(label='I:', at=elementName+'.intensity', columnWidth4=[15,45,70,40], columnAlign=[1,"center"]) cmds.attrFieldSliderGrp(label='E:', at=elementName+'.aiExposure', columnWidth4=[15,45,70,40], columnAlign=[1,"center"]) cmds.rowLayout(numberOfColumns=2, columnWidth2=[60, 50], columnAttach=[(1, 'both', 0), (2, 'both', 5)] ) cmds.intFieldGrp('lightManager_samples_'+elementName, label='S:', columnWidth2=[20,30], columnAlign2=['center','center']) cmds.connectControl('lightManager_samples_'+elementName, elementName+'.aiSamples', index=1) cmds.connectControl('lightManager_samples_'+elementName, elementName+'.aiSamples', index=2) cmds.checkBoxGrp('lightManager_visibility_'+elementName, label="E:", columnWidth2=[18,22]) try: cmds.connectControl('lightManager_visibility_'+elementName, elementName+'.visibility', index=1) cmds.connectControl('lightManager_visibility_'+elementName, elementName+'.visibility', index=2) except: pass cmds.setParent('..') cmds.setParent('..')
def widget(self, item): with forms.HorizontalExpandForm(tag=item) as root: delete_button = gui.IconTextButton(width=48, style='iconOnly', image='deleteShader') name_field = gui.NameField(object=item, width=256) gui.Separator(style='none', width=16) tx = gui.FloatField(width=48, pre=2) ty = gui.FloatField(width=48, pre=2) tz = gui.FloatField(width=48, pre=2) gui.Separator(style='none', width=16) # using 'connectControl' here is a good alternative to binding cmds.connectControl(tx, item + ".tx") cmds.connectControl(ty, item + ".ty") cmds.connectControl(tz, item + ".tz") delete_button.tag = root return lists.Templated(item, root, request_delete=delete_button.command)
mc.confirmDialog( title='Missing', message='Please select a camera!', button=['Ok']) return cam = camL[0] camShape = mc.listRelatives(cam,s=1)[0] FL = mc.camera(cam,q=1,fl=1) NCP = mc.camera(cam,q=1,ncp=1) FCP = mc.camera(cam,q=1,fcp=1) cam3d = maya.app.stereo.stereoCameraRig.createStereoCameraRig() mc.parent(cam3d[0],cam) mc.setAttr(cam3d[0]+'.translate',0,0,0,lock=1) mc.setAttr(cam3d[0]+'.rotate',0,0,0,lock=1) mc.setAttr(cam3d[0]+'.scale',1,1,1,lock=1) cam3dShape = mc.listRelatives(cam3d[0],s=1)[0] mc.connectControl( 'interaxialSleder', stereoShape+'.interaxialSeparation' ) mc.connectControl( 'zeroSleder', stereoShape+'.zeroParallax' ) mc.setAttr(cam3dShape+'.focalLength',FL) mc.setAttr(cam3dShape+'.nearClipPlane',NCP) mc.setAttr(cam3dShape+'.farClipPlane',FCP) mc.setAttr( cam3dShape+'.zeroParallaxPlane', 1 ) mc.setAttr( cam3dShape+'.safeViewingVolume', 1 ) for i in cam3d: mc.rename(i,cam+'_'+i) #mc.connectControl( 'interaxialSleder', cam3dShape+'.interaxialSeparation' ) #def checkStereo(): def playBlastUser( which ): vision = mayaVision() if vision == '2011 x64': if which =='': userPlayblast( which, code, size[0],size[1],perfect )
def gui(self): ''' Generates the interface for the AttrGUISingle object. ''' btnWidth = 30 btnSep = 2 # textWidth = 70 # fieldWidth # if( cmds.about( os=True ) == "mac" ): self.mainLayout = cmds.rowColumnLayout(parent=self.parent, nc=7, h=20, rat=[[1,"both", btnSep ],[2,"both", btnSep ],[3,"both", btnSep ],[4,"both", btnSep ],[5,"both", btnSep ],[6,"both", btnSep ],[7,"both", btnSep ]], cw=[[1,100],[2,70],[3,125],[4, btnWidth ],[5,btnWidth ],[6,btnWidth ],[7,btnWidth ]]) cmds.text(label=self.text, w=70, al="center") self.fieldGui = cmds.floatField( w=100, pre=2 ) pop = cmds.popupMenu(parent=self.fieldGui) cmds.menuItem(parent=pop, label="0 - 1", c=Callback( self.setMinMax, 0, 1)) cmds.menuItem(parent=pop, label="0 - 10", c=Callback( self.setMinMax, 0, 10)) cmds.menuItem(parent=pop, label="-10 - 10", c=Callback( self.setMinMax, -10, 10)) cmds.menuItem(parent=pop, label="Set Min/Max") cmds.menuItem( divider=1) cmds.menuItem(label="Step 1", c=Callback( self.setStep, 1 )) cmds.menuItem(label="Step .1", c=Callback( self.setStep, .1 )) cmds.menuItem(label="Step .01", c=Callback( self.setStep, .01 )) self.sliderGui = cmds.floatSlider( w=100, h=20) cmds.popupMenu(parent=self.sliderGui) cmds.menuItem(label="0 - 1", c=Callback( self.setMinMax, 0, 1)) cmds.menuItem(label="0 - 10", c=Callback( self.setMinMax, 0, 10)) cmds.menuItem(label="-10 - 10", c=Callback( self.setMinMax, -10, 10)) cmds.menuItem(label="Set Min/Max") cmds.menuItem( divider=1) cmds.menuItem(label="Step 1", c=Callback( self.setStep, 1 )) cmds.menuItem(label="Step .1", c=Callback( self.setStep, .1 )) cmds.menuItem(label="Step .01", c=Callback( self.setStep, .01 )) print("Min Value: " + str(self.attrs.min)) print("Max Value: " + str(self.attrs.max)) if( self.attrs.min != None ): cmds.floatField( self.fieldGui, e=1, min=self.attrs.min ) cmds.floatSlider( self.sliderGui, e=1, min=self.attrs.min ) if( self.attrs.max != None ): cmds.floatField( self.fieldGui, e=1, max=self.attrs.max ) cmds.floatSlider( self.sliderGui, e=1, max=self.attrs.max ) cmds.connectControl( self.fieldGui, self.attrNames ) cmds.connectControl( self.sliderGui, self.attrNames ) cmds.symbolButton(image='MENUICONKEYS.XPM', h=20, ann="Keyframe", command=Callback(self.key)) cmds.symbolButton(image='REDRAWPAINTEFFECTS.XPM', h=20, ann="Reset to Default", command=Callback(self.reset)) self.symGUI = cmds.symbolCheckBox( image='ONRADIOBTNICON.XPM', h=20, oni='ONRADIOBTNICON.XPM', ofi='OFFRADIOBTNICON.XPM', ann="Set Offset", onc=Callback(self.setOffset)) self.resOffName = cmds.symbolButton(image='AUTOLOAD.XPM', h=20, ann="Reset Offset", command=Callback( self.resetOffset ) ) cmds.setParent(self.parent)
def _shadersConnect(self, json): """ Connect the new control to existing control """ cmds.connectControl("shaderspathNameField", self.shaders)
def patternCoverageControlConnect(self, fullAttributeName): cmds.connectControl(self.patternCoverageControlID, fullAttributeName) self.patternCoverageControlDimming()
def twistControlConnect(self, fullAttributeName): cmds.connectControl(self.twistControlID, fullAttributeName)
def scaleProfileControlConnect(self, fullAttributeName): cmds.connectControl(self.scaleProfileControlID, fullAttributeName)
def refreshControls(self): if cmds.columnLayout(self.column, exists=True): cmds.setParent(self.column) for rowChild in cmds.columnLayout( self.column, query=True, childArray=True) or []: row = self.column + "|" + rowChild cmds.deleteUI(rowChild) for element in self.listElements: elementName = element[1] cmds.rowLayout(numberOfColumns=6, adjustableColumn=2, columnWidth6=[50, 160, 160, 180, 180, 110], columnAttach=[(1, 'both', 5), (2, 'both', 5), (3, 'both', 5), (4, 'both', 5), (5, 'both', 5), (6, 'both', -5)]) selectCommand = 'import maya.cmds as cmds\ncmds.select(\'' + elementName + '\')' cmds.nodeIconButton(style='iconOnly', command=selectCommand, image1=element[0] + '.png') cmds.text(label=elementName, align='left') cmds.attrColorSliderGrp(label='C:', at=elementName + '.color', columnWidth4=[15, 30, 70, 40], columnAlign=[1, "center"]) if element[0] == 'MeshLightShelf': cmds.attrFieldSliderGrp(label='I:', at=elementName + '.intensity', columnWidth2=[15, 45], columnAlign=[1, "center"]) cmds.attrFieldSliderGrp(label='E:', at=elementName + '.aiExposure', columnWidth3=[15, 45, 70], columnAlign=[1, "center"]) else: cmds.attrFieldSliderGrp(label='I:', at=elementName + '.intensity', columnWidth4=[15, 45, 70, 40], columnAlign=[1, "center"]) cmds.attrFieldSliderGrp(label='E:', at=elementName + '.aiExposure', columnWidth4=[15, 45, 70, 40], columnAlign=[1, "center"]) cmds.rowLayout(numberOfColumns=2, columnWidth2=[60, 50], columnAttach=[(1, 'both', 0), (2, 'both', 5)]) cmds.intFieldGrp('lightManager_samples_' + elementName, label='S:', columnWidth2=[20, 30], columnAlign2=['center', 'center']) cmds.connectControl('lightManager_samples_' + elementName, elementName + '.aiSamples', index=1) cmds.connectControl('lightManager_samples_' + elementName, elementName + '.aiSamples', index=2) cmds.checkBoxGrp('lightManager_visibility_' + elementName, label="E:", columnWidth2=[18, 22]) try: cmds.connectControl('lightManager_visibility_' + elementName, elementName + '.visibility', index=1) cmds.connectControl('lightManager_visibility_' + elementName, elementName + '.visibility', index=2) except: pass cmds.setParent('..') cmds.setParent('..')
def _jsonConnect(self, json): """ Connect the new control to existing control """ cmds.connectControl("jsonpathNameField", self.json)
def rPolygonInnerRadiusControlConnect(self, fullAttributeName): cmds.connectControl(self.rPolygonInnerRadiusControlID, fullAttributeName) self.rPolygonInnerRadiusControlDimming()
def patternScaleSubprofilesControlConnect(self, fullAttributeName): cmds.connectControl(self.patternScaleSubprofilesControlID, fullAttributeName) self.patternScaleSubprofilesControlDimming()
xscale = cmds.intSliderGrp(f=True, label="Scale X") zscale = cmds.intSliderGrp(f=True, label="Scale Z") #Move ymove = cmds.intSliderGrp(f=True, label="Move Y") xmove = cmds.intSliderGrp(f=True, label="Move X") zmove = cmds.intSliderGrp(f=True, label="Move Z") #Rotate yrotate = cmds.intSliderGrp(f=True, label="Rotate Y") xrotate = cmds.intSliderGrp(f=True, label="Rotate X") zrotate = cmds.intSliderGrp(f=True, label="Rotate Z") #Layout cmds.rowColumnLayout(nc=1) cmds.button(label="Create Box", width=100, c=userBox) #ScaleEdit cmds.floatFieldGrp('scale', l='Scale', numberOfFields=3) cmds.connectControl('scale', '%s.sy' % selected, index=2) cmds.connectControl('scale', '%s.sx' % selected, index=3) cmds.connectControl('scale', '%s.sz' % selected, index=4) #MoveEdit cmds.floatFieldGrp('move', l='Translate', numberOfFields=3) cmds.connectControl('move', '%s.ty' % selected, index=2) cmds.connectControl('move', '%s.tx' % selected, index=3) cmds.connectControl('move', '%s.tz' % selected, index=4) #RotateEdit cmds.floatFieldGrp('rotate', l='Rotate', numberOfFields=3) cmds.connectControl('rotate', '%s.ry' % selected, index=2) cmds.connectControl('rotate', '%s.rx' % selected, index=3) cmds.connectControl('rotate', '%s.rz' % selected, index=4) #Return to the Main Menu cmds.button(label="Main Menu", width=100, c=cubeWinVis) #Close all windows
def interpolationDistanceControlConnect(self, fullAttributeName): cmds.connectControl(self.iterpolationDistanceControlID, fullAttributeName) self.interpolationDistanceControlDimming()
def _abcConnect(self, cacheName): """ Connect the new control to existing control """ cmds.connectControl("abcpathNameField", self.cache)
def rotateProfileControlConnect(self, fullAttributeName): cmds.connectControl(self.rotateProfileControlID, fullAttributeName)
cmds.formLayout(model_tab, e=True, af=[[resetall_btn,"right", 10],[resetall_btn,"bottom", 10]]) cmds.formLayout(model_tab, e=True, af=[[togctrls_btn,"left", 10],[togctrls_btn,"top", 10]]) cmds.formLayout(model_tab, e=True, af=[[togjoint_btn,"right", 10],[togjoint_btn,"top", 10]]) update_vis_buttons() ## Setup the foot tab ## cmds.setParent( tab_layout ) feet_tab = cmds.columnLayout( width=WIDTH(), adjustableColumn=True, columnAttach=('both', 5) ) # Left foot title cmds.separator(style="in", height=10) cmds.text(label="Left Foot", align="center", height=20) cmds.separator(style="out", height=10) slider = cmds.floatSliderGrp( l='Heel Lift', field=True, min=-90, max=90, value=0, cw=[(1,80),(2,60),(3,WIDTH()-160)] ) cmds.connectControl( slider, '%s.Heel_Lift' % 'ctrl_L_leg_ankle' ) slider = cmds.floatSliderGrp( l='Heel Roll', field=True, min=-90, max=90, value=0, cw=[(1,80),(2,60),(3,WIDTH()-160)] ) cmds.connectControl( slider, '%s.Heel_Roll' % 'ctrl_L_leg_ankle' ) slider = cmds.floatSliderGrp( l='Heel Twist', field=True, min=-90, max=90, value=0, cw=[(1,80),(2,60),(3,WIDTH()-160)] ) cmds.connectControl( slider, '%s.Heel_Twist' % 'ctrl_L_leg_ankle' ) slider = cmds.floatSliderGrp( l='Toe Lift', field=True, min=-90, max=90, value=0, cw=[(1,80),(2,60),(3,WIDTH()-160)] ) cmds.connectControl( slider, '%s.Toe_Lift' % 'ctrl_L_leg_ankle' ) slider = cmds.floatSliderGrp( l='Toe Roll', field=True, min=-90, max=90, value=0, cw=[(1,80),(2,60),(3,WIDTH()-160)] ) cmds.connectControl( slider, '%s.Toe_Roll' % 'ctrl_L_leg_ankle' ) slider = cmds.floatSliderGrp( l='Toe Twist', field=True, min=-90, max=90, value=0, cw=[(1,80),(2,60),(3,WIDTH()-160)] ) cmds.connectControl( slider, '%s.Toe_Twist' % 'ctrl_L_leg_ankle' ) slider = cmds.floatSliderGrp( l='Spur Lift', field=True, min=-90, max=90, value=0, cw=[(1,80),(2,60),(3,WIDTH()-160)] ) cmds.connectControl( slider, '%s.Spur_Lift' % 'ctrl_L_leg_ankle' ) # Right foot title cmds.separator(style="in", height=10)
def normalsSmoothingControlConnect(self, fullAttributeName): cmds.connectControl(self.normalsSmoothingControlID, fullAttributeName)
def applyBtnCmd(self, *args): """ Overridden from base class """ # determine the type of object to create from radio button index self.objIndAsCmd = {1:cmds.polyCube, 2:cmds.polyCone, 3:cmds.polyCylinder, 4:cmds.polySphere} # determine the selected radio button from radioButtonGrp self.objType objIndex = cmds.radioButtonGrp(self.objType, query=True, select=True) # create the selected new poly object newObject = self.objIndAsCmd[objIndex]() # From this point, you can apply transformation using the float field # in an absolute (relative to parent) or as initial transformation at creation # Absolute transformation # Connecting the translates # index 1 is the label, so it begins from index=2 cmds.connectControl(self.position, '%s.translateX' % newObject[0], index=2) cmds.connectControl(self.position, '%s.translateY' % newObject[0], index=3) cmds.connectControl(self.position, '%s.translateZ' % newObject[0], index=4) # Connecting the rotations cmds.connectControl(self.rotation, '%s.rotateX' % newObject[0], index=2) cmds.connectControl(self.rotation, '%s.rotateY' % newObject[0], index=3) cmds.connectControl(self.rotation, '%s.rotateZ' % newObject[0], index=4) # Connecting the scales cmds.connectControl(self.scale, '%s.scaleX' % newObject[0], index=2) cmds.connectControl(self.scale, '%s.scaleY' % newObject[0], index=3) cmds.connectControl(self.scale, '%s.scaleZ' % newObject[0], index=4) # Initial transformation # # Query the values from the fields # pos = cmds.floatFieldGrp(self.position, query=True, value=True) # rot = cmds.floatFieldGrp(self.rotation, query=True, value=True) # scale = cmds.floatFieldGrp(self.scale, query=True, value=True) # # apply the transformation # cmds.xform(newObject[0], translation=pos, rotation=rot, scale=scale) # apply vertex colours to the new object, from the color picker of # colorSliderGrp, self.color # First, query the colour from self.color col = cmds.colorSliderGrp(self.color, query=True, rgbValue=True) # Then apply the color to the new object. cmds.polyColorPerVertex(newObject[0], colorRGB=col, # enable the mesh to display vertex colors colorDisplayOption=True)