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.
' 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
You may want to see a topic in API document titled "Introduction to proxies", it will explain the concept of proxy. Hope this helps.
Rocky Zhang Inventor API Manufacturing Solutions Autodesk, Inc.