People on this forum often ask how to get started with NX programming/journaling, and where to find documentation and other help. This post is an attempt to gather all the relevant advice in one place, so that people (like me) don't have to keep writing bits and pieces of it over and over again. I expect others will have good suggestions, too. Please feel free to embellish.
First, a definition ... an API (Application Programming Interface) is a collection of software functions that your code can call to do useful things. Nowadays, there are two main NX APIs that are widely used: NX/Open, and SNAP. NX/Open is very broad and powerful -- it provides functions to do basically everything that interactive NX can do. The SNAP API is much more limited, and better documented, so it's easier to grasp. Learning SNAP can sometimes serve as a useful step towards learning NX/Open.
You write code in some computer language to call the functions in the NX APIs. Several languages are supported, including C/C++, Java, Python, or any .NET language, such as Visual Basic (VB), C#, and others. The NX/Open APIs for these different languages are all essentially equivalent, so you can choose whichever one you want. The SNAP API is accessible only though .NET languages. Also, note that .NET technology is built in on Windows systems, but some extra effort is required to get it to work on Mac or Linux.
You should probably begin the learning process by working through the tutorials in one of the "Getting Started" guides. The NX12 versions are available here:
These both focus on the VB language, but applying what you learn to other languages is typically straightforward.
Another good way to learn is by "journaling". A journal is a recording (expressed in any supported programming language you choose) of a series of actions that you perform interactively in NX. You can then modify the journal code to suit your needs. For more details, look up "journaling" in the Getting Started with NX/Open guide.
Once you gain some proficiency, you will want to know all the details of all the available API functions. These are documented in various references guides. The NX12 ones are available here:
If you like to learn from examples, there are many available:
If you’ve read everything, and you’re still stuck, you can contact Siemens GTAC support, or try NXJournaling.com, or the NX forum at eng-tips.com. Or, of course, you can always ask right here on this forum.