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.

  • Installieren von python3 in einer virtuellen python2-Umgebung
  • Überprüfen Sie die Klassenerstellung in OrientDB
  • Warum dieses inkonsistente Verhalten mit scrapy Shell Druck Ergebnisse?
  • HTML Parse Baum mit Python 2.7
  • Verwenden Sie den MongoDB-Server für den Unit-Test
  • Lesen Sepcific CSV Spalte Wert und übergeben sie an CURL / URLLib als param in Python
  • Test, wenn Tupel nur keine Werte mit Python enthält
  • Encoding-Problem mit dem Drucken des Grad-Symbols auf einem Word-Dokument mit docx
  • 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.