C# SolidWorks 二次开发 API — 装配零件与配合
只是简单的插入零件,浮动零件,做了一个重合关系。
距离的好像有点问题,待修复 。
private void btn_InsertPart_Click(object sender, EventArgs e)
{
//step1:生成一个新装配并保存.
ISldWorks swApp = Utility.ConnectToSolidWorks();
int errors = 0;
int warinings = 0;
if (swApp != null)
{
//通过GetDocumentTemplate 获取默认模板的路径 ,第一个参数可以指定类型
string partDefaultTemplate = swApp.GetDocumentTemplate((int)swDocumentTypes_e.swDocASSEMBLY, "", 0, 0, 0);
//也可以直接指定slddot asmdot drwdot
//partDefaultTemplate = @"xxx\..prtdot";
var newDoc = swApp.NewDocument(partDefaultTemplate, 0, 0, 0);
if (newDoc != null)
{
//下面获取当前文件
ModelDoc2 swModel = (ModelDoc2)swApp.ActiveDoc;
swModel.Extension.SaveAs(@"D:\09_Study\CSharpAndSolidWorks\CSharpAndSolidWorks\TemplateModel\TempAssembly.sldasm", 0, (int)swSaveAsOptions_e.swSaveAsOptions_Silent, "", ref errors, ref warinings);
//step2:打开已有零件
string myNewPartPath = @"D:\09_Study\CSharpAndSolidWorks\CSharpAndSolidWorks\TemplateModel\clamp1.sldprt";
swApp.OpenDoc(myNewPartPath, (int)swDocumentTypes_e.swDocPART);
//step3:切换到装配体中,利用面配合来装配零件.
AssemblyDoc assemblyDoc = swApp.ActivateDoc3("TempAssembly.sldasm", true, 0, errors);
swApp.ActivateDoc("TempAssembly.sldasm");
Component2 InsertedComponent = assemblyDoc.AddComponent5(myNewPartPath, 0, "", false, "", 0, 0, 0);
InsertedComponent.Select(false);
assemblyDoc.UnfixComponent();
//step4: 配合:
bool boolstatus = swModel.Extension.SelectByID2("Plane1", "PLANE", 0, 0, 0, false, 0, null, 0);
boolstatus = swModel.Extension.SelectByID2("Front Plane@clamp1-1@TempAssembly", "PLANE", 0, 0, 0, true, 0, null, 0);
int longstatus = 0;
//重合
assemblyDoc.AddMate5(0, 0, false, 0, 0.001, 0.001, 0.001, 0.001, 0, 0, 0, false, false, 0, out longstatus);
swModel.EditRebuild3();
swModel.ClearSelection();
//距离配合 :
boolstatus = swModel.Extension.SelectByID2("Plane2", "PLANE", 0, 0, 0, false, 0, null, 0);
boolstatus = swModel.Extension.SelectByID2("Top Plane@clamp1-1@TempAssembly", "PLANE", 0, 0, 0, true, 0, null, 0);
assemblyDoc.AddMate5((int)swMateType_e.swMateDISTANCE, (int)swMateAlign_e.swMateAlignALIGNED, true, 0.01, 0.01, 0.01, 0.01, 0.01, 0, 0, 0, false, false, 0, out longstatus);
}
}
}
posted @
2019-09-23 16:51
painezeng 阅读(
197) 评论(
0)
编辑
收藏
举报