Exemple #1
0
def get_node(node_name, unique_only=True, type_filter=None, verpose=False):
    msg = []
    try:
        if unique_only:
            assert (pm.uniqueObjExists(node_name)
                    ), "object name %s is not unique or not exist" % node_name
            node = pm.PyNode(node_name)
            if type_filter:
                assert (isinstance(
                    node, type_filter)), 'node %s with %s does not exist' % (
                        node_name, type_filter)
            msg.append("%s exists, is type %s" % (node, type(node)))
            return node
        else:
            node = pm.ls('*%s*' % node_name, type=type_filter)
            msg.append("found %d object:" % (len(node)))
            for n in node:
                msg.append(node.name())
        return node
    except pm.MayaNodeError:
        msg.append('node %s does not exist' % node_name)
    except pm.MayaAttributeError:
        msg.append('Attibute %s does not exist' % node_name)
    except AssertionError as why:
        msg.append(why)
    if verpose:
        print '/n'.join(msg)
Exemple #2
0
    def connect_neg_v(self, target_node, target_attr):
        if not pm.uniqueObjExists(target_node):
            pm.displayWarning(
                'Target Node not found {} Skipping...'.format(target_node))
            return

        if not pm.hasAttr(target_node, target_attr):
            pm.displayWarning(
                'Target attr not found {} Skipping...'.format(target_attr))
            return

        self.extend_neg_v()
        pm.connectAttr('{}.{}'.format(self.border, self.neg_v_out_attr),
                       '{}.{}'.format(target_node, target_attr))
        pm.setAttr('{}.{}'.format(self.border, self.neg_v_target_attr),
                   '{}.{}'.format(target_node, target_attr),
                   type="string")
Exemple #3
0
import pymel.core as pm

jointsNumber = 40
groupJnts = 'joint_GRP'
curve = 'curveMP'
motionPathList = []
curveSpans = pm.getAttr(curve + 'Shape.spans')
pm.rebuildCurve(curve, ch=True, rt=0, rpo=True, end=1, kr=0, kep=True, kt=0, d=3, s=curveSpans)
for i in range(0, jointsNumber):
    newJnt = pm.joint(n='twist_' + str(i + 1) + '_JNT', radius=0.5)
    pm.setAttr(newJnt + '.overrideEnabled', 1)
    pm.setAttr(newJnt + '.overrideColor', 13)
    if pm.uniqueObjExists(groupJnts):
        pm.parent(newJnt, groupJnts)
    else:
        pm.group(newJnt, n=groupJnts)
        # motionPath = pm.pathAnimation(newJnt, c=curve, fractionMode = 0, eu = 1)
    motionPath = pm.createNode('motionPath')
    motionPathList.append(motionPath)
    pm.connectAttr(curve + 'Shape.worldSpace[0]', motionPath + '.geometryPath')
    pm.connectAttr(motionPath + '.xCoordinate', newJnt + '.tx', f=True)
    pm.connectAttr(motionPath + '.yCoordinate', newJnt + '.ty', f=True)
    pm.connectAttr(motionPath + '.zCoordinate', newJnt + '.tz', f=True)
    pm.connectAttr(motionPath + '.message', newJnt + '.specifiedManipLocation', f=True)
    maxValueCurve = pm.getAttr(curve + '.maxValue')
    print maxValueCurve
    # pm.cutKey(motionPath+'.u')
    pm.setAttr(motionPath + '.u', i * (maxValueCurve / (jointsNumber - 1)))
    pm.disconnectAttr(newJnt + '.tx')
    pm.disconnectAttr(newJnt + '.ty')
    pm.disconnectAttr(newJnt + '.tz')
Exemple #4
0
    def __init__(self, objName, jsonFile, side, mirror):
        self.objName = objName
        self.jsonFile = jsonFile
        self.side = side
        self.mirror = mirror

        data = self.jsonFile.readingDataFromJson()
        lenght = len(data)
        nameDataJson = self.jsonFile.getJsonName()

        if self.side != '':
            # building locators
            for i in data[nameDataJson]:
                nameObj = ('locObj_' + self.side + '_' + i['nodeName'])
                nameLoc = (self.side + '_' + i['nodeName'])
                position = [i['nodePosX'], i['nodePosY'], i['nodePosZ']]
                scale = [i['nodeSclX'], i['nodeSclY'], i['nodeSclZ']]

                loc = ObjLocator(nameObj, nameLoc, position, scale)
                loc.addStringAttribute('locFather', 'locFather',
                                       self.side + i['nodeFather'])
                loc.addStringAttribute('locChild', 'locChild',
                                       self.side + i['nodeChild'])

            # building annotations
            for i in data[nameDataJson]:
                if (i['nodeChild'] != 'self'):
                    nameObj = ('antObj_' + self.side + '_' + i['nodeChild'])
                    nameAnn = (self.side + '_' + i['nodeName'] + '_ANT')
                    textAnn = self.side + '_' + i['nodeName']
                    annotation = ObjAnnotation(
                        nameObj, nameAnn, textAnn,
                        self.side + '_' + i['nodeChild'],
                        self.side + '_' + i['nodeName'], [])
                else:
                    nameObj = ('antObj_' + self.side + '_' + i['nodeChild'])
                    nameAnn = (self.side + '_' + i['nodeName'] + '_ANT')
                    textAnn = self.side + '_' + i['nodeName']
                    annotation = ObjAnnotation(nameObj, nameAnn, textAnn,
                                               self.side + '_' + i['nodeName'],
                                               self.side + '_' + i['nodeName'],
                                               [])
        else:
            # building locators
            for i in data[nameDataJson]:
                nameObj = ('locObj_' + i['nodeName'])
                nameLoc = (i['nodeName'])
                position = [i['nodePosX'], i['nodePosY'], i['nodePosZ']]
                scale = [i['nodeSclX'], i['nodeSclY'], i['nodeSclZ']]

                loc = ObjLocator(nameObj, nameLoc, position, scale)
                loc.addStringAttribute('locFather', 'locFather',
                                       i['nodeFather'])
                loc.addStringAttribute('locChild', 'locChild', i['nodeChild'])

            # building annotations
            for i in data[nameDataJson]:
                if (i['nodeChild'] != 'self'):
                    nameObj = ('antObj_' + i['nodeChild'])
                    nameAnn = (i['nodeName'] + '_ANT')
                    textAnn = i['nodeName']
                    annotation = ObjAnnotation(nameObj, nameAnn, textAnn,
                                               i['nodeChild'], i['nodeName'],
                                               [])
                else:
                    nameObj = ('antObj_' + i['nodeChild'])
                    nameAnn = (i['nodeName'] + '_ANT')
                    textAnn = i['nodeName']
                    annotation = ObjAnnotation(nameObj, nameAnn, textAnn,
                                               i['nodeName'], i['nodeName'],
                                               [])

        mainGrpModuleCreator = nameDataJson + '_GRP'

        for i in data[nameDataJson]:
            if pm.uniqueObjExists(mainGrpModuleCreator):
                pm.parent(i['nodeName'], mainGrpModuleCreator)
            else:
                pm.group(i['nodeName'], n=mainGrpModuleCreator)
Exemple #5
0
        with Window(title="class instance") as window:
            with FooterForm() as main:
                with VerticalForm() as form:
                    cb_1 = CheckBox(label='bool', value=False)
                with HorizontalStretchForm() as footer:
                    btn_1 = Button('print data')

        window.main.form.cb_1.bind.value > bind() > (
            self.data, 'bool')  # must be "object.attribute" or (object,attr)

        # add comands
        window.main.footer.btn_1.command += self.test_event

        return window

    def test_event(self, *args, **kwargs):
        print self.data.info()

    def show(self):
        if not self.window:
            self.window = self.create_window()
        self.window.show()


if not pm.uniqueObjExists("my_sphere"):
    pm.polySphere(name="my_sphere")

ui = None
ui = UI(data=Data())
ui.show()
Exemple #6
0
def get_export_set():
    if pm.uniqueObjExists("ExportSet"):
        return pm.PyNode("ExportSet")
    else:
        return create_export_set()