def sphereCtl( name, functArgs ): J=[] ctl = Lib.getFirst(cmds.polySphere( n = (name + "_CTL"), r= functArgs["size"], sx= 1, sy= 1, ax= [0, 1, 0], ch= 1)) grp = cmds.group( ctl, n = (name + "Ctl_GRP")) J.append(ctl) J.append(grp) return J
def cubeCtl( name, functArgs ): J=[] ctl = Lib.getFirst(cmds.polyCube( n = (name + "_CTL"), w= functArgs["size"], h= functArgs["size"], d= 1, sx= 1, sy= 1, sz= 1, ax= [0, 1, 0], cuv= 4, ch= 1)) grp = cmds.group( ctl, n = (name + "Ctl_GRP")) J.append(ctl) J.append(grp) return J
def circleCtl( name, radius ): 'Creates arrow control' J=[] curve= Lib.getFirst(cmds.circle( n = (name+ "_CTL"), c= [0, 0, 0], nr= [0, 1, 0], sw= 360, r= radius, d= 3, ut= 0, tol= 0.01 ,s= 8, ch=1)) grp = cmds.group( curve, n = (name + "Ctl_GRP")) J.append(curve) J.append(grp) return J
def locatorCtl( name, args ): 'Creates locator ctl' J=[] ctl = Lib.getFirst(cmds.spaceLocator( n =(name + "_CTL") ) ) grp = cmds.group( ctl, n = (name + "Ctl_GRP")) cmds.xform(grp, piv= [0,0,0] ) J.append(ctl) J.append(grp) return J
def duplicateChain(name , chainJoints): 'Duplicates a chain of joints' i = 1 joints = [] jointNo = len(chainJoints) for x in range( jointNo ): joints.append( Lib.getFirst(cmds.duplicate(chainJoints[x], po = True, n = (name + str(x + 1) + "_JNT"))) ) for x in range( 1, jointNo ): cmds.parent(joints[jointNo - x], joints[jointNo - (x + 1)]) return joints
def saveTransforms(filePath, module, objects): """ Will Store transfrom data in file """ # objects = self.getRegisteredObjects( module, regAttr) writeData = "" for object in objects: translate = Lib.getFirst(cmds.getAttr((object + ".t"))) rotate = Lib.getFirst(cmds.getAttr((object + ".r"))) scale = Lib.getFirst(cmds.getAttr((object + ".s"))) writeLine = ( object + " " + str(translate[0]) + " " + str(translate[1]) + " " + str(translate[2]) + " " + str(rotate[0]) + " " + str(rotate[1]) + " " + str(rotate[2]) + " " + str(scale[0]) + " " + str(scale[1]) + " " + str(scale[2]) + "\n" ) writeData += writeLine FILE = open(filePath, "wb") blueprintData = FILE.write(writeData) FILE.close() print ("Saved Transform data to : " + filePath)
def createPoleVec(joints, ikHandle, position): """ Creates pole vector for handle for three joints """ if len(joints) != 3: cmds.error("Incorrect number of joints supplied to IkHandle.") # Create locator to act as pole vector locName = (String.removeSuffix(ikHandle) + "Pole_LOC") poleGrpName = (String.removeSuffix(ikHandle) + "Pole_GRP") poleVecName = (String.removeSuffix(ikHandle) + "Pole_PVC") loc = Lib.getFirst(cmds.spaceLocator(n = locName, p= (0,0,0) )) cmds.xform(loc, ws= True, t= (position[0], position[1], position[2]) ) locGrp = cmds.group(loc, n= poleGrpName) cmds.poleVectorConstraint( loc , ikHandle, n= poleVecName, w=.1 ) cmds.setAttr((loc + ".v"), 0) return locGrp