Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations LittleInch on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

how to update quantity of parts from assy and put in part level drawing 4

Status
Not open for further replies.

gani009

Mechanical
Dec 26, 2013
93
Hi All,
I would like to keep number of Quantity parts required for each part in part level drawing.
For Example:
I have
Assy.prt
part1.prt​
part1.prt​
Part2.prt​

To make Assy.prt total two part1.prt parts and one part2.prt is required. So in part1.prt part level drawing I need to mention 2 qty required for assembly. This information will useful for procurement team.
In the previous posts
Niedzviedz has posted journal
Journal thread for adding no of parts in quantity attribute in each child part then we can call in part level drawing. so far it's working great.
Now I want add one more part (example: part1.prt) in assembly. So Quantity of part1.prt will be 3, If I re run the journal it qty attribute is getting update Instead of that is there any way to make it auto update like parts list update

Regards,
Gani
 
Replies continue below

Recommended for you

I Agreed but when it comes for tool room there will be fixed quantity for specific tooling assembly.
 
Ben,
Producing spare parts are few in hundreds of parts needed for a project. When Sales open a drawing of an old project, they instantly see the quantity needed for the specific project and it flags them to make sure to check the new ordered quantity. At this time they will override the Drawing Quantity with the new Job Order details stamped on few drawings.

Aftermarket is not valid argument not to include the Quantity in the drawing. Since this is a limitation of the software, as I said earlier we insert the Quantity manually taking the responsibility. This is how it was shown to me in the Trade School, in Germany, in NA or wherever I worked for the past 25 years.

Isn’t these PLM are all about gathering all the necessary information in to one place, avoid duplicates and show the information promptly? Why do you ask us to waste time searching information in different places?


Michael Fernando (CSWE)
Tool and Die Designer
Siemens NX V9.0 + PDW
SWX 2013 SP3.0 X64
PDMWorks 2013
Logopress3
FastForm Advance
FormatWorks
 
MFDO said:
this question came because the system doesn't work as required in a production environment.

Michael, this is grossly unfair. Anyone can come up with any - ANY - requirement and claim that NX is not working as required. I think it is a safe bet to say that NX primarily supports typical workflows. Frankly, I am 36 year old and today for the first time in my life I heard that detail drawings with quantity on them do exist.

 
John Baker has stated in another thread that one of Siemen's 'rules of software design' is to NOT modify components from the parent.

The assembly BOM is designed to show the quantity of the components needed in that assembly. It is automated without the user having to create custom code. It gets updated when a new release of NX is released. The BOM gets updated when you add/subtract a component from the assembly. No manual interaction to copy the item quantity to the component file. No having to remember to update it when you add another copy to the assembly.

Print it with the drawing and give it to the shop with work order.


"Wildfires are dangerous, hard to control, and economically catastrophic."

Ben Loosli
 
Happy Birthday PrintScaffold (36 Old? I’m 10years older.[bigsmile])

To my understanding these non-traditional “travellers” with the drawings have been introduced recently especially to collect data and to show the workflow prepared by work scheduler (AV- Arbeitsvorbereitung) I have seen in some places, the manufacturing route/path indicator block as a part of the drawing frame to get rid of secondary papers. Traditionally Quantities are part of the Drawing Sheet, and workarounds due to software limitation must have interpreted now as the standard.

Forget about my comments! If you are not involved directly in final manufacturing process, please talk to your part supplier and see how they handle the part quantities in their workshops and drawings.


Michael Fernando (CSWE)
Tool and Die Designer
Siemens NX V9.0 + PDW
SWX 2013 SP3.0 X64
PDMWorks 2013
Logopress3
FastForm Advance
FormatWorks
 
I've worked for several companies directly involved in the "final manufacturing process" of their respective products, and all used documentation in addition to the drawing which followed the parts through the manufacturing process. These companies were in both military and commercial industries, and the part "riders" were in use before CAD was adopted. The exceptions would include the smaller research and one-off companies.
This is not recent, unless you consider the mid-eighties to be recent.

"Know the rules well, so you can break them effectively."
-Dalai Lama XIV
 
PrintScaffold said:
But I didn't mean that my birthday was today, because it is in August. :)

The best people were born in August ;-)

John R. Baker, P.E.
Product 'Evangelist'
Product Engineering Software
Siemens PLM Software Inc.
Digital Factory
Cypress, CA
Siemens PLM:
UG/NX Museum:

To an Engineer, the glass is twice as big as it needs to be.
 
John, Then you have to consider me too. [thumbsup2]

Michael Fernando (CSWE)
Tool and Die Designer
Siemens NX V9.0 + PDW
SWX 2013 SP3.0 X64
PDMWorks 2013
Logopress3
FastForm Advance
FormatWorks
 
Often the result of too much Christmas 'spirit' [love]

John R. Baker, P.E.
Product 'Evangelist'
Product Engineering Software
Siemens PLM Software Inc.
Digital Factory
Cypress, CA
Siemens PLM:
UG/NX Museum:

To an Engineer, the glass is twice as big as it needs to be.
 
Ewh, my point is, what we create is Engineering Data and other departments create Administration Data. Could you please go back and see where they specified the Quantity? In the Drawing sheet or in the Rider?

If we create BOM with quantities but unable to recollect them in their respective detail drawings is a drawback of any CAD software. Currently we insert Detail/Baloon # and Quantity in each detail drawing manually.


Michael Fernando (CSWE)
Tool and Die Designer
Siemens NX V9.0 + PDW
SWX 2013 SP3.0 X64
PDMWorks 2013
Logopress3
FastForm Advance
FormatWorks
 
MFDO said:
If we create BOM with quantities but unable to recollect them in their respective detail drawings is a drawback of any CAD software

Michael, to believe that you are alone right while all others are wrong is a very questionable mindset. [glasses]

CAD software behaves like that for a reason. Fundamentally, the most common workflow is to assign a number to a part and then use this part in assemblies with this number. This way the same part can be used in deifferent assemlies in different quantities, and assembly BOM is the source of information about part quantity in particular assembly. This is how vast majority of industrial companies operate. If some maverick companies insist on using dubious workflows, them it's not the problem of a CAD software.

But at any rate, the software industry has come up with an answer for your problems decades ago - an API. If particular users needs highly specific functionality, he takes API and writes custom code. In NX, the API is called "NX Open".

 
Print, I never said I’m alone correct. In fact this question came someone else. I’m just bringing out my/our way of working processes for an educated criticism. Some of other many discussions ended as ERs with lots of information.

I think it’s the common practice in the industry to give unique numbering/naming to files. I believe for an efficient working process, whatever data we feed to these unique files should be captured once (make them intelligent) and display promptly when needed.

I’m wondering if this topic should go to ER or not. Apparently the majority of you think this is not an enhancement of the software.


Michael Fernando (CSWE)
Tool and Die Designer
Siemens NX V9.0 + PDW
SWX 2013 SP3.0 X64
PDMWorks 2013
Logopress3
FastForm Advance
FormatWorks
 
Could you please go back and see where they specified the Quantity?

I don't need to go back as I created and maintained the drawings in question. The quantities are always specified on the assembly drawing/BOM. A drawing package is given to manufacturing. If they want to mark it up as to individual quantities, etc, they can, but it is considered manufacturing information and separate from any engineering documentation. The same applies for quality/inspection documentation. The engineering drawing purpose is only to define the part/assembly.

"Know the rules well, so you can break them effectively."
-Dalai Lama XIV
 
Quantity is specified on the shop order sheet that goes to manufacturing assigned by the production planners to meet forecasted spares and production machine builds.

The component drawing is standalone. It can be used in multiple assemblies and locations within those assemblies. If we had to maintain a where used list on the face of the draing, some would require another drawing sheet to capture it all. And then the expense of revising a drawing because a where used item has been added or a quantity changed. The where used is handled by a PDM system like TeamCenter for NX. It knows how many assemblies component XYZ-ABC-G is used in and in what quantity.

Even if you don't use a PDM system, there should be a method of searching the files for where used. I had a GRIP program that consisted of one command to get a where used listing. USED/<search number>,ROOT,<search directory>. It would display all files that contained the <search number> as a component. I'm sure the newer NXopen has something similar.

As to opening an ER, I don't think it would get enough votes to ever be considered.


"Wildfires are dangerous, hard to control, and economically catastrophic."

Ben Loosli
 
Gani,

Follow a code to apply a "QNT" atribute in each part of assembly.

You need open the root part of assembly with the load options "Use Partial Loading" unchecked.

Code:
Option Strict Off

Imports System
Imports NXOpen
Imports NXOpen.UF
Imports NXOpen.Assemblies

'REVISÃO
'22/12/14 - REVISADA FUNÇÃO
'

Module Aplicar_Qnt_Montagem

    Dim theSession As Session = Session.GetSession()
    Dim session As Session = theSession
    Dim ufs As UFSession = UFSession.GetUFSession()
    Dim workPart As Part = theSession.Parts.Work
    Dim displaypart As Part = theSession.Parts.Display
    Dim prototype As Part

    Sub Echo(ByVal output As String)
        theSession.ListingWindow.Open()
        theSession.ListingWindow.WriteLine(output)
        theSession.LogFile.WriteLine(output)
    End Sub

    Sub Main()

        session.ListingWindow.Open()
        Echo("-------------------------------------------------------------------------------------------------------")
        Echo("OBSERVAÇÕES")
        Echo("Para o correto funcionamento do comando todos os componentes da montagem devem estar abertos.")
        Echo("Itens abertos, montados em sub-assemblies não abertos, podem ter a sua quantidade alterada incorretamente.")
        Echo("Preferencialmente utilizar este comando com ""Make Work"" na Lista de Materiais.")
        Echo("-------------------------------------------------------------------------------------------------------")

        If workPart Is Nothing Then Return

        Dim markId1 As Session.UndoMarkId
        markId1 = theSession.SetUndoMark(session.MarkVisibility.Visible, "Quantidade")


        Echo("")
        Echo("ITENS COM A QUANTIDADE ATUALIZADOS:")
        Echo("")

        Try
            Dim part1 As Part
            part1 = session.Parts.Work
            Dim c As ComponentAssembly = part1.ComponentAssembly
            Walk(c.RootComponent, 0)
        Catch e As Exception
            session.ListingWindow.WriteLine("Failed: " & e.ToString)
        End Try

    End Sub

    Sub Walk(c As Component, level As Integer)
        Dim children As Component() = c.GetChildren()
        Dim child As Component
        Dim prototype As Part

        If TypeOf c.Prototype Is Part Then
            prototype = CType(c.Prototype, Part)
            Dim q As String

            '----------------------------------------------------------------
            Dim reqatt As String = ""

            Try
                reqatt = prototype.GetStringAttribute("CODG")
            Catch ex As Exception
                'session.ListingWindow.WriteLine("Erro" & prototype.Leaf)
            End Try

            If IsNumeric(reqatt) = False Then
                ' status = "item não é biblioteca"
                q = quantidade(prototype)
                atributos(q, prototype)
                ' Else
                ' Echo("Item não processado: " & prototype.Leaf)
            End If

            '----------------------------------------------------------------

            For Each child In children
                Walk(child, level + 1)
            Next
        Else
            session.ListingWindow.WriteLine(New String(" "c, level) & c.Name & " is not loaded")
        End If
    End Sub

    Function atributos(qnt As String, peca As Part)

        ' ----------------------------------------------
        '   CAMPO ATRIBUTOS
        ' ----------------------------------------------

        Dim qntatual As String = ""

        Try
            qntatual = peca.GetStringAttribute("QNT")
        Catch ex As Exception
        End Try

        If Not qntatual = qnt Then

            Try
                peca.SetAttribute("QNT", qnt)
                peca.SetAttribute("QNT_RESP", System.Environment.UserName)

                ' ----------------------------------------------
                '   CAMPO DATA
                ' ----------------------------------------------
                Dim DateString(0) As String
                Dim TimeNote As DateTime
                TimeNote = System.DateTime.Now()
                DateString = TimeNote.GetDateTimeFormats()
                peca.SetAttribute("QNT_DATA", DateString(0))
                Echo("Qnt: " & qnt & " - Item: " & peca.Leaf)

            Catch ex As Exception
                MsgBox("Command Error 1", MsgBoxStyle.OkOnly, "Error")
            End Try

        End If

    End Function

    Function quantidade(peca As Part)
        ' Dim peca As Part
        Dim contagem() As Tag = Nothing

        ufs.Assem.AskOccsOfPart(workPart.Tag, peca.Tag, contagem)
        Return contagem.Length

    End Function

    Public Function GetUnloadOption(ByVal dummy As String) As Integer
        'Unloads the image when the NX session terminates
        GetUnloadOption = NXOpen.Session.LibraryUnloadOption.Immediately
    End Function

End Module

Gelson Z. Nicoletto
Eng. Supervisor
Mould Desing
Brazil
 
I’m a career Machinist in the past. Whenever I got a Detailed Drawing, my eyes went first to material and second to the Quantity.

As a Designer now, if I’m unable to specify these in my drawing, I consider myself as depriving necessary needs of a machinist and betraying my past.

So I submitted an ER:
The Global Technical Access Center Team said:
Your recent call to the Global Technical Access Center, Incident Report (IR)
Number 7356297 opened on 10-APR-2015, has been researched by our GTAC
software engineers. They have determined that this issue should be
reviewed for possible enhancement to the current software functionality.


This IR was converted into an enhancement request (ER) on 14-APR-2015
and is now referenced as ER Number 7356297. It is OPEN for review at this time.


Michael Fernando (CSWE)
Tool and Die Designer
Siemens NX V9.0 + PDW
SWX 2013 SP3.0 X64
PDMWorks 2013
Logopress3
FastForm Advance
FormatWorks
 
Ralph Waldo Emerson said:
Be not the slave of your own past – plunge into the sublime seas, dive deep, and swim far, so you shall come back with self-respect, with new power, with an advanced experience, that shall explain and overlook the old.

www.nxjournaling.com
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor