APP下载

基于VB.NET的SolidWorks型钢库的二次开发*

2013-08-02王宏建

机械研究与应用 2013年1期
关键词:草图二次开发工字钢

程 芬,王宏建,滕 爽

(武汉纺织大学机械工程与自动化学院,湖北武汉 430073)

1 引言

型钢广泛应用在机械、建筑、航空航天等领域。在三维建模与设计中,一般同一系列的型钢具有相似的截面形状,利用三维软件绘制其截面草图并调用拉伸命令即可完成建模。常用型钢包括:角钢、槽钢、T型钢、H 型钢和工字钢等[1]。

SolidWorks(以下简称为SW)是一款功能强大的三维实体造型专用软件,提供了几百个API函数。这些API函数是其OLE和COM的接口,使用户能直接访问SW,并可利用VB等多种高级语言对其进行二次开发,从而建立适合用户需要的专用功能模块。对具有类似结构的零件进行反复设计和修改会使建模过程繁琐,因此对常用的同类型零件建立参数化设计模块,可实现零件自动建模,从而大大提高设计效率[2]。笔者以工字钢为例,简要介绍了基于COM规范的可生成插件(* .dll)方法的型钢库建立过程。通过友好的人机交互界面,设计人员只需输入相应的参数值就可完成型钢的建模。

2 SolidWorks二次开发原理及方法

SW二次开发是利用支持OLE和COM编程的开发平台,通过调用SW API函数来实现相应功能的开发,从而建立专用功能模块的过程。

2.1 SolidWorks API函数

SW API是SW的OLE应用程序开发接口,为用户提供完全面向对象的类体系。它包括对象的类型、属性和方法。程序员对网络结构中OLE对象及其方法和属性进行操作,即可实现不同功能的二次开发。

SW API是一个自上而下的树形层次结构,SolidWorks位于所有API中最顶层的位置。由于应用程序接口对SW API访问是逐级遍历的,所以任何应用程序对API访问前都必须先经过SolidWorks。SW API囊括了软件的所有功能。SW二次开发中的参数化设计,其本质就是正确调用API对象的过程[3]。

2.2 SolidWorks二次开发方法简介

目前对SW软件进行二次开发有两种方式:一种是基于OLE(对象的链接与嵌入)的自动化技术,用户程序作为一个独立的应用程序(*.exe),通过API接口调用SW提供的服务,完成对它的控制和操作;另一种是基于COM(组件对象模型)规范的,即插件形式(Add-Inapplication),用户程序作为一个插件(*.dll)集成到SW中去[4]。本文实例采用第二种。

2.3 零件设计模块二次开发基本思路

使用 Visual Basic.NET创建新的 SolidWorks ADD-In,利用编辑好的宏,编译ADD-In,并添加引用,添加SolidWorks2010类型库、常量类型库等,最后生成ADD-In程序(*.dll)或(*.exe)文件,笔者选择生成(*.dll)文件。其基本步骤归纳如下:

(1)在SW进行零件的三维建模,并对建模过程进行宏录制,获取该零件的VB代码。

(2)在VB.NET中分析零件设计基本参数,对录制的宏进行修改编辑插入函数表达式。

(3)编辑录制好的宏,删除冗余的代码后插入适当的窗体函数,制作能输入参数的人机交互界面。

(4)建立应用程序与SW的连接,即在程序中嵌入与SW关联的程序语句。

(5)在VB程序中生成.dll文件。

(6)打开SW,加载.dll文件,至此用户需要的插件制作完成[5]。

3 工字钢的二次开发

3.1 工字钢三维建模及宏录制

分析工字钢结构特征,参照相关设计手册中工字钢的标准参数得到截面二维图,如图1所示。打开SW开始草图的绘制,并打开【工具】/【宏】/【录制】进行宏录制,选择前视基准面为草图绘制平面,工字钢截面草图由直线段和圆角组成,且为轴对称图形,绘制中心线并对绘制好的直线和圆角进行镜像操作,得到完整的工字钢截面草图,最后选择拉伸命令得到工字钢三维实体。同时停止宏录制,将得到的程序保存为“工字钢.swp”,以供后续过程修改和调用。

图1 工字钢截面参数

图中各符号意义:h为高度;b为腿宽度;d为腰厚度;t为平均腿厚度;r为内圆弧半径;r1为腿端圆弧半径;C为形心。

3.2 编制应用程序

(1)绘图的部分程序代码如下:

Private Sub Command1_Click()

定义所需的变量

Dim h As Single∥高度h

Dim b As Single∥腿宽度b Dim d As Single∥腰厚度d

Dim t As Single∥平均腿厚度t

Dim L As Single∥工字钢长度L

Dim swApp As Object∥swapp声明为对象,表示SW应用程序

Dim Part As Object∥part声明为对象,表示SW零件环境…

开始绘图

Sub main()

Set swApp=Application.SldWorks∥得到 SW 应用程序对象

Set Part=swApp.ActiveDoc∥当前活动的工作环境

boolstatus=Part.Extension.SelectByID2("前视基准面","PLANE",0,0,0,False,0,Nothing,0)

Part.SketchManager.CreateLine(0,0,0,0,b/1000,0)∥绘制直线段

Set skSegment=Part.SketchManager.CreateLine(t/1000,b/1000,0,t/1000,b/1000,0)

绘制圆角程序

boolstatus=Part.Extension.SelectByID2("Line5","SKETCHSEGMENT",t/2000,b-d/4000,0,True,0,Nothing,0)

Set skSegment=

Part.SketchManager.CreateFillet(r,1)∥圆角 r

Part.SketchManager.InsertSketch True

Part.ShowNamedView2"上下二等角轴测",8…

boolstatus=Part.Extension.SelectByID2("工字钢","SKETCH",0,0,0,False,0,Nothing,0)

Part.FeatureManager.FeatureExtrusion∥用拉伸函数得到三维实体…

(2)利用SW API的功能编制SW插件,部分代码如下:

API对象与应用标志程序

Implements SWPublished.SwAddin

Dim iSldWorks As SldWorks.SldWorks

Dim iCookie As Long

Dim iToolbarID As Long

建立SolidWorks链接关系的关键代码

SetiSldWorks=ThisSW∥与SW建立连接iCookie=Cookie∥从SW得到cookie

Public Sub AddMenus()∥定义二次开发菜单

iSldWorks.AddMenu swDocPART,"型钢库",5

iSldWorks. AddMenuItem2swDocPART,iCookie," 工字钢@ 型钢库",-1,"工字钢设计","",""iSldWorks.AddMenuItem2 swDocPART,iCookie,"H型钢@ 型钢库",-1,"H型钢设计","",""End Sub…

3.3 人机交互界面及运行结果

查相关手册可以得出基本参数:h=100,b=68,d=4.5,t=7.6,r=6.5,r1=3.4 即为 10 号工字钢截面[6]。拉伸长度L=200,其插件交互截面如图2所示。

图2 工字钢插件人机交互界面

在交互式界面下输入上述参数得到相应工字钢三维模型如图3所示。其他型钢的建模与本例相似,可归纳出同系列的型钢截面参数模型,利用简单的直线、圆角等绘制命令建立其截面草图,再利用拉伸命令获得三维模型。其中录制的宏代码中已定义的常数参量应改为所定义的变量,并建立相应函数关系。程序编写完成后,保存工程并生成工程DLL文件。在SW中点击【文件】→【打开】,文件类型选为“Add-Ins(* .dll)”并加载前面生成的DLL文件,至此用户需要的插件制作完成[7]。

图3 工字钢10三维模型

4 结论

笔者使用VB语言通过SolidWorks API函数接口实现了型钢库设计模块的二次开发。介绍了基于COM规范的,将用户程序作为插件集成到SW中的方法,实现了型钢库的建立。该方法只需对宏代码进行简单修改便可实现预期的功能,大幅减轻了设计人员工作强度,提高了工作效率。

[1] 王智永.基于 SolidWorks型钢库的建立[J].科技资讯,2008(6):67.

[2] 陈克源,王得胜.基于SolidWorks二次开发的支撑脚零件参数化设计[J].机械研究与应用,2011(2):87-89.

[3] 江 洪,魏 峥.SolidWorks二次开发实例解析[M].北京:机械工业出版社,2004.

[4] 江 洪,李仲兴,邢启恩.SolidWorks 2003二次开发基础与实例教程[M].北京:电子工业出版社,2003.

[5] 王 栋.Visual Basic程序开发实例教程[M].北京:清华大学出版社,2006.

[6] 秦大同,谢里阳.现代机械设计手册[M].北京:化学工业出版社,2011.

[7] 张才忠.基于VB的SolidWorks零件库的二次开发[J].现代制造与装备,2010(2):67-68.

猜你喜欢

草图二次开发工字钢
浅谈基于Revit平台的二次开发
不能承受的生命之轻
浅谈Mastercam后处理器的二次开发
矿用工字钢棚支护计算及应用
西门子Easy Screen对倒棱机床界面二次开发
画好草图,寻找球心
一波三折
基于Inventor概念草图仿真在机械原理中的应用
EBZ160型掘进机过工字钢便桥跨老巷的研究
工字钢支护巷道中防倒装置的改进及应用