基于C#语言进行SW二次开发示例
利用C#语言对SW进行二次开发,本文创建WPF程序,实现了对圆柱体的参数化设计
1、通过solidworks API帮助文档,可以知道SldWorks对象既代表了SOLIDWORKS
程序,对文档进行的打开,关闭和保存等操作都来自于此对象的属性和方法,因此该对象的SOLIDWORKS二次开的发所需要获取的第一个对象,SldWorks对象在命名空间SolidWorks.Interop.sldworks下,在使用该接口时需要引用此命名空间。此外由于需要引用SOLIDWORKS的枚举对象,故还需要引用SolidWorks.Interop.swconst。
2、如何将上述对应的DLL文件添加到程序项目中,以SW2018为例,我们需要首先手动安装SOLIDWORKS API SDK文件,该文件在安装包apisdk文件夹下,,直接双击安装即可,安装完成后,可在安装程序的文件夹SOLIDWORKS\api\redist下能找到SolidWorks.Interop.sldworks.dll和SolidWorks.Interop.swconst.dll,将其添加到引用中即可。

3、添加完成后,即可在头文件中引用
4、创建wpf界面

5、对于button1——打开SW添加事件click,button2——绘制三维图添加事件click,
返回主程序,编写打开和绘制的程序
using System;
using System.Windows;
using SolidWorks.Interop.sldworks;namespace cylinder
{/// /// MainWindow.xaml 的交互逻辑/// public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}private void Button1_Click(object sender, RoutedEventArgs e){SldWorks SWAPP = new SldWorks();int error = 0;int warning = 0;string filepath1 = @"E:\摆线齿轮减速器\零件2.SLDPRT";SWAPP.OpenDoc6(filepath1,1,1,"",error,warning);SWAPP.Visible = true;}private void Button2_Click(object sender, RoutedEventArgs e){string rs = Textbox1.Text;string ls = Textbox2.Text;double r = Convert.ToDouble(rs)/1000;double l = Convert.ToDouble(ls)/1000;ModelDoc2 swDoc = null;SldWorks swApp = new SldWorks();ModelDoc2 swModel = default(ModelDoc2);swModel = (ModelDoc2)swApp.ActiveDoc;swDoc = ((ModelDoc2)(swApp.ActiveDoc));bool boolstatus = false;boolstatus = swDoc.Extension.SelectByID2("前视基准面", "PLANE", 0, 0, 0, false, 0, null, 0);swDoc.SketchManager.InsertSketch(true);swDoc.ClearSelection2(true);SketchSegment skSegment = null;skSegment = ((SketchSegment)(swDoc.SketchManager.CreateCircle(0, 0, 0,r, 0, 0)));swDoc.ClearSelection2(true);swDoc.SketchManager.InsertSketch(true);// // Named ViewswDoc.ShowNamedView2("*上下二等角轴测", 8);swDoc.ViewZoomtofit2();Feature myFeature = null;myFeature = ((Feature)(swDoc.FeatureManager.FeatureExtrusion2(true, false, false, 0, 0, l, l, false, false, false, false, 0.017453292519943334, 0.017453292519943334, false, false, false, false, true, true, true, 0, 0, false)));swDoc.ISelectionManager.EnableContourSelection = false;}public SldWorks swApp;}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
