Learning to customize NX
Learning to customize NX
(OP)
Hi everyone!
I have been working with NX for a couple of years now. I have an idea that can be made use of by customizing NX. I have never customized an application before and I have no knowledge on NX Open (I am assuming it is with NX Open that we customize) but I do have an experience in programming using basic C++ and basic JAVA. I would like to learn to customize NX so I can get my idea noticed by my team. Where must I begin? Are there any tutorials available I can make use of to learn NX Open?
Thanks in advance for all the answers.
I have been working with NX for a couple of years now. I have an idea that can be made use of by customizing NX. I have never customized an application before and I have no knowledge on NX Open (I am assuming it is with NX Open that we customize) but I do have an experience in programming using basic C++ and basic JAVA. I would like to learn to customize NX so I can get my idea noticed by my team. Where must I begin? Are there any tutorials available I can make use of to learn NX Open?
Thanks in advance for all the answers.





RE: Learning to customize NX
If you do a search in this forum you will find things on it.
RE: Learning to customize NX
RE: Learning to customize NX
vktsn0303
RE: Learning to customize NX
RE: Learning to customize NX
As mentioned before http://www.nxjournaling.com/ is a good place to start. It is where I started looking at code along with this forum and other sources.
RE: Learning to customize NX
SNAP isn't a language (like GRIP), it's just a library of functions (like NX/Open). You can call SNAP and NX/Open functions from any .NET language you choose, including VB, C#, F#, and umpteen others. So, it's not a matter of choosing between VB and SNAP. VB and SNAP work together -- you write VB code that calls SNAP functions.
> many more examples of journals/programs written in VB than Snap.
There are lots of examples of journals written in VB. Many of these call only NX/Open functions, many call only SNAP functions, and some call a mixture. It may be true that there are more VB programs calling NX/Open fnctions than calling SNAP functions, just because SNAP is much newer. However, the SNAP Reference Guide has over 400 examples, which might be enough.
So, in summary, the process is:
(1) Choose a language. I would recommend either VB or C#.
(2) Choose a library -- either NX/Open alone, or SNAP alone, or a mixture.
RE: Learning to customize NX
But then I also noticed that using JAVA to customize NX leads to longer programs. This again leads me to a dilemma. Please help.
vktsn0303
RE: Learning to customize NX
So, you'll find it much easier to get help if you use VB.
The only reason I'd recommend Java is if you are using multiple platforms (both Windows and Linux, for example). Java is a very popular language in the world at large, but VB and C# are pretty popular, too. All three are solid mainstream languages.
For me personally, Java is a non-starter, because it doesn't allow operator overloading, so I can't write vector stuff the way I want to. The only platform I use is Windows, and I use SNAP functions whenever I can. So I use either VB or C# for all my work.
Anyway, the complexity lies in the NX API (NX/Open), not in the programming language. So, once you learn how to write NX customizations in one language, switching to a different one is pretty easy. The SNAP Getting Started Guide tells you what you need to know about VB in 14 pages. That's a couple of hours of reading, at the most. So, my advice is to stop agonizing about languages, and just get started. Just work through the tutorial in the SNAP Getting Started Guide. You can do this by using MiniSNAP if you don't have a SNAP license. Then switch to Java if you still want to.
RE: Learning to customize NX
Can you elaborate "Java doesn't operator overloading, so I can't write vector stuff the way I want to" ? I'd be interested in seeing some of your code snippets if you are willing to post. I am always open to different construction methods for writing code.
Thanks.