Estoy tratando de hacer un simple «alineé herramienta» en maya usar secuencia de comandos de Python, y esta es la distancia que tengo

de importación maya.cmds como cmds

seleccionado = cmds.ls(selección=True)

para todos en el seleccionado:

    cmds.getAttr('Cube.translateX')

Y esta parece ser la posición X del objeto los nombres de cubo en la escena, sin Embargo, me gustaría obtener el traducir de cualquier objeto seleccionado.

Espero que alguien pueda ayudar, gracias

InformationsquelleAutor Chico Spans | 2014-11-11

3 Comentarios

  1. 2

    En la cadena ‘Cubo.translateX’, usted necesita tener el objeto seleccionado del nombre en lugar de ‘el Cubo’. Hacemos esto por una simple cadena de formato usando el %s formato:

    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

    La esperanza de que la ayudó.

  2. 1

    @kartikg la respuesta va a funcionar bien. Como una alternativa, maya comportamiento predeterminado es el uso de los objetos seleccionados por defecto para los comandos que necesita objetos para trabajar. Así:

    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

    Esto es útil cuando usted quiere hacer una serie de comandos en cada objeto en la lista, ya que usted no tiene que escribir la cadena de formateador para cada comando. Sin embargo @kartikg método es más fácil de leer y depurar ya que se puede comprobar mediante reemplazar el comando con una instrucción print.

    • no sabía que cmds.getAttr(".translateX") iba a trabajar en la selección actual sin atributo pasado. Probé con varios objetos seleccionados y escupir una lista. Bastante limpio! Gracias por la info!
  3. 0
    import maya.cmds as cmds                                
    objects = cmds.ls(sl=True)                              
    for o in objects:                                          
        x_translate = cmds.getAttr(o + '.translateX')  
        print (x_translate)

Dejar respuesta

Please enter your comment!
Please enter your name here