Derived Sheet Metal

Derived Sheet Metal

Anonymous
Not applicable
1,287 Views
16 Replies
Message 1 of 17

Derived Sheet Metal

Anonymous
Not applicable

I have a situation where we order flat sheet metal pieces with a cutout in the center in mass quantities ("Part A").  These flat pieces are then modified in several different fashions, and then all are bent into a common "C" shape.  So for every 50 flat metal pieces ("Part A") that we start with, we end up with fifty formed pieces, although two have the NE corner clipped ("Part B"), two have the NW corner clipped ("Part C"), two have the SE corner clipped ("Part D"), two have the SW corner clipped ("Part E"), three have a second hole punched into them ("Part F"), and the remaining 39 have no secondary modifications ("Part G").  Parts B thru G are all used in an upper level weldment, an all have the same bent cross-section.

 

At first I created Part A as a flat part, and then inserted that into an IAM to create Part B.  But I could not figure out how to fold the part at the assembly or weldment level.

 

So next I created Part A as a flat part with folds in it to create the final C-shape.  This allows me to place the flat view in the IDW for purchasing reasons, and I added folds to create the final "C" shape needed by Parts B thru G.  (I dislike folds, but in this case, I need to retain the overall size of the flat, so creating the part with flanges woul dmake the flat size dependent on the bend tables, which won't work).

 

I then created Parts B thru G as derived parts, using Part A as the source file.  This allowed me to add the cutting modifications required by each - the cuts are straight lines in the flat pattern - and create a flat view as necessary for each.  This worked out great from a modelling standpoint, but I cannot figure out how to get Parts B thu G to identify that Part A is their child in their Bill of Material.  I could force the value, but my concern is that when I need to Copy Design these parts into a new "family", the part number of the source flat would need to be manually edited in each to ensure the correct flat part is ordered, and that seems like a recipe for disaster.

 

Any suggestions?  Two files are attached - "Part A" is the source file and "Part B" is the first modified file.

 

 

 

0 Likes
1,288 Views
16 Replies
Replies (16)
Message 2 of 17

SBix26
Consultant
Consultant

Seems as if Part A would need to be the Stock Number of parts B through G, but that certainly isn't automatic, unless you have some iLogic to handle that function.

Sam B

Inventor Professional 2016 R3 SP1 Update 1
Vault Basic 2016 SP1
Windows 7 Enterprise 64-bit, SP1
Autodesk_Inventor_Certified_Professional_Badge.png

0 Likes
Message 3 of 17

Anonymous
Not applicable

We have an iProperty field in the Custom tab that we use to identify the bill of material (when it is a raw material item).  Same concept as you are saying with Stock Number, but different field.  And yes, I really want it to be more automated to prevent mistakes.

 

If there is an iLogic rule that would pull the Part Number from the child and insert it into our iProperty field for the parent, that would be great.

 

 

0 Likes
Message 4 of 17

SBix26
Consultant
Consultant

You might try in the Inventor Customization Forum to see if anybody has produced anything like this.  Seems to me it shouldn't be too difficult.

Sam B

Inventor Professional 2016 R3 SP1 Update 1
Vault Basic 2016 SP1
Windows 7 Enterprise 64-bit, SP1
Autodesk_Inventor_Certified_Professional_Badge.png

Message 5 of 17

mcgyvr
Consultant
Consultant

How many variations do you think you may have in the future like this?

If just B-G and thats it then just model as needed.. throw the part a as the stock number for b-g and call it done..

ilogic is great for things that you do over and over and over again.. But for a one time use like it seems so far.. Just manually enter and be done. 

 



-------------------------------------------------------------------------------------------
Inventor 2023 - Dell Precision 5570

Did you find this reply helpful ? If so please use the Accept Solution button below.
Maybe buy me a beer through Venmo @mcgyvr1269
0 Likes
Message 6 of 17

Anonymous
Not applicable

We currently have 14 different "Part A";s in our system.  Each "Part A" is used in at least one "Part B thru G" set (a few flat plates are used in several formed iterations).

0 Likes
Message 7 of 17

swalton
Mentor
Mentor

If your BOM ID code is just numeric, you could use a User Parameter to pass the info from part A to its derived childern.

 

How about a sheetmetal ipart where you enable/suppress different features and change iprop values as required?

Steve Walton
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature


Inventor 2025
Vault Professional 2025
0 Likes
Message 8 of 17

Curtis_Waguespack
Consultant
Consultant

Hi asumner86,

 

 

See attached Inventor 2015 files. They're not sheet metal, but the derived part has an iLogic example rule that writes the stock number "up" to it's parent. I'd make this an external iLogic rule and set it to run Before Save using the event trigger. Post back if the iLogic stuff is new to you, and someone case provide some links on how to get started.

 

Note also this is just a very basic example, you'd likely need a bit more code to ensure that the part is a derived part, etc.

 

I hope this helps.
Best of luck to you in all of your Inventor pursuits,
Curtis
http://inventortrenches.blogspot.com

EESignature

Message 9 of 17

Anonymous
Not applicable

We are on Inventor 2013, so I cannot open your files (curses!).  I am unfamiliar with writing iLogic code, but our Cad Admin has set up a number of iLogic rules that get triggered at various points, so if you want to share the code for pushing info between files, I could probably figure out how to implement it.

 

Thank you!

0 Likes
Message 10 of 17

Curtis_Waguespack
Consultant
Consultant

Hi asumner86,

 

This code goes into an iLogic rule in the derived (child) part, or into an external rule, in either case it is run from the child part. It could likely be tweaked to run bi-directionaly.

 

I hope this helps.
Best of luck to you in all of your Inventor pursuits,
Curtis
http://inventortrenches.blogspot.com

 

oDoc = ThisApplication.ActiveDocument
oRefDoc = oDoc.ReferencedDocuments.Item(1)

'get user input
oStockNumber = InputBox("Enter Stock Number for child part", "iLogic", iProperties.Value("Project", "Stock Number"))

'write user input to current doc
iProperties.Value("Project", "Stock Number") = oStockNumber

'write child iprop to parent doc
iProperties.Value(oRefDoc.DisplayName, "Project", "Stock Number") = iProperties.Value("Project", "Stock Number") 

'display parent doc iprop		
MessageBox.Show("Stock Number (Parent): "  & iProperties.Value(oRefDoc.DisplayName, "Project", "Stock Number") , "iLogic")

 

EESignature

Message 11 of 17

Anonymous
Not applicable

The part numbers are numeric; I had not thought about pushing the values between files - I have not tried that before and I am not sure how to accomplish that.

 

The iPart idea has merit, but I discounted in early on for several reasons:

1) Our 2014 Vault doesn't play well with iParts

2) I wanted to minimize the chances of any of the Part B thru G in the set from having a different sheet metal style than the others, which could result in geometric differences between Part B thru G.  By having them all derived from the same Part A, I hoped to minimize any problems therein.

3) There are several sets of Parts B thru G; some share a common Part A.  This would require a common iPart factory for uncommon sets.

 

Good suggestion though...

0 Likes
Message 12 of 17

Anonymous
Not applicable

Thanks!  What I think I want is something to automatically pull the Part Number from the Project Tab of the Part A and insert it into the Stock Number of Part B.  So this rule goes into Part B?  I see it is asking for user input, so this is a manual process, not automatic?

0 Likes
Message 13 of 17

Curtis_Waguespack
Consultant
Consultant

@Anonymous wrote:

Thanks!  What I think I want is something to pull the Part Number from the Project Tab of the Part A and insert it into the Stock Number of Part B.  So this rule goes into Part B?  I see it is asking for use input, so this is a manual process?


Hi asumner86,

 

Okay, my previous example was going the wrong direction (child > parent) Smiley Embarassed.

 

This code gets the Part Number from the Parent (PartA) and writes it to the Stock Number of the Child (Part B).

 

No user input is needed, that was just part of my example to demonstrate it was working.

 

I hope this helps.
Best of luck to you in all of your Inventor pursuits,
Curtis
http://inventortrenches.blogspot.com

 

oDoc = ThisApplication.ActiveDocument 
oRefDoc = oDoc.ReferencedDocuments.Item(1)
'write parent iprop to child doc
iProperties.Value("Project", "Stock Number") = _
iProperties.Value(oRefDoc.DisplayName, "Project", "Part Number") 

EESignature

0 Likes
Message 14 of 17

Anonymous
Not applicable

Errors!  Code entered as iLogic rule in Part B.

 

Error in rule: Rule0, in document: Part B.ipt

Object reference not set to an instance of an object.

 

System.NullReferenceException: Object reference not set to an instance of an object.
at iLogic.CadAssemblyUtil.FindComponentOccurrence(Document rootDoc, Object compoName, Boolean topLevelOnly, Boolean inTopLevelContext)
at iLogic.CadCompoOrDoc..ctor(Document rootDoc, Object oName)
at iLogic.CadPropertiesInRule.FindCompoOrDoc(Object compoOrDocName)
at iLogic.CadPropertiesInRule.InvPropertyInCompoOrDoc(Object compoOrDocName, String setName, String propName, Boolean createCustom)
at iLogic.CadPropertiesInRule.get_Value(Object compoOrDocName, String setName, String propName)
at LmiRuleScript.Main()
at Autodesk.iLogic.Exec.AppDomExec.ExecRuleInAssembly(Assembly assem)
at iLogic.RuleEvalContainer.ExecRuleEval(String execRule)

0 Likes
Message 15 of 17

swalton
Mentor
Mentor

User parameters can be passed through a derive.  Create a unitless user parameter in Part A.  When you derive A into B, set that user parameter to push into part B. 

 

In part B, set the pushed parameter as Export and edit the custom format to hide the unit string.

 

In part B's iprops, type "=<pushed parameter name>" (inside the quote marks only) in the Stock Number iprop. 

 

Iparts:

I have not used these in production. Testing is in order.

 

1. I understand about iparts and Vault.  A basic showstopper for parts that see frequent revisions.

2. I just created a test sheetmetal ipart.  It looks like they get the same sheetmetal defaults.  You can add columns to the table for the unfold rule and the sheetmetal rule.

3. iPart tables could get complex, but it is a way.

 

 

Steve Walton
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.

EESignature


Inventor 2025
Vault Professional 2025
0 Likes
Message 16 of 17

Curtis_Waguespack
Consultant
Consultant

@Anonymous wrote:

Errors!  Code entered as iLogic rule in Part B.

 


Hi asumner86,

 I'm not sure what the issue would be, maybe a copy/paste issue caused by the formatting on this forum. Try the attached *.txt file.

 

I hope this helps.
Best of luck to you in all of your Inventor pursuits,
Curtis
http://inventortrenches.blogspot.com

EESignature

0 Likes
Message 17 of 17

Anonymous
Not applicable

No...same errors.  Likely an operator error on my part.  I will forward to our resident iLogic guru and let him tinker with it.

0 Likes