基于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
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    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 View
            swDoc.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;
    }
}
  • 4
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值