Maya Python – Set Objekt Pivot zur Auswahl Mitte

Ich versuche, das ausgewählte Objekt-Pivot in die Mitte der ausgewählten Objekte zu verschieben.

Wenn ich den Code laufe, erhalte ich keine Fehler und fast alles funktioniert wie beabsichtigt, aber das Pivot von (obj) mein ausgewähltes Objekt scheint sich nicht auf den Locator xform (piv) zu setzen.

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]) ) 

Brauchen Sie etwas Hilfe auf diesem einen schnell. Irgendwelche zusätzlichen Augen, die sehen können, was ich vermisse, würde sehr geschätzt werden.

  • Matplotlib Fehler: LaTeX konnte den folgenden String nicht verarbeiten: 'lp'
  • Wie installiere ich numpy auf Windows mit Pip installieren?
  • Gehen Sie durch alle XML-Knoten in einer Element-verschachtelten Struktur
  • Tensorflow-Fehler: "Tensor muss aus dem gleichen Graphen wie Tensor ..."
  • Was ist der richtige Weg, um im iPython Notebook zu debuggen?
  • Mpi4py: Kommunikation zwischen hervorgebrachten Prozessen
  • Django Query Sortierung Groß-und Kleinschreibung mit Modell-Methode mit PostgreSQL
  • Gibt es einen Grund, warum Python 3 langsamer als Python 2 auflistet?
  • One Solution collect form web for “Maya Python – Set Objekt Pivot zur Auswahl Mitte”

    Ich denke, das Hauptproblem war, dass, wenn Sie mit obj = cmds.ls(*sel, o=True) , war es nur die Erfassung des Objekts Form Knoten anstelle seiner Transformation. Sie können cmds.listRelatives , um die Form der Transformation zu erhalten. Du brauchst auch nicht den Locator zu erstellen, da der Cluster dir schon die Position gibt.

    Dies scheint für mich zu arbeiten, obwohl Sie vielleicht eine zusätzliche Fehlerprüfung für den Selektionsteil betrachten, da er viel anlegt.

     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]) ) 
    Python ist die beste Programmiersprache der Welt.