I have tried posting this in another thread, Reference set in Assembly but the system removes my reply as soon as it's posted.
I continue to be confused by NX load behavior of Reference Sets. I am a former CATIA user, and have been using NX 8.5 for 9 months.
As described above, there are situations when it makes sense to utilize the Reference Set definition of an assembly. In my case, all models in our program, details and assemblies have a Datum Coordinate System Feature. And in many of my subassemblies and installation models, I bring in other reference geometry in an assembly model to be used to position Components.
I have tried posting this in another thread, but the system removes my reply as soon as it's posted.
I have a particular assembly, let's call it '100', which contains subassemblies (110, 120, 130), which each contain detail parts (001, 002, 003). Every model has a Datum Coordinate System, and the detail models have construction geometry and a Solid Body.
Somehow I ended up with a sub-Component set to display Reference Set 'Entire Part'
Below is what the Assembly Navigator displays:
Descripitve Part Name Component Reference Set
100 Model ("MODEL")
101 101.1 Model ("MODEL")
001 001.1 Entire Part
However, when I display the 101 as Displayed Part, all of the Components display their "Model" Reference Sets:
Descripitve Part Name Component Reference Set
001 001.1 Model ("MODEL")
So Apparently NX saves the graphical properties of all Components, sub-Components, sub-sub-Components and so on. For Example the Reference Set (and color, show/hide and other graphics) of 100->110.1->001.1 is saved in 100.prt. Whereas 110->001.1 is saved in 110.prt.
I tried correcting the Reference Set (and saving) in the context of both the top assembly and the sub-assembly, but I cannot get it to persist to the next load.
My 'Assembly Load Options-->Reference Sets' list is as follows:
Can someone tell me what I am missing?
Solved! Go to Solution.
Let's see if I can make this more complicated for you
When you've made an assembly the displayed part, you're viewing it as it's Entire Part (so you see everything). While you can define the Reference Sets for a dislayed part, you cannot see how it would look at a parent level unless you add it to that parent level and change its Reference Set.
When you make sub assembly 101 the displayed part, you see 101 as Entire Part. You can set the Reference Set's of its children, but they are saved in the Entire Part Reference Set of 101. You can also define additional Reference Sets for the sub assembly and in this case you added component 001 to the MODEL Reference Set of 101, but you're still seeing 101 as Entire Part. You can't view the MODEL Reference Set of 101 to see which Reference Set of 001 is used.
When you make top assembly 100 the displayed part, you see 100 as Entire Part. You added sub assembly 101, using the MODEL Reference Set, so you now see the contents of the 101 MODEL Reference Set - in which case, you also see 001 loaded as the MODEL Reference Set. (Recall, you can only see the true content of the 101 MODEL Reference Set in a parent assembly). Now, with 100 as the displayed (& work) part if you change the Reference Set of 001 to Entire Part, you're now modifying the MODEL Reference Set of sub assembly 101. Therefore, if you make 101 the displayed part - and hence looking at it's Entire Part, component 001 will show as MODEL in the ANT. Make sense?
To make things more confusing... OOTB, when you make a sub assembly the work part in the context of the parent assembly, the Reference Set of the sub assembly will change to Entire Part - in which case component 001 will change to the MODEL Reference Set. You can change this by selecting "Preferences > Assemblies" and uncheck "Display as Entire Part". That way, the sub assembly remains displayed using the Reference Set that was defined in the parent assembly when it's made the work part (personally I prefer to see the Entire Part).
I think your best bet is to make top assembly 100 the displayed & work part, set sub assembly 101 and component 001 to their MODEL Reference Sets, save the assembly and open it with "As Saved" at the top of your list of Reference Sets in the Assembly Load Options.
Does anyone disagree with this? This is how I've always thought it worked.
I hope this helps with your issue:
If you set the above toggle, then as the system loads each level of the assembly, it will apply your selected reference set order to that level. So if 'Use Model' is at the top of your list, every level which contains a model reference set will have that loaded.
... Now, with 100 as the displayed (& work) part if you change the Reference Set of 001 to Entire Part, you're now modifying the MODEL Reference Set of sub assembly 101...
Thank you Ben, this is what had me tripped up.
As I understand it now, the sub-assembly is what had the incorrect Component Reference Set. It can only be changed in context of a super-assembly, and it is the sub-assembly that needed to be over-written.