Maya Python: commands.- Taste( ) mit UI übergeben von Variablen und eine Funktion aufrufen?

Zunächst alle, dies scheint ein großartiger Ort, um mehr zu erfahren über die Programmierung.
Ich habe eine schriftliche maya python script, wo beide Funktionen funktionieren, werde ich Schwierigkeiten haben, die UI-Taste zum aufrufen der superExtrude () - Funktion, obwohl.
Die erste Funktion übernimmt die geometrische mesh-Manipulationen und der zweite sollte produzieren die Benutzeroberfläche für die Benutzer-Eingänge:

import maya.cmds as cmds

def superExtrude(extrScale, extrDist):
    """Loops through a list of selected meshes and extrudes all of the mesh faces to produce a polygon frame, based on existing mesh tesselations"""
    myObjectLt = cmds.ls(selection=True)

    for i in range(len(myObjectLt)):
        numFaces = cmds.polyEvaluate(face=True)
        item = myObjectLt[i] + ".f[:]"
        cmds.select(clear=True)
        cmds.select(item, replace=True)

        #extrude by scale
        cmds.polyExtrudeFacet(constructionHistory=True, keepFacesTogether=False, localScaleX=extrScale, localScaleY=extrScale, localScaleZ=extrScale)
        selFaces = cmds.ls(selection=True)
        cmds.delete(selFaces)

        #extrude by height
        cmds.select(item, replace=True)
        cmds.polyExtrudeFacet(constructionHistory=True, keepFacesTogether=True, localTranslateZ=extrDist)

def extrWindow():
    """Creates the user interface UI for the user input of the extrusion scale and height"""
    windowID = "superExtrWindow"

    if cmds.window(windowID, exists=True):
        cmds.deleteUI(windowID)

    cmds.window(windowID, title="SuperExtrude", sizeable=False, resizeToFitChildren=True)
    cmds.rowColumnLayout(numberOfColumns=2, columnWidth=[(1,120),(2,120)], columnOffset=[1,"right",3])

    cmds.text(label="Extrusion Scale:")
    extrScaleVal = cmds.floatField(text=0.9)
    cmds.text(label="Extrusion Height:")
    extrDistVal = cmds.floatField(text=-0.3)
    cmds.separator(height=10, style="none")
    cmds.separator(height=10, style="none")
    cmds.separator(height=10, style="none")

    cmds.button(label="Apply", command=superExtrude(extrScaleVal, extrDistVal))
    cmds.showWindow()

extrWindow()

Ich bin Recht neu in python und maya scripting, so dass jede Hilfe wäre sehr geschätzt werden. 🙂

  • Einige Hintergrundinformationen über die verschiedenen Möglichkeiten zum aufrufen von Funktionen von UI-Objekte hier
InformationsquelleAutor St4rb0y | 2014-07-07
Schreibe einen Kommentar