Community
Inventor Forum
Welcome to Autodesk’s Inventor Forums. Share your knowledge, ask questions, and explore popular Inventor topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Drive iPart LENGTH param by an iAssembly table's Custom Parameter Column?

6 REPLIES 6
Reply
Message 1 of 7
Anonymous
3524 Views, 6 Replies

Drive iPart LENGTH param by an iAssembly table's Custom Parameter Column?

Hello,

 

In a simple case I have an extrusion with some attached seals/weather stripping, all implemented as iParts having

their own LENGTH parameters.

 

RailPart.ipt, Seal_A.ipt, Seal_B.ipt

 

The goal is to encapsulate these IParts within an iAssembly: RailAssy.iam, where a LENGTH parameter can be input when the iAssembly is placed, causing RailPart and Seal_A to have their length parameters set to the LENGTH provided at that time and SEAL_B having Length set by an iLogic rule to LENGTH - 5.

 

Hopefully I'm missing something, but I've been unable to set up a Custom Parameter Column in an iAssembly table.  Is this even permitted? 

 

Any comments/recommendations about implementing this strategy will be appreciated!

---

 

6 REPLIES 6
Message 2 of 7
Anonymous
in reply to: Anonymous

Is it, or is it not, possible to create an iassembly with a custom parameter column?

 

This question has been asked on this forum, but never *directly* answered.

 

http://forums.autodesk.com/t5/Autodesk-Inventor/a-custom-iAssembly/td-p/2450728

 

http://forums.autodesk.com/t5/Autodesk-Inventor/Custom-iPart-parameters-in-an-iAssembly/td-p/2422384

 

http://forums.autodesk.com/t5/Autodesk-Inventor/IV11-SP2-Has-anyone-found-a-way-to-get-a-custom-iAss...

 

Where is the Autodesk documentation that describes the capabilities and limitations of iParts/iAssemblies?

 

Why is "iPart" and "IAssembly" not in the forum's spell checking database?

 

Am I expecting too much?  Smiley Tongue

Tags (1)
Message 3 of 7
NicolasXu
in reply to: Anonymous

Hi Dennis,

 

As far as I know, Inventor does not support custom iAssemblies directly.

 

If you want an assembly parameter can be input when it is placed, you may try “Place iLogic Component”. The component can be a normal assembly without iLogic rule, but cannot be an iAssembly. Once the assembly is placed, a new copy of the original component is generated. Please check the online help for details.

http://wikihelp.autodesk.com/enu?adskContextId=PLACE_ILOGIC_COMPONENT&language=ENU&release=2012&prod...

 

However, in your case, there is couple of iPart in the assembly. I didn’t find a way to set the Length parameter for iParts via iLogic rule in the assembly (RailAssy.iam). Though I know we can set parameter for normal part.

 

How about converting these iParts to normal parts, and using iLogic rule to set Length parameter from the assembly level? How do you think about it?

 

Thanks,

Nicolas

 



Nicolas Xu
Sr. SQA Eng.
Fusion 360 Quality Assurance Team
Autodesk, Inc.
Message 4 of 7
Anonymous
in reply to: NicolasXu


However, in your case, there is couple of iPart in the assembly. I didn’t find a way to set the Length parameter for iParts via iLogic rule in the assembly (RailAssy.iam). Though I know we can set parameter for normal part.

 


iPart.ChangeRow("PDC-059-O3:1", iPart.RowName("PDC-059-O3:1"), LENGTH)
iPart.ChangeRow("PDC-2-270-0-011:1", iPart.RowName("PDC-2-270-0-011:1"), LENGTH)
iPart.ChangeRow("2-407-5:1", iPart.RowName("2-407-5:1"), LENGTH)
iPart.ChangeRow("2-407-6:2", iPart.RowName("2-407-6:2"), LENGTH)
ThisDoc.Document.Update()

 


 

Hi Nicolas,

 

The above (in an assembly level rule) will set the length of the iParts, but it doesn't seem like a good approach for future reuse of the assemblies.

 

Thanks for the tip about Place iLogic Component.  Since this will create a unique instance of a component,  I think I can make the length of some of the parts to be adaptive and use constraints to drive them to the proper length.

 

Message 5 of 7
Anonymous
in reply to: Anonymous

For Future reuse, hope the below code is useful.

 Note: Posting this late reply, hoping that it may be helpful for someone, who searches for the same.

 

These code has to be modified based on your ipart

i = iPart.FindRow(comp.Name,"noofelement","=","1 in")
rowstringvalue=iPart.CurrentRowStringValue("SIZE")
j = iPart.FindRow(comp.Name,"SIZE","=",sizelist1)

 

Example :http://grabcad.com/library/ilogic-ipart-and-imate-1

 

 

Dim comp = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kAssemblyOccurrenceFilter,"Select Component to change:")
'MsgBox(comp.Name)
DefaultRowNumber = iPart.RowNumber(comp.Name)
'rowName = iPart.RowName(comp.Name)
'
rowstringvalue=iPart.CurrentRowStringValue("Member")
'
MsgBox("Default Row No= " & GetDefaultRowNumber & " RowName==> " & rowName & " RowStringValue==> " & rowstringvalue)

i = iPart.FindRow(comp.Name,"noofelement","=","1 in")
'MsgBox("Row No= " & i)
j=1
Component.Visible(comp.Name)=False
Dim sizelist As New ArrayList
For j = 1 To i
iPart.ChangeRow(comp.Name,j)
rowstringvalue=iPart.CurrentRowStringValue("SIZE")
'MsgBox("Row String Value= " & rowstringvalue)
sizelist.Add(rowstringvalue)
'MsgBox("j= " & j)
Next j
'MsgBox("j= " & j)
iPart.ChangeRow(comp.Name,j-1)
'sizelist.Add(rowstringvalue)
iPart.ChangeRow(comp.Name,DefaultRowNumber)
Component.Visible(comp.Name)=True
sizelist1= InputListBox("Select sizelist ", sizelist, sizelist, Title := "Select Sizelist", ListName := "Select Sizelist")
j = iPart.FindRow(comp.Name,"SIZE","=",sizelist1)

ThisApplication.CommandManager.StartCommand(2344) ' kZoomAllCommand = 2344
ThisApplication.CommandManager.StartCommand(2353) ' kPanCommand = 2353

accept = InputRadioBox("Accept or Reject to change size", "Accept", "Reject", accept, Title := "Accept or Reject to change size")
'Run rule based On selection
While accept <> True
sizelist1= InputListBox("Select sizelist ", sizelist, sizelist, Title := "Select Sizelist", ListName := "Select Sizelist")
j = iPart.FindRow(comp.Name,"SIZE","=",sizelist1)
ThisApplication.CommandManager.StartCommand(2344) ' kZoomAllCommand = 2344
accept = InputRadioBox("Accept or Reject to change size", "Accept", "Reject", True, Title := "Accept or Reject to change size")
MsgBox(accept)
'yesorno=MessageBox.Show("Are you sure you want to use this size?","iLogic",MessageBoxButtons.YesNo)
If accept <> True 'Or yesorno= vbYes
iPart.ChangeRow(comp.Name,DefaultRowNumber)
End If
End While

'Dim Currentpartno= iPart.CurrentRowStringValue("Part Number")
'
MsgBox("Current Part No= " & Currentpartno)
length = InputBox("Enter length", "length", "10")
'MsgBox("j= " & j)
iPart.ChangeRow(comp.Name,iPart.RowName(comp.Name),length)
ThisApplication.CommandManager.StartCommand(2344)
'ThisApplication.ActiveView.Fit
Tags (1)
Message 6 of 7
Safeldt
in reply to: Anonymous

This is really bad.

 

In that way you can't automate the design of a simple air cylinder of similar using iParts

 

If you can't  "Drive iPart custom param in iParts" I would say it is more or less unusable.

 

I hope there will come a solution soon for this.

 

Uffe

 

Message 7 of 7
Anonymous
in reply to: Safeldt

Has this issue been addressed yet?

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report