第 5 章 总结与展望
3.2 SolidWorks API 层次结构图
3.1.3 系统开发工具
SolidWorks API 是基于 COM 组件技术构造的,SolidWorks 是通过 COM 技术为开发 人员提供了强大的二次开发接口,因此凡是支持 COM 编程的开发工具,如 Visual C++、
Visual Basic、Delphi 均可以用于 SolidWorks 二次开发[52]。COM 组件由接口和实现两部分 组成,支持如 Visual C++、Visual Basic、Delphi 一类常见的高级开发语言进行开发。这三 种语言也被 SolidWorks 二次开发的技术人员采用,其中 Visual Basic 相对于其他两种开发 语言,最大的优势是简单,容易上手。VB 上手简单,开发人员一般只需要具备基本的编
1 Public swApp As Object
2 Public Part As SldWorks.PartDoc
3 Const filedir As String "E:\solidworksfile\vb\API␣Training␣Templates\"
4 Set␣swApp␣=␣Application.SldWorks
5 Set␣Part␣=␣swApp.NewDocument(filedir␣+␣"newPart.PRTDOT",␣0,␣0,␣0)
前三行命令表示变量申明,后两行是调用 SolidWorks API 分别建立 VB 与 Solidwokrs 连接,以及从指定模板新建一个空的零件图
(1)基准面的选取:建立草图之前,要决定草图绘制所处的平面,当基准面已经存在 时,如默认的“上视基准面”等,只需要选取就可以了,但当所选定的绘制平面不存在时,
就需要绘制相应的基准面,以供草图命令或者实体镜像命令调用。VB 语言程序如下:
1 Public longstatus As Long, longwarnings As Long
2 boolstatus = Part.Extension.SelectByID2("右视基准面",_
3 "PLANE", 0, 0, 0, False, 0, Nothing, 0)
第一行命令为申明逻辑变量,第二行为调用 SolidWorks API SelectByID2, 选取右视基 准面。
(2)草图绘制:SolidWorks 建立实体特诊都是采用自下而上的方法实现造型的,即先有 特征轮廓,然后进行拉伸,扫略等特征命令实现三维体造型的。建立草图包括线段或曲线 的长度,角度信息,同时还有端点坐标信息,同时还必须包括线段之间的约束关系,即平 行,垂直,重合等拓扑关系。VB 语言程序如下:
1 Const PI As Double = 3.1415926
2 Const Alfa1 As Double = 135 / 180 * PI
15 Const L10 As Double = 0.05
16 Const L11 As Double = 0.07
17 Const L12 As Double = 0.06795
18 Const L13 As Double = 0.12017
19 Const L14 As Double = 0.33615
20 Const Dep1 As Double = 2
以上命令为定义草图特征参数,并赋值。
1 Part.SketchManager.InsertSketch True
2 Part.ClearSelection2 True
3 Dim skSegment As Object
4 Set skSegment = Part.SketchManager.CreateCenterLine(0, 1.1, 0, 0, -2.1, 0)
5 Part.ViewZoomtofit2 '试图调整
6 Set skSegment = Part.SketchManager.CreateLine(-0.8, 0.3, 0, -0.5, 0.3, 0)
7 Part.ClearSelection2 True
8 Set skSegment = Part.SketchManager.CreateLine(-0.5, 0.3, 0, -0.5, -0.2, 0)
9 Set skSegment = Part.SketchManager.CreateLine(-0.5, -0.2, 0, -0.4, -0.3, 0)
10 Set skSegment = Part.SketchManager.CreateLine(-0.4, -0.3, 0, -0.4, -0.4, 0)
11 Set skSegment = Part.SketchManager.CreateLine(-0.4, -0.4, 0, -0.5, -0.4, 0)
12 Set skSegment = Part.SketchManager.CreateLine(-0.5, -0.4, 0, -0.5, -0.5, 0)
13 Set skSegment = Part.SketchManager.CreateLine(-0.5, -0.5, 0, -0.4, -0.6, 0)
14 Set skSegment = Part.SketchManager.CreateLine(-0.4, -0.6, 0, -0.4, -0.7, 0)
15 Set skSegment = Part.SketchManager.CreateLine(-0.4, -0.7, 0, -0.5, -0.8, 0)
16 Set skSegment = Part.SketchManager.CreateLine(-0.5, -0.8, 0, -0.5, -0.9, 0)
17 Set skSegment = Part.SketchManager.CreateLine(-0.5, -0.9, 0, 0, -0.8, 0)
18 Set skSegment = Part.SketchManager.CreateLine(-0.8, 0.3, 0, -0.8, -0.5, 0)
19 Set skSegment = Part.SketchManager.CreateLine(-0.8, -0.5, 0, -1.3, -1., 0)
20 Set skSegment = Part.SketchManager.CreateLine(-1.3, -1.0, 0, -1.3, -1.8, 0)
21 Set skSegment = Part.SketchManager.CreateLine(-1.3, -1.8, 0, 0, -1.8, 0)
然后对草图尺寸赋值 VB 语言程序如下:
1 Part.ClearSelection2 True
2 boolstatus=Part.Extension.SelectByID2("Line2","SKETCHSEGMENT",_
3 0,0.4,0.7,False,0,Nothing, 0)
4 Dim myDisplayDim As Object
5 Set myDisplayDim = Part.AddDimension2(0, 0.5, 0.7)
6 Part.ClearSelection2 True
7 boolstatus = Part.Extension.SelectByID2("D1@草图1@零件1.SLDPRT",_
8 "DIMENSION", 0, 0.56, 0.7, False, 0, Nothing, 0)
9 Dim myDimension As Object
10 Set myDimension = Part.Parameter("D1@草图1")
11 myDimension.SystemValue = L1
12 Part.ClearSelection2 True
以上程序段的意思是,零件 1 草图 1 尺寸 D1 的长度为 L1,相应的对草图 1 的其他尺 寸进行赋值,在此就不赘述,详细程序见附录 1。草图 1 赋值后效果如图 3.3:
(3)建立特征:绘制草图完成之后,可以以草图为轮廓实现拉伸、切除等三维造型。
鞍架第一个特征为拉伸,分别是选中草图一,指定拉伸方向和拉伸距离。VB 语言程序如