Hi,
I did an assembly drawing, created pipes between the fittings i.e. elbows, tees etc. The piping wasn't done using Tube & Pipe.
I've been asked if we are able to do the length of each pipe I created using the BOM (Parts list)? Also if we can determine the length of pipes in total i.e. 1", 1/2" etc. Attached an example of my BOM. If so, how do I do that please?
Thanks
I'm assuming you used sweeps to do the pipes?
T&P would give you exactly what you want, sweeps are more difficult.
You'd need to put multiple dimensions along the entire sweep and then add them up in a single parameter to be able to include them.
There is lots of options in the partslist if these pipes have been placed from the Content Center to get individual lengths and roll the qty's up to based on part number/stock number etc.
Assumption #1: All pipes are straight lengths with no bends.
Assumption #2: All fittings are constrained in your assembly already.
This is how I do it:
1. Create one pipe of the specified size and make it Adaptive (in Windows Explorer or after you bring it into the assembly). Make sure you use a 3d sketch in the part to establish the LENGTH parameter. The way I do that is start a 3d sketch; then place a 3d line at each end of the pipe (it will automatically find the center and snap to the center it if you move your mouse pointer near the circular edge of the pipe end); then add a driven dimension; then close the 3d sketch and make it invisible; then go to the Parameters dialogue and link that dimension value to your LENGTH parameter. You only have to prep a pipe like this 1x for the entire job.
2. Open your assembly (with all the fittings) and insert that pipe into that assembly; then use assembly Constraints to connect it to the fitting ends.
3. Save that pipe as a different name (I do it in Windows Explorer by adding an incremental value at the end of the file name, such as '-01', '-02', '-03', etc.); then make sure it's adaptive (RMB>Adaptive); and bring the new pipe into the assembly and repeat constraints.
4. Keep doing that till all your pipes are placed and all pipe runs are completed.
5. When you need a different size pipe, just drop it into the assembly and RMB to select a different size; then make sure it stays Adaptive.
6. Sometimes when you copy an Adaptive pipe it will break and refuse to become adaptive. If so, just delete it and try again by copying another pipe.
7. When finished you just need to make sure your LENGTH parameter is part of your BOM and you're good to go.
8. If I have time later, I'll do a simple assembly to show you.
Find attached an example of what I'm talking about.
I erred in saying how I copy Adaptive pipes.
Instead of what I said above, you open the Adaptive pipe and SaveAs with an incremental filename.
If you try copying it in Windows Explorer, it breaks the file so it won't become Adaptive.
That's how it works w/my version of Inventor (2010).
Sometimes it doesn't work, so you just use another Adaptive pipe and try again.
You can do this by taking your extruded length and linking it to a user parameter. Make sure this parameter is exported, and then under tools\documents\bill of materials choose the base quantity to be your user parameter.
If you use iLogic the following code will do this for you by creating a parameter called length and setting it as the base qty. :
'This rule automates setting a length parameter as the BOM QTY and exporting it to custom iprops
Dim oDoc As PartDocument
oDoc = ThisDoc.Document
Dim oDocDef As PartComponentDefinition
oDocDef = oDoc.ComponentDefinition
Dim oPartParams As UserParameters
oPartParams = oDocDef.Parameters.UserParameters
'Create Length param if does not already exist
Try
t = Parameter("Length")
Catch
Dim TestParam As UserParameter = oPartParams.AddByValue("Length", 0, kMillimeterLengthUnits)
End Try
Dim oLength As UserParameter = oPartParams.Item("Length")
'Export to iproperties
oLength.ExposedAsProperty = True
'Set the custom propert formats
oLength.CustomPropertyFormat.ShowUnitsString = True
oLength.CustomPropertyFormat.ShowLeadingZeros = False
oLength.CustomPropertyFormat.ShowTrailingZeros = False
oLength.CustomPropertyFormat.Precision = kZeroDecimalPlacePrecision
'Set BOMQuantity to new parameter length from the default 'Each'
oDocDef.BOMQuantity.SetBaseQuantity(kParameterBOMQuantity,oLength)
Note this is in metric.
If you have swept along a path you can use ilogic to acquire that length also...
If you work with simple parts, just expose the Length in your parameters. You can use this exposed parameter in your partlists. I added a part I use to do piping.
If you use the same partnumbers for pipes of the same diameter/material/type, the lengths will cumulate.
Hi, yes this will suit what I am doing - but I'm struggling to follow....
Is there another way of showing me how to do it? i.e. videoing etc?
Thanks in advance.
I would like to make a video, but it would be too long and take too much time b/c I'm not so good at it. I make too many mistakes and have to go back and start over again until I get it right! The best I can do is describe the steps to make it and break it down for you. Then you can go to my dataset and work your way through it.
There are a number of steps required to make this. They all can be done independently, but some have to be done in chronological order. This is how I did this project:
1. First create your EXISTING layout. That is, what vessels, tanks, nozzles that already exist which you have to connect to. The way I do that is to make a 'fake' existing piece of equipment in enough detail to find the nozzle connection points. You can see that in the file named "Existing1a". It's very simple, and I added a tiny bit of detail for visual purposes. You see a tank and a pressure vessel. Simple. If the equipment already exists then I use it in a very simplified form. Depending on the source, that determines how I process it. If it's native Inventor, then I derive it and delete most of the features and leave only the nozzles so I can connect up to them. If they're generic file format solids, then I open then in Inventor (or Rhino3D) and delete all unnecessary features. If generic surfaces, same basic thing. Then I combine them into an assembly either in an iam or ipt file. That establishes all your attachment points for your pipe runs.
2. Then I start another part file and Derive the above layout file into it for reference. Then add WorkAxes and WorkPoints to the connections. Look at how I did it in the part file to see the details of location and placement. Keep it simple and use as few features as you can to establish your work reference points.
3. Then start another part file for your pipe run skeleton. As much as possible I use ONLY 2D SKETCHES. The reason is b/c my version of Inventor won't snap to 3d sketches in an iam assembly file. Also, 3d sketches are unreliable in complex scenarios, so I try not to use them. But in this project I used a 3d sketch b/c of being lazy and it was quick and simpler. Otherwise, there would be 2 sketches to do this pipe run instead of 1 sketch. Look at the file "_Wireframe-AdaptivePipes1a" to see how I made the pipe run using a 3d sketch. Note the end connections and orientations. Because I used a 3d sketch I had to attach WorkAxes and WorkPoints to the 3d sketch lines for use in the assembly file. Otherwise, I could not Constrain the pipe run parts to that sketch.
4. Then start an assembly (iam). Insert your pipe run sketch "_Wireframe-AdaptivePipes1a" and use it as the framework for your pipe run/s. First place all your end connections. In this case they are pipe flanges. Then place all your fittings by getting them out of the ContentCenter (C/C) and then Constraining each fitting to its associated sketch lines (WorkAxes and WorkPoints). Note that b/c I used a 3d sketch, I had to constrain to the WorkAxes and WorkPoints in thee sketch. You have to expand the "+" to the left of the part in the model tree to see those work features in order to Constrain to them. Look at what I did to see what the connections are and how simple they are.
5. After all pipe flanges and fittings are fixed in place, you can then begin adding all the pipes. To do that you get the correct size and standards out of the C/C and prep the pipe like I said in my previous forum post. Then Constrain the ends to the flanges and fittings that are in place in your assembly. Notice the two Parameters I added to the assembly Parameters that originate in the "_Wireframe..." file. I stuck them in there b/c that's my base sketch where all the information for the pipe run resides. If I want to add more Parameters to use in the assembly, then it's easy. Just add them to the part file and Link them to the assembly in the Parameters dialog. For example, sometimes the setback between the pipe and flange face is different for different sized pipes.
6. Continue dropping pipes into your assembly and Constraining them until you're finished.
7. Then start a drawing (idw) file and place your assembly so it's an ISO view such that you can see all the flanges, fittings and pipes. Then detail it as usual.
8. Place a PartsList in your drawing and make sure you add the length to the Inventor standard "Part Number" so it can 'roll up' all pipes of that size and length into one line item.
9. If you want to get a 'Summary BOM', then you have to do a bit more work by creating 2 PartsLists. One is the usual, and the other is a simple one where all same pipe sizes roll up into one line item and you get the total length for the entire project showing on that one pipe size line item. I won't take the time or space to explain this here, b/c it's off topic.
So, that's pretty much it. Just look at the model one piece at a time and you can see the details of how I did it. Here's a screen shot example of one project I did this way that was not so simple. Note that it was easy to do b/c of all the repetition. At the beginning before you start your layout, you have to determine what pipe runs you can repeat. That way you can make one assembly of it and then just copy it where ever needed. Or if you have variations to it, you can make one, then copy it in Windows Explorer as a different file name, and then make simple modifications to it. Anyway, you do what suits your work-flow and project.
Can't find what you're looking for? Ask the community or share your knowledge.