我正在尝试制作一个简单的"所有工具"在Maya中使用Python脚本,这就是我有多远
将maya.cmds导入为cmds
selected = cmds.ls(selection = True)
为所有人选择:
cmds.getAttr('Cube.translateX')
这似乎得到了场景中对象名称立方体的X位置,但是我希望它能够得到我选择的任何对象的翻译。
我希望有人可以提供帮助,谢谢
答案 0 :(得分:2)
在字符串' Cube.translateX'中,您需要使用所选对象的名称代替' Cube'。我们使用%s格式通过简单的字符串格式来完成此操作:
import maya.cmds as cmds
selected = cmds.ls(selection=True)
for item in selected:
translate_x_value = cmds.getAttr("%s.translateX" % item)
# do something with the value. egs:
print translate_x_value
希望有所帮助。
答案 1 :(得分:1)
@ kartikg的回答会很好。作为替代方案,maya的默认行为是默认情况下为需要对象处理的命令使用所选对象。所以:
original_selection = cmds.ls(sl=True)
for item in selected:
cmds.select(item, r=True) # replace the original selection with one item
print cmds.getAttr(".translateX") # if the name is only an attribute name, Maya
# supplies the current selection
当您要对列表中的每个对象执行一系列命令时,这非常有用,因为您不必为每个命令键入字符串格式化程序。但是,@ kartikg的方法更容易阅读和调试,因为你可以通过用print语句替换命令来检查它。
答案 2 :(得分:0)
import maya.cmds as cmds
objects = cmds.ls(sl=True)
for o in objects:
x_translate = cmds.getAttr(o + '.translateX')
print (x_translate)