Grounding Tube & Pipe Assemblies/Runs

Grounding Tube & Pipe Assemblies/Runs

waynehelley
Collaborator Collaborator
2,483 Views
10 Replies
Message 1 of 11

Grounding Tube & Pipe Assemblies/Runs

waynehelley
Collaborator
Collaborator

Hi all,

 

I have seen in multiple discussions are blog posts that it is advisable to ground (or constrain to Origin planes) Tube & Pipe runs and the 'Tube & Pipe Runs' sub-assembly after creation.

 

It isn't rocket science to write a script to do this, so why isn't it just embedded into the Inventor to happen automatically as standard?

 

Is there more to it??  Are there scenarios where you wouldn't want your tubes/pipes to be grounded?

 

If somebody has a good enough understanding to explain, it would be much appreciated.

 

Thanks,

 

Wayne

 

 

Wayne Helley
Inventor 2013 Certified Professional

Autodesk Inventor Professional 2023
Visual Studio 2022
Windows 10 Pro, 64-bit
0 Likes
2,484 Views
10 Replies
Replies (10)
Message 2 of 11

Mark.Lancaster
Consultant
Consultant

@waynehelley

 

Just because users may advise or recommended it doesn't mean it should always happen.  Because one way will satisfy certain # of user and ..... of the other users.  @cbenner anything you want to add?

Mark Lancaster


  &  Autodesk Services MarketPlace Provider


Autodesk Inventor Certified Professional & not an Autodesk Employee


Likes is much appreciated if the information I have shared is helpful to you and/or others


Did this resolve your issue? Please accept it "As a Solution" so others may benefit from it.

0 Likes
Message 3 of 11

cbenner
Mentor
Mentor

@waynehelley

 

Hi Wayne,

 

There are indeed situations where the Tube & Pipe runs need to be grounded in a way other than by using the origin planes.  I myself have written at least one post about using the origins for grounding, and I still use this method on the majority of my designs.  Sometimes, however, I need to be able to constrain a particular run (or runs) in a very specific relationship to (for example) a frame or a piece of equipment.

 

I would certainly not be against adding this type of functionality to the program, but I would caution that it should be there as an option.  As many at Autodesk already know (I'm very vocal!), I strongly advocate giving the user as many choices as possible, so that WE have the power and control over our designs.

 

I hope this helps clarify things a tiny bit.  Thanks for sharing your thoughts.

Message 4 of 11

waynehelley
Collaborator
Collaborator

But why would anybody ever what their top level 'Tube & Pipe Runs' to be free to float around in their assembly?

Wayne Helley
Inventor 2013 Certified Professional

Autodesk Inventor Professional 2023
Visual Studio 2022
Windows 10 Pro, 64-bit
0 Likes
Message 5 of 11

waynehelley
Collaborator
Collaborator

Thanks for your reply @cbenner

 

What you are saying kind of makes sense but it seems to me that a scenario where you would want to constrain the origins to a sub-assembly would be fairy rare.

 

If, by default, the 'Tube & Pipe Runs' sub-assembly was grounded to the origin of the top level assembly, this could still be changed if desired.

 

It just seems like that is what people will desire at least 90% of the time.  Although I am still a novice with the 'Tube & Pipe' tools so I might still be being  a little short-sighted here

Wayne Helley
Inventor 2013 Certified Professional

Autodesk Inventor Professional 2023
Visual Studio 2022
Windows 10 Pro, 64-bit
0 Likes
Message 6 of 11

cbenner
Mentor
Mentor

@waynehelley

 

Not short sighted at all.  It's a valid idea.  Have you posted it in the Ideas Forum for Inventor?  You'll have my vote.  As long as there is a way to override it....lol.

Message 7 of 11

waynehelley
Collaborator
Collaborator

No I haven't...  I have just had a go at creating a script to do the grounding though...

 

Public Sub GroundTubePipe(invDoc As AssemblyDocument)

        Dim compOcc As ComponentOccurrence

        For Each compOcc In invDoc.ComponentDefinition.Occurrences

            If compOcc.Name = "Tube & Pipe Runs" Then

                Dim topLevelCompOccDef As AssemblyComponentDefinition = invDoc.ComponentDefinition
                Dim topLevelYZPlane As WorkPlane = topLevelCompOccDef.WorkPlanes(1)
                Dim topLevelXZPlane As WorkPlane = topLevelCompOccDef.WorkPlanes(2)
                Dim topLevelXYPlane As WorkPlane = topLevelCompOccDef.WorkPlanes(3)

                Dim tubePipeCompOccDef As AssemblyComponentDefinition = compOcc.Definition
                Dim compOccYZPlane As WorkPlane = tubePipeCompOccDef.WorkPlanes(1)
                Dim compOccXZPlane As WorkPlane = tubePipeCompOccDef.WorkPlanes(2)
                Dim compOccXYPlane As WorkPlane = tubePipeCompOccDef.WorkPlanes(3)

                Dim compOccYZPlaneProxy
                compOcc.CreateGeometryProxy(compOccYZPlane, compOccYZPlaneProxy)

                Dim compOccXZPlaneProxy
                compOcc.CreateGeometryProxy(compOccXZPlane, compOccXZPlaneProxy)

                Dim compOccXYPlaneProxy
                compOcc.CreateGeometryProxy(compOccXYPlane, compOccXYPlaneProxy)

                Dim invProps As PropertySet = tubePipeCompOccDef.Document.PropertySets.Item("User Defined Properties")

                Try
                    Dim Test = invProps.Item("Grounded").Value
                Catch
                    topLevelCompOccDef.Constraints.AddFlushConstraint(topLevelYZPlane, compOccYZPlaneProxy, 0)
                    topLevelCompOccDef.Constraints.AddFlushConstraint(topLevelXZPlane, compOccXZPlaneProxy, 0)
                    topLevelCompOccDef.Constraints.AddFlushConstraint(topLevelXYPlane, compOccXYPlaneProxy, 0)
                    invProps.Add(True, "Grounded")
                End Try

                Dim subCompOcc As ComponentOccurrence

                For Each subCompOcc In tubePipeCompOccDef.Occurrences

                    If subCompOcc.Name.Contains(".Run") Then
                        subCompOcc.Grounded = True
                    End If

                Next

            ElseIf compOcc.DefinitionDocumentType = DocumentTypeEnum.kAssemblyDocumentObject And compOcc.Suppressed = False Then

                Call GroundTubePipe(compOcc.Definition.Document)

            End If

        Next

    End Sub

Wayne Helley
Inventor 2013 Certified Professional

Autodesk Inventor Professional 2023
Visual Studio 2022
Windows 10 Pro, 64-bit
0 Likes
Message 8 of 11

Anonymous
Not applicable

@waynehelley is hitting it in the center.  Tube & pipe runs should NEVER be floating in your main assembly, unless you allow it to (coming back to the "user will" scenario). When i think about it, unless you are editing route itself (sketch), routes shouldn't move no matter what happens outside. You could constraint sketch lines to outside features (frames, vessels, etc..)....

 

Man, you have to write a script to ground something that should be done with one click....

 

 

 

@cbenner can you please help me and point me to the posts about grounding pipe runs? My search is not showing anything useful. If i want to do a simple grounding, and go RMB (on the pipe run) -> Ground, it is grayed out - this is happening while i am in the main ass'y. When i go into the Tube and Pipe i do not have Ground option anymore...

Message 9 of 11

cbenner
Mentor
Mentor

@Anonymous

 

You will not find it in the RMB or anywhere as grounding.  I call it grounding, but it takes a few steps.  As it happens this was the first topic I ever wrote about in my blog.  Here is the link:  https://cadtipstricks.wordpress.com/2014/10/24/tube-pipe-grounding/

 

Give it a try.

0 Likes
Message 10 of 11

Anonymous
Not applicable

Thanks @cbenner This worked. Way too many workarounds in Inventor for something that is and should be simple.. 

Message 11 of 11

rmcdougallLXU26
Enthusiast
Enthusiast

Completely agree. Constrain the tube & pipe assembly to the top level, then constrain each run subassembly to the parent tube & pipe subassembly...way too much work for something that should be done automatically. Other platforms ground their hose/tube assemblies by default (ie XpressRoute in Solid Edge, likely solidworks as well).