[英]Maya Python - Set object pivot to selection center
我正在嘗試將所選對象的軸樞軸移動到所選對象的頂點的中心。
當我運行代碼時,我沒有收到任何錯誤,並且幾乎所有工作都按預期進行,但是(obj)我選擇的對象的樞軸似乎沒有將自身設置為定位器xform(piv)。
import maya.cmds as cmds
sel = cmds.ls(sl=True)
print sel
obj = cmds.ls(*sel, o=True)
print obj
selVerts = cmds.ls(sl=True)
tempClstr = cmds.cluster()
pos = cmds.xform(tempClstr[1], q=True, ws=True, rp=True)
loc = cmds.spaceLocator()
cmds.move(pos[0], pos[1], pos[2])
cmds.delete(tempClstr)
piv = cmds.xform (loc[1], piv=True, q=True, ws=True)
print piv
cmds.xform( obj, ws=True, piv=(piv[0], piv[1], piv[2]) )
在這方面需要一些幫助。 可以發現我所缺少的任何額外的眼睛將不勝感激。
我認為主要問題是,當您使用obj = cmds.ls(*sel, o=True)
,它僅捕獲對象的形狀節點,而不是其變換。 您可以使用cmds.listRelatives
來獲取形狀的變換。 您也不需要創建定位器,因為集群已經為您提供了位置。
這似乎對我有用,盡管您可能要考慮選擇部分的一些其他錯誤檢查,因為它假設很多。
import maya.cmds as cmds
sel = cmds.ls(sl=True)
shapes = cmds.ls(sel, o=True)
obj = cmds.listRelatives(shapes[0], f=True, parent=True)[0]
selVerts = cmds.ls(sl=True)
tempClstr = cmds.cluster()
piv = cmds.xform(tempClstr[1], q=True, ws=True, rp=True)
cmds.delete(tempClstr)
cmds.xform(obj, ws=True, piv=(piv[0], piv[1], piv[2]) )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.