动设计修改的建模技术,为工程设计人员提供了高效易用的设计环境。尽管SolidWorks功能非常强大,但它依然不能顾及所有方面高效设汁的需求。凸耳是机械设计的常用特征之一,在其它机械三维CAD软件,如Pro/E中都把这一功能特征列为基本的工程特征,可以进行直接建构。而在SolidWorks中并没有实现直接建构的功能。借鉴Solidworks自带功能如装配凸台、弹簧扣、弹簧扣凹槽,以VS2005为开发工具,利用SohdWorks的二次开发接口,实现与SolidWorks完全兼容的凸耳特征功能,提高设计效率。
1 SolidWorks二次开发简介
为了方便用户进行二次开发,SolidWorks API提供了支持二次开发的应用编程接口,任何支持OLE和COM(组件对象模型)的编程语言都可以作为SolidWorks的开发工具。利用开发工具通过该接口可以扩充SolidWorks的功能,设计定制的SolidWorks特征功能。
目前基于SolidWorks有两种开发模式Add—in aplication(*.DLL)和Stand-alone application(*.EXE)。Add-in application模式,客户程序SolidWorks程序运行在同一进程空间中.效率高,并且可以添加自己的菜单、工具栏、属性页。
但是扩展功能的异常会导致SolidWorks程序的不稳定。Stand-alone application模式,扩展功能程序跟solidWork。程序运行在不同的进程空间,客户的程序的异常不会影响SolidWorks程序,但是其效率不高,并且不可以在SolidWorkS程序中添加自己的菜单、工具栏、属性页等。基于以上分析,建构的凸耳功能是作为SolidWorks基本特征功能的扩充,需要完全融人到Solidworks环境中,因此采用Add—in application(*.DLL)的模式进行凸耳特征功能的建构。
2功能的分析与定义
凸耳的结构,如图1所示。需要的定位参考基准为:一个凸耳放置位置,凸耳的高度与宽度的建构方向。定形尺寸为:凸耳的长度尺寸、凸耳的宽度尺寸、凸耳高度、凸耳的倒圆角半径以及凸耳眼的直径尺寸等。
图1凸耳结构
SolidWorks设计功能的强大和自由,凸耳有多种建构方法,如通过建立基体去除材料的方法,建立完整草图整体拉伸的方法等等,采用清晰、简单的如下建构过程:(1)根据凸耳的长、宽、高.从放置平面向建构方向生成一个基体;(2)在方块的上边缘根据设定的圆角半径进行凸耳圆角的生成;(3)根据凸眼的直径尺寸,进行凸眼的切除生成。凸耳作为SolidWorks的内嵌功能,需要与SolidWorks的所有环境相互兼容,则要求:把凸耳功能添加到设计树中;支持设计树中的各种右键操作功能,如编辑、重建、删除等等;在装配环境中进行上下文编辑的功能;支持自动录制宏的功能等。
3功能实现流程
根据定义要求,凸耳功能的实现流程主要为:(1)以Add—inapplication(d11)的方式,把凸耳功能连接到SolidWorks主线程中;(2)在主菜单中增加凸耳功能菜单按钮;(3)在菜单按钮按下时,建立功能界面定义页面;(4)通过交互操作实现凸耳特征的约束与定义;(5)创建凸耳特征,把功能特征加入到设计树上,并实现与其它所有相连功能的兼容。
4界面的实现
在VS2005中,利用SolidWorks的二次开发向导,创建Add-in application(d11)方式的工程项目。SolidWorks自动实现凸耳特征Add-in模块与SolidWorks主线程的连接,,凸耳功能嵌入SolidWorks作为扩展功能,需要在主菜单中添加相应的菜单项和工具栏中添加图形工件。菜单项的添加函数为:status:SldWorks->AddMenultem3(documentType,cookie, Menuhem,Position,Menu Callback,MenuEnableMethod,HintString,bitmapFilePath,&isMenultemAdded)。其中,凸耳功能是属于零件特征,选取documentType为swDocPART;Menucallback为按钮响应的回调函数。通过凋用没置即可实现在新建或打开零件文件的时候加载这一菜单项。
根据凸耳的定位和定形的要求,定义用户交互功能界面。定位参考点采用与弹簧扣、装配凸台一致的界面策略,利用一个实体面选取框,确定凸耳的放置参考面,以鼠标选取底面放置面的点击点为建构中心,并为在这一点击点处自动添加一个三维几何约束点。方向由平面的法向或者直线的方向来定义,用兼容直线和平面的选择框来确定凸耳建构的两个参考方向。五个定形尺寸通过尺寸编辑数字文本框来确定,按顺序依次是:高度、长度、宽度、倒圆角半径、凸耳圆直径。通过SolidWorks API的主要建构过程如下:(1)通过IPropertyManagerPage2Handler3得到建构句柄;(2)设置页面包含确定wPropertyManagerOptions—OkayButton、取消swPropertyManagerOptions_CancelButton等属性并通过ICre—atePropextyManagerPage建构一个定义页;(3)利用IAddGroupBox创建定位”“尺寸’两个挖件组,定位组包含定位参考元素的选取框,尺寸组定义定形尺寸的数字编辑框;(4)在组中根据控件的类型和属性要求通过IAddControl进行swControlType Selectionbox选取框或者swControlType Numberbox尺寸编辑控件的添加,并设置相应的鼠标提示说明文字。建立特征定义编辑页,如图2所示。
图2凸耳功能