
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I am creating code to assemble component in an assembly and adding constraints. When I creating a proxy for the component, the CreateGeometryProxy function is throwing exception in C#. Here's the code.
private void GenerateModelsNew()
{
string assemblyfilename = @"D:\Assembly.iam";
string tailassemblyfilename = @"D:\Component.iam";
string tailmodelstatename = "COMP-512";
AssemblyDocument assemblyDoc = null;
AssemblyComponentDefinition asmCompDef = null;
TransientGeometry geomObj = null;
Matrix matrixObj = null;
try
{
InstantiateInventor();
//Open Assembly
assemblyDoc = (AssemblyDocument)inventorApp.Documents.Open(assemblyfilename, true);
//get component definition
asmCompDef = assemblyDoc.ComponentDefinition;
geomObj = inventorApp.TransientGeometry;
matrixObj = geomObj.CreateMatrix();
//Add component
ComponentOccurrence occObj = asmCompDef.Occurrences.Add(tailassemblyfilename, matrixObj);
AssemblyComponentDefinition occCompDef = (AssemblyComponentDefinition)occObj.Definition;
occObj.ActiveModelState = tailmodelstatename;
occObj.Grounded = false;
assemblyDoc.Update2(true);
//Assembly Work Plane reference
WorkPlane mainAssemblyPlane1 = asmCompDef.WorkPlanes["PlaneRef1"];
WorkPlane mainAssemblyPlane2 = asmCompDef.WorkPlanes["PlaneRef2"];
WorkPlane mainAssemblyPlane3 = asmCompDef.WorkPlanes["PlaneRef3"];
//Component work plance reference
WorkPlane occPlane1 = occCompDef.WorkPlanes["PlaneRef1"];
WorkPlane occPlane2 = occCompDef.WorkPlanes["PlaneRef2"];
WorkPlane occPlane3 = occCompDef.WorkPlanes["PlaneRef3"];
//Create Proxy Plane for Cmponent
Object occProxyPlaneObj;
occObj.CreateGeometryProxy(occPlane1, out occProxyPlaneObj);
WorkPlaneProxy occPlane1Proxy = (WorkPlaneProxy)occProxyPlaneObj;
occObj.CreateGeometryProxy(occPlane2, out occProxyPlaneObj);
WorkPlaneProxy occPlane2Proxy = (WorkPlaneProxy)occProxyPlaneObj;
occObj.CreateGeometryProxy(occPlane3, out occProxyPlaneObj);
WorkPlaneProxy occPlane3Proxy = (WorkPlaneProxy)occProxyPlaneObj;
//Add constraints
asmCompDef.Constraints.AddMateConstraint(mainAssemblyPlane1, occPlane1Proxy, 0, InferredTypeEnum.kNoInference, InferredTypeEnum.kNoInference, null, null);
}
catch (Exception ex)
{
txtStatus.AppendText("Exception: " + ex.Message + "\r\n");
txtStatus.AppendText("StackTrace: " + ex.StackTrace.ToString() + "\r\n");
}
}
Thanks in advace,
Karthikeyan.
Solved! Go to Solution.