Kontakte
Kontaktieren Sie uns
Schließen Sie

Kontakte

Rumänien, Cluj-Napoca – 400157
Str. Ploiești Nr. 9

Rumänien, Vama - 447350
Str. Fermei Nr. 14

+40 774 463 429

info@inteliscience.net

Rufen Sie uns an: +40 774 463 429

NXOpen Python Setup: Ein funktionierendes Journal

NXOpen Python Setup: Die Kurzfassung

NXOpen Python Setup bedeutet, dass NX den eigenen Interpreter lädt, nicht das Python auf Ihrem PATH. Setzen Sie die Journal-Sprache auf Python, legen Sie Journals in einem Ordner ab, den Ihr Team besitzt, legen Sie Designcenter 2606 fest und spielen Sie ein kurzes Journal über Tools > Automation > Journal. inteliScience macht das täglich für DACH-Sitze aus Rumänien (EET ist CET+1).


Das Problem: NX nutzt nicht das Python auf dem PATH

NXOpen Python Setup scheitert, wenn jemand eine .py Datei schreibt, im Editor auf Run klickt und NXOpen fehlt. NX hat das nie versprochen. Journals laufen im NX-Prozess. Der Interpreter ist der, mit dem NX gestartet wurde, die Sprache ist ein Customer Default, und die Datei liegt dort, wo NX zuletzt aufgezeichnet hat, sofern Sie nicht absichtlich ein Verzeichnis setzen.

Dieselben drei Fehlgriffe sehen wir auf DACH-Sitzen. Die Journal-Sprache ist noch Visual Basic aus der letzten Sitzung. Der Ingenieur hat Pakete per pip in ein venv installiert, das NX nicht sieht. Die .py liegt auf einem Desktop, den kein Kollege und kein CAD-Admin je finden wird.

Die Sprachwahl ist ein anderer Artikel. Für Python versus C# auf NX Open nutzen Sie den Sprachvergleich, den wir bereits veröffentlicht haben. Dieser Beitrag ist der Python-Sitz, der tatsächlich spielt.

Unsere Empfehlung: behandeln Sie das erste erfolgreiche Play als Setup-Test, nicht als Werkzeug. Läuft es nur auf einer Workstation, haben Sie einen Nachweis, keinen Prozess.

Legen Sie Designcenter 2606 fest, bevor Sie eine Zeile schreiben

Legen Sie zuerst die NX-Release fest. Ein Journal, das auf 2412 läuft, kann auf 2606 scheitern, aus Gründen, die mit der Python-Syntax nichts zu tun haben. inteliScience schreibt NX Open gegen die Version, die der Betrieb tatsächlich fährt, und hält diese Version im Repo neben den .py Dateien.

Siemens hat Designcenter June 2026 zum Download bereitgestellt am 23. Juni 2026 (Jamie Tyler, Designcenter-Blog). Dieses Release ist NX 2606. Wir legen Kundenarbeit auf 2606 fest, außer das Werk steht noch auf 2506 oder 2512 und kann noch nicht wechseln.

Am 16. Juli 2026 hat die Siemens Community Community Conversations: NXOpen-Best Practices und Bibliotheken. Nutzen Sie diese Session für Bibliotheken und Gewohnheiten. Kopieren Sie keine versionsgebundenen Snippets aus einem älteren Video in einen 2606-Sitz.

Wir raten davon ab, Journals für 2412, 2506 und 2606 in einem unbeschrifteten Ordner zu mischen. Zeichnen Sie Help > About von der Maschine auf, die das Journal abspielen wird, und legen Sie diesen String in den Commit. Wenn About und der Werksstandard nicht übereinstimmen, halten Sie an und entscheiden Sie sich für eines.

Journal-Sprache und das NX-Journal-Verzeichnis

Das NX-Journal-Verzeichnis ist kein versteckter Windows-Trick. Es ist der Ordner, den NX beim Record oder Play verwendet. Stellen Sie die Sprache auf Python und legen Sie diesen Ordner an einen Ort, den der CAD-Administrator verwaltet. User-Interface-Preferences werden pro Benutzer gespeichert. Customer Defaults legen die Basis für jeden Arbeitsplatz fest.

Machen Sie das in dieser Reihenfolge:

  1. File > Preferences > User Interface, Journal language: Python (Ihre Benutzereinstellung; sie überschreibt den Standard).
  2. File > Utilities > Customer Defaults > Gateway > User Interface > Registerkarte Journal, dieselbe Sprache (überlebt den Neustart).
  3. Setzen Sie unter Customer Defaults > Gateway > General > Directories das Journal Directory auf einen freigegebenen Ordner, den Ihr CAD-Administrator kontrolliert. Belassen Sie es nicht auf einem persönlichen Desktop.
  4. Persistenz prüfen: NX beenden, NX starten, Customer Defaults erneut öffnen. Springt die Sprache zurück, sind die Site Defaults gesperrt. Sprechen Sie mit dem CAD-Admin, kämpfen Sie nicht gegen den Dialog.
  5. Ordner bestätigen: Zeichnen Sie ein Dummy-Journal auf und schauen Sie, wohin NX die Datei geschrieben hat. Das ist das Verzeichnis, das NX nutzt, kein Pfad, der aus einem Blog kopiert wurde.

Siemens dokumentiert Aufzeichnung und Wiedergabe unter Aufzeichnen von NX-Sitzungen. Play liegt unter Menu > Tools > Automation > Journal > Play. Manche Ribbons zeigen Play auch auf der Registerkarte Developer.

Einstellung Lebt in Überlebt NX-Neustart
Journal-Sprache (diese Sitzung)File > Preferences > User InterfaceJa, pro Benutzer (überschreibt den Standard)
Journal-Sprache (Site- oder Benutzervorgabe)Customer Defaults > Gateway > User Interface > JournalJa, wenn Ihre Ebene Defaults schreiben darf
Journal-VerzeichnisCustomer Defaults > Gateway > General > Directories, dann per Aufzeichnung überprüfenJa, sobald Defaults gespeichert sind

Wenn Sie die Defaults-Datei brauchen, die NX geladen hat, öffnen Sie Help > Log File und suchen Sie nach dpv. Lesen Sie den Pfad, den NX ausgibt. Wir veröffentlichen keinen geratenen AppData-Pfad, weil Installationen und Site-Policies sich unterscheiden.

Klare Empfehlung: ein gemeinsames Journal-Verzeichnis pro NX-Version, benannt nach dem Release (zum Beispiel journals-2606), mit Schreibzugriff für Autoren und Lesezugriff für Tester. Zwei Ordner für zwei Versionen. Nie ein Haufen.

Bestätigen Sie, welchen Python-Interpreter NX lädt

Geben Sie sys.version und sys.executable aus einem Journal, das in NX per Play gelaufen ist. Das ist der Interpreter, den NX geladen hat. Stimmen diese Zeilen nicht mit dem Python überein, das Sie in VS Code nutzen, verwendet NX nicht Ihr venv, und pip install auf dem PATH hilft nicht.

# Play from Tools > Automation > Journal. Do not run this in VS Code.
import sys
import NXOpen

def main():
    session = NXOpen.Session.GetSession()
    lw = session.ListingWindow
    lw.Open()
    lw.WriteLine("sys.version: " + sys.version)
    lw.WriteLine("sys.executable: " + sys.executable)
    lw.WriteLine("sys.prefix: " + sys.prefix)
    lw.WriteLine("NXOpen loaded from: " + getattr(NXOpen, "__file__", "(builtin)"))

if __name__ == "__main__":
    main()

Kopieren Sie diese Listing-Fenster-Zeilen ins Ticket. Das ist Ihr Pin. Eine externe Distribution ist optional. Wenn Sie ein Paket brauchen, das NX nicht mitliefert, dokumentiert Siemens UGII_PYTHON_LIBRARY_DIR, UGII_PYTHONPATH, und UGII_PYTHON_DLL (NX Open Programmer’s Guide, “Use external Python distribution”). Stimmen Sie die Minor Version ab, die NX ausgegeben hat. Eine 3.13-Installation neben einem 3.12-NX-Interpreter ist ein häufiger “cannot initialize Python interpreter”-Fehler.

Überlassen Sie ugii_env.dat Änderungen dem CAD-Admin. Die Installationswurzel ist UGII_BASE_DIR auf dieser Maschine. Ein geratener C:\... Pfad führt dazu, dass Journals mit einem Ort committed werden, der nur auf einem Laptop existiert.

Stubs sind eine separate Installer-Option. Seit NX 2312 werden Python-Stubs mitgeliefert, wenn Programming Tools ausgewählt ist. Richten Sie den Editor auf UGII_BASE_DIR\UGOPEN\pythonStubs. Das ist nur IntelliSense. Journals spielen weiterhin in NX. Der öffentliche NX Open Python-Referenzhandbuch indexiert derzeit als NX 2406 Series. Prüfen Sie Klassennamen gegen die Hilfe, die mit 2606 geliefert wurde.

Das erste NX-Open-Python-Journal, das läuft

Ein funktionierendes erstes Journal importiert NXOpen und NXOpen.UF, holt die Session so, wie eine Aufzeichnung es tut, schreibt eine Zeile ins Listing-Fenster und wird aus NX per Play gestartet. Wenn diese Datei scheitert, beheben Sie das Setup. Setzen Sie keine Geometry Builder auf einen defekten Interpreter.

# Minimal NX Open Python journal (recorded-journal import shape).
# Play: Tools > Automation > Journal > Play
import NXOpen
import NXOpen.UF

def main():
    theSession = NXOpen.Session.GetSession()
    theUfSession = NXOpen.UF.UFSession.GetUFSession()
    workPart = theSession.Parts.Work
    displayPart = theSession.Parts.Display
    lw = theSession.ListingWindow
    lw.Open()
    lw.WriteLine("NXOpen Python setup: journal ran inside NX.")
    if workPart is not None:
        lw.WriteLine("Work part: " + workPart.Name)
    else:
        lw.WriteLine("No work part. Open a part, then Play again.")
    _ = theUfSession
    _ = displayPart

if __name__ == "__main__":
    main()

Speichern Sie es in dem Journal-Verzeichnis, das Sie gesetzt haben. Öffnen Sie ein Part. Play. Sie wollen zwei Listing-Fenster-Zeilen und keinen Interpreter-Dialog. theUfSession wird so geholt, wie eine Python-Aufzeichnung ihn schreibt, auch wenn diese Datei UF nie aufruft.

Wenn Play sagt, NXOpen könne nicht importiert werden, haben Sie die Datei außerhalb von NX ausgeführt. Wenn Python nicht initialisieren kann, stimmen die Variablen für den externen Interpreter oder die Minor-Version nicht. Wenn die Sprache falsch ist, steht die Registerkarte Journal noch auf Visual Basic.

Das läuft als POC. Was für die Produktion fehlt: ein gemeinsames Journal-Verzeichnis, das der CAD-Admin besitzt, ein NX-2606-Pin, den jeder Sitz trifft, Menüs, damit niemand den Journal Editor öffnet, Teamcenter-fähige Fehler und einen Eigentümer, nachdem der Autor das Team wechselt. Wir schließen die Lücke von einem Journal, das auf einem Sitz spielt, zu einem Werkzeug, das die Abteilung ausführen kann. So liefern wir produktive NXOpen-Werkzeuge

Häufig gestellte Fragen

Was kostet das NXOpen-Python-Setup?

Der mitgelieferte Interpreter liegt bereits auf dem NX-Sitz, die Setup-Kosten sind also Ingenieurzeit, kein Python-SKU. Planen Sie einen halben Tag, um die Version festzulegen, Customer Defaults zu setzen, Play nachzuweisen und die Listing-Fenster-Prüfung ins Team-Wiki zu schreiben. Ein Python-Toolkit auf andere Sitze auszurollen ist eine Lizenzfrage (NX Open Python Author / Toolkits), die wir erst anbieten, nachdem wir die Sitze gesehen haben. Kalkulieren Sie keinen Compiler für ein Journal.

NX-mitgeliefertes Python vs. ein externer Interpreter: welchen sollen wir nutzen?

Nutzen Sie den mitgelieferten Interpreter, bis ein Paket, das NX nicht mitliefert, eine echte Anforderung ist. Dann richten Sie NX auf eine externe Distribution, deren Minor-Version mit sys.version aus dem Journal oben übereinstimmt, über die Variablen im Programmer’s Guide, nicht über eine beliebige Installation von python.org. Wir raten davon ab, jeden Entwickler NX auf ein persönliches venv zeigen zu lassen.

Wo liegt das NX-Journal-Verzeichnis?

Es ist das Journal Directory im Directories-Tab der Customer Defaults (Gateway > General), überprüft, indem Sie eine Testdatei aufzeichnen und nachsehen, wohin NX sie geschrieben hat. Die User Interface Preferences können den Standard überschreiben. Wenn Sie die Defaults-Datei selbst benötigen: Help > Log File, suchen Sie nach dpv, und lesen Sie den Pfad, den NX geladen hat.

Warum unterstreicht Visual Studio Code NXOpen?

Weil der Editor nicht NX ist. Fügen Sie UGII_BASE_DIR\UGOPEN\pythonStubs zu den Extra Paths des Editors hinzu, nachdem Programming Tools installiert ist (Stubs werden ab NX 2312 mitgeliefert). Wenn die Unterstreichungen verschwinden, heißt das nicht, dass Sie die Datei aus dem Editor heraus mit Run starten können. Play bleibt in NX.

Brauchen wir Programming Tools, um ein Python-Journal auszuführen?

Nein. Journals spielen mit einer normalen NX-Installation. Programming Tools fügt UGOPEN-Beispiele und pythonStubs für den Editor hinzu. Fehlen diese Ordner, führen Sie den Installer erneut mit aktiviertem Programming Tools aus. Fehlende Stubs sind ein Editor-Problem. Ein fehlender Interpreter ist ein NX-Konfigurationsproblem.

Nächster Schritt

Wenn das Listing-Fenster sys.version ausgegeben hat und das minimale Journal das Work Part genannt hat, ist das Setup fertig. Das nächste Gespräch ist, wie diese Datei zu einem Befehl wird, den andere Ingenieure 2027 noch ausführen, auf den NX-Versionen, die Sie tatsächlich haben, mit einem Eigentümer. inteliScience macht das als NX-Open-Lieferung aus Rumänien für DACH-Teams.

Strategiegespräch zum NXOpen-Python-Setup buchen