Inventor Engineer-To-Order (Read-Only)
Welcome to Autodesk’s Inventor ETO Forums. Share your knowledge, ask questions, and explore popular Inventor ETO topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Part Feature Derived Sketch %%FeatureInputs %%SignatureXML

0 REPLIES 0
Reply
Message 1 of 1
Anonymous
376 Views, 0 Replies

Part Feature Derived Sketch %%FeatureInputs %%SignatureXML

I'm not sure if this fix made it into 2011 or not, but I've come up with a workaround if anyone else needs it.
Basically, derived sketches in part features get their refchain added to %%FeatureInputs. This in turn gets added to %%SignatureXML. Unfortunately this causes new signatures (and new parts) to be generated for every single child that has derived sketches with different refchains even though they have the same sketch filename. Since %%SignatureXML is needed for iv_createInstanceDocument I created a new %%FixedFeatureInputs. Also, there is a %%SignatureXML override that passes in the fixed list.
This solves my problem; though, there is potential that my list fixing method could have problems and I'm open to suggestions, but it seems good for now.

{code}
Design IvAdoptedPartModifier: BOMMixin

Rule %%FixedFeatureInputs As List = RemoveRefChainFromFeatureInputs(%%FeatureInputs)

Method RemoveRefChainFromFeatureInputs (inList As List) As List
Dim lst As List = {}
Dim lstFeature As List
For Each lstFeature In inList

Dim innerList1 As List
Dim itemFeature As Any

For Each itemFeature In lstFeature
If typeCheck(itemFeature, :List) = False Then
innerList1 = innerList1 + {itemFeature}
Else'This is a list so let's loop through it

Dim innerList2 As List

If First(itemFeature) <> :DerivedSketch Then
innerList2 = itemFeature
Else'This is a derived sketch list and we need to modify it
Dim intIndex As Integer

For intIndex = 1 To length(itemFeature)
If intIndex <> 3 Then 'only add to list if not index 3, since it's the refchain
innerList2 = innerList2 + {nth(intIndex, itemFeature)}
End If
Next
End If

innerList1 = innerList1 + {innerList2}
End If
Next
lst = lst + {innerList1}
Next
Return lst
End Method

'Modified this so that we ignore the refchain of sketches in Derived Parts
Uncached Rule %%SignatureXml As String
Return iv_getPartSignature(iv_ProjectWorkspace(), %%ParamList, %%suppressionStates, iProperties, %%SkeletonFileNameList, %%FixedFeatureInputs, %%SheetMetalInputs)
End Rule

End Design


{code}
If there is an easier way to rebuild this list while removing a specific entity, I would love to know about it!
0 REPLIES 0

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

Post to forums  

Autodesk Design & Make Report