def rh_dynamicJoint():
    #Create a variable for the window name
    winName = 'DynamicJoint'
    winTitle = 'rh_DynamicJoint_prototype_v0.23'
    #Delete the window if it exists
    if pm.window(winName, exists = True):
        pm.deleteUI(winName, window = True)
    #Build the main window
    pm.window(winName, title = winTitle, sizeable = True)
    #name field
    pm.textFieldGrp('NameTFG',label = 'Set up name:', text = 'Ribbon45hp', ed = True)
    pm.columnLayout(adjustableColumn = True)
    #side
    pm.radioButtonGrp('ColSel',nrb = 3,label = 'Side:',la3 = ['l','m','r'],sl = 1)    
    pm.columnLayout(adjustableColumn = True)
    #axis
    pm.radioButtonGrp('AxisSel',nrb = 3,label = 'Axis:',la3 = ['x','y','z'],sl = 1)    
    pm.columnLayout(adjustableColumn = True)
    #ccSize
    pm.floatSliderGrp('Cc_Size',label = 'Control Size:',f = True,min = 1,max = 10,fmn = 1,fmx = 100,v = 1)
    pm.columnLayout(adjustableColumn = True)
    #joint number
    pm.intSliderGrp('Joint_Num',label = 'Number Of Joints:',f = True,min = 4,max = 49,fmn = 1,fmx = 100,v = 4)
    pm.columnLayout(adjustableColumn = True)
    
    #inbound
    pm.button(label = 'Ready For Tasking', command = 'inbound()')
    pm.columnLayout(adjustableColumn = True)
    #bringTheRain
    pm.button(label = 'Target Acquire', command = 'bringTheRain()')
    pm.columnLayout(adjustableColumn = True)    
    
    #Show the window
    pm.showWindow(winName)
    pm.window(winName, edit = True, width = 378, height = 210)
Exemple #2
0
def addUIElement(uiType, attribute, uiLabel, callback, renderGlobalsNodeName):
    ui = None
    if uiType == 'bool':
        ui = pm.checkBoxGrp(label=uiLabel)
        if callback is not None:
            pm.checkBoxGrp(ui, edit=True, cc=callback)
    if uiType == 'int':
        ui = pm.intFieldGrp(label=uiLabel, numberOfFields=1)
        if callback is not None:
            pm.intFieldGrp(ui, edit=True, cc=callback)
    if uiType == 'float':
        ui = pm.floatFieldGrp(label=uiLabel, numberOfFields=1)
        if callback is not None:
            pm.floatFieldGrp(ui, edit=True, cc=callback)
    if uiType == 'enum':
        ui = pm.attrEnumOptionMenuGrp(label=uiLabel,
                                      at=attribute,
                                      ei=getEnumList(attribute))
        # attrEnumOptionGrp has no cc callback, so I create a script job
        if callback is not None:
            attribute = pm.Attribute(renderGlobalsNodeName + "." + attribute)
            pm.scriptJob(attributeChange=[attribute, callback], parent=ui)
    if uiType == 'color':
        ui = pm.attrColorSliderGrp(label=uiLabel, at=attribute)
    if uiType == 'string':
        ui = pm.textFieldGrp(label=uiLabel)
        if callback is not None:
            pm.textFieldGrp(ui, edit=True, cc=callback)
    if uiType == 'vector':
        ui = pm.floatFieldGrp(label=uiLabel, nf=3)
        if callback is not None:
            pm.floatFieldGrp(ui, edit=True, cc=callback)
    return ui
Exemple #3
0
def addUIElement(uiType, attribute, uiLabel, callback, renderGlobalsNodeName):
    ui = None
    if uiType == 'bool':
        ui = pm.checkBoxGrp(label=uiLabel)
        if callback is not None:
            pm.checkBoxGrp(ui, edit=True, cc=callback)
    if uiType == 'int':
        ui = pm.intFieldGrp(label=uiLabel, numberOfFields = 1)
        if callback is not None:
            pm.intFieldGrp(ui, edit=True, cc = callback)
    if uiType == 'float':
        ui = pm.floatFieldGrp(label=uiLabel, numberOfFields = 1)
        if callback is not None:
            pm.floatFieldGrp(ui, edit=True, cc= callback)
    if uiType == 'enum':
        ui = pm.attrEnumOptionMenuGrp(label = uiLabel, at=attribute, ei = getEnumList(attribute)) 
        # attrEnumOptionGrp has no cc callback, so I create a script job
        if callback is not None:
            attribute = pm.Attribute(renderGlobalsNodeName + "." + attribute)
            pm.scriptJob(attributeChange=[attribute, callback], parent=ui)           
    if uiType == 'color':
        ui = pm.attrColorSliderGrp(label=uiLabel, at=attribute)
    if uiType == 'string':
        ui = pm.textFieldGrp(label=uiLabel)
        if callback is not None:
            pm.textFieldGrp(ui, edit=True, cc=callback)
    if uiType == 'vector':
        ui = pm.floatFieldGrp(label=uiLabel, nf=3)
        if callback is not None:
            pm.floatFieldGrp(ui, edit=True, cc=callback)
    return ui
Exemple #4
0
    def options_box_setup(self):
        self.optvars.add('zSplitBlendShapesBlendDistance', 'float', 2)
        self.optvars.add('zSplitBlendShapesPlane', 'int', 2)
        self.optvars.add('zSplitBlendShapesPlaneOrigin', 'float', 0)
        self.optvars.add('zSplitBlendShapesNamingPattern', 'string', '<name>_<L|R>')
        
        parent = pm.columnLayout(adjustableColumn=1)

        pm.optionMenuGrp('sbsList', label='Blend shape:', cc=self.fill_blend_target)
        self.fill_blend_shapes('sbsList|OptionMenu', False)

        pm.optionMenuGrp('sbsLeftOutput', label='Left output:')
        self.fill_blend_shapes('sbsLeftOutput|OptionMenu', True)

        pm.optionMenuGrp('sbsRightOutput', label='Right output:')
        self.fill_blend_shapes('sbsRightOutput|OptionMenu', True)

        # If something is selected, try to find a blend shape to select by default.
        selection = pm.ls(sl=True)
        if selection:
            history = pm.listHistory(selection)
            blend_shapes = pm.ls(history, type='blendShape')
            if blend_shapes:
                default_blend_shape = blend_shapes[0]
                self.select_blend_shape(default_blend_shape)

        pm.optionMenuGrp('sbsTargetList', label='Blend target:')
        self.fill_blend_target()

        pm.floatSliderGrp('sbsBlendDistance', label='Blend distance', field=True, min=0, max=10, fieldMinValue=0, fieldMaxValue=1000)
        pm.radioButtonGrp('sbsPlane', label='Plane:', numberOfRadioButtons=3, labelArray3=('XY', 'YZ', 'XZ'))
        pm.floatSliderGrp('sbsPlaneOrigin', label='Plane origin', v=0, min=0, max=1000)
        pm.textFieldGrp('sbsNamingPattern', label='Naming pattern')
Exemple #5
0
    def __init__(self, id, label='', default_value='', project=None):
        super(UiTextField, self).__init__(id,
                                          default_value=default_value,
                                          project=project)

        # Create the element itself.
        pm.textFieldGrp(id, label=label, tx=default_value, tcc=self.set_value)
Exemple #6
0
    def saveData(self):
        os.chdir(self.final_path + '/' + FOLDER_NAME)
        # print(os.getcwd())

        file_ini = open(FILE_NAME, 'w+')
        file_ini.write('[General] \n')
        file_ini.write("tilt_ctrl_data=" +
                       str(pm.textFieldGrp(self.tiltCtrl, q=True, text=True)) +
                       '\n')
        file_ini.write("mesh_data=" +
                       str(pm.textFieldGrp(self.mesh, q=True, text=True)) +
                       '\n')
        file_ini.write("parent_data=" +
                       str(pm.textFieldGrp(self.target, q=True, text=True)) +
                       '\n')
        file_ini.write(
            "offset_data=" +
            str(pm.textFieldGrp(self.offset_ctrl, q=True, text=True)) + ' \n')

        file_ini.write("axisZ_data=" +
                       str(pm.checkBox("myChBxZ", q=True, value=True)) + '\n')
        file_ini.write("axisX_data= " +
                       str(pm.checkBox("myChBxX", q=True, value=True)) + '\n')

        file_ini.close()
        return (file_ini)
Exemple #7
0
 def __init__(self):
     winName = 'SineRigWin333'
     if pm.window(winName, exists=1):
         pm.deleteUI(winName,window=1)
     win = pm.window(winName, t='SineRig')
     
     pm.columnLayout(adj=1)
     pm.text('X Axis should be joint chain aim axis.')
     # Control
     self.cnt_fld = pm.textFieldButtonGrp(l='Control',bl='Load')
     pm.textFieldButtonGrp( self.cnt_fld, e=1, bc=lambda: pm.textFieldButtonGrp(self.cnt_fld,e=1,text=pm.ls(sl=1)[0]) )
     
     # Name
     self.name_fld = pm.textFieldGrp(l='Name')
     
     # Base jnt
     self.base_fld = pm.textFieldButtonGrp(l='Base Joint',bl='Load')
     pm.textFieldButtonGrp( self.base_fld, e=1, bc=lambda: pm.textFieldButtonGrp(self.base_fld,e=1,text=pm.ls(sl=1)[0]) ) 
     
     # Tip jnt
     self.tip_fld = pm.textFieldButtonGrp(l='Tip Joint',bl='Load')
     pm.textFieldButtonGrp( self.tip_fld, e=1, bc=lambda: pm.textFieldButtonGrp(self.tip_fld,e=1,text=pm.ls(sl=1)[0]) )        
     
     # Create button
     pm.button(l="Create",c=self.createRig)
     
     ##### Development Aide
     pm.textFieldButtonGrp(self.cnt_fld,e=1,text='TopFin_Base_ctrlA')
     pm.textFieldGrp(self.name_fld,e=1,text='Fin')
     pm.textFieldButtonGrp(self.base_fld,e=1,text='TopFinA_jnt_1')        
     pm.textFieldButtonGrp(self.tip_fld,e=1,text='TopFinA_jnt_12')        
     
     pm.showWindow(win)
Exemple #8
0
    def AddInputs(self):
        try:
            selAttrs = [
                x for x in pm.channelBox(
                    "mainChannelBox", q=1, selectedMainAttributes=1)
            ]

            # UI management
            self.inputs1 = pm.textFieldGrp(self.Input1, e=True, tx=selAttrs[0])
            try:
                self.inputs2 = pm.textFieldGrp(self.Input2,
                                               e=True,
                                               tx=selAttrs[1])
            except IndexError:
                pass

            try:
                self.inputs3 = pm.textFieldGrp(self.Input3,
                                               e=True,
                                               tx=selAttrs[2])
            except IndexError:
                pass

        except TypeError:
            pass
Exemple #9
0
def renaming():
    preName = pm.textFieldGrp('pre',q = 1,tx = 1)
    
    sideB = pm.radioButtonGrp('side',q = 1,sl = 1)
    sideList = ['l','r','m']
    
    objName = pm.textFieldGrp('obj',q = 1,tx = 1)
    startNum = pm.textFieldGrp('starNum',q = 1,tx = 1)
    paddingNum = pm.textFieldGrp('paddingNum',q = 1,tx = 1)
    suffixName = pm.textFieldGrp('suffix',q = 1,tx = 1)
    jointEnd = pm.checkBox('je',q = 1,v = 1)
    
    sels = pm.ls(sl = 1)
    
    for num,sel in enumerate(sels):
    
        if len(str(startNum)) < paddingNum:
            number = str(0) + str(startNum)
        
        preNames = ''
        
        if preName != '':
            preNames = preName + '_'
            
        name = preNames + objName + '_' + sideList[sideB] + '_' + number + '_' + suffixName
         
        pm.rename(sel,name)
    
        if jointEnd == 1:
            name = preNames + objName + '_' + sideList[sideB] + '_' + number + '_' + 'je'
            pm.rename(sels[-1],name)
            print name
        startNum = int(startNum) + 1
Exemple #10
0
    def createAssetCallBack(self, *args):
        name = pm.textFieldGrp('CrAsset_nameField', q=True, tx=True)
        if not name:
            return pm.confirmDialog(
                title='error',
                ma='center',
                message='please choose a name for the asset',
                button=['OK'],
                defaultButton='OK',
                dismissString='OK')
        workflow = pm.optionMenuGrp('CrAsset_workflowOpt', q=True, v=True)
        code = pm.textFieldGrp('CrAsset_codeField', q=True, tx=True)

        itemDict = database.createItem(self.type, name, self.path, workflow,
                                       code)
        print itemDict
        if itemDict == 'codeExists':
            return pm.confirmDialog(title='error',
                                    ma='center',
                                    message='this code already exists',
                                    button=['OK'],
                                    defaultButton='OK',
                                    dismissString='OK')

        pm.layoutDialog(dismiss='ok')
 def newProjectCallback(self, *args):
     proj = ProjectSettingsWidget()
     proj.createProjectSettingsWidget()
     proj.new = True
     proj.parentWidget = self
     pm.textFieldGrp(proj.projNameTxt, e=True, editable=True)
     pm.textFieldGrp(proj.prefixTxt, e=True, editable=True)
Exemple #12
0
 def getModuleInstance(self):
     
     cName = pm.textFieldGrp(self.cNameT,q = 1,text = 1)
     side = pm.textFieldGrp(self.sideT,q = 1,text = 1)
     cntSizeV = pm.floatFieldGrp(self.cntSize,q = 1,value1 = 1)
     
     self.__pointerClass = Hierarchy(side,size = cntSizeV,characterName = cName)
     return self.__pointerClass
Exemple #13
0
 def createRig(self, *args):
     BlendSineRig.BlendSineRig(
         control=pm.textFieldButtonGrp(self.cnt_fld, q=1, text=1),
         name=pm.textFieldGrp(self.name_fld, q=1, text=1),
         numJnts=pm.textFieldGrp(self.numJnts_fld, q=1, text=1),
         curve=pm.textFieldButtonGrp(self.crv_fld, q=1, text=1),
         fwdBackCrvs=pm.textScrollList(self.fwd_sFld, q=1, ai=1),
         sideToSideCrvs=pm.textScrollList(self.side_sFld, q=1, ai=1),
     )
    def createAssetPrompt(self):
        code = ''

        proj = database.getProjectDict()
        if self.type == 'asset':
            code = "%04d" % proj['nextAsset']
        elif self.type == 'shot':
            code = "%04d" % proj['nextShot']

        form = pm.setParent(q=True)
        f = pm.formLayout(form, e=True, width=150)
        row = pm.rowLayout(nc=2, adj=2)
        pm.picture(image='sphere.png', w=50, h=50)
        col = pm.columnLayout(adjustableColumn=True)
        nameField = pm.textFieldGrp('CrAsset_nameField',
                                    label='Name',
                                    cw=(1, 70),
                                    text='',
                                    adj=2,
                                    cat=[(1, 'left', 5), (2, 'left', 5)],
                                    editable=True)
        codeField = pm.textFieldGrp('CrAsset_codeField',
                                    label='Code',
                                    cw=(1, 70),
                                    text=code,
                                    adj=2,
                                    cat=[(1, 'left', 5), (2, 'left', 5)],
                                    editable=True)
        workflow = pm.optionMenuGrp('CrAsset_workflowOpt',
                                    label='Workflow',
                                    cw=(1, 70),
                                    cat=[(1, 'left', 5), (2, 'left', 5)])
        proj = database.getProjectDict()

        for key in proj['workflow']:
            context = set([
                proj['workflow'][key][x]['type'] for x in proj['workflow'][key]
            ])
            if self.type in context:
                pm.menuItem(label=key)

        b1 = pm.button(p=f, l='Cancel', c=self.abortCreateCallback)
        b2 = pm.button(p=f, l='OK', c=self.createAssetCallBack)

        spacer = 5
        top = 5
        edge = 5
        pm.formLayout(form,
                      edit=True,
                      attachForm=[(row, 'right', edge), (row, 'top', top),
                                  (row, 'left', edge), (row, 'right', edge),
                                  (b1, 'right', edge), (b1, 'bottom', edge),
                                  (b2, 'left', edge), (b2, 'bottom', edge)],
                      attachNone=[],
                      attachControl=[],
                      attachPosition=[(b1, 'right', spacer, 90),
                                      (b2, 'left', spacer, 10)])
Exemple #15
0
    def __init__(self):
        windowID = 'selNodeWnd'

        if pm.window('selNodeWnd', exists=1):
            pm.deleteUI('selNodeWnd')

        tmpl = pm.uiTemplate(windowID + '_uiTmpl', force=1)
        tmpl.define('columnLayout', adj=1, cat=('both', 5), rs=5)
        tmpl.define('button', h=40)
        tmpl.define('textFieldGrp',
                    cl2=['center', 'left'],
                    ad2=2,
                    cw2=[30, 40])
        tmpl.define('checkBoxGrp', v1=0, cw=[1, 80])

        wnd = pm.window(windowID, t='Sel Node Editor', s=1, rtf=1, toolbox=1)

        with tmpl:
            with pm.columnLayout():
                with pm.horizontalLayout() as createLayout:
                    pm.textFieldGrp(
                        'nameTxt',
                        l='Node Name',
                        ann=self.uiAnn['kwTxt'],
                        cw2=[80, 80],
                        cal=[1, 'left'],
                        en=1,
                        tx="userNode",
                    )
                    pm.button('createNodeBtn',
                              l='Create Node',
                              ann=self.uiAnn['createNode'],
                              w=30,
                              c=self.createNodeBtnCmd)
                with pm.horizontalLayout() as kwTxtLayout:
                    pm.textFieldGrp('kwTxt',
                                    l='Searching KeyWords',
                                    ann=self.uiAnn['kwTxt'],
                                    cw2=[110, 40],
                                    cal=[1, 'left'],
                                    en=1)
                with pm.horizontalLayout() as btnLayout3:
                    pm.button('readNodeBtn',
                              l='Read Node',
                              ann=self.uiAnn['selNode'],
                              c=self.readNodeBtnCmd)
                    pm.button('addToNodeBtn',
                              l='Add to Node',
                              ann=self.uiAnn['addToNode'],
                              c=self.addToNodeBtnCmd)
                    pm.button('reMoveFrmNodeBtn',
                              l='Remove Frm Node',
                              ann=self.uiAnn['reMoveFrmNode'],
                              c=self.reMoveFrmNodeCmd)

        wnd.show()
Exemple #16
0
def windowADD(*args):
    tw = 250
    cw = 50
    fw = 350
    hw = fw / 2
    fh = 50

    if pm.window("myWin", exists=1):
        pm.deleteUI("myWin")
    win = pm.window("myWin", title="ADD ATTRIBUTES", w=fw, h=100, sizeable=0)

    mainLayout = pm.columnLayout(w=fw)
    startLayout = pm.rowColumnLayout(cw=((1, tw), (2, cw), (3, cw)),
                                     nc=3,
                                     cal=((1, 'left'), (2, 'left'), (3,
                                                                     'left')),
                                     co=((1, 'left', 1), (2, 'left', 1),
                                         (3, 'left', 1)),
                                     parent=mainLayout)

    pm.textFieldGrp('stringText', w=tw, text='diffTex', parent=startLayout)
    pm.button(label="ADD S", w=cw, c=addStringAttr)
    pm.button(label="DEL S", w=cw, c=delStringAttr)
    pm.textFieldGrp('boolText', w=tw, text='diffTexTog diffUdim diffVrtxTog')
    pm.button(label="ADD B", w=cw, c=addBoolAttr)
    pm.button(label="DEL B", w=cw, c=delBoolAttr)
    pm.textFieldGrp('colorText', w=tw, text='diffCol')
    pm.button(label="ADD C", w=cw, c=addColorAttr)
    pm.button(label="DEL C", w=cw, c=delColorAttr)
    pm.textFieldGrp('floatText', w=tw, text='emptyVal')
    pm.button(label="ADD F", w=cw, c=addFloatAttr)
    pm.button(label="DEL F", w=cw, c=delFloatAttr)
    pm.textFieldGrp('intText', w=tw, text='instanceID')
    pm.button(label="ADD I", w=cw, c=addIntAttr)
    pm.button(label="DEL I", w=cw, c=delIntAttr)

    midLayout = pm.rowColumnLayout(cw=((1, hw), (2, hw)),
                                   co=((1, 'left', 1), (2, 'left', 1)),
                                   nc=2,
                                   parent=mainLayout)

    pm.button(label='ADD ALL', w=hw, h=fh, parent=midLayout, c=addAll)
    pm.button(label='DELETE ALL', w=hw, h=fh, parent=midLayout, c=delAll)

    pm.button(label='MASTER MATERIAL gen + assing',
              w=fw,
              h=fh,
              parent=mainLayout,
              c=genMat)
    pm.button(label='MASTER MATERIAL assing',
              w=fw,
              h=fh,
              parent=mainLayout,
              c=assignMat)

    pm.showWindow(win)
Exemple #17
0
    def getTarget(self):
        try:
            ctrl = pm.selected()[0]
            ctrl_name = ctrl.name()
            result1 = str(ctrl_name)

            pm.textFieldGrp(self.target, edit=True, tx=str(result1))

        except:
            pass
Exemple #18
0
    def getOffsetCtrl(self):
        try:
            ctrl = pm.selected()[0]
            ctrl_name = ctrl.name()
            result2 = str(ctrl_name)

            pm.textFieldGrp(self.offset_ctrl, edit=True, tx=str(result2))

        except:
            pass
Exemple #19
0
 def toggleMatchup(self, *a):
     get_bool = pm.radioButtonGrp('matchup_toggle', q=True, sl=True)
     if get_bool == 1:
         pm.textFieldGrp('away_team_txt', e=True, enable=False)
     elif get_bool == 2:
         pm.textFieldGrp('away_team_txt', e=True, enable=True)
     else:
         pm.warning(
             'SORT CONTROL  ERROR: Please select single-team or matchup.')
     return
Exemple #20
0
    def __init__(self, mainUI):
        self.mainUI = mainUI
        with pm.window(title='Create') as self.window:
            with pm.columnLayout():
                self.name = pm.textFieldGrp(label='Name:')
                self.value = pm.textFieldGrp(label='Value:')

                with pm.rowColumnLayout(nc=2):
                    pm.button(label='create', c=self._apply)
                    pm.button(label='Cancel', c=self._cancel)

        self.window.show()
def multi_nameChange(component, *args):
	sel_lights = pm.ls(sl=True, lights=True, dag=True)

	newName = pm.textFieldGrp(component, q=True, text=True)
	newName = re.sub('\s+', '_', newName)

	for light in sel_lights:
		trans = pm.listRelatives(light, parent=True, fullPath=True)[0]
		pm.rename(trans, newName)

	pm.textFieldGrp(component, e=True, text='')
	refreshWindow(*args)
 def update_velocity_grid_export(self, param_name):
     grp = "OpenVDBVelocityGrids"
     attr_value = pm.getAttr(param_name)
     pm.textFieldGrp(grp, edit=True,
                     text="" if attr_value is None else attr_value,
                     changeCommand=lambda val: pm.setAttr(param_name, val))
     pm.scriptJob(parent=grp,
                  replacePrevious=True,
                  attributeChange=[param_name,
                                   lambda: pm.textFieldGrp(grp, edit=True,
                                                           text=pm.getAttr(param_name))])
     self.setup_velocity_grid_popup(grp, param_name)
    def __init__(self, mainUI):
        self.mainUI = mainUI
        with pm.window(title='Create') as self.window:
            with pm.columnLayout():
                self.name = pm.textFieldGrp(label='Name:')
                self.value = pm.textFieldGrp(label='Value:')

                with pm.rowColumnLayout(nc=2):
                    pm.button(label='create', c=self._apply)
                    pm.button(label='Cancel', c=self._cancel)

        self.window.show()
 def update_velocity_grid_export(self, param_name):
     grp = "OpenVDBVelocityGrids"
     attr_value = pm.getAttr(param_name)
     pm.textFieldGrp(grp, edit=True,
                     text="" if attr_value is None else attr_value,
                     changeCommand=lambda val: pm.setAttr(param_name, val))
     pm.scriptJob(parent=grp,
                  replacePrevious=True,
                  attributeChange=[param_name,
                                   lambda: pm.textFieldGrp(grp, edit=True,
                                                           text=pm.getAttr(param_name))])
     self.setup_velocity_grid_popup(grp, param_name)
Exemple #25
0
    def oVariables(self):
        """Defining the starting variables"""
        self.geo = str(pm.textFieldGrp(self.mesh, q=True, text=True))
        self.geoShape = pm.PyNode(self.geo).getShape()

        self.tiltctrl = str(pm.textFieldGrp(self.tiltCtrl, q=True, text=True))
        bbox = pm.exactWorldBoundingBox(self.geo)

        self.mesh_ctrl_parent = str(
            pm.textFieldGrp(self.target, q=True, text=True))
        self.mesh_ctrl_offset = str(
            pm.textFieldGrp(self.offset_ctrl, q=True, text=True))
Exemple #26
0
 def _newAssetInfoConfirmed(self, args):
     sceneName = _pmCore.textFieldGrp(self._sceneName, query=True, text=True)
     directory = _pmCore.textFieldGrp(self._filePath, query=True, text=True)
     description = _pmCore.scrollField(self._description, query=True, text=True)
     category = _pmCore.optionMenuGrp(self._category, value=True, query=True)
     if not sceneName or not directory or not description:
         _pmCore.confirmDialog(title='Invalid Asset Info', message='Asset info for "Scene Name", "Directory" and "Description" can not be empty.', button='OK')
         return
     self._newAssetInfoClose()
     fileID = _MayaFunctions.saveScene(sceneName, directory, description, category)
     if self._addedCallback:
         self._addedCallback(fileID, category)
 def createRig(self, *args):
     BlendSineRig.BlendSineRig(control=pm.textFieldButtonGrp(
                               self.cnt_fld, q=1, text=1),
                               name=pm.textFieldGrp(
                               self.name_fld, q=1, text=1),
                               numJnts=pm.textFieldGrp(
                               self.numJnts_fld, q=1, text=1),
                               curve=pm.textFieldButtonGrp(
                               self.crv_fld, q=1, text=1),
                               fwdBackCrvs=pm.textScrollList(
                                   self.fwd_sFld, q=1, ai=1),
                               sideToSideCrvs=pm.textScrollList(
                                   self.side_sFld, q=1, ai=1),)
 def update_channel(self, channel_name, param_name):
     grp = "OpenVDB%sChannelGrp" % channel_name
     attr_value = pm.getAttr(param_name)
     pm.textFieldGrp(grp, edit=True,
                     text="" if attr_value is None else attr_value,
                     changeCommand=lambda val: pm.setAttr(param_name, val))
     pm.scriptJob(parent=grp,
                  replacePrevious=True,
                  attributeChange=[param_name,
                                   lambda : pm.textFieldGrp(grp, edit=True,
                                                           text=pm.getAttr(param_name))])
     self.clear_popups(grp)
     pm.popupMenu(parent=grp, postMenuCommand=lambda popup, popup_parent: AEvdb_visualizerTemplate.setup_popup_menu_elems(popup, popup_parent, param_name))
Exemple #29
0
 def option_box_load(self):
     pm.floatSliderGrp('sbsBlendDistance',
                       edit=True,
                       v=self.optvars['zSplitBlendShapesBlendDistance'])
     pm.radioButtonGrp('sbsPlane',
                       edit=True,
                       select=self.optvars['zSplitBlendShapesPlane'])
     pm.floatSliderGrp('sbsPlaneOrigin',
                       edit=True,
                       v=self.optvars['zSplitBlendShapesPlaneOrigin'])
     pm.textFieldGrp('sbsNamingPattern',
                     edit=True,
                     text=self.optvars['zSplitBlendShapesNamingPattern'])
Exemple #30
0
    def getModuleInstance(self):
        
        baseNameT = pm.textFieldGrp(self.baseNameT,q = 1,text = 1)
        sideT = pm.textFieldGrp(self.sideT,q = 1,text = 1)
        cntAxisT = pm.textFieldGrp(self.cntAxisT,q = 1,text = 1)
        cntSizeBodyV = pm.floatFieldGrp(self.cntSizeBody,q = 1,value1 = 1)
        cntSizeIkV = pm.floatFieldGrp(self.cntSizeIk,q = 1,value1 = 1)
        segmentN = pm.intFieldGrp(self.segment,q = 1,v = 1)
        mainMetaNode = pm.optionMenu(self.mainMetaNodeM,q = 1,v = 1)

        self.__pointerClass = SpineModule(baseName = baseNameT,side = sideT,bodySize = cntSizeBodyV,ctrlAxis = cntAxisT,
                                          ikSize = cntSizeIkV,segment = segmentN,metaMain = mainMetaNode)
        return self.__pointerClass
 def update_channel(self, channel_name, param_name):
     grp = "OpenVDB%sChannelGrp" % channel_name
     attr_value = pm.getAttr(param_name)
     pm.textFieldGrp(grp, edit=True,
                     text="" if attr_value is None else attr_value,
                     changeCommand=lambda val: pm.setAttr(param_name, val))
     pm.scriptJob(parent=grp,
                  replacePrevious=True,
                  attributeChange=[param_name,
                                   lambda : pm.textFieldGrp(grp, edit=True,
                                                           text=pm.getAttr(param_name))])
     self.clear_popups(grp)
     pm.popupMenu(parent=grp, postMenuCommand=lambda popup, popup_parent: AEvdb_visualizerTemplate.setup_popup_menu_elems(popup, popup_parent, param_name))
def animateExportUI():
    
    winName = 'animateUI'
    if(pm.window(winName,q=1,ex=1)):
        pm.deleteUI(winName)
    pm.window(winName,ret=1,mb=1)
    pm.columnLayout('columnLayout8',adj=1)
    pm.checkBoxGrp('exportType',ncb=3, label='export Type  :  ', 
                     la3=[':  transform', ':  rotate', ':  custom'])
    pm.textFieldGrp('exportPath',l = 'export Path  :  ',adj = 0,
                      cl2 = ['right','center'],tx = 'asdd')
    pm.button('export',c = 'animateExport()')
    
    pm.showWindow(winName)
Exemple #33
0
    def nameRulesWindow(self):

        win = window(
            t='Choose what is displayed to indicate the side of the joints and controllers.'
        )
        with columnLayout(adj=True):
            jl = textFieldGrp(l='Joint Left Side',
                              tx=self.settings['joint_left'])
            jr = textFieldGrp(l='Joint Right Side',
                              tx=self.settings['joint_right'])

            cl = textFieldGrp(l='Control Left Side',
                              tx=self.settings['control_left'])
            cr = textFieldGrp(l='Control Right Side',
                              tx=self.settings['control_right'])

            def setSides():
                jlText = jl.getText().strip()
                jrText = jr.getText().strip()

                clText = cl.getText().strip()
                crText = cr.getText().strip()

                if jlText == jrText or clText == crText:
                    confirmDialog(
                        m='The left and right sides must be different\n(but the control and joint text for the same side can be the same)'
                    )
                    return

                if not clText or not crText or not jlText or not jrText:
                    confirmDialog(m='You cannot leave any side empty.')
                    return

                self.settings['joint_left'] = jlText
                self.settings['joint_right'] = jrText

                self.settings['control_left'] = clText
                self.settings['control_right'] = crText

                settings.JOINT_SIDE_CODE_MAP['left'] = jlText
                settings.JOINT_SIDE_CODE_MAP['right'] = jrText

                settings.CONTROL_SIDE_CODE_MAP['left'] = clText
                settings.CONTROL_SIDE_CODE_MAP['right'] = crText

                deleteUI(win)

            button(l='Apply', c=Callback(setSides))

        showWindow()
Exemple #34
0
    def putProjectSettings(self):
        self.projDict['projectName'] = pm.textFieldGrp(self.projNameTxt,
                                                       q=True,
                                                       text=True)
        self.projDict['prefix'] = pm.textFieldGrp(self.prefixTxt,
                                                  q=True,
                                                  text=True)
        self.projDict['status'] = pm.optionMenuGrp(self.statusOpt,
                                                   q=True,
                                                   v=True)
        self.projDict['workLocation'] = pm.textFieldButtonGrp(self.workLocTxt,
                                                              q=True,
                                                              text=True)
        self.projDict['publishLocation'] = pm.textFieldButtonGrp(
            self.publishLocTxt, q=True, text=True)
        self.projDict['imagesWorkLocation'] = pm.textFieldButtonGrp(
            self.imgWorkLocTxt, q=True, text=True)
        self.projDict['imagesPublishLocation'] = pm.textFieldButtonGrp(
            self.imgPublishLocTxt, q=True, text=True)
        self.projDict['cacheLocation'] = pm.textFieldButtonGrp(
            self.cacheLocTxt, q=True, text=True)
        self.projDict[
            'assetCollection'] = self.projDict['projectName'] + '_asset'
        self.projDict[
            'shotCollection'] = self.projDict['projectName'] + '_shot'
        nameTemplateString = pm.textFieldGrp(self.nameTemplTxt,
                                             q=True,
                                             text=True)
        self.projDict['assetNameTemplate'] = nameTemplateString.split(',')
        cacheTemplateString = pm.textFieldGrp(self.cacheTemplTxt,
                                              q=True,
                                              text=True)
        self.projDict['cacheNameTemplate'] = cacheTemplateString.split(',')
        self.projDict['fps'] = pm.textFieldGrp(self.fpsTxt, q=True, text=True)
        self.projDict['mayaVersion'] = pm.optionMenuGrp(self.mayaVersionOpt,
                                                        q=True,
                                                        v=True)
        self.projDict['renderer'] = pm.optionMenuGrp(self.rendererOpt,
                                                     q=True,
                                                     v=True)

        res = pm.optionMenuGrp(self.resolutionOpt, q=True, v=True)
        self.projDict['resolution'] = [
            int(res.split('x')[0]),
            int(res.split('x')[1])
        ]

        self.projDict['assetFolders'] = self.assetTreeView.putFolderTree()
        self.projDict['shotFolders'] = self.shotTreeView.putFolderTree()
Exemple #35
0
 def _updateAssetClicked(self):
     if self._currentSelectedAsset == None:
         raise RuntimeError('Nothing selected.')
     sceneName = _pmCore.textFieldGrp(self._uiWidget[_UiWidgetEnum.sceneNameTextField], query=True, text=True)
     filePath = _pmCore.textFieldGrp(self._uiWidget[_UiWidgetEnum.filePathTextField], query=True, text=True)
     category = _pmCore.optionMenuGrp(self._uiWidget[_UiWidgetEnum.categoryCombox], query=True, value=True)
     description = _pmCore.scrollField(self._uiWidget[_UiWidgetEnum.descriptionTextField], query=True, text=True)
     _Database.setFileCategory(self._currentSelectedAsset, category)
         
     _Database.setFileDescription(self._currentSelectedAsset, description)
     _Database.setFilename(self._currentSelectedAsset, sceneName)
     _Database.setFilePath(self._currentSelectedAsset, filePath)
     _pmCore.iconTextButton(self._uiWidget[_UiWidgetEnum.assetBtnList][self._assetBtnName(self._currentSelectedAsset)], edit=True, label=sceneName)
 
     self._refreshAssetButtonView()
Exemple #36
0
    def loadBtn(self, *a):
        home_team = pm.textFieldGrp('home_team_txt', q=True, text=True)
        diag = pm.checkBox('diagnose_tgl', q=True, value=True)

        if home_team == '':
            pm.warning(
                'Build Scene  ERROR Please enter a team name / tricode before proceeding.'
            )

        if (pm.radioButtonGrp('matchup_toggle', q=True, sl=True)) == 1:
            build.loadTeamsStadium(home_team, diagnostic=diag)

        elif (pm.radioButtonGrp('matchup_toggle', q=True, sl=True)) == 2:
            away_team = pm.textFieldGrp('away_team_txt', q=True, text=True)
            build.loadTeamsStadium(home_team, away_team, diagnostic=diag)
Exemple #37
0
    def show(self):
        if pm.window("transferAnimTool", ex=True):
            pm.deleteUI("transferAnimTool")
        pm.window("transferAnimTool",
                  title=u"动画传递助手",
                  cc=lambda *args: self.close_main_window())
        form_layout = pm.formLayout()

        layout = pm.columnLayout(adj=1, rs=5)
        pm.textFieldButtonGrp("templateTextField",
                              label=u"模板文件",
                              bl=u"指定文件",
                              cw3=[70, 200, 100],
                              adj=2,
                              text=self.template_path,
                              bc=lambda *args: self.load_template_file())
        pm.textFieldGrp("namespaceTextField",
                        label="Namespace:",
                        cw2=[70, 200],
                        adj=2,
                        text=self.namespace,
                        cc=lambda *args: self.set_namespace())
        pm.button(label=u"传递动画!", c=lambda *args: self.transfer_anim())
        pm.setParent("..")

        pm.formLayout(
            form_layout,
            edit=True,
            attachForm=[
                (layout, 'top', 10),
                (layout, 'left', 10),
                (layout, 'right', 10),
                (layout, 'bottom', 10),
                # (btn, 'left', 10),
                # (btn, 'right', 10),

                # (output_frame, 'left', 10),
                # (output_frame, 'right', 10),
                # (output_frame, 'bottom', 10),
            ],
            attachControl=[
                # (btn, 'top', 5, layout),
                # (output_frame, 'top', 5, btn),
                # (file_export_list_frame, 'bottom', 5, export_options_frame),
                # (export_options_frame, 'bottom', 5, execute_button),
            ])

        pm.showWindow("transferAnimTool")
Exemple #38
0
def getObj(*args):
    #clear list
    clearList()
    
    #get selected obj and put it in field
    sel = pm.ls( sl = True ) [0]
    pm.textFieldGrp( widgets['objTFG'], e = True, tx = sel )
    
    attr = '%s.space'%sel
    print attr    
    #for that attr grab all of the values
    valuesRaw = pm.attributeQuery( 'space', node = sel, le = True )[0]
    values = valuesRaw.split( ':')
    
    for i in range( 0, len( values )):
        widgets['value%s'%i] = pm.button( l = values[i], w = 300, h = 50, c = partial(match, i))
def inbound():
    
    global jointGuides,setUpName,jointGuidesGrp,side
    setUpName = pm.textFieldGrp('NameTFG', tx = True,q = True)
    colorSel = pm.radioButtonGrp('ColSel',q = True,sl = True) 
    
    if colorSel == 1:
        side = 'l'
    elif colorSel == 2:    
        side = 'm'
    elif colorSel == 3:    
        side = 'r'
        
    numOfJoints = pm.intSliderGrp('Joint_Num',q = True,v = True)   
    jointGuidesGrp = pm.group(em = 1,n = getUniqueName(side,setUpName + 'Gud', 'grp'))                
        
    for num in range(numOfJoints):
        loc = pm.spaceLocator(n = getUniqueName(side,setUpName,'loc'))
        pm.move(0,num * 2,0,loc)
        jointGuides.append(loc)
        loc.setParent(jointGuidesGrp)
    
    jointGuides.reverse()
    for num,loc in enumerate(jointGuides):
        if num < (len(jointGuides) - 1):
            jointGuides[num].setParent(jointGuides[num + 1])
    jointGuides.reverse()   
 def __init__(self, questions_file):
     self.file = open(questions_file, 'r')
     self.questions = self.file.readlines()
     self.file.close()
     self.main_layout = pm.columnLayout()
     self.name_field = pm.textFieldGrp(label= 'Quiz Name')
     self.layout = pm.rowColumnLayout(numberOfColumns= 2,
                                  columnWidth= ([1, 75], [2, 475]))
     pm.columnLayout()
     pm.text(label= 'Questions')
     self.question_scroll_list = pm.textScrollList(width= 60, height= 400,
                       selectCommand= pm.Callback(self.read_questions),
                       allowMultiSelection= True)
     
     pm.setParent(self.layout)
     pm.columnLayout()
     pm.text(label= 'Questions Info')
     self.question_scroll_field = pm.scrollField(wordWrap= True,
                                                 height= 400, width= 475)
     
     pm.setParent(self.main_layout)
     pm.button(label= 'Create Quiz', command= pm.Callback(self.create_quiz),
               width= 550, height= 50)
     
     self.list_questions()
Exemple #41
0
    def append_output_item():
        # todo: bug fix - 属性应该是一对一,当前是一对多,后续版本应该强制验证

        namespace = pm.textFieldGrp("namespaceField", q=True, text=True)

        source_controller = pm.textField("sourceObjectField",
                                         q=True,
                                         text=True)
        if namespace in source_controller:
            source_controller = source_controller.split(":")[1]
        key = "%s.%s" % (source_controller,
                         pm.textScrollList(
                             "sourceObjectAttrScrollList", q=True, si=True)[0])

        target_controller = pm.textField("targetObjectField",
                                         q=True,
                                         text=True)
        if namespace in target_controller:
            target_controller = target_controller.split(":")[1]
        value = "%s.%s" % (target_controller,
                           pm.textScrollList("targetObjectAttrScrollList",
                                             q=True,
                                             si=True)[0])

        item = "%s:%s" % (key, value)
        print(item)

        current_items = pm.textScrollList("outputItemScrollList",
                                          q=True,
                                          ai=True)
        if item not in current_items:
            pm.textScrollList("outputItemScrollList", e=True, a=item)

        print("--------------")
    def displayOptions( self ):
        """Build the interface"""
        self.interface['TimeRange'] = cmds.radioButtonGrp( numberOfRadioButtons=2, label='Time Range', labelArray2=['Time Slider', 'Start/End'], onCommand=self.disableTimeRange )
        self.interface['StartTime'] = cmds.intFieldGrp( label='Start Time' )
        self.interface['EndTime']   = cmds.intFieldGrp( label='End Time' )
        self.interface['Focals']    = cmds.textFieldGrp( label='Focals' )
        self.interface['Cameras']   = cmds.textScrollList( allowMultiSelection=True, width=200, height=100 )
        # self.interface['CamerasLabel']   = cmds.text( label='Cameras' )

        self.formAttachPosition()

        cmds.formLayout(
            self.optionsForm, e=True,
            attachForm=(
                [ self.interface['TimeRange'], 'top', 10 ],
                [ self.interface['Cameras'], 'bottom', 100 ],
                [ self.interface['Cameras'], 'left', 150 ],
            ),
            attachControl=(
                [ self.interface['StartTime'], 'top', 0, self.interface['TimeRange'] ],
                [ self.interface['EndTime'], 'top', 0, self.interface['StartTime'] ],
                [ self.interface['Focals'], 'top', 0, self.interface['EndTime'] ],
                [ self.interface['Cameras'], 'top', 10, self.interface['Focals'] ],
                # [ self.interface['CamerasLabel'], 'top', 10, self.interface['Focals'] ],
                # [ self.interface['CamerasLabel'], 'right', -90, self.interface['Cameras'] ],
            ),
            attachNone=(
                [ self.interface['Cameras'], 'left' ],
                [ self.interface['Cameras'], 'right' ],
            )
        )
        self.editMenuResetCmd() # Set the default values in the interface
    def rename(self, *args):
        v1 = pm.checkBoxGrp(self.cbFld, q=1, v1=1)
        v2 = pm.checkBoxGrp(self.cbFld, q=1, v2=1)
        if v1 and v2:
            pm.warning('Only select one Type: FK or IK. No action taken.')
            return

        name = pm.textFieldGrp( self.nameFld, q=1, text=1)

        # Rename base control
        baseCnt = pm.PyNode('vks_explicit1')
        baseCnt.rename('%s_baseCnt' % name)

        # Get joints
        pm.select('vks_skin_joint_1', hi=1)
        jnts = pm.ls(sl=1, type='joint')
        count = 1
        for each in jnts:
            pc = each.listConnections(et=1, type='parentConstraint')[0]
            print pc
            pc.rename('%s_joint_%s_parentConstraint' % (name, count))
            each.rename('%s_joint_%s' % (name, count))
            pm.select(each, r=1)
            pm.mel.eval('ToggleLocalRotationAxes;')
            count += 1

        # FK parametric controls
        if v1:
            pm.select('vks_parametric*Shape')
            sel = pm.ls(sl=1)
            count = 1
            for each in sel:
                prnt = each.getParent()
                prnt.rename('%s_cnt_%s' % (name, count))
                count += 1
Exemple #44
0
def gui():
    win = 'rigid_body_win'
    if pm.window(win, exists= True):
        pm.deleteUI(win)
        
    if pm.windowPref(win, exists= True):
        pm.windowPref(win, remove= True)
    
    global obj_scroll_list, name_field, tab_layout
    
    my_win = pm.window(win, title= 'BAKE', toolbox= True, width= 300)
    tab_layout = pm.tabLayout()
    
    ui_creator = pm.columnLayout(adjustableColumn= False)
    name_field = pm.textFieldGrp(label = 'System Name', text= 'Name',
                                 columnWidth2= [145, 150])
    obj_scroll_list = pm.textScrollList(width= 300, height= 200,
                                    allowMultiSelection= True)
    pm.rowColumnLayout(nc=3, columnWidth= ([1,100], [2,100], [1,100]))
    pm.button(label= 'Load', command= pm.Callback(load_objects), width= 100)
    pm.button(label= '+', command= pm.Callback(add_objects), width= 100)
    pm.button(label= '-', command= pm.Callback(remove_objects), width= 100)
    
    pm.setParent('..')
    pm.button(label= 'Create Baking System', height= 50, width= 300,
              command= pm.Callback(create_baking_system))
    
    pm.tabLayout( tab_layout, edit=True, tabLabel=((ui_creator, 'Setup')))
    
    my_win.show()
Exemple #45
0
def gui():
    '''
    # gui for the script
    '''
    win = 'rigid_body_win'
    if pm.window(win, exists= True):
        pm.deleteUI(win)
        
    if pm.windowPref(win, exists= True):
        pm.windowPref(win, remove= True)
    
    global obj_scroll_list, name_field, tab_layout
    
    my_win = pm.window(win, title= 'BAKE', toolbox= True, width= 300)
    tab_layout = pm.tabLayout()
    
    ui_creator = pm.columnLayout(adjustableColumn= False)
    name_field = pm.textFieldGrp(label = 'System Name', text= 'Name',
                                 columnWidth2= [145, 150])
    obj_scroll_list = pm.textScrollList(width= 300, height= 200,
                                    allowMultiSelection= True)
    pm.rowColumnLayout(nc=3, columnWidth= ([1,100], [2,100], [1,100]))
    pm.button(label= 'Load', command= pm.Callback(load_objects), width= 100)
    pm.button(label= '+', command= pm.Callback(add_objects), width= 100)
    pm.button(label= '-', command= pm.Callback(remove_objects), width= 100)
    
    pm.setParent('..')
    pm.button(label= 'Create Baking System', height= 50, width= 300,
              command= pm.Callback(create_baking_system))
    
    pm.tabLayout( tab_layout, edit=True, tabLabel=((ui_creator, 'Setup')))
    
    my_win.show()
    def __init__(self):
        title = 'pbRenderableCurve'
        version = 1.02

        if pm.window('pbRCurve', exists=True):
            pm.deleteUI('pbRCurve')

        with pm.window('pbRCurve', title='{0} | {1}'.format(title, version), s=False) as window:
            with pm.columnLayout():
                with pm.frameLayout(l='Selection:', cll=True, bs='out'):
                    with pm.columnLayout():
                        self.selField = pm.textFieldGrp(text='No Curves Selected', ed=False, l='Curve:', cw2=[72, 192])
                        with pm.rowLayout(nc=2):
                            self.bRenderable = pm.checkBox(l='Renderable', cc=self.bcRenderable)

                with pm.frameLayout(l='Mesh Settings:', cll=True, bs='out') as self.meshUI:
                    with pm.columnLayout():
                        with pm.rowLayout(nc=4):
                            self.useNormal = pm.checkBox(l='Use Normal', cc=self.bcUseNormal)
                            self.normalVector = [pm.intField(width=62, en=False, value=0, cc=self.setNormal),
                                                 pm.intField(width=62, en=False, value=1, cc=self.setNormal),
                                                 pm.intField(width=62, en=False, value=0, cc=self.setNormal)]
                        self.meshAttrs = [AttrSlider(maxValue=128, name='Thickness', obj=getCurves, type_='float', fmn=0.0001),
                                          AttrSlider(value=3, minValue=3, maxValue=64, name='Sides', obj=getCurves, fmn=3, fmx=100),
                                          AttrSlider(minValue=1, maxValue=32, name='Samples', obj=getCurves, fmn=1, fmx=128)]

                with pm.frameLayout('Shell Settings:', cll=True, bs='out') as self.shellUI:
                    with pm.columnLayout():
                        self.bShell = pm.checkBox(l='Enable Shell', cc=self.bcShell)
                        self.shellAttrs = [AttrSlider(value=1, minValue=-64, maxValue=64, name='ShellThickness', obj=getCurves, type_='float'),
                                           AttrSlider(value=1, minValue=1, maxValue=64, name='ShellDivisions', obj=getCurves, fmn=1, fmx=32)]

        window.show()
        pm.scriptJob(event=['SelectionChanged', self.refresh], protected=True, p=window)
        self.refresh()
    def initUI(self):
        pm.setUITemplate("DefaultTemplate", pushTemplate=True)
        form = pm.formLayout()

        binMeshExportPath = pm.optionVar.get('mtap_binMeshExportPath', pm.workspace.path + "/geo/export.binarymesh")
        prefix = pm.optionVar.get('mtap_binMeshExportPathPrefix', "prefix")
        createProxy = pm.optionVar.get('mtap_binMeshCreateProxy', True)
        percentage = pm.optionVar.get('mtap_binMeshPercentage', 0.1)
        createStandin = pm.optionVar.get('mtap_binMeshCreateStandin', True)
        oneFilePerMesh = pm.optionVar.get('mtap_binMeshOneFilePerMesh', False)
        useTransform = pm.optionVar.get('mtap_binMeshUseTransform', False)

        with pm.columnLayout('StandinLayout') as StandinLayout:
            with pm.frameLayout('StandinLayout', label="Standin export options", collapsable=False):
                with pm.columnLayout('StandinColumnLayout'):
                    self.pathUI = pm.textFieldButtonGrp(label="Standin directory", text=binMeshExportPath, buttonLabel="File", buttonCommand=self.fileBrowser)
                    self.prefixUI = pm.textFieldGrp(label="Prefix", text=prefix)
                    self.createProxyUI = pm.checkBoxGrp(label="Create proxy", value1=createProxy)
                    self.percentageUI = pm.floatFieldGrp(label="Percentage", value1=percentage)
                    self.createStdInUI = pm.checkBoxGrp(label="Create StandIn", value1=createStandin)
                    self.oneFilePerMeshUI = pm.checkBoxGrp(label="One File Per Mesh", value1=oneFilePerMesh)
                    self.doTransformUI = pm.checkBoxGrp(label="Use Transform", value1=useTransform)
            with pm.rowColumnLayout(numberOfColumns=2):
                pm.button(label="Create BinaryMesh", c=self.doit)
                pm.button(label="Cancel", c=self.cancel)

        pm.formLayout(form, edit=True, attachForm=[(StandinLayout, 'top', 5), (StandinLayout, 'bottom', 5), (StandinLayout, 'right', 5), (StandinLayout, 'left', 5)])
        pm.setUITemplate("DefaultTemplate", popTemplate=True)
Exemple #48
0
 def readNodeBtnCmd(self, *arg):
     kwTxtVal = pm.textFieldGrp('kwTxt', q=1, tx=1).replace(' ',
                                                            '').split(',')
     if kwTxtVal:
         if cmds.listRelatives(cmds.ls(sl=1), ad=1, pa=1):
             readObjs = cmds.ls(
                 selNode.read(
                     cmds.ls(sl=1) +
                     cmds.listRelatives(cmds.ls(sl=1), ad=1, pa=1)))
         else:
             readObjs = cmds.ls(selNode.read(cmds.ls(sl=1)))
         objs = []
         for obj in readObjs:
             num = len(kwTxtVal)
             for txt in range(0, num):
                 if kwTxtVal[txt] in obj:
                     objs.append(obj)
         cmds.select(objs)
     else:
         print cmds.listRelatives(cmds.ls(sl=1), ad=1, pa=1)
         if cmds.listRelatives(cmds.ls(sl=1), ad=1, pa=1):
             readObjs = cmds.ls(
                 selNode.read(
                     cmds.ls(sl=1) +
                     cmds.listRelatives(cmds.ls(sl=1), ad=1, pa=1)))
         else:
             readObjs = cmds.ls(selNode.read(cmds.ls(sl=1)))
         cmds.select(readObjs)
     print "#-----------------#"
     for obj in readObjs:
         print "# %s" % obj
     print "# Object(s) selected."
def multi_BasicSettings():
	# Basic Settings
	pm.text(l='', h=5)
	multi_nameField = pm.textFieldGrp('hp3dNameField', l='Name', text='', cw=[2, 150], cc=fun.partial(multi_nameChange, 'hp3dNameField'), fcc=True)

	pm.rowColumnLayout(nc=2)
	pm.text(l='Basic Settings', w=75, al='left', en=False)
	pm.separator(w=marginWidth-75, h=14)
	pm.setParent(multiLight_layout)

	multi_color = pm.colorSliderGrp('hp3dColorSlider', label='Color', rgb=(1, 1, 1), cw=[3, 20], dc=fun.partial(multi_colorChange, '.color', 'all', 'hp3dColorSlider'))
	multi_intensity = pm.floatSliderGrp('hp3dIntensitySlider', label='Intensity', field=True, v=1.000, fmx=1000000000, pre=3, cw=[3, 20], dc=fun.partial(multi_floatChange, '.intensity', 'all', 'hp3dIntensitySlider'))

	# pm.text(l='', h=3) # GUI SPACER
	pm.rowColumnLayout(nc=2)
	pm.text(l='', w=142) # GUI SPACER
	global multi_illDefault_box
	multi_illDefault_box = pm.checkBox(l='Illuminates by Default', v=1, cc=multi_illDefault)
	pm.setParent(multiLight_layout)

	pm.rowColumnLayout(nc=3)
	pm.text(l='', w=142) # GUI SPACER
	multi_emitDiff_box = pm.checkBox('hp3dEmitDiffCheckbox', l='Emit Diffuse', v=1, w=120, cc=fun.partial(multi_checkboxChange, '.emitDiffuse', 'all', 'hp3dEmitDiffCheckbox'))
	multi_emitSpec_box = pm.checkBox('hp3dEmitSpecCheckbox', l='Emit Specular', v=1, cc=fun.partial(multi_checkboxChange, '.emitSpecular', 'all', 'hp3dEmitSpecCheckbox'))
	pm.setParent(multiLight_layout)

	pm.rowColumnLayout(nc=3)
	pm.text(l='Decay Rate', w=140, al='right')
	pm.text(l='', w=3)
	multi_decayRate_menu = pm.optionMenu('hp3dDecayRateMenu', bgc=primary_componentColor, cc=fun.partial(multi_menuChange, '.decayRate', 'not directional', 'hp3dDecayRateMenu'))
	pm.menuItem(l='No Decay', da=0)
	pm.menuItem(l='Linear', da=1)
	pm.menuItem(l='Quadratic', da=2)
	pm.menuItem(l='Cubic', da=3)
	pm.setParent(multiLight_layout)
Exemple #50
0
    def __init__(self):

        self.tricode_list = []
        self._scene_type = {
            1: 'Team Logo Update',
            2: 'Blue City Weekly',
            3: 'New Years\' Six Elements',
            4: 'Playoff Elements',
            5: 'Current Scene Only'
        }

        # WINDOW UI SHIT
        self.wh = (500, 500)
        self.setTitle('CFB Versioning Tool')
        self.setResizeToFitChildren(1)

        main = pm.formLayout()

        ui_text_tricodes = pm.textFieldGrp('ui_text_tricodes',
                                           l='Tricode List (comma-separated)',
                                           cw2=[200, 200],
                                           cl2=['right', 'right'],
                                           p=main)

        ui_btn_go = pm.button('ui_btn_go',
                              l='B U I L D',
                              c=self.btn_go,
                              p=main)

        main.redistribute()
Exemple #51
0
    def __init__(self, questions_file):
        self.file = open(questions_file, 'r')
        self.questions = self.file.readlines()
        self.file.close()
        self.main_layout = pm.columnLayout()
        self.name_field = pm.textFieldGrp(label='Quiz Name')
        self.layout = pm.rowColumnLayout(numberOfColumns=2,
                                         columnWidth=([1, 75], [2, 475]))
        pm.columnLayout()
        pm.text(label='Questions')
        self.question_scroll_list = pm.textScrollList(
            width=60,
            height=400,
            selectCommand=pm.Callback(self.read_questions),
            allowMultiSelection=True)

        pm.setParent(self.layout)
        pm.columnLayout()
        pm.text(label='Questions Info')
        self.question_scroll_field = pm.scrollField(wordWrap=True,
                                                    height=400,
                                                    width=475)

        pm.setParent(self.main_layout)
        pm.button(label='Create Quiz',
                  command=pm.Callback(self.create_quiz),
                  width=550,
                  height=50)

        self.list_questions()
Exemple #52
0
    def getUIData(self, *args):
        self.prefix = pm.textFieldGrp(self.nameFld, query=True, text=True)

        self.loc1 = pm.textFieldButtonGrp(self.loc1Fld, query=True, text=True)
        self.loc2 = pm.textFieldButtonGrp(self.loc2Fld, query=True, text=True)
        self.loc3 = pm.textFieldButtonGrp(self.loc3Fld, query=True, text=True)

        self.shoulder = pm.textFieldButtonGrp(self.upperTorsoFld,
                                              query=True,
                                              text=True)
        self.cog = pm.textFieldButtonGrp(self.lowerTorsoFld,
                                         query=True,
                                         text=True)
        self.world = pm.textFieldButtonGrp(self.worldFld,
                                           query=True,
                                           text=True)

        self.hand_cnt = pm.textFieldButtonGrp(self.handCntFld,
                                              query=True,
                                              text=True)

        self.aim = pm.radioButtonGrp(self.aimFld, q=True, sl=True)
        self.aimPolarity = pm.radioButtonGrp(self.aimPolarityFld,
                                             q=True,
                                             sl=True)
        self.up = pm.radioButtonGrp(self.upFld, q=True, sl=True)
        self.upPolarity = pm.radioButtonGrp(self.upPolarityFld,
                                            q=True,
                                            sl=True)

        self.normal = pm.radioButtonGrp(self.nrFld, query=True, sl=True)
        self.radius = pm.floatFieldGrp(self.rFld, query=True, value1=True)

        self.build = pm.radioButtonGrp(self.buildFld, query=True, sl=True)
Exemple #53
0
def finalize(*args):


	Input_spineJoints = pm.intFieldGrp("spineNumberField", q=True, v1=True)
	Input_RigPrefix = pm.textFieldGrp("RigPrefix", q=True, tx=True)
	
	AutoRig_JT.finaliseRig(Input_spineJoints,Input_RigPrefix)
 def layersReplace(self, attribute):
     if attribute is not "none":
         self.thisNode = pm.PyNode(attribute).node()
     log.debug("layersReplace {0}".format(attribute))
     pm.setUITemplate("attributeEditorTemplate", pushTemplate=True)
     materialEntries = self.thisNode.materialEntryMtl.numElements()
     #print "layersReplace: node has ", self.thisNode.materialEntryMtl.numElements(), "layers"
     if self.layersUi is not None:
         pm.deleteUI(self.layersUi)
     with pm.columnLayout(adj=True, parent=self.uiParent) as self.layersUi:
         for layerNumber in range(materialEntries):
             layerIndex = self.thisNode.materialEntryMtl.elementByPhysicalIndex(layerNumber).index()
             with pm.frameLayout(label="Layer {0}".format(layerNumber), collapsable=True, collapse=False):
                 print "create layer", layerNumber
                 with pm.columnLayout(adj=True):
                     attribute = self.thisNode.materialEntryMtl[layerIndex]
                     tf = pm.textFieldGrp(label="Shader", editable=False)
                     if attribute.isConnected():
                         tf.setText(attribute.inputs(p=1)[0])
                     pm.attrColorSliderGrp(label="Material", at=attribute)
                     attribute = self.thisNode.materialEntryAmount[layerIndex]
                     pm.attrColorSliderGrp(label="Amount", at=attribute)
                 with pm.columnLayout(adj=True):
                     pm.button(label="Remove Layer", c=pm.Callback(self.removeLayer, layerIndex), height=18)
                     pm.button(label="Layer Up", c=pm.Callback(self.moveLayerUp, layerIndex), height=18)
                     pm.button(label="Layer Down", c=pm.Callback(self.moveLayerDown, layerIndex), height=18)
                 
     pm.setUITemplate("attributeEditorTemplate", popTemplate=True)                
 def __init__(self):
     self.main_layout = pm.columnLayout(adjustableColumn= True)
     self.layout01 = pm.rowColumnLayout(numberOfColumns= 3, columnWidth=([1,
                                                 150],[2, 150], [3, 250]))
     pm.columnLayout()
     pm.text(label= 'Shaders')
     self.shader_scroll_list01 = pm.textScrollList(width= 150, height= 200,
                    selectCommand= pm.Callback(self.get_output_geo))
     pm.button(label= 'Refresh', width= 150,
               command= pm.Callback(self.update_shaders_list))
     
     pm.setParent(self.layout01)
     pm.columnLayout()
     pm.text(label= 'Shader Geo')
     self.shader_geo_scroll_list = pm.textScrollList(width= 150, height= 200,
                                                 allowMultiSelection= True)
     #self.check_box = pm.checkBox(label= 'select node')
     
     pm.setParent(self.layout01)
     pm.columnLayout()
     pm.text(label= 'Scene Geo')
     self.scene_geo_scroll_list = pm.textScrollList(width= 250, height= 200,
                                                 allowMultiSelection= True)
     pm.button(label= 'Refresh', width= 275,
               command= pm.Callback(self.update_scene_geo_list))
     
     pm.setParent(self.main_layout)
     self.layout02 = pm.rowColumnLayout(numberOfColumns= 2, columnWidth=([1,
                                                 275],[2, 275]))
     pm.columnLayout(adjustableColumn= True)
     pm.text(label= 'Shaders')
     self.shader_scroll_list02 = pm.textScrollList(width= 275, height= 200)
     pm.button(label= 'Assign', width= 275,
               command= pm.Callback(self.assign_to_geometry))
     
     pm.setParent(self.layout02)
     pm.columnLayout(adjustableColumn= True)
     pm.text(label= 'Create Shaders')
     self.option_menu = pm.optionMenu( label='Material Type', width= 200)
     pm.menuItem( label='mia_material_x')
     pm.menuItem( label='blinn')
     pm.menuItem( label='lambert')
     pm.menuItem( label='phong')
     pm.menuItem( label='rampShader')
     pm.menuItem( label='anisotropic')
     pm.menuItem( label='phongE')
     pm.menuItem( label='useBackground')
     
     self.text_field = pm.textFieldGrp(label= 'Name',
                                       columnWidth2= [100, 150])
     
     
     pm.button(label= 'Create and Assign Shader',
               command= pm.Callback(self.create_and_assign_shader))
     
     self.update_scene_geo_list()
     self.update_shaders_list()
Exemple #56
0
 def _buildupWindow(self):
     if isinstance(self._window, _pmCore.uitypes.Window) and self._window.exists(self._window.name()):
         _pmCore.deleteUI(self._window, window=True)
     self._window = _pmCore.window(title=self._winTitle)
     _pmCore.columnLayout()
     self._sceneName = _pmCore.textFieldGrp(label='Scene Name: ', columnAlign2=('left', 'left'), columnWidth2=(80, 200))
     _pmCore.rowLayout(numberOfColumns=2)
     self._filePath = _pmCore.textFieldGrp(label='Directory: ', columnAlign2 = ('left', 'left'), columnWidth2=(80, 180))
     _pmCore.button(label='...', width=20, command=_functools.partial(self._directorySelection, self._filePath))
     _pmCore.setParent('..')
     self._category = _pmCore.optionMenuGrp(label='Category: ', columnAlign2=('left', 'left'), columnWidth2=(80, 200))
     for category in _Database.getCategoryList():
         _pmCore.menuItem(label=category)
     _pmCore.text(label='Description: ')
     self._description = _pmCore.scrollField(width = 300, height=100)
     _pmCore.rowLayout(numberOfColumns=2)
     _pmCore.button(label='OK', width=150, align='left', command=self._newAssetInfoConfirmed)
     _pmCore.button(label='Cancel', width=150, align='left', command=self._newAssetInfoClose)
    def create(self, *args):
	a = pm.PyNode(pm.textFieldButtonGrp(self.aFld, q=1, text=1))
	b = pm.PyNode(pm.textFieldButtonGrp(self.bFld, q=1, text=1))
	name = a+'midJnt'
	num = pm.textFieldGrp(self.numFld, q=1, text=1)
	
	jnts, crv = self.makeJoints(a=a, b=b, name=name, num=num)
	self.constrainJoints(a=a, b=b, jnts=jnts)
	pm.delete(crv)
 def order_by_ui(self, *args):
     self.order = pmc.checkBoxGrp(self.order_ui, q=True, v1=True)
     
     self.spp_.sort_objects(alphabetical=self.order,
                            filter_str=pmc.textFieldGrp(self.filter_ui, q=True, text=True),
                            filter_test=self.filter_test)
     
     pmc.textScrollList(self.infos_ui, e=True, ra=True)
     pmc.textScrollList(self.infos_ui, e=True, a=[o.repr_ for o in self.spp_.order_obj])
Exemple #59
0
def reNamerUI():
    winName = 'reName_Tool'
    if(pm.window(winName,q=1,ex=1)):
        pm.deleteUI(winName)
    
    pm.window(winName,ret=1,mb=1)
    
    pm.columnLayout('reNameLayout',adj = 1)
    pm.textFieldGrp('pre',l = 'Prefix Name : ',tx = '',adj = 1,cl2 = ('left','left'))
    pm.radioButtonGrp('side',nrb = 3,la3 = ['left','center','right'],adj = 1,ad3 = 1)
    pm.textFieldGrp('obj',l = 'Object Name : ',tx = '',adj = 1,cl2 = ('left','left'))
    pm.textFieldGrp('starNum',l = 'Start Number : ',tx = 1,adj = 1,cl2 = ('left','left'))
    pm.textFieldGrp('paddingNum',l = 'Padding Number : ',tx = 0,adj = 1,cl2 = ('left','left'))
    pm.textFieldGrp('suffix',l = 'Suffix Name : ',tx = 'jj',adj = 1,cl2 = ('left','left'))
    pm.checkBox('je',l = 'make Last joint je',v = 1)
    
    pm.button('Select hierachy',c = 'selHierachy()')
    pm.button('Achtung!',c = 'renaming()')
    pm.showWindow(winName)
Exemple #60
0
    def modifySelected(self, *args):
        """script job will fire regardless of what is selected, so need to set
        up conditions so it doesn't error out"""

        # figure out if selected is a blueprint module
        selected_node = pm.ls(sl=True)

        # only if selection is one or zero because we may need to shift select
        if len(selected_node) <= 1:
            self.moduleInstance = None
            mod_moduleType = None
            mod_namespace = None
            # only if selection is one
            if len(selected_node) == 1:
                selected_node = selected_node[0]
                # need to figure out which module type we have selected
                if selected_node.hasAttr("MetaNode"):
                    mod_moduleType = utils.getModuleMetaInfo(selected_node, "ModuleType")
                    mod_namespace = utils.getModuleMetaInfo(selected_node, "Namespace")
                else:
                    _logger.warning('ModifySelected: {} does not have attribute "MetaNode"'.format(selected_node))

            control_enabled = False
            # import the module
            if mod_moduleType != None:
                control_enabled = True

                # putting an instance of the module in memory
                module = __import__(environ.BlueprintModulePath + mod_moduleType, {}, {}, [mod_moduleType])
                reload(module)
                moduleClass = getattr(module, module.CLASS_NAME)
                self.moduleInstance = moduleClass(mod_namespace, self.find_parentModule())

            _logger.info("\nModule Instance: {}".format(self.moduleInstance))

            pm.textFieldGrp(
                self.UIwidgets["moduleOptions_name_textField"], edit=True, text=mod_namespace, enable=control_enabled
            )
            pm.button(self.UIwidgets["moduleOptions_parent_button"], edit=True, enable=control_enabled)
            pm.button(self.UIwidgets["moduleOptions_delete_button"], edit=True, enable=control_enabled)
            pm.button(self.UIwidgets["moduleOptions_mirror_button"], edit=True, enable=control_enabled)

        self.createScriptJob()