Is there a trick to making a sub-component participate in a feature (ExtrudeFeature, SweepFeature, etc.)?
I've tried using the SweepFeature.AddParticipant(ComponentOccurrence) and ExtrudeFeature(ComponentOccurrence) functions, and both work fine when the ComponentOcurrence is a direct component of the assembly.
However, if I explode down another level, and pass in a ComponentOccurrence for a sub-component, I get an INVALID_ARG error.
I can do this manually in the Inventor model browser.
I worked around the problem by collapsing the assembly structure, but now my customer is pressing me "to do it right".
If necessary, I'll reconstruct a the code snippet that was failing.
Any help is appreciated. thanks
Below sample will show how to implement it:
Sub AddParticipantSample() ' New an assembly, place a sub-assembly which has two occurrences ' create an extrude feature on the first occurrence of the sub-assembly Dim oDoc As AssemblyDocument Set oDoc = ThisApplication.ActiveDocument Dim oExtrude As ExtrudeFeature Set oExtrude = oDoc.ComponentDefinition.Features.ExtrudeFeatures(1) Dim oOcc As ComponentOccurrence Set oOcc = oDoc.ComponentDefinition.Occurrences(1) Dim oSubOccProxy As ComponentOccurrenceProxy oOcc.CreateGeometryProxy oOcc.SubOccurrences(2), oSubOccProxy oExtrude.AddParticipant oSubOccProxy End Sub
You may want to see a topic in API document titled "Introduction to proxies", it will explain the concept of proxy. Hope this helps.