Übertragen Sie Parameterwerte in Python

Houdini verfügt über eine Funktion, die Python-Skripte automatisch ausführt, wenn Parameter auf einem Knoten aktualisiert werden. Wenn Sie Python im Callback-Skript in der Edit Parameter Interface schreiben, wird dieser Python ausgeführt, wenn sich der Wert ändert. bandicam 2019-11-16 21-57-31-466.jpg

Methode

Da in der Spalte Callback Script nur eine Zeile Platz zum Schreiben vorhanden ist, definieren Sie eine Funktion, die irgendwo ausgeführt werden soll, und rufen Sie sie auf.

Die einfachste Art zu definieren ist im Menü Windows> Öffnen Sie den Python Source Editor und schreiben Sie die Funktionsdefinition hinein bandicam 2019-11-20 10-51-42-016.jpg bandicam 2019-11-16 22-06-49-389.jpg

Wenn Sie hier eine Funktion schreiben, können Sie über hou.session darauf zugreifen

Zum Beispiel

def func():
    pass

Bei der Funktionsdefinition können Sie diese mit hou.session.func () aufrufen

Ich werde tatsächlich schreiben Das Folgende ist ein Beispiel

#Kopieren Sie durch Angabe von Parametern
def Send(from_path, to_path, params):
    from_path = hou.nodes(from_path.split())
    to_path = hou.nodes(to_path.split())
    params = params.split()
    for f, t in zip(from_path,to_path):
        for p in params:
            t.parm(p).set(f.evalParm(p))

bandicam 2019-11-16 22-32-19-427.jpg Es ist ein Code, der den Kopierquellpfad und den Kopierzielpfad als Zeichenfolge (Zeichenfolge) empfängt und während der Schleife mit for kopiert

Verwenden Sie die in hou enthaltenen Klassen und Funktionen, um Houdini mit Python zu betreiben. ↓ wird hilfreich sein hou package https://www.sidefx.com/docs/houdini/hom/hou/index.html

Was ist beim Betrieb eines Knotens zu verwenden? ↓ hou.node HOM function hou.nodes HOM function hou.Node class

Was ist beim Bearbeiten von Parametern zu verwenden? ↓ hou.parm HOM function hou.Parm class

Wenn Sie beispielsweise "a = hou.node ('../ null')" schreiben, können Sie dieses "a" verwenden, um den Knoten von "../ null" zu betreiben. Da eine Klasse, die den Typ "hou.Node" erbt, "a" zugewiesen ist, wird dies mit hou.Node-Klasse verwendet. (houdini / hom / hou / Node.html) ist gut. Es gibt verschiedene Funktionen in der Klasse.

Wenn Sie beim Bearbeiten von Parametern b = a.parm ('tx') schreiben, ist die Klasse, die b zugewiesen ist, eine Klasse vom Typ hou.Parm, und Sie können Parameter mit b → bearbeiten hou.Parm-Klasse

In der hou.Parm-Klasse häufig verwendete Funktionen sind wahrscheinlich "set" und "eval" Durch Schreiben von b.set (888) wird tx auf 888 aktualisiert Sie können "c" mit "c = b.eval ()" einen Wert wie "888" zuweisen

Übrigens ist die Verwendung von "a" und "b" überflüssig. Wenn Sie also "hou.node (" ../ null "). Parm (" tx ") .set (888)" schreiben, ist dies ein Schuss.

Kopieren Sie von null1 nach null2

Erstellen Sie null1- und null2-Knoten und kopieren Sie die Werte

Schreiben Sie im Rückrufskript null1 Folgendes, um die Funktion aufzurufen bandicam 2019-11-16 22-53-26-969.jpg hou.session.Send('.','../null2','t2x t2y t2z')

'.' Ist eine Zeichenfolge, die den aufrufenden Knoten darstellt (in diesem Fall null1). t2x`` t2y`` t2z ist der Name des Parameters

Wenn ich 0,3 in t2x von null1 setze, ändert sich t2x von null2 ebenfalls in 0,3 bandicam 2019-11-16 21-44-42-466.jpg

Ausführen, wenn die Taste gedrückt wird

Im obigen Beispiel wurde die Funktion sofort durch Ändern von "t2x" ausgeführt. Sie können jedoch auch eine Schaltfläche erstellen und den Wert kopieren, wenn der Benutzer die Schaltfläche drückt.

bandicam 2019-11-20 10-59-43-402.jpg

Schreiben Sie in diesem Fall das Skript, das Sie ausführen möchten, wenn die Schaltfläche im Rückrufskript der Schaltfläche gedrückt wird. bandicam 2019-11-20 11-03-15-849.jpg

Recommended Posts

Übertragen Sie Parameterwerte in Python
Werte in Python austauschen
Verwenden Sie den Parameterspeicher in Python
Optimierung der FX-Systolenparameter in Python
Implementierung der HMM-Parameterschätzung in Python
Quadtree in Python --2
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Python: Tips-Swap-Werte
Metaanalyse in Python
Unittest in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken
Füllen Sie dynamische Variablenwerte in Python mit 0
Sortierte Liste in Python
Clustertext in Python
AtCoder # 2 jeden Tag mit Python
Täglicher AtCoder # 6 in Python
Täglicher AtCoder # 18 in Python
Bearbeiten Sie Schriftarten in Python
Singleton-Muster in Python
Dateioperationen in Python
Lesen Sie DXF mit Python
Täglicher AtCoder # 53 in Python
Tastenanschlag in Python
Verwenden Sie config.ini mit Python
Täglicher AtCoder # 33 in Python