//// CATIA 관련 함수 public bool InitializeCATIA(string filePath, int mode) { try { cApp = (INFITF.Application)Marshal.GetActiveObject("CATIA.Application"); } catch { cApp = (INFITF.Application)Activator.CreateInstance(Type.GetTypeFromProgID("CATIA.Application")); } if (cApp == null) { return(false); } cDocs = cApp.Documents; if (mode == 0) { cPartDoc = (MECMOD.PartDocument)cDocs.Read(filePath); } else if (mode == 1) { cPartDoc = (MECMOD.PartDocument)cDocs.Add("Part"); } cApp.Visible = true; cPart = cPartDoc.Part; cBodies = cPart.Bodies; cFactory = cPart.ShapeFactory; cShapeFactory = (PARTITF.ShapeFactory)cFactory; cHybridShapeFactory = (HybridShapeTypeLib.HybridShapeFactory)cPart.HybridShapeFactory; cCurrentBody = cBodies.Item(1); cShapes = cCurrentBody.Shapes; cSketches = cCurrentBody.Sketches; cOriginalElements = cPart.OriginElements; if (ReferenceManager == null) { ReferenceManager = new Reference(this); } return(true); }
//// CATIA 관련 함수 public bool InitializeCATIA(string filePath, int mode) { /* * 어셈블리 특화 함수 구현 */ try { cApp = (INFITF.Application)Marshal.GetActiveObject("CATIA.Application"); } catch { cApp = (INFITF.Application)Activator.CreateInstance(Type.GetTypeFromProgID("CATIA.Application")); } if (cApp == null) { return(false); } cDocs = cApp.Documents; if (mode == 0) { cProductDoc = (ProductStructureTypeLib.ProductDocument)cDocs.Read(filePath); //CATProduct read } //cProductDoc = null; else if (mode == 1) { cProductDoc = (ProductStructureTypeLib.ProductDocument)cDocs.Add("Product"); //new CATProduct 생성 } cApp.Visible = true; cProduct = cProductDoc.Product; cProducts = cProduct.Products; cConstraints = (MECMOD.Constraints)cProduct.Connections("CATIAConstraints"); return(true); }