Solidworks二次开发入门教程:运用VB语言实现二次开发Visual Basic(简称为VB)是一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows 环境下的各类应用程序。
它简单易学、效率高,且功能强大可以与Windows 专业开发工具SDK相媲美。
在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(O LE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。
随着版本的提高,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上开发性能超群的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) 联机帮助功能VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO 连接数据库,或者轻松的创建ActiveX控件。
它不像高级语言Visual C++那麽复杂,但它的功能很全,程序员可以轻松的使用VB提供的组件进行二次开发,快速建立属于自己的应用程序。
2 利用VB实现圆台交互式绘制的实现过程2.1 启动VB程序启动VB程序,VB6.0的主窗口如图1所示,可以直观地看到主窗体主要有以下部分组成:标题栏;菜单栏;工具栏;窗体设计器;控件(工具)箱;弹出式(上下文)菜单;工程管理器窗口;属性窗口;对象浏览器;对象浏览器及窗体布局窗口。
建立一个新的标准EXE工程文件,对其进行重命名保存,重命名为"圆台绘制",将Form窗体文件重命名保存为"交互式圆台绘制",如图2所示。
特别需要注意的一点是:在标题栏显示的当前的工程名及窗体名是通过修改属性窗口中"名称"属性及"caption"属性得以实现的,与实际的工程名及窗体名并无直接联系,实际的工程名及窗体名是通过诸如"(圆台绘制.vbp)"形式体现出来的。
图1 VB6.0主窗口图2 重命名操作后的工程资源管理器2.2 引用Solidworks类型库文件要操作SW对象,那么添加SW引用是必不可少的。
在VB里添加引用,单击菜单栏中【工程】【引用】命令,选择"SolidWorks exposed Type Libraries For add-in Use"(SolidWorks插件库文件)、"Soli dWorks 2007 Type Libray"(SolidWorks库文件)和"SolidWorks Consant Type library"(SolidW orks常数库),如图3所示。
本文其实只用到了"SolidWorks 2007 Type Libray"(SolidWorks库文件),但为了方便以后的程序扩展,将上述三种常用库文件一并添加。
图3 引用SolidWorks类型库2.3 编辑窗体界面(1)拖动工具箱组件板上的Lable控件、TextBox控件及CommandButton控件到Form上。
(2)接下来在属性窗口将Lable1、Lable2的属性分别设置为"圆台半径:"、"圆台高度:";将Com mandButton1、CommandButton2的属性分别设置为"启动SolidWorks交互式绘图"、"退出SolidWo rks软件"。
编辑后的窗体界面如图4所示。
图4 编辑后窗体界面2.4编程实现在VB编程环境下,引用单元文件,创建相关函数及编写事件处理过程,实现程序功能。
绘制圆台的详细程序代码及其注释如下所示:Private Sub Command1_Click()Dim swapp As ObjectDim part As ObjectDim boolstatus As Boolean"定义接口Set swapp = CreateObject("SldWorks.Application")Set part = swapp.NewPart()swapp.Visible = True"获取solidworks软件接口并新建一个零件文件part.InsertSketch2 Trueboolstatus = part.Extension.SelectByID("前视", "PLANE", 0, 0, 0, False, 0, Nothing)part.InsertSketch2 Truepart.CreateCircle 0, 0, 0, 0, Val(R.Text) / 10005, 0part.ShowNamedView2 "*上下二等角轴测", 8part.FeatureManager.FeatureExtrusion True, False, False, 0, 0, Val(H.Text) / 1000, 0.01, Fal se, False, False, False, 0, 0, False, False, False, False, 1, 1, 1"建立模型End Sub点击"启动SolidWorks交互式绘图"后,程序调用SolidWorks自动绘制的圆台三维图如图5所示。
可交互式修改参数,直至达到满意的效果。
操作完成后点击"退出SolidWorks环境"可以自动关闭并退出So lidWorks环境。
图5 交互式绘图后结果3 小结本文同样以一个简单实例的实现过程为例,采用VB语言编制了相关程序,详细介绍了二次开发的具体实现过程,给出了重要文件的引用、属性设置、接口程序的编制和事件处理等过程的完整代码。
通过上述实例的实现过程,可以看出:VB语言简单易学,学习过程中很容易上手;功能齐全,程序员可以轻松的使用VB提供的组件进行二次开发,快速建立属于自己的应用程序,在其各项高效强大集成功能的支持下,最终可方便快速地完成二次开发任务。
参照连载1中的通过宏录制实现的二次开发过程,可以清楚地看到,利用VB二次开发实现圆台绘制的具体命令源代码不需要自己编写,可以直接对宏录制的相关源码拷贝过来加以利用即可,只需要修改其中的相关变量参数诸如Val(R.Text)即可,易于实现,减轻了程序员的工作量,提高了程序的开发速度。
简单说明SolidWorks API的应用本文通过介绍“自定义属性”这个程序的开发和使用过程,来简单地说明SolidWorks API的应用,希望起到抛砖引玉的作用。
SolidWorks API是SolidWorks的OLE应用程序开发接口,用户可以利用它和支持OLE编程的开发工具,如VB、VBA(Excel,Access)、C、VC++等对SolidWorks进行二次开发,建立适合用户需要的、专用的SolidWorks 功能模块。
一、问题的提出大多数工程图纸的标题栏中应该包括一些基本的设计信息,如零件名称、零件代号、材料以及设计人员和设计日期等,其中,零件的名称、代号、材料、数量、重量及一些重要的后处理要求等信息还应该出现在装配图的材料明细表(BOM)中。
这些内容如果在工程图中一一进行编写和修改,其工作量是很大的,并且这种处理方法也不利于保证设计信息的一致性,对模型文件(零件或装配体文件)和图纸文件的管理来讲是脱节的。
SolidWorks是一个全相关的三维机械设计软件,模型文件中的设计数据,如尺寸、注释、文件属性等内容与工程图相关,因此,我们在处理上述工程图标题栏和材料明细表中的设计数据时,应该将这些内容保存在模型文件中,并且自动显示在工程图相应的位置上。
当需要对工程图中的内容进行修改时,直接修改模型文件中的相应数据即可实现。
这样的处理方法不仅保证了设计信息的一致性,而且可以大大提高设计效率。
根据这个设想,笔者将这些设计信息进行了归纳,并将它们作为模型文件的自定义属性保存在模型文件指定配置的属性(在Solid Works中,选择菜单“文件→属性”,单击“指定配置”标签,如图1所示)中,针对模型文件指定配置的这些属性可以自动带入到工程图的标题栏和材料明细表。
对于材料明细表模板进行修改或建立新的明细表模板就可以在装配图中的材料明细表中显示所需要的设计信息(工程图格式文件的定义和材料明细表模板的定义,请参阅《SolidWorks2001中文版实用技术精粹》一书)。
因此,无论何时需要修改设计信息,只需在SolidWorks中打开相应的模型文件,修改指定配置属性即可。
然而,即使采用这样的处理方法,在修改文件当前配置属性时仍然显得有些繁琐,能否为S olidWorks建立一个工作界面,可以更加方便地添加和修改这些信息就成了问题的关键。
二、自定义属性Cpbom 为了更大程度地提高工作效率,我们利用VB6.0通过SolidWorks API建立了自定义属性设置程序——Cpbom,这个程序通过一个对话界面直接对当前模型文件的当前配置进行添加或修改,其基本功能如下:☆针对配置添加模型文件的自定义属性;☆设置的项目包括:零件代号、材料名称、后处理、设计者姓名、设计日期;☆确定自定义属性后,自动保存文件;如当前文件还没有保存,提示文件保存路径和文件名称;☆针对装配文件,可以选择是否删除“材料”和“后处理”两个属性。