Cancel
Showing results for 
Search instead for 
Did you mean: 

How to Identify if a part has part family

Pioneer
Pioneer

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.

 

Thanks

Sathyaraj

12 REPLIES

Re: How to Identify if a part has part family

Siemens Phenom Siemens Phenom
Siemens Phenom

Hi,

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 symbolpart family.jpg

 

(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)

Re: How to Identify if a part has part family

Pioneer
Pioneer

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 Smiley Happy.

Re: How to Identify if a part has part family

Siemens Phenom Siemens Phenom
Siemens Phenom

Hi,

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.

checkmate.jpg

 

Regards

Kapil

Re: How to Identify if a part has part family

Siemens Phenom Siemens Phenom
Siemens Phenom

video

Unable to play video. Please try again later.
(view in My Videos)

Re: How to Identify if a part has part family

Siemens Phenom Siemens Phenom
Siemens Phenom

not sure what happened. Here is it once more

(view in My Videos)

Re: How to Identify if a part has part family

Siemens Phenom Siemens Phenom
Siemens Phenom

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.

 

Regards, Ben

Re: How to Identify if a part has part family

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor

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

Re: How to Identify if a part has part family

Siemens Experimenter Siemens Experimenter
Siemens Experimenter

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).

Re: How to Identify if a part has part family

Siemens Phenom Siemens Phenom
Siemens Phenom

@ThumperSmith,

 

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.

 

Regards, Ben