《2022年Solidworks二次开发入门教程[VB实现] .pdf》由会员分享,可在线阅读,更多相关《2022年Solidworks二次开发入门教程[VB实现] .pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Solidworks二次开发入门教程:运用VB 语言实现二次开发Visual Basic (简称为 VB)是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows 环境下的各类应用程序。它简单易学、效率高,且功能强大可以与Windows 专业开发工具 SDK 相媲美。在 Visual Basic 环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用 Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC )等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的
2、应用软件系统。随着版本的提高,Visual Basic 的功能也越来越强。5.0 版以后, Visual Basic 推出了中文版,与前个版本相比,其功能有了很大提升。Visual Basic 6.0 作为 Visual Studio 6.0 的优秀一员,已成为企业级快速开发的利器。Visual Basic 6.0 在数据访问方面有了很大的改进,新的 ADO 组件让对大量数据快速访问成为可能。数据环境和新的报表功能也让数据开发有了全新的体验。Visual Basic 借助 COM/COM+强大的功能, 可以开发具有多层结构的分布式应用程序。同时,Visual Basic 还可以在 IIS 上开
3、发性能超群的Web 应用程序。 Visual Basic 6.0 在语言方面和IDE 方面的改进都不大,但是许多新增的组件成为Visual Basic 开发人员手中的利器,如File System Object等。新的字符串函数Split 和 Replace 等也给 Visual Basic 的程序员带来很大方便。Visual Basic 6.0 具有下述优点 : (1) 面向对象(2) 事件驱动(3) 软件的集成式开发(4) 结构化的程序设计语言(5) 强大的数据库访问功能(6) 支持对象的链接与嵌入技术(7) 网络功能(8) 多个应用程序向导(9) 支持动态交换、动态链接技术(l0) 联机
4、帮助功能VB 拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO 、RDO 、ADO连接数据库,或者轻松的创建ActiveX控件。它不像高级语言Visual C+ 那麽复杂,但它的功能很全,程序员可以轻松的使用VB 提供的组件进行二次开发,快速建立属于自己的应用程序。2 利用 VB 实现圆台交互式绘制的实现过程2.1 启动 VB 程序启动 VB 程序, VB6.0 的主窗口如图1 所示,可以直观地看到主窗体主要有以下部分组成:标题栏;菜单栏;工具栏;窗体设计器;控件(工具)箱;弹出式(上下文)菜单;工程管理器窗口;属性窗口;对象浏览器;对象浏览器及窗体布局窗口。名
5、师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - 建立一个新的标准EXE 工程文件,对其进行重命名保存,重命名为圆台绘制 ,将 Form 窗体文件重命名保存为 交互式圆台绘制,如图 2 所示。特别需要注意的一点是:在标题栏显示的当前的工程名及窗体名是通过修改属性窗口中名称 属性及 caption属性得以实现的,与实际的工程名及窗体名并无直接联系,实际的工程名及窗体名是通过诸如(圆台绘制 .vbp )形式体现出来的。图 1 VB6.
6、0 主窗口图 2 重命名操作后的工程资源管理器名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 2.2 引用 Solidworks类型库文件要操作 SW 对象,那么添加SW 引用是必不可少的。在VB 里添加引用,单击菜单栏中【工程】【引用】命令,选择 SolidWorks exposed Type Libraries For add-in Use(SolidWorks插件库文件 )、SolidWorks 2007 Type Li
7、bray (SolidWorks库文件)和 SolidWorks Consant Type library (SolidWorks 常数库), 如图 3 所示。本文其实只用到了SolidWorks 2007 Type Libray (SolidWorks库文件),但为了方便以后的程序扩展,将上述三种常用库文件一并添加。图 3 引用 SolidWorks类型库2.3 编辑窗体界面(1)拖动工具箱组件板上的Lable 控件、 TextBox控件及 CommandButton控件到 Form 上。(2)接下来在属性窗口将Lable1 、Lable2 的属性分别设置为圆台半径: 、圆台高度: ;将 C
8、ommandButton1、CommandButton2的属性分别设置为启动 SolidWorks交互式绘图 、退出 SolidWorks 软件 。编辑后的窗体界面如图4 所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - 图 4 编辑后窗体界面2.4 编程实现在 VB 编程环境下,引用单元文件,创建相关函数及编写事件处理过程,实现程序功能。绘制圆台的详细程序代码及其注释如下所示:Private Sub Command1_C
9、lick() Dim swapp As Object Dim part As Object Dim boolstatus As Boolean 定义接口Set swapp = CreateObject(SldWorks.Application) Set part = swapp.NewPart() swapp.Visible = True 获取 solidworks软件接口并新建一个零件文件part.InsertSketch2 True boolstatus = part.Extension.SelectByID(前视 , PLANE, 0, 0, 0, False, 0, Nothing)
10、part.InsertSketch2 True part.CreateCircle 0, 0, 0, 0, Val(R.Text) / 10005, 0 part.ShowNamedView2 * 上下二等角轴测, 8 part.FeatureManager.FeatureExtrusion True, False, False, 0, 0, Val(H.Text) / 1000, 0.01, False, False, False, False, 0, 0, False, False, False, False, 1, 1, 1 建立模型End Sub 点击 启动 SolidWorks交互式
11、绘图 后,程序调用SolidWorks自动绘制的圆台三维图如图5 所示。可交互式修改参数,直至达到满意的效果。操作完成后点击退出 SolidWorks环境 可以自动关闭并退出SolidWorks环境。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - 图 5 交互式绘图后结果3 小结本文同样以一个简单实例的实现过程为例,采用VB 语言编制了相关程序,详细介绍了二次开发的具体实现过程,给出了重要文件的引用、属性设置、接口程序的编制和
12、事件处理等过程的完整代码。通过上述实例的实现过程,可以看出:VB 语言简单易学,学习过程中很容易上手;功能齐全,程序员可以轻松的使用 VB 提供的组件进行二次开发,快速建立属于自己的应用程序,在其各项高效强大集成功能的支持下,最终可方便快速地完成二次开发任务。参照连载 1 中的通过宏录制实现的二次开发过程,可以清楚地看到,利用VB 二次开发实现圆台绘制的具体命令源代码不需要自己编写,可以直接对宏录制的相关源码拷贝过来加以利用即可,只需要修改其中的相关变量参数诸如Val(R.Text) 即可,易于实现,减轻了程序员的工作量,提高了程序的开发速度。名师资料总结 - - -精品资料欢迎下载 - -
13、- - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - 简单说明 SolidWorks API的应用本文通过介绍“自定义属性”这个程序的开发和使用过程,来简单地说明SolidWorks API 的应用,希望起到抛砖引玉的作用。SolidWorks API 是 SolidWorks的 OLE 应用程序开发接口, 用户可以利用它和支持OLE 编程的开发工具,如 VB 、VBA(Excel,Access)、C、VC+ 等对 SolidWorks进行二次开发,建立适合用户需要的、专用的 So
14、lidWorks 功能模块。一、问题的提出大多数工程图纸的标题栏中应该包括一些基本的设计信息,如零件名称、零件代号、材料以及设计人员和设计日期等,其中,零件的名称、代号、材料、数量、重量及一些重要的后处理要求等信息还应该出现在装配图的材料明细表(BOM) 中。这些内容如果在工程图中一一进行编写和修改,其工作量是很大的,并且这种处理方法也不利于保证设计信息的一致性,对模型文件(零件或装配体文件)和图纸文件的管理来讲是脱节的。SolidWorks是一个全相关的三维机械设计软件,模型文件中的设计数据,如尺寸、注释、文件属性等内容与工程图相关,因此,我们在处理上述工程图标题栏和材料明细表中的设计数据时
15、,应该将这些内容保存在模型文件中,并且自动显示在工程图相应的位置上。当需要对工程图中的内容进行修改时,直接修改模型文件中的相应数据即可实现。这样的处理方法不仅保证了设计信息的一致性,而且可以大大提高设计效率。根据这个设想,笔者将这些设计信息进行了归纳,并将它们作为模型文件的自定义属性保存在模型文件指定配置的属性(在 SolidWorks中,选择菜单“文件属性”,单击“指定配置”标签,如图1 所示 )中,针对模型文件指定配置的这些属性可以自动带入到工程图的标题栏和材料明细表。对于材料明细表模板进行修改或建立新的明细表模板就可以在装配图中的材料明细表中显示所需要的设计信息 (工程图格式文件的定义和
16、材料明细表模板的定义,请参阅SolidWorks2001中文版实用技术精粹一书 )。因此,无论何时需要修改设计信息,只需在SolidWorks中打开相应的模型文件,修改指定配置属性即可。然而,即使采用这样的处理方法,在修改文件当前配置属性时仍然显得有些繁琐,能否为SolidWorks建立一个工作界面,可以更加方便地添加和修改这些信息就成了问题的关键。二、自定义属性Cpbom 为了更大程度地提高工作效率,我们利用 VB6.0 通过 SolidWorks API 建立了自定义属性设置程序Cpbom ,这个程序通过一个对话界面直接对当前模型文件的当前配置进行添加或修改,其基本功能如下: 针对配置添加
17、模型文件的自定义属性; 设置的项目包括:零件代号、材料名称、后处理、设计者姓名、设计日期; 确定自定义属性后,自动保存文件;如当前文件还没有保存,提示文件保存路径和文件名称; 针对装配文件,可以选择是否删除“材料”和“后处理”两个属性。本程序利用VB 进行编译生成可执行文件。 自定义属性界面“自定义属性” 程序就是通过SolidWorks API 对当前模型文件中当前配置名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - 的自定义
18、属性的名称和值进行“读”和“写”的操作,程序非常简单,这里介绍一下该程序中用到的一些SolidWorks API 的对象和方法。1.SolidWorks对象这里指的是SolidWorks API 的最高级别的对象。通过该对象可以控制SolidWorks 软件的执行或退出,以及SolidWorks文件的建立、打开、关闭等操作。在VB 中利用 CreateObject方法来获得 SolidWorks对象,利用该对象的activedoc方法可以获得当前SolidWorks文件对象,文件对象为空时,表示SolidWorks 没有打开任何文件。Dim swApp As ObjectDim activeD
19、ocument As ObjectSet swApp=CreateObject(SldWorks.Application) Set activeDocument = swApp.activedocIf (activeDocument Is Nothing) Then Dim Msg, Style, title Style = vbExclamation title = 模型自定义属性 Msg = 请首先打开一个Solidworks模型文件 Call MsgBox(Msg, Style, title) Display error message End End If 2.获取当前文件信息自定义属
20、性程序是对模型文件设置自定义属性,与工程图文件无关,因此需要利用 GetType方法获得当前文件的类型,并利用 Gettitle()方法和 Getpathname()方法获得当前文件的名称和存盘路径。Dim docType As LongDim docName As StringDim filename As StringDim FilePath as StringdocType = activeDocument. GetTypeIf (docType = swDocPART) Then docName = 零件 With CPbomfrm .deldescription.Enabled =
21、False .delmaterial.Enabled = FalseEnd With Picture5.Picture = Picture3.Picture ElseIf (docType = swDocASSEMBLY) Then docName = 装配 Picture5.Picture = Picture2.Picture 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - ElseIf (docType = swDocDR
22、AWING) Then Style = vbExclamation Msg = 当前文件是工程图文件,请打开零件或装配文件 Call MsgBox(Msg, Style, title) Display error message End End If filename = activeDocument.GETTITLE() FilePath = activeDocument.getpathname() 3.获取文件配置名称SolidWorks API 提供了按照配置名称访问自定义属性的方法CustomInfo2(读取自定义属性的值)、deletecustominfo2(删除指定的自定义属性)、
23、ADDcustominfo3(添加自定义属性的名称和参数值),这些方法都要求指定文件的配置名称。因此,为了对当前模型文件和当前配置设定自定义属性,必须首先要获得当前配置的名称,利用GetActiveConfiguration()方法可以获得当前模型文件配置的对象,并利用Name方法获得当前配置的名称。Dim ConfName As StringSet CurCFG = activeDocument.GetActiveConfiguration() ConfName = CurCFG.Name 4.按照配置访问自定义属性在本程序中,笔者对于指定配置的属性设置按照如下的步骤:(1)按照配置名称读取
24、文件中的自定义属性值,并赋值于相应的文本框; (2)判定当前文件和当前配置是否已经改变,如其中之一发生变化,则提示错误信息; (3)根据配置名称删除指定的自定义属性; (4)将相应文本框中的内容按照配置名称添加到模型文件自定义属性名称和参数值。下面对上述控制配置自定义属性的三种方法加以介绍。 CustomInfo2:获取或设置当前文档指定配置的自定义属性的值。value = ModelDoc.CustomInfo2 (configuration, fieldName) 其中, configuration为配置名称 ; fieldName为自定义属性的名称。 deletecustominfo2:
25、删除当前文档指定配置的自定义属性的值名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - - - retval = ModelDoc.DeleteCustomInfo2(configuration, FieldName ) ADDcustominfo3:向当前文档中指定的配置添加自定义属性以及值retval = ModelDoc.AddCustomInfo3 ( configuration, FieldName, FieldType, Fi
26、eldValue ) 其中, FieldType为自定义属性的类型;FieldValue为自定义属性的值。下面这段代码是单击“确定”的子程序,为了简单,只给出了其中一个自定义属性的处理过程。Private Sub cmd_OK_Click()On Error GoTo ERR_91 Dim swApp2 As ObjectDim activeDocument2 As ObjectDim curcfg2 As ObjectDim cfgname2 As StringDim retval As BooleanSet swApp2 = CreateObject(SldWorks.Applicatio
27、n) Set activeDocument2 = swApp2.activedoc Set curcfg2 = activeDocument2.GetActiveConfiguration() cfgname2 = curcfg2.Name 判断文件或配置是否改变,如改变,则提示错误。If cfgname2 = ConfName And FilePath = activeDocument2.getpathname() Then 删除属性设置retval = activeDocument2.deletecustominfo2(ConfName, PartID) 添加属性retval = acti
28、veDocument2.ADDcustominfo3(ConfName, PartID, swCustomInfoText, frmPartID) 保存文件retval = activeDocument2.Save() Else Style = vbExclamation title = 模型自定义属性 Msg = 错误:打开的文件或配置已经改变! & Chr(10) & 请重新执行本程序 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - -
29、- - - Call MsgBox(Msg, Style, title) End End IfERR_91: Style = vbExclamation title = 模型自定义属性 Msg = 程序运行错误,文件可能已经关闭 & Chr(10) & 自定义属性无法添加,单击确定退出! Call MsgBox(Msg, Style, title) End End Sub 三、在 SolidWorks界面中执行应用程序对于使用VB 编译的 EXE、DLL 文件,目前SolidWorks还不能直接支持这些文件作为插件使用,如果要在SolidWorks 中直接调用通过VB 编译的可执行程序,可以使
30、用 SolidWorks“宏”操作来进行。利用“宏”在 SolidWorks界面中添加指定的应用程序后,就好像SolidWorks调用了自身的功能一样,利用类似的方法, 可以在 SolidWorks添加任何可执行的文件。下面利用“自定义属性” 程序来说明一下步骤。1.建立“宏”文件在 SolidWorks中,我们利用录制并修改 “宏”的方法来建立所需要的“宏”文件。主要步骤如下:(1)选择菜单“工具宏操作录制”。(2)停止录制,并保存宏文件。给定文件名称,如:Cpbom.swp。(3)选择菜单“工具宏操作编辑”,把Cpbom.swp “宏”文件录制的内容全部删除,并输入下面的内容。Sub ma
31、in()MyAppID = Shell(C:Program FilesCPbomCPbom.exe, 1) AppActivate MyAppID End Sub (4)保存并退出宏编辑,返回到SolidWorks环境。2.指定“宏”操作在SolidWorks中可以指定宏命令的文件位置,并定制工具栏,将所执行的宏操作按钮添加到指定的位置上。(1)选择菜单“工具自定义宏”,在“自定义”对话框中单击“宏”标签。(2)参考图 4 的内容添加宏,单击“应用”完成。(3)在“自定义”对话框中单击“命令”标签,从“类别”列表框中选择“宏”,将所定义的宏(第 1个)的图标按钮拖到相应的工具栏中,如图5 所示
32、。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - (4)单击“确定”按钮,完成宏定义和工具栏定义。3.执行应用程序定义“宏”以后,单击相应的图标就可以在SolidWorks 中直接执行应用程序。在 SolidWorks中执行应用程序四、总结笔者利用这个“自定义属性”程序,明显提高了工作效率。需要说明的是, SolidWorks API 的对象和方法十分丰富,涵盖了所有SolidWorks数据模型,这里介绍的只冰山之一角。另外,程序中提及的自定义属性与企业的要求有关,根据自己的需要开发适合需要的自定义属性设置程序。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -