SIEMENS Simcenter / NX Powerful Software Platform and the NX Open APIs architecture: Building a fast and robust custom-build software solution for Cathodic Protection, developed by FEAC Engineering.
FEAC’s extensive expertise in cathodic protection enables itself to determine which activities are suitable for implementing the method, taking into account the all the specific materials, environmental conditions, and structural design considerations. Siemens Digital Industries Software has chosen SC3D PITHIA-CP as its preferred add-on due to its ability to provide realistic virtual models of Cathodic Protection systems, accurately predicting current and potential distribution within structures. Additionally, this partnership allows for data exchange between SC3D PITHIA-CP and other Simcenter solvers, such as the Simcenter NASTRAN software solvers, enabling the solution of advanced simulation problems. The technical challenges that we are addressing demand a level of intricacy and automation that surpasses the built-in features of conventional tools, necessitating the application of NX Open.
- FEAC – Engineering developed PITHIA – CP custom-build software solution using the SIEMENS Simcenter / NX Powerful Software Platform and the NX Open APIs architecture…
NX is a sophisticated software that offers next-generation design and manufacturing solutions using the digital twin. It provides a flexible and robust platform for delivering better products in a shorter timeframe. In addition to the core features of NX, the software also includes NX Open, a collection of Application Programming Interface (API) toolkits, available for NX and other Siemens PLM Software products, that allow for the flexible integration of custom software solutions with NX through an open architecture.
Figure 1: Simulation Software development cycle: (1) Edit Source Code, (2) Compile Source into Objects, (3) Link Objects into an Executable, (4) Run the executable for testing purposes and (5) Release the application to the user base.
NX Open is a set of procedural APIs that work directly with the NX Object Model, and it supports a specific programming language. The Common API, which is relatively new, shares a common object model and has the same set of objects, object properties, and methods across all languages. The article also discusses the advantages of using the Common API and it introduces journaling as a tool that can be used to produce automation solutions or to generate code for larger applications.
- The purpose of NX Open
The primary purpose of NX Open is to automate complex and repetitive tasks, as well as enable the integration of diverse applications, both third-party and NX applications. This integration allows for data sharing on different computer platforms, from different locations, and even across the internet. The NX Open APIs provide an open architecture that can be utilized by third-party developers, customers, and in-house users for creating and integrating custom software solutions.
The NX Open APIs offer a range of functions and tools that enable users to access the NX Object Model, create and edit objects in the model, and create and manipulate User Defined Objects (UDOs). Additionally, users can manage associations between UDOs and other NX objects, configure NX as a service, and customize the NX interface to tailor the NX environment to best meet their specific workflow needs. Finally, users can create integrated custom menus with third-party developers for their applications and take advantage of related product APIs such as Teamcenter Engineering ITK and Parasolid.
Figure 2: How NX Open Application Programming Interfaces (APIs) provide unrestricted entry to the comprehensive suite of features within the NX/Simcenter software, as well as to the underlying NX Objects Model.
Siemens PLM Software offers various software toolkits for NX and other products, with each toolkit serving a specific purpose. NX Open provides procedural APIs for direct interaction with the NX Object Model, with each API supporting a particular programming language. The Common API is a relatively new set of languages that share a unified object model, while the legacy or Classic APIs comprise three other APIs that have been available for many years. This guide focuses on the Common API, while the Classic APIs have their own reference manuals.
The NX architecture exposes new features and functions to a common object model, allowing the automatic generation of multiple language bindings. The Common API’s object properties and methods are the same for all languages, with a uniform class hierarchy. This uniformity offers several advantages over the architecture of the Classic APIs, such as all Common API languages having the same capabilities, the availability of new features and functions as soon as they are introduced into NX, and access to the same object model as NX developers. The Common API offers language bindings for .NET(C#, VB.NET), Java, C++, and Python, each providing unique benefits.
Figure 3: NX Open structure
The Common API is a shared object model used by various languages that automatically generates language bindings, allowing all Common API languages to have the same set of objects, object properties, and methods, as well as the same class hierarchy, giving developers the freedom to choose an implementation language that suits their specific needs without having to worry about missing functionality, making it possible to have access to the same object model used by NX developers, and reducing delays in automation by making new features and functions available for automation when they are introduced into NX; compared to the Classic APIs, this architecture provides many benefits, including equal NX capabilities for all Common API languages, while new features and functions are available for automation immediately after being introduced into NX.
Journaling, while not a toolkit, allows the recording, editing, and replaying of interactive NX sessions. Built from the Common API, the journal utility produces a scripted file that can be edited and enhanced with programming constructs and user interface components to generate customized programs. Although journal replay is limited to C#, Python, and Visual Basic .NET, the user can choose to record in any of the Common API languages, and this technique can be used to generate example code for use in larger applications.