Results
The following pages summarizes our PMI Finder program and explains the functions and features of our solution, and how it meets the needs of the user.
Final Solution
Solution Video
Solution Breakdown
Our solution is an API that can be called up when working in NX. It reads out all the PMIs which are attached to the part file and makes them thereby more visible
When calling up the API, the backend program retrieves the language from NX and starts the API in the same language. That means when you use NX in Spanish, the API also opens in Spanish language. If you still want to change the language of the API, you can do this manually. To do this, select the appropriate language from the drop-down menu at the top right.
If you now want to know which PMIs are attached to the part file, you push the button "Read all PMIs". Then the PMIs are read out and listed by the program with a recognizable name which is generated by the program.
When double-clicking, a new textbox appears with more information to the PMI.
The “Close” button enables as soon as all PMIs are ticked. That is because we want the CAM Programmer to confirm that he has considered all PMI before he is allowed to close the window.
To make more visible where the PMI is, we added a highlighting function. When clicking on an PMI in the API, the PMI is highlighted in the part file.
Solution Flowchart
The following flow chart provides an overview of how the "PMI Finder" program works
Future Directions
Future directions for this project would include the ability to save the status of data entered into our program by the user, in this case it would be the ticked boxes. The ideal outcome of this added feature would be that any changes to the ticked boxes in the program made by the user would be saved onto the native CAD file such that when the program is initiated after closing it would be able to recall the changed data and display it to the user. Due to limitations in our resources, we were unable to develop this feature for our final program, thus we created a framework for integrating this feature into the program.
The integration of CAM operations into our program would further enhance the impact of our solution by further assisting the CAM programmer by highlighting CAM operations or automating data communication into the manufacturing methods and tools. As we had limited access to NX CAM functions and NX Open resources, we were unable to develop a solution to integrate CAM operations into our program, thus we have developed a framework for this feature.
Further improvements for our solution would involve more accessibility such as more languages and disability access for our program. Integration of TeamCenter into our program would further add ease of use to our program.
Information Sources
We used four sources for the project:
NXOpen Libraries
Backend SC includes all NX libraries and in the libraries are all the usable commands.
Projektmappen-Explorer → Backend SC → Verweise → NX OPEN→ Among the libraries, you can find the commands that you can use
Siemens Forum
We have used the forum to ask very specific questions about NXOpen and APIs. You usually get an answer within a few days and it has often helped us a lot.
NXOpen .NET Reference Guide
This is a list of all the NXOpen methods with an explanation and we used it to find the right methods for our program. It worked quite well with ChatGPT, but unfortunately it is no longer available without registration.
Academic Papers
Through researching the topic of MBDs, PMI management and PLM softwares, we were able to get better understanding of the context of the project as well as the current methods used in the industry. We found this article on the current state of MBD particularly helpful.
Way of Working
Our working method was somewhat complicated by the fact that Visual Studio and NX were not accessible at the same time. We downloaded Visual Studio Community on our laptops and set up the HTW Horizon Client. We then always edited the code on our laptops in Visual Studio. This then had to be executed once so that the dll.-files would change and this was then saved. Then the entire folder had to be copied to the HTW Horizon Client (this can take a few minutes). Then we opened the part file in NX and were able to check whether the code executed what we had programmed.