I'm new to the topic "NX- Part family". I have a scenarion in NX 9.0,. I have created a part family to model1.prt, and named them as pattern_1, pattern_2, pattern_3, and pattern_4.
Part family is now created and saved with default settings.
But when I open the base part (model_1.prt), it is not showing the part families list
(In Pro-E if any part families' base model is loaded it gives a list of child part names. I was expecting a similar kind.)
My question is, Unless checking the details in part family options, How else could I make sure whether a loaded part has part family in it.
You can do one thing.
(1) Add your part to a dummy assembly ..it will ask you you to select a family member of the part family and once added you can then check out the part navigator for this symbol
(2) Or you can use Visual reporting tool to color/tag the part family member in the assembly (quite handy if you have lots of family members in an assembly)
Thanks for your reply.
My concern was more towards how a NX user can make sure whether a loaded model (Not as a componenet in an Assy) has part family, if the user was not involved when the model was created and has no knowledge on NX part family option.
I believe it is not a hypothetical question .
If Checkmate is not an overkill for you then you can use ythis check for finding out if it is a part family template part or not? Set the test once and then run it any time on any part file you wish to check.
Just as a side note, you can obtain Part Family information from the NX Command Line "ug_inspect" utility.
Enter the following at the prompt (no arguments required):
ug_inspect <path to file><filename>
A Part Family Template returns:
"Part is a family template part"
A Part Family Member returns:
"Part is a family member part"
To open the NX Command Prompt:
Windows Start > All Programs > Siemens NX 9.0 > NX Tools > Command Prompt
Tip: Enter "ug_inspect " (include the space) and then drag & drop the part file into the command window which enters the full path to the file, and the filename. Click in the Command dialog and hit the Enter key.
Below is a journal that will report if the currently displayed part is a part family template or instance. To make use of the code, copy and paste it into a plain text file. When you save the file, change the file extension to ".vb" instead of the usual ".txt". To run the journal in NX, go to tools -> journal -> play, browse to the file that you saved, select it, and press the "run" button in the journal dialog.
Option Strict Off Imports System Imports System.IO Imports System.Collections.Generic Imports System.Windows.Forms Imports NXOpen Imports NXOpen.UF Module Module1 Dim theSession As Session = Session.GetSession Dim theUfSession As UFSession = UFSession.GetUFSession Dim workPart As Part = theSession.Parts.Work Dim displayPart As Part = theSession.Parts.Display Sub Main() If IsNothing(theSession.Parts.Display) Then MessageBox.Show("Active Part Required", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Return End If Dim lw As ListingWindow = theSession.ListingWindow lw.Open() 'Dim famInstSaveDir As String 'theUfSession.Part.AskFamInstSaveDir(famInstSaveDir) 'lw.WriteLine("family instance save directory [session/customer default part file directory]: " & famInstSaveDir) Dim numMembers As Integer = 0 If IsPartFamilyTemplate(workPart) Then lw.WriteLine("the work part is a part family template") lw.WriteLine("family save directory: " & PartFamilySaveDir(workPart)) ElseIf IsPartFamilyInstance(workPart) Then lw.WriteLine("the work part is a family member") Dim parent As String = PartFamilyTemplateFilename(workPart) lw.WriteLine(" this instance belongs to: " & parent) lw.WriteLine("") End If End Sub Function IsPartFamilyTemplate(ByVal thePart As Part) As Boolean Dim isFamilyTemplate As Boolean = False theUfSession.Part.IsFamilyTemplate(thePart.Tag, isFamilyTemplate) Return isFamilyTemplate End Function Function IsPartFamilyInstance(ByVal thePart As Part) As Boolean Dim isFamilyInstance As Boolean = False theUfSession.Part.IsFamilyInstance(thePart.Tag, isFamilyInstance) Return isFamilyInstance End Function Function PartFamilyTemplateFilename(ByVal thePart As Part) As String Dim familyTemplate As String = "" theUfSession.Part.AskTemplateFilename(thePart.Tag, familyTemplate) Return familyTemplate End Function Function PartFamilySaveDir(ByVal templatePart As Part) As String 'ref: nx_api3895 Dim family_count As Integer Dim families() As Tag = Nothing theUfSession.Part.AskFamilies(templatePart.Tag, family_count, families) Dim familyDir As String = "" theUfSession.Part.AskFamilySaveDir(families(0), familyDir) Return familyDir End Function End Module
The easiest way is to just try to go into Part Family. If the work part is a member of a family, a message will tell you the name of the parent (and stopping you from getting the Part Family dialog).
I think the original question was how a new user can tell if a part is a part family 'template', rather than a member. There are no visual cues other than going into Part Family and noticing that the dialog shows "Edit Spreadsheet" rather than "Create Spreadsheet". It could be made more obvious - which would require an ER.