《Solidworks的VB二次开发.ppt》由会员分享,可在线阅读,更多相关《Solidworks的VB二次开发.ppt(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SolidWorks二次开发基本知识SolidWorks提供了几百个API(Application Program Interface,应用程序接口),可以使用VB/VB/VC/Delphi等高级语言对SolidWorks进行二次开发,建立符合要求的、专用的SolidWorks功能模块VBAVBA(Visual Basic for ApplicationsVisual Basic for Applications)VBAVBA(Visual Basic for ApplicationsVisual Basic for Applications)是是19931993年由年由MicrosoftMi
2、crosoft推出的一种可以被多推出的一种可以被多种应用程序共享的、针对应用程序内部可种应用程序共享的、针对应用程序内部可编程的、通用的可视化应用程序编程语言。编程的、通用的可视化应用程序编程语言。VBAVBA是一套完整的应用程序开发环境,它为是一套完整的应用程序开发环境,它为用户和开发人员提供了一种应用程序间通用户和开发人员提供了一种应用程序间通用的应用程序语言,减少了学习时间和支用的应用程序语言,减少了学习时间和支持费用。持费用。在Microsoft Office中,所有的应用程序都可以使用VBA在SolidWorks中,VBA最常见的用途即是录制宏。几乎所有用键盘或菜单命令完成的动作均被
3、宏记录下来,然后对不同的数据进行(或播放)同一批操作。用用VB开发开发Solidworks的一般步骤的一般步骤SolidWorks的对象、方法很多,其中SldWorks对象有98种方法,ModelDoc对象有477种方法,通常,开发者先录制一段宏,然后将宏代码修改后复制到VB中去。用用VB开发开发Solidworks的一般步骤的一般步骤宏是一系列命令的集合,相当于Dos的批处理文件,可以通过录制使用SolidWorks用户界面执行的操作,然后使用SolidWorks宏重新执行这些操作。用用VB开发开发Solidworks的一般步骤的一般步骤打开宏录制打开宏录制1.在Solidworks中,应用
4、纪录宏(【工具】【宏操作】【录制】停止宏停止宏保存于文件夹保存于文件夹2.操作、停止并保存3.编辑宏VBA套零件的代码套零件的代码4.执行宏操作用用VB开发开发Solidworks的一般步骤的一般步骤将宏录制的代码照搬到VB,并不一定能够绘图,有时会出现错误,需进行修改。SolidWorks二次开发常用代码打开SolidWorks新文件SldWorks:NewPart:打开一个被自动命名的新零件SldWorks:NewDocment(模板名,图纸尺寸,用户纸宽,用户纸高):创建一个具有模板名的新文件SldWorks:NewAssembly:创建一个被自动命名的装配体文件SldWorks:New
5、Drawing2(模板类型,模板名,图纸尺寸,纸宽,纸高):创建一个新的具有模板或用户图纸的工程图文件,文件名被自动命名。保存和退出文件ModelDoc:SaveAs(文件名,版本信息,选项,.):用不同的名称保存文件ModelDoc:SaveAs2(文件名):用新名字保存文件SldWorks:ExitApp退出SolidWorks保存在当前路径:App.path&“文件名”其他代码ModelDoc2:InsertSketch2:开始/结束草图绘制ModelDoc2:ClearSelection():清除任何选择ModelDoc2.InsertKetchText(X坐标,Y坐标,Z坐标,文本,
6、文本的对齐方式):插入草图文本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连接SolidworksDim swApp As ObjectSet swApp=CreateObject(SldWorks.Application)Swapp.visible(true)连接Solidworks并新建自
7、动命名的零件模型文件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并新建自动命名的装配模型文件Dim swApp As ObjectDim nassembly As ObjectSet swApp=CreateObject(SldWorks.Application)Swapp.visible(tru
8、e)Set nassembly=swApp.Newassembly()连接Solidworks并新建工程图文件Dim swApp As ObjectDim pDrawing As ObjectSet swApp=CreateObject(SldWorks.Application)Set pDrawing=swApp.NewDrawing2(13,0,0.2794,0.2159)新建文件例题:Private Sub Command1_Click()Dim swApp As ObjectDim npart As ObjectSet swApp=CreateObject(SldWorks.Appli
9、cation)Swapp.visible(true)Set npart=swApp.Newpart()End SubPrivate Sub Command2_Click()Dim swApp As ObjectDim pDrawing As ObjectSet swApp=CreateObject(SldWorks.Application)Set pDrawing=swApp.NewDrawing2(13,0,0.2794,0.2159)End SubPrivate Sub Command3_Click()Dim swApp As ObjectDim nassembly As ObjectSe
10、t swApp=CreateObject(SldWorks.Application)Set nassembly=swApp.Newassembly()End Sub编程举例代码Private Sub Command1_Click()Dim swApp As ObjectDim Part As ObjectSet swApp=CreateObject(SldWorks.Application)swApp.Visible(True)Set Part=swApp.Newpart()Set Part=swApp.ActiveDocPart.InsertSketchPart.SketchRectangl
11、e 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.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.0174532925199
12、4,0,0,-1,0Part.ViewZoomtofit2End Sub 抽壳Modeldoc2:insertfeatureshelladdthicknessPrivate Sub Command1_Click()在前视面,以左下角为原点生成一个100 x100 x20的长方体对此长方体进行多厚度抽壳Dim swApp As ObjectDim Part As ObjectSet swApp=CreateObject(SldWorks.Application)Set Part=swApp.ActiveDocswApp.Visible(True)Set Part=swApp.newpart()P
13、art.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,0Part.SelectByMark 基体-拉伸,BODYFEATURE,0,0,0,0Part.AndSelectByMark,FACE,0.03,0.03,0,1 选择开放面?标号是1 选择两个有不等厚度的非开放面?标号是2Part.AndSelectByMark,FACE,0.09999999999991,0.0
14、4121560801519,-0.01272845167375,2Part.AndSelectByMark,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参数化
15、设计打开打开VB,建立工程并,建立工程并设计相应的窗体,设计相应的窗体,编写代码,调用编写代码,调用SolidWorksDim 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
16、,并并参数化绘图参数化绘图Option ExplicitDim swApp As ObjectDim Part As 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窗体添加预览图形代码窗体添加预览图形代码Private Sub Form_Load()Image1.Picture=LoadPicture(App.Path&套套.bmp)End Sub