C# Solidworks二次开发------环境搭建与简单操作

1.前言

由于最近最近在使用solidworks,发现有些操作是比较重复,对于一个零件的修改可能只需要修改其中一个数据,经过查阅一些资料,发现其提供了一些API函数接口可以实现程序化绘图,所以开始了一些二次开发尝试。

2.说明

本人不是专家,也是在摸索当中,记录在操作中遇见的问题,文章中不对的地方,欢迎大家交流指正!!!

正文开始!!!

一、准备工作

软件:VS2019 + Solidworks2022(我是用的这两个,其他也可以)

辅助:有道翻译 + API帮助手册(Solidworks自带的)

二、基本搭建

VS的作用是提供一个我们可以调用API函数的一个载体,Solidworks是我们将API内容实现的工具

1.先使用VS创建项目

(1)使用VS创建项目 ----创建新项目

(2)我使用的是C#,选择的窗体应用

(3)项目名称:简单操作

保存位置:C:\Users\86136\Desktop\Solidworks -C#\  ---建议自己建一个文件夹,保存自己的练习

(4)创建好的界面如下

2.建立与Solidworks的连接

(1)右侧框中,右击引用,选择添加引用

(2)选择浏览,找到 SolidWorks.Interop.sldworks.dll、SolidWorks.Interop.swconst.dll

(3)勾选,确定即可

(4)添加成功后引用中会显示

(5)双击空白处,或者新建一个按键双击

(6)添加如下所示

3.开始画图

根据前面的操作我们已经完成一大半了,下面就开始我们想要的操作,比如画个圆柱,下面我将使用解读API帮助手册+宏录制的方法相互结合

(1)理解画图:我们要画一个圆柱,我们的手动画图的操作步骤:

新建一个空白零件--选择前视基准面---草图绘制---选择圆形---确定位置与尺寸---拉伸凸台---确定拉伸长度,这样一个圆柱就绘制好了

(2)使用程序绘图,也是和手工绘图一样,按照这个思路进行即可,在操作之前,先看一个图(记住这个图,后面我会反复使用):

由图中我们可以发现,一切的起点均是ISldWorks,我们也可以点开API帮助手册

发现要操作API函数,第一个是先拿下ISldWorks,此处接口的使用有很多种声明,我写一个我常用的

 ISldWorks swApp = Activator.CreateInstance(Type.GetTypeFromProgID("SldWorks.Application")) as SldWorks;

(3)代码书写,这部分可以按照(2)中提到的整体框架+API帮助手册进行代码书写,或者使用宏录制,对于宏录制我个人是将其作为一个辅助的工具,对于简单的操作,宏录制一般没问题,但是复杂一点可能会存在录制不成功的情况,对于刚开始,我使用宏录制,然后根据宏录制的结果,进行逐一分析。

(4)宏录制:点击第三个就是开始录制

开始录制后第二个标志变成方形,若要结束,点击第二个即可

结束时,会弹出此界面,保存即可

录制完成后,点击如下,然后选择我们录制的代码即可

4.代码分析与书写

我们圆柱的录制如下,代码是VB语言,我们用的C#,所以在书写时会有所区别,但是调用的函数是一致的

代码分析

Dim swApp As Object

Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long

Sub main()

Set swApp = Application.SldWorks '就是创建一个最高领导,如上述框架图展示那样

Set Part = swApp.ActiveDoc '还是按照那个框架图,我们要操作的零件、装配体、工程图可以统一理解为一个文档,现在我们要操作文档就要获取其指挥权,在代码里面则是激活它
'下面大致就是按照我们手动绘图的流程进行
boolstatus = Part.Extension.SelectByID2("前视基准面", "PLANE", 0, 0, 0, False, 0, Nothing, 0) '选择基准面
Part.SketchManager.InsertSketch True '插入草图
Part.ClearSelection2 True '清除所选中面
Dim skSegment As Object
Set skSegment = Part.SketchManager.CreateCircle(0#, 0#, 0#, -0.015062, 0.029713, 0#) '圆形绘制,CreateCircle,Creat Circle,创建一个圆,很多函数大致都是如此拼接的

' 下面这两句是调整视角
Part.ShowNamedView2 "*上下二等角轴测", 8
Part.ViewZoomtofit2

'下面部分是进行凸台拉伸
Dim myFeature As Object
Set myFeature = Part.FeatureManager.FeatureExtrusion2(True, False, False, 0, 0, 0.05, 0.05, False, False, False, False, 1.74532925199433E-02, 1.74532925199433E-02, False, False, False, False, True, True, True, 0, 0, False)
Part.SelectionManager.EnableContourSelection = False
End Sub

5.使用VS复现

在这里我将会结合API帮助手册

(1)新加一个创建零件的代码,打开API帮助手册,找到老大ISldWorks界面,关注两个地方,Members和下面的C#例子(其他也是如此),我们进行Members界面,在里面寻找一下

我们要新建零件,新---new,零件---Part,大概猜测一下NewPart,往下寻找,就会发现存在,然后点进去看看是否是我们想要的,但根据后面提示,这个方法过时了,后面有新的方法,但是还可以使用(有的好像不行,没有研究过),我这任然用它

  swApp.NewPart();//新建零件

(2)激活,无论是看图分析还是宏录制,都会发现需要激活,而且出现了第二个领导IModeDoc2

 ModelDoc2 Part = swApp.ActiveDoc;//激活ModelDoc2,激活需要上一层激活

(3)激活后我们就获得了文档的操作权限,我们先点开其Members,这里面我们会用到很多东西

(4)下一步就开始正式画图,按照画图步骤,选择基准面,这里可以根据宏录制提示进行操作

Part.Extension.SelectByID2("前视基准面", "PLANE", 0, 0, 0, fales, 0, null, 0);

(5)插入草图,草图---Sketch,Members中有一个SketchManger,草图管理,这就是我们对草图进行操作的入口,然后我们继续往里面挖,按照手动绘图顺序,插入草图,绘制圆

   Part.SketchManager.InsertSketch(true);//插入草图
   Part.SketchManager.CreateCircle(0 ,0 , 0 , 0 , 0.25 , 0);//绘制圆,这个函数API中有解释,基于圆心和圆上的一个点创建一个圆。

(6)然后就是拉伸,这个函数的参数太多了,就大家自己查询吧,我将其所有结合起来如下,这样一个直径500,拉伸50的圆柱就写好了

ISldWorks swApp = Activator.CreateInstance(Type.GetTypeFromProgID("SldWorks.Application"))as SldWorks; //创建最高领导swAPP
swApp.NewPart();
ModelDoc2 Part = swApp.ActiveDoc;//激活ModelDoc2,激活需要上一层激活
Part.SketchManager.InsertSketch(true);//插入草图
Part.SketchManager.CreateCircle(0 ,0 , 0 , 0 , 0.25 , 0);//绘制圆,这个函数API中有解释,基于圆心和圆上的一个点创建一个圆。
 //进行拉伸
Part.FeatureManager.FeatureExtrusion2(true, false, false, 0, 0, 0.05, 0.01, false, false, false, false, 1.74532925199433E-02, 1.74532925199433E-02, false, false, false, false, true, true, true, 0, 0, false);
       

(7)效果如下

到这对于基本的简单操作就结束了

  • 34
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值