import maya.cmds as cmds
def customPlace(placeName):
AllLoc=cmds.ls(sl=1)
cmds.setAttr(placeName+'Shape.numOfAgent' , len(AllLoc))
for i in range(0,len(AllLoc)):
tdata = cmds.xform(AllLoc[i],q=1,ws=1,piv=1)
cmds.setAttr(placeName+'.placement['+str(i)+'].agentPlace[1]',tdata[0])
cmds.setAttr(placeName+'.placement['+str(i)+'].agentPlace[2]',tdata[1])
cmds.setAttr(placeName+'.placement['+str(i)+'].agentPlace[3]',tdata[2])
cmds.setAttr(placeName+'.placement['+str(i)+'].agentPlace[5]',cmds.getAttr(AllLoc[i]+'.rotateY')+180)
customPlace('McdPlace0')
select the bones one by one from top to bottom of hierarchy and run the script
import maya.cmds as cmds
import random
sel = cmds.ls(sl=True)
ctrlName = "ctrl"
id = str(random.randint(1,1000))
i = 0
for obj in sel:
c = cmds.circle()
grpDn = cmds.group(c[0])
grp = cmds.group(grpDn)
cmds.parent(grp,obj)
cmds.setAttr("%s.translate"%(grp),0,0,0)
cmds.setAttr("%s.rotate"%(grp),0,0,0)
cmds.Unparent(grp,obj)
cmds.orientConstraint(c[0],obj ,mo=True)
cmds.rename(c[0],ctrlName+"_%03i_%s"%(i,id))
cmds.rename(grpDn,"grp_driven"+ctrlName+"_%03i_%s"%(i,id))
cmds.rename(grp,"grp_dummy"+"_%03i_%s"%(i,id))
if i>0:
s = cmds.ls(sl=True)[0]
prvNum = int(str(s).split("_")[-2])-1
prvNum = format(prvNum,"03")
print prvNum
prvName = ctrlName+"_"+prvNum+"_"+id
cmds.parent(s,prvName)
i += 1
(Thanks Jacob!)
import pymel.core as pm
cam = pm.PyNode('persp')
print cam.getRotation(space='object')
import maya.cmds as cmds
myObj = "pSphere1"
r = cmds.xform( myObj , q=True, ws=True ,ro=True)
t = cmds.xform( myObj , q=True, ws=True ,t=True)
print "rot:", r
print "trans:", t