MAYA Python脚本,使用GetAttr获取所选对象的位置

时间:2014-11-11 15:31:21

标签: python translate maya getattr

我正在尝试制作一个简单的"所有工具"在Maya中使用Python脚本,这就是我有多远

  

将maya.cmds导入为cmds

     

selected = cmds.ls(selection = True)

     

为所有人选择:

    cmds.getAttr('Cube.translateX')

这似乎得到了场景中对象名称立方体的X位置,但是我希望它能够得到我选择的任何对象的翻译。

我希望有人可以提供帮助,谢谢

3 个答案:

答案 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)