《Solidworks的VB二次开发》由会员分享,可在线阅读,更多相关《Solidworks的VB二次开发(36页珍藏版)》请在金锄头文库上搜索。
1、SolidWorks二次开发基本知识,SolidWorks提供了几百个API(Application Program Interface,应用程序接口),可以使用VB/VB/VC/Delphi等高级语言对SolidWorks进行二次开发,建立符合要求的、专用的SolidWorks功能模块,VBA(Visual Basic for Applications),VBA(Visual Basic for Applications)是1993年由Microsoft推出的一种可以被多种应用程序共享的、针对应用程序内部可编程的、通用的可视化应用程序编程语言。VBA是一套完整的应用程序开发环境,它为用户和开
2、发人员提供了一种应用程序间通用的应用程序语言,减少了学习时间和支持费用。,在Microsoft Office中,所有的应用程序都可以使用VBA在SolidWorks中,VBA最常见的用途即是录制宏。几乎所有用键盘或菜单命令完成的动作均被宏记录下来,然后对不同的数据进行(或播放)同一批操作。,用VB开发Solidworks的一般步骤,SolidWorks的对象、方法很多,其中SldWorks对象有98种方法,ModelDoc对象有477种方法,通常,开发者先录制一段宏,然后将宏代码修改后复制到VB中去。,用VB开发Solidworks的一般步骤,宏是一系列命令的集合,相当于Dos的批处理文件,可
3、以通过录制使用SolidWorks用户界面执行的操作,然后使用SolidWorks宏重新执行这些操作。,用VB开发Solidworks的一般步骤,打开宏录制,1.在Solidworks中,应用纪录宏(【工具】 【宏操作】 【录制】,停止宏保存于文件夹,2.操作、停止并保存,3.编辑宏,VBA套零件的代码,4.执行宏操作,用VB开发Solidworks的一般步骤,将宏录制的代码照搬到VB,并不一定能够绘图,有时会出现错误,需进行修改。,SolidWorks二次开发常用代码,打开SolidWorks新文件SldWorks:NewPart:打开一个被自动命名的新零件SldWorks:NewDocme
4、nt(模板名,图纸尺寸,用户纸宽,用户纸高):创建一个具有模板名的新文件SldWorks:NewAssembly:创建一个被自动命名的装配体文件SldWorks:NewDrawing2(模板类型,模板名,图纸尺寸,纸宽,纸高):创建一个新的具有模板或用户图纸的工程图文件,文件名被自动命名。,保存和退出文件,ModelDoc:SaveAs(文件名,版本信息,选项,.):用不同的名称保存文件ModelDoc:SaveAs2 (文件名):用新名字保存文件SldWorks:ExitApp退出SolidWorks保存在当前路径:App.path & “文件名”,其他代码,ModelDoc2:Insert
5、Sketch2:开始/结束草图绘制ModelDoc2:ClearSelection():清除任何选择ModelDoc2.InsertKetchText(X坐标,Y坐标,Z坐标,文本,文本的对齐方式):插入草图文本Part.FeatureExtrusion(拉伸方向,终止1,终止2,拉深深度.)例:Part.FeatureExtrusion 1, 0, 1, 0, 0, 0.02, 0.02, 0, 0, 0, 0, 0.017, 0.017, 0, 0,其他代码,Mddeldoc:Featurecut4(单(双)向,反侧切除,方向1,终止1,终止2,切割深度1,切割深度2,拔模):,VB连接S
6、olidworks,Dim swApp As ObjectSet swApp = CreateObject(SldWorks.Application)Swapp.visible(true),连接Solidworks并新建自动命名的零件模型文件,Private Sub Command1_Click()Dim swApp As ObjectDim npart As ObjectSet swApp = CreateObject(SldWorks.Application)Swapp.visible(true)Set npart = swApp.Newpart()End Sub,连接Solidworks
7、并新建自动命名的装配模型文件,Dim swApp As ObjectDim nassembly As ObjectSet swApp = CreateObject(SldWorks.Application)Swapp.visible(true)Set nassembly = swApp.Newassembly(),连接Solidworks并新建工程图文件,Dim swApp As ObjectDim pDrawing As ObjectSet swApp = CreateObject(SldWorks.Application)Set pDrawing = swApp.NewDrawing2(1
8、3, , 0, 0.2794, 0.2159),新建文件例题:,Private Sub Command1_Click()Dim swApp As ObjectDim npart As ObjectSet swApp = CreateObject(SldWorks.Application)Swapp.visible(true)Set npart = swApp.Newpart()End SubPrivate Sub Command2_Click()Dim swApp As ObjectDim pDrawing As ObjectSet swApp = CreateObject(SldWorks.
9、Application)Set pDrawing = swApp.NewDrawing2(13, , 0, 0.2794, 0.2159)End SubPrivate Sub Command3_Click()Dim swApp As ObjectDim nassembly As ObjectSet swApp = CreateObject(SldWorks.Application)Set nassembly = swApp.Newassembly()End Sub,编程举例,代码,Private Sub Command1_Click()Dim swApp As ObjectDim Part A
10、s ObjectSet swApp = CreateObject(SldWorks.Application)swApp.Visible (True)Set Part = swApp.Newpart()Set Part = swApp.ActiveDocPart.InsertSketchPart.SketchRectangle 0, 0, 0, 0.1, 0.1, 0, 1Part.FeatureExtrusion 1, 0, 1, 0, 0, 0.02, 0.02, 0, 0, 0, 0, 0.01745329251994, 0.01745329251994, 0, 0,代码,代码,Part.
11、SelectByID 前视, PLANE, 0, 0, 0Part.InsertSketchPart.CreateCircle 0.05, 0.05, 0, 0.07, 0.07, 0Part.ShowNamedView2 *等轴测, 7Part.FeatureCut4 1, 0, 0, 0, 0, 0.02, 0.02, 0, 0, 0, 0, 0.01745329251994, 0.01745329251994, 0, 0, -1, 0Part.ViewZoomtofit2End Sub,抽壳,Modeldoc2:insertfeatureshelladdthickness,Private
12、 Sub Command1_Click()在前视面,以左下角为原点生成一个100x100x20的长方体对此长方体进行多厚度抽壳Dim swApp As ObjectDim Part As ObjectSet swApp = CreateObject(SldWorks.Application)Set Part = swApp.ActiveDocswApp.Visible (True)Set Part = swApp.newpart()Part.InsertSketchPart.SketchRectangle 0, 0, 0, 0.1, 0.1, 0, 1Part.FeatureExtrusion
13、 1, 0, 1, 0, 0, 0.02, 0.02, 0, 0, 0, 0, 0.01745329251994, 0.01745329251994, 0, 0,Part.SelectByMark 基体-拉伸, BODYFEATURE, 0, 0, 0, 0Part.AndSelectByMark , FACE, 0.03, 0.03, 0, 1 选择开放面?标号是1 选择两个有不等厚度的非开放面?标号是2Part.AndSelectByMark , FACE, 0.09999999999991, 0.04121560801519, -0.01272845167375, 2Part.AndSe
14、lectByMark , FACE, 0.05376383570518, 0.09999999999985, -0.01066374420634, 2 为每个面设置厚度Part.InsertFeatureShellAddThickness 0.005Part.InsertFeatureShellAddThickness 0.02 生成抽壳特征Part.InsertFeatureShell 0.001, 0Part.ShowNamedView2 *Isometric, 7Part.ViewZoomtofit2End Sub,参数化设计,打开VB,建立工程并设计相应的窗体,编写代码,调用Solid
15、WorksDim swApp As ObjectDim npart As Object 定义OLE对象变量,分别对应SldWorks和Part对象 Set swApp = CreateObject(SldWorks.Application)创建SldWorks对象,Set Part = swApp.ActivateDoc(Part1)在SolidWorks中创建一个新零件文件,零件名被自动命名Swapp.visible(true),从 Visual Basic 连接至 solidworks,并参数化绘图,Option ExplicitDim swApp As ObjectDim Part As
16、 ObjectDim D1 As DoubleDim D2 As DoublePrivate Sub Command1_Click()Set swApp = CreateObject(SldWorks.Application)Set Part = swApp.ActivateDoc(“Part1”)当前文件名Part.Parameter(D1草图1).SystemValue = Val(Text1.Text)Part.Parameter(D2草图1).SystemValue = Val(Text2.Text)Part.Parameter(D1拉伸1).SystemValue = Val(Text3.Text)Part.EditRebuildEnd Sub,