Here is a way to automatically execute a macro on NX startup :
Append -key:macroname.macro to your startup command. This might be ugii.bat, or the router itself.
Monday, February 18, 2008
Saturday, January 12, 2008
Rotate, zoom, pan with F keys

To have the same usability, set UGII_FKEY_DYNAMICS=1, and you'll have the F1, F2, F3, F4 keys working just like they did in I-DEAS: Zoom, rotate, pan, etc.
*: If you haven't used I-DEAS before and you like these, then all I can say is that you've gone to The Dark Side.
Software Field Bulletin (SFBMail)
Quoting from the SFBMail website, 'SFB is the vehicle to inform the customer of any technical tips, updates, workarounds, and vendor hardware and software release certifications. When SFBs are released, they will be mailed to this list first.'
Just navigate to http://support.ugs.com/mailman/listinfo/sfbmail and enter your mail address to receive the updates. It's helpful to see a notification that a patch you've been waiting for is out.
Just navigate to http://support.ugs.com/mailman/listinfo/sfbmail and enter your mail address to receive the updates. It's helpful to see a notification that a patch you've been waiting for is out.
NX5 on Ubuntu x64
Tuesday, January 8, 2008
Renaming components outside of NX
If for some reason I needed to rename one of my components in an assembly; here's how I did it so far :
Instead, there's a command line utility under UGII directory called ug_edit_part_names.exe, which changes the reference of the renamed part in the parent. The good thing is that you don't need to actually load the parts to save the changes.
Suppose the assembly structure is like this :
assy
..|---part1
..|---part2
..|---part3
.......|---part3a
.......|---part3b ---> part3_renamed
If you need to rename part3b into part3_renamed ; here's the syntax :
ug_edit_part_names part3.prt -o part3.prt -change_name part3b.prt part3_renamed.prt
I must note that this tool does not rename the file itself, it merely updates the referencing parent. So you need to rename the file yourself at the O/S level.
There are some more uses;
ug_edit_part_names assy.prt -o assy.prt -upper_name will make all the components uppercase. Try ug_edit_part_names -examples for a few more usage examples including querying / changing the last known whereabouts of a component.
This could be used along with ugpc to rename components in a batch process, in case the clone assembly's renaming features are not fit for your needs.
- Rename the part in windows
- Open the parent of this component
- Click OK for the warning saying that the component couldn't be found/loaded
- Open As.. or Substitute the component with the new one.
Instead, there's a command line utility under UGII directory called ug_edit_part_names.exe, which changes the reference of the renamed part in the parent. The good thing is that you don't need to actually load the parts to save the changes.
Suppose the assembly structure is like this :
assy
..|---part1
..|---part2
..|---part3
.......|---part3a
.......|---part3b ---> part3_renamed
If you need to rename part3b into part3_renamed ; here's the syntax :
ug_edit_part_names part3.prt -o part3.prt -change_name part3b.prt part3_renamed.prt
I must note that this tool does not rename the file itself, it merely updates the referencing parent. So you need to rename the file yourself at the O/S level.
There are some more uses;
ug_edit_part_names assy.prt -o assy.prt -upper_name will make all the components uppercase. Try ug_edit_part_names -examples for a few more usage examples including querying / changing the last known whereabouts of a component.
This could be used along with ugpc to rename components in a batch process, in case the clone assembly's renaming features are not fit for your needs.
Sunday, December 2, 2007
More realistic images with IBL

You need to define an image for this purpose, called an HDRI palette file. Actually NX comes with some HDRI images out of the box, but you can use other .hdr files if you like (here's a source)
Some may remember this technique from recent games, starting with Half-Life II. Adds an extra amount of time to your rendering process, but I guess you'll agree that it's worth the wait.
Here are a few sample .HDR files, mostly nature stuff, from the Lightworks* user community website: here, here and here.
*: NX uses the Lightworks engine for rendering functionality. They even have some tutorials for NX3 rendering. Although it's outdated, it should still be useful if you're a newbie.
Saturday, November 3, 2007
NX4 License server and Windows Vista

There hasn't been an official statement yet stating which NX version will fully support Vista, but nowadays I hear quite a few people complaining that they've just bought a laptop, and noticed that it is preconfigured with Vista instead of Windows XP. I'd run back to the computershop if I were you, but here's what you can do to make the "Unigraphics License Server" work.

Begin installing the license server from the NX4 Base installation CD. After copying files, you'll see an error saying the service could not be started. Before hitting Cancel, copy all the files in the "C:\Program Files\UGS\License Servers\UGNXFLEXlm" directory to c:\nxflexlm . Then cancel your installation, and launch a Command Line.
In a single line, enter
echo @C:\nxflexlm\lmgrd -c c:\nxflexlm\ugnx4.lic -l C:\nxflexlm\log.txt >c:\nxflexlm\nx4_server.cmd
Then add C:\nxflexlm\nx4_server.cmd to your Startup directory.
For NX5, I received no errors at all while installing both the license server and NX itself. I must remind you that this is a non-supported configuration, and you'll most probably be denied to log a call if a problem of yours cannot be duplicated on a certified system of GTAC.
This might be a workaround till the drivers for Vista gets stable and Siemens starts supporting Vista.
UPDATE: Thanks to Stian's comment, another workaround is just copying the lmgrd.exe from an NX5 installation overwriting the one in NX4. This way you'll be able to start your license server as a service.
Thursday, November 1, 2007
Use middle mouse button for OK outside of NX
I sometimes catch myself hitting the middle mouse button to hit OK and see that nothing ever happens because it's not NX I'm using! This surely is because of the time I spend in NX, but why cannot we use this in say, Options dialog of Internet Explorer ?
Here's a quick solution I've managed to compile. Download this small executable, and it will stay on your traybar waiting for your middle-click. If you hold it longer than 20 milliseconds (which is slightly longer than a single click for most people) it will find the OK button in the active dialog/window and hit it. Also, you can use CTRL+midbutton for Apply.
It has no options yet, but I'll add a few when I have some spare time. Drop me a line if you would like the source file as well…
Thursday, October 25, 2007
Unigraphics nostalgia

It's quite shocking to see that people used computers with displays even worse than Commodore64 to design an automobile. Maybe I'll print out some pictures and show it to one of those users who complains that he's doing lots of extra work while making an A0 drawing in just 5 minutes!
Tuesday, October 16, 2007
Speeding up the uninstallation
Uninstalling NX can be a very long process, especially if you have an old/fragmented hard drive. The reason is that Installshield (the engine behind the curtains) checks for every single file installed within the directory. When you think about the number of files in your NX installation (mine has 122.000+ files !), you'll understand why this file-checking slows you down.
Here's a trick to speed things up : before going into Add/Remove Programs, shift+delete your installation. This won't be deleting your uninstall data.
Then proceed to Add/Remove Programs and uninstall the product as you'd normally.
The amount of time you've gained adds up to a considerable amount if you need to do this on quite a number of machines.
This 'method' can also be used to uninstall the UGDOCS installation.
Here's a trick to speed things up : before going into Add/Remove Programs, shift+delete your installation. This won't be deleting your uninstall data.
Then proceed to Add/Remove Programs and uninstall the product as you'd normally.
The amount of time you've gained adds up to a considerable amount if you need to do this on quite a number of machines.
This 'method' can also be used to uninstall the UGDOCS installation.
Thursday, October 4, 2007
Monitoring FlexLM license usage
The best friend of anyone who has got anything to do with flexlm, is the log file of the server.
But as you know, the 'view log' command of LMTOOLS is dumb as hell. It just shows you the situation at moment you click View Log. (well it does not even have a close button on the upper right corner, it's too much to ask for a scrolling live log feed ! )
With the help of the old `tail` command from UNIX systems, it's easy to watch a logfile in realtime. You won't have to install a flavor of UNIX for this, luckily someone has ported this nifty utility to Win32 platform : get it here. (it's licensed under GNU/GPL)
After you tell Tail32 to watch your UGS License Server, it will look like this :

Now you're one step closer to controlling the universe. Quite cool, right ?
If you're a CAE-oriented-guy and see the world in meshes, you can use this to watch as your .op2 solution file grows bigger and bigger.
But as you know, the 'view log' command of LMTOOLS is dumb as hell. It just shows you the situation at moment you click View Log. (well it does not even have a close button on the upper right corner, it's too much to ask for a scrolling live log feed ! )
With the help of the old `tail` command from UNIX systems, it's easy to watch a logfile in realtime. You won't have to install a flavor of UNIX for this, luckily someone has ported this nifty utility to Win32 platform : get it here. (it's licensed under GNU/GPL)
After you tell Tail32 to watch your UGS License Server, it will look like this :

Now you're one step closer to controlling the universe. Quite cool, right ?
If you're a CAE-oriented-guy and see the world in meshes, you can use this to watch as your .op2 solution file grows bigger and bigger.
Wednesday, October 3, 2007
.PRT extension and multiple NX versions
If you have multiple NX versions installed, you may sometimes need to be able to open a part with say, NX4 but not with the latest version.
Normally, what NX does is it tries to see whether you have an already open NX session. If you do, the .prt file you've double clicked is routed to this session. If not, then the latest version of NX installed is launched, and the .prt is opened.
There's a '-version' parameter of ugs_router.exe to specify the exact version you'd like to open your part with. The versions are as follows :
- UG V18 : -version=V18.0
- NX : -version=V19.0
.. - NX4: -version=V22.0
- NX5: -version=V23.0 and so on.
For multiple versions, you need to define new "commands" in Edit File Type window. Or, if you're lazy- here's the .reg file itself. (the NX path might not match your system, be sure to change it out before importing into your registry)
Monday, October 1, 2007
Interpart Link Browser
Emphasize your Sketch
Wednesday, September 26, 2007
Ignore some components in a Parts List
Parametric Sheet Templates
For a smarter sheet template solution, a tabular note cell can be populated with the following data in NX5: (You must add "<" and ">" around the variables)
These items are from a post in BBSNotes by John Baker. If you'd like make an addition to the list, you're more than welcome to do so thru comments.
W@$SH_SHEET_NUMBERNumber of the current sheet: Total number of sheets: W@$SH_NUMBER_OF_SHEETS Numerator of the sheet scale: W@$SH_SHEET_SCALE_NUMERATOR Denominator of the sheet scale: W@$SH_SHEET_SCALE_DENOMINATOR Size of the current sheet: W@$SH_SHEET_SIZE Units of the current sheet: W@$SH_SHEET_UNITS Projection angle of the current sheet: W@$SH_SHEET_PROJECTION_ANGLE Master Model drawing sheet part name: W@$SH_MASTER_PART_NAME Sheet part name: W@$SH_PART_NAME
2-way interaction between Expressions and Attributes
Using a little bit of Knowledge Fusion functions, it's easily possible to interact expressions with attributes, and vice versa.
Suppose you have 3 expressions called 'length', 'width' and 'height' and you'd like to automatically update the part attributes called ATTR_length, ATTR_height and ATTR_width accordingly.
(Why in the earth would I want to do that, you might ask- these values could well be part list columns, or some dirty ERP trick might be the case. Actually I need neither, but it's good to know that this can be done !)
In the Expressions window, you need to create a dummy number expression, say 'test'. This needs to be a number, not a string variable.
Then you need to set the value of 'test' using the following syntax :
You can also get the value of an existing attribute, and assign it to an expression. This time, the syntax is :
In order not to have lots of these dummy test variables, you could create a combined dummy, like:
Suppose you have 3 expressions called 'length', 'width' and 'height' and you'd like to automatically update the part attributes called ATTR_length, ATTR_height and ATTR_width accordingly.
(Why in the earth would I want to do that, you might ask- these values could well be part list columns, or some dirty ERP trick might be the case. Actually I need neither, but it's good to know that this can be done !)
In the Expressions window, you need to create a dummy number expression, say 'test'. This needs to be a number, not a string variable.
Then you need to set the value of 'test' using the following syntax :
- test = ug_setPartAttrValue( "ATTR_length", stringValue(length) )
You can also get the value of an existing attribute, and assign it to an expression. This time, the syntax is :
- test2 = MakeNumber( ug_askPartAttrValue( "ATTR_width" ))
In order not to have lots of these dummy test variables, you could create a combined dummy, like:
- test = ug_setPartAttrValue( "x", stringValue( p1) ) + ug_setPartAttrValue( "y", stringValue( p2) ) +ug_setPartAttrValue( "z", stringValue( p3) )
Tuesday, September 25, 2007
Truetype fonts in NX Drafting

Got bored with the old drafting fonts like latin_extended ?
Here are some ready-to-use .fnx drafting fonts, converted from
- Verdana
- Tahoma
- Times New Roman
- Segoe UI
- Trebuchet MS
AutoSave.. for NX ?
"If i had a penny each time somebody complained about autosave in NX.." By Richard FullConstrain.
Well, of course there's not an autosave command in NX. It's quite understandable, though; think about having a huge assembly which you've opened fully, and zoomed in/out of the part. Maybe travelled accross a few applications, drafting, modeling, etc. Then your autosave period has ended, and the application decided it should save the work part.. for nothing at all, causing lots of cpu power to be lost, making the world a hotter place to live.
No worries, you could always set a 'save reminder'.
Here's how : Customer defaults - Gateway - Part - Interval for Save Changes Reminder
Naah, forget about 'autosave' Richard, NX will remind you to save often instead.
Assembly Constraints - The new 'mating' alternative
Since NX5, it is now possible to use bidirectional mating conditions in the Assemblies module. The old 'mate' commands are still available, but if you need the newer functionality, you need to enable it first.
- For the current part, go to Preferences - Assemblies - Assembly Positioning and set Interaction to 'Positioning Constraints'
- For all the new parts from now on, go to Customer Defaults - Assemblies - Positioning - Interface - Positioning and select 'Positioning Constraints'
- First of all, the GUI is much easier. ( both to use, and to teach to a newbie !)
- Bidirectional relationship is now possible.
- Align and Mate is combined into a new 'Touch Align' constraint
- There's a 'fix' constraint. As the name implies, it fixes your part.
- It's possible to 'bind' a component to another.
- You can visually see the constraints in the screen and hide/show some of them.
- You can calculate an 'extraction path' in Sequences.
Subscribe to:
Posts (Atom)