Siemens NX Anwendungserweiterungen mit der NX Open-Schnittstelle

Sie möchten mehr zu diesem Thema erfahren?

Vereinbaren Sie einen kostenfreien Beratungstermin mit uns. 
Hinweis zum Datenschutz

Siemens NX Anwendungserweiterungen mit der NX Open-Schnittstelle

Siemens NX: kleine Helfer, große Wirkung

Die Nutzung bestehender Standardsysteme im Unternehmen erzeugt, neben den unbestrittenen Vorzügen des Einsatzes weitverbreiteter Software, eine Limitierung der eigenen Prozesse auf durch die Software zur Verfügung gestellte Möglichkeiten. Dies gilt nicht nur für Office-Anwendungen, Browser oder ERP-Systeme, sondern erstreckt sich selbstverständlich auch in den Bereich der CAx- und PLM-Software.

Die genannten Einschränkungen können hier einen unerwünschten Mehraufwand, zum Beispiel durch viele Clicks und lange Wege, verursachen oder gewünschte Vorgänge schlicht verhindern. 

Die bedeutenden Hersteller weit verbreiteter Anwendungen sind sich dieses Umstandes durchaus bewusst und bieten daher häufig Programmierschnittstellen zur Erweiterung an.

In den Bereichen Entwurf, Konstruktion und Manufacturing setzen viele Unternehmen auf leistungsstarke CAx-Systeme für Ihre individuellen Prozesse. Führende Systeme wie CATIA V5, SolidEdge oder Inventor bieten Schnittstellen zur Erweiterung des Funktionsumfanges an. Eine solche wird auch für die CAx-Anwendung Siemens NX angeboten und umfangreich genutzt.  

Die sogenannte NXOpen-Schnittstelle bietet die Möglichkeit, eigene Anwendungserweiterungen für NX in verschiedenen Programmiersprachen anzufertigen und zu verwenden.

Die Grundlage der Schnittstelle bildet eine objektorientierte Klassenstruktur, die dem Anwender alle benötigten Klassen und Strukturen mit ihren Funktionen zur Verfügung stellt. Diese Klassenstruktur ist in den Programmiersprachen C/C++, Java und als Wrapper aus der C/C++ Struktur auch für die .Net- Sprachen C# und VB.net verfügbar. SWMS nutzt die modernen Sprachvarianten C# und VB.net zur Erweiterung von Siemens NX.

Singletons als Einstieg und formale Konventionen

Der einfachste Einstieg in die NXOpen-Programmierung kann über das Aufzeichnen und Auswerten von Journalen erfolgen. Diese können in der gewünschten Sprache im entsprechenden Menü aufgezeichnet werden und dienen anschließend als Vorlage für die eigene Entwicklung.


Siemens NX Open Singletons

Abbildung 1: Siemens NX Open Singletons


Journale folgen dabei - genau wie es eigene Anwendungen tun sollten - einem festgelegten Schema. Dieses gibt zum Beispiel die wichtigen Funktionsnamen vor, die anschließend von NX als Einsprünge in eine eigene Anwendung genutzt werden. Bestes Beispiel hierfür ist die Funktion Main, welche in den meisten Fällen den Haupteinsprung bildet. In dieser Funktion werden in aufgezeichneten Journalen in der Regel die ersten Anknüpfungspunkte zur laufenden NX-Sitzung gesetzt. Die wichtigste Verbindung stellt die Session - also die aktuelle Sitzung - dar. Die Zuweisung erfolgt hier mittels eines relativ selten genutzten Singletons, hier „GetSession“. Ausgehend von diesem Session-Objekt können alle Datentypen, der innerhalb der Sitzung geladenen Teile etc., verwendet werden. Durch die Singleton-Implementierung steht es dem Entwickler frei, diesen Aufruf mehrfach in der Anwendung zu nutzen, es wird immer dasselbe Objekt zurückgegeben.

Grenzen der Objektorientierung bei aufgezeichneten Journalen

Aufgezeichnete Journale sind ein wichtiger Ausgangspunkt für die eigene Entwicklung. Sie dienen dazu, einen Einblick in die Vorgänge innerhalb von Siemens NX zu erhalten und die passende Verwendung, der zur Verfügung stehenden Objekte und Funktionen, zu erfassen. Dieses wertvolle Werkzeug hat jedoch auch seine Grenzen. Diese bestehen insbesondere im Bereich der Benutzerinteraktion. Wird eine Funktion aufgezeichnet, bei der der Benutzer eine manuelle Eingabe - in unserem Beispiel die Kantenlänge eines Quaders - vornehmen muss, so wird dies im aufgezeichneten Code nur intransparent erfasst. Im gezeigten Beispiel sieht man im Falle der Kantenlängen die Angabe der eingegebenen Zahlenwerte („100“), ohne dessen Herkunft zu kennen. Solche und ähnliche Fälle stellen naturgemäß eine kleine Herausforderung auf dem Weg von dem aufgezeichneten Journal zur eigenen Anwendung dar. Clever, durch eigene Eingabemöglichkeiten substituiert, kann jedoch aus einem derartigen Journal heraus schnell weiterentwickelt werden.


NXOpen Journal

Abbildung 2: NXOpen Journal


Auch die Ausgabe einfacher Informationen, wie z.B. die Anzahl von Bauteilen in der Baugruppe, Artikellisten, Gewichte, Maße und viele andere, ist ein beliebter und weit verbreiteter Anwendungsfall. Der Import und Export von Geometrien und Metadaten spielt ebenfalls eine wichtige Rolle in der Entwicklung von NXOpen-Erweiterungen.

Viele dieser Möglichkeiten sind sogar ohne eine kostspielige Zusatzlizenz automatisierbar. 

Durch die Verwendung von Journalen verliert man zwar etwas Komfort in der Entwicklung, spart jedoch eben auch Lizenzkosten gegenüber voll ausgebildeten Anwendungen, die mit einer speziellen Lizenz signiert werden müssen.

Ausgehend von Basisbeispielen, wie dem oben gezeigten, ist es möglich, beliebig komplexe Anwendungen zu entwickeln und im Alltag des product-designs einzusetzen. Dies beinhaltet die Möglichkeit zur Nutzung von individuell gestalteten Benutzeroberflächen unter Zuhilfenahme der gängigen Frameworks (Forms, WPF etc.) oder auch der Zusammenstellung einer NX-eigenen Oberfläche aus vorgefertigten Bausteinen im sogenannten Blockstyler, einer Zusatzanwendung in Siemens NX.


Beispieloberfläche mit Blockstyler

Abbildung 3: Magic NX Wizzard


Chancen der Entwicklung mit NXOpen

Die Schnittstelle NXOpen zwischen der CAx-Plattform NX und einer selbst erstellten Anwendung, bietet vielfältige Möglichkeiten zur Automatisierung des Gesamtsystems. Dies eröffnet Chancen zur Vereinfachung der eigenen Arbeit. Ein typisches Beispiel ist hier, häufig vorgenommene Anwendungsfälle, wie z.B. den Export in ein Austauschformat, so zu automatisieren, dass anstelle vieler Klicks im entsprechenden NX-Wizzard der Export mit den gewünschten Einstellungen auf einen Klick erfolgt.

Fazit

Auch wenn viele es zunächst nicht glauben: Solche kleinen Hilfen sparen viel Zeit und schonen die Nerven des Anwenders. 

Sie bilden überdies einen guten Einstieg in eine individuell angepasste Umgebung. Konstruktionsassistenten, intelligente Bauteilanpassungen, sowie spezifische Prüfungen sind weitere Möglichkeiten, das System effizienter zu nutzen und zeitraubende Routinearbeiten zu reduzieren. Den Einstig zu finden, fällt manchem zunächst schwer, ist jedoch einmal ein gutes Grundgerüst entstanden, fällt die Fortsetzung der Arbeit zunehmend leichter. Einfach umzusetzende kleine Helferlein überzeugen zudem auch manchen Vorgesetzten, Zeiten und Kapazitäten für entsprechende Tätigkeiten bereitzustellen.

7 Kommentare

  • Hallo zusammen, ich arbeite gerade an einem ähnlichen Problem. In NX Post View können einige Funktionen nicht als Journal aufgezeichnet werden. Im manuellen Workflow würde ich in Post view über den" Identifier" die entsprechenden Knoten auswählen und die Knoten mit den entsprechenden Spannungsergebnisse exportieren. Die Spannungsergebnisse automatisiert zu exportieren wird daher zumindest meinem aktuellen Kenntnisstand nach nur mit einem selbst geschriebenen Code und nicht mit einem Journal möglich sein.
  • Hallo Daniel,
    ich weiß leider nicht genau, was Sie vorhaben; grundsätzlich ist es jedoch leider so, dass die NXOpen API nicht jede Funktion, die in einem Menü o.Ä. nutzbar ist auch 1:1 im Code abbildet. Manchmal muss man einzelne Schritte gehen, selten ist die Funktion schlicht nicht in der API implementiert. Das Aufzeichnen eines Journals kann hier allenfalls erste Anhaltspunkte geben, welche Klassen verwendbar sein könnten. Darauf aufbauend kann man dann ggf. weitere Schritte selbstständig gehen.
    beste Grüße!
  • Hallo Daniel
    Wenn Sie eine Lösung finden können, sagen Sie bitte mir Bescheid dann bin sehr dankbar. Weil mein Studium davon hängt und leider habe ich keiner.
    Viele Grüße
  • Hallo Herr Mahmood,
    leider besteht in NX nur die Möglichkeit, durch aufzeichnen von Journalen (Tools- Journals - Record) an Codebeispiele zu kommen; Stellen Sie dazu in den Voreinstellungen die gewünschte Programmiersprache ein. Weiterhin können Sie die Beispiele im UGOPEN-Ordner und in der NX-Hilfe nutzen.
    Viele Grüße
    Thomas Hauke
  • Hallo Herr Hauke,
    Vielen Dank für Ihre schnelle Rückmeldung.
    Haben Sie vielleicht Zeit einmal auf Zoom zusammen darüber zu sprechen? Ich kann besser auf Zoom zeigen was genau das Problem ist . Ich danke Ihnen im Voraus.
    Viele Grüße
  • Hallo ,
    Ich möchte nx open mit Python integrien damit die Spannungen an jede Knoten automatisch finden können. Wie kann die Code finden . Ich habe die nicht gefunden. Wenn Sie mir etwas Tipps geben, bin ich sehr dankbar.
    Mit freundlichen Grüßen

Was denkst du?