APP下载

基于SolidWorks的陶瓷模具参数化设计

2014-07-24代晓波董玉德

西安工程大学学报 2014年3期
关键词:二次开发对话框底板

王 宣,代晓波,董玉德

(1.合肥工业大学 数字化设计与研究中心,安徽 合肥230000;2.阜阳职业技术学院 工程科技学院,安徽 阜阳236031)

我国的陶瓷墙地砖模具制造业已经发展成为规模型产业[1],但项目调研发现,模具的设计普遍沿用二维CAD软件,不能充分满足当前模具设计系列化、快速化的市场需求.基于三维CAD软件的模具参数化设计系统,将会减少设计人员的重复性工作,提高设计效率,是模具行业提高设计手段的发展趋势.

SolidWorks作为目前主流三维CAD软件之一,不仅具有功能强大、易学易用和技术创新的特色,而且SolidWorks还提供了开发性和兼容性良好的应用程序开发接口 (SolidWorks API),凡是支持OLE和COM的编程语言如Visual C++、Visual Basic、Delphi等均可用于SolidWorks的二次开发[2].VC++6.0是当今流行的软件开发工具之一,是程序员的首选编程利器[3].使用VC++6.0对SolidWorks进行二次开发,能够充分利用SolidWorks API,而且开发出的DLL应用程序作为插件直接嵌入到SolidWorks内部,加载成功后专用系统菜单直接出现在SolidWorks主菜单上,如SolidWorks原有菜单一样操作方便,极大地提高了设计效率,但使用VC++进行二次开发对开发人员的要求较高.目前,对金属和塑料模具二次开发的研究已有不少先例,如姚敏敏等人利用Visual Basic开发了基于SolidWorks的精冲模设计系统[4];李凯岭等人在Visual Basic环境下开发了一个基于SolidWorks的智能注塑模具CAD系统[5]等,而采用VC++二次开发陶瓷模具专用系统的研究却较少.因此,根据模具市场需求,本文研究用VC++6.0基于SolidWorks二次开发的陶瓷墙地砖模具参数化设计系统,具有重要的现实意义.

1 参数化设计的方法

在SolidWorks中,由二次开发实现的零件参数化设计方法主要是尺寸驱动法和程序驱动法[6].尺寸驱动法需要先建立零件模板再通过程序生成新零件,而程序驱动法不需要建立零件模板就可以通过程序驱动生成新零件.尺寸驱动法程序代码简洁高效,是目前参数化设计较常用的方法,选用此方法作为陶瓷墙地砖模具的参数化设计,其设计流程如图1所示.实现这种参数化设计的关键技术是SolidWorks API、ATL技术、参数化建模技术、数据库建立与访问技术.

1.1 SolidWorks API

SolidWorks通过OLE(Object Linking and Embedding,对象链接与嵌套)技术为用户提供了强大的应用程序开发接口API.在SolidWorks API内封装了大量的采用COM(Component Object Model,组件对象模型)技术构造的接口对象,每个接口对象都是由接口、属性、方法与事件组成[3].在进行SolidWorks二次开发时,需要先得到SolidWorks API对象的接口,然后才能使用对象的方法和属性.这些对象呈树状层次结构分布,位于顶端的SolidWorks对象是所有其它接口对象的父类,如果想要访问某一对象,必须先从SolidWorks对象对其子对象进行遍历,直到找到该对象[3].

接口对象的方法或属性就是API函数,这些API函数可被Visual C++、Visual Basic、Delphi等编程工具调用,使得开发出的程序具有直接访问SolidWorks的能力.用户通过对这些对象属性的设置和方法的调用,就可以在自己开发的程序中对SolidWorks进行各种操作,完成零件草图的绘制和修改,零件各种特征的建立和修改,零件的特征信息、装配信息及工程图纸信息的提取等.

图1 零件参数化设计流程图

1.2 ATL技术

微软公司推出的COM开发工具ATL实质上是一套C++模板库,它采用特定的基本实现技术(包括COM技术、C++模板类技术及C++多重继承技术等).由于其摆脱了大量冗余代码,开发出来的COM应用程序代码简洁高效,因而迅速成为开发COM组件的得力工具.从SolidWorks2006版本开始,在该软件提供的二次开发向导中,Visual C++6.0平台上的向导就是基于ATL技术构造的[7].

使用ATL开发一个COM组件一般有以下几个步骤[8]:(1)创建一个新的ATL工程.(2)向工程添加新的ATL对象.(3)根据COM应用要求向新的ATL对象添加接口.(4)完成代码编写,编译链接工程,注册COM组件.

1.3 参数化建模技术

参数化建模是以约束来表达产品模型的形状特征,通过定义一组参数控制设计结果,实现通过调整参数修改设计模型的目的,从而设计一簇在形状或功能上具有相似性特征的零件设计方案.目前,参数化建模可分为基于尺寸驱动的参数化建模,基于约束驱动的参数化建模,基于特征的参数化建模3种方法[9].基于尺寸驱动的参数化建模,是指通过修改模型的几何尺寸,达到改变模型形状的目的,它是目前最基本的、应用最为广泛的建模方法,本文模具零件模板就是采用这种三维建模方法的.零件模板参数化建模时,应注意:(1)合理设计建模思路,使实体模型生成的驱动尺寸为参数尺寸.(2)满足草图全约束,保证尺寸驱动模型重建的可靠性.(3)对于与参数尺寸有数学关系的其它模型尺寸,利用So1idWorks的方程式功能,建立以参数尺寸为自变量的关系式使之关联.

1.4 数据库建立与访问技术

为了方便快捷地通过参数化设计生成相似零件,需要将参数数据存储在数据库中,目前可供选择的数据库很多.其中Access简单易用,接口灵活,完全满足零件参数化设计对数据管理的要求,因此常选用Access作为管理数据的工具,本文采用Access建立尺寸参数数据库.

对数据库的访问就是通过建立与数据源的数据通道,利用此通道实现人机交互,完成对数据库的查询、修改等操作.VC++提供了多种数据库访问技术,如ODBC、DAO、OLE DB、ADO等.考虑ADO功能强大,编程简洁高效,本实例使用ADO访问数据库.ADO包含了3个独立对象和4个非独立对象,其中独立对象Connection(连接对象)代表与数据源的连接,是ADO对象模型的基础;独立对象Recordset(记录集对象)用于建立记录集,并负责处理记录集中的数据,是ADO对象模型的核心;独立对象Command(命令对象)主要用于查询数据库,并返回记录集对象中的记录[10].

2 参数化设计的实现

陶瓷墙地砖模具是一种生产一定形状和尺寸要求的陶瓷墙地砖坯的模具[11].陶瓷墙地砖坯品种变化多样,为了满足不同生产厂家的需求,模具企业需要不断改变设计,快速生产出不同系列不同规格的模具.图2所示为本项目开发的YP系列模具参数化设计系统主界面,从左侧树形图中可知,底板是模具的基础零件,尽管模具系列相同,但底板尺寸规格多达近十种.底板零件的参数化设计,可明显提高设计效率.下面就以底板为例,详细说明零件参数化设计实现过程.

2.1 建立零件模板的三维模型

在So1idWorks中建立零件模板的三维模型时,最好重命名模型驱动尺寸使之与参数尺寸名称一致,便于程序识别.本文以“底板.SLDPRT"保存在“D:\模具参数化设计\模板模型\”为底板模型,以备调用.

2.2 建立零件尺寸参数数据表

在Access中创建“YP4000-800-800-1W.mdb”数据库,在库中建立底板尺寸参数数据表等关联表,如图3所示,保存路径为“D:\模具参数化设计\数据库\YP系列\YP4000-800-800-1W.mdb”.

2.3 二次开发编程

(1)创建新的ATL工程并添加ATL对象 在Visual C++6.0环境中,使用ATL COM AppWizard对象向导建立DLL工程,自定义名称为mold,然后在工程中添加新的ATL对象mpd,向导自动生成接口Impd,该接口是所开发的模具参数化设计系统插件与SolidWorks的通信接口,接下来通过添加代码实现本插件所要具备的功能.

(2)添加菜单和菜单项 在工程资源的String Table(字串表)中定制菜单资源,在IDS-MOLD-message-ITEM栏中添加显示内容:YP系列模具@模具参数化设计,其中“模具参数化设计”是添加到So1idWorks界面的菜单名称,“YP系列模具”是该下拉菜单的菜单项,在IDS-MOLD-message-METHOD栏中添加显示方法,效果如图2所示.

图2 模具参数化设计系统主界面图

图3 数据库部分关联表展示图

(3)创建用户操作界面 首先用对话框资源编辑器创建底板对话框模板资源.然后利用类向导Class Wizard添加对话框类dbandlg,并向对话框类添加消息处理函数、成员变量等,向导自动生成该对话框类的dbandlg.h和dbandlg.cpp文件.最后声明对话框类的对象以便激活对话框,添加的主要代码如下:

(4)访问数据库 将已建立的底板尺寸参数数据表载入底板操作界面的列表框中,主要实现步骤是:①在工程的StdAfx.h文件里引入ADO库文件,添加代码如下:#import"C:\Program Files\Common Files\SYSTEM\ADO\msado15.dll"no-namespace rename("EOF","adoEOF")rename("Parameter","adoParameter")msado15.dll动态链接库中定义了ADO接口对象.②连接数据库获取数据表.一般使用函数open或使用UDL文件连接数据库.采用UDL文件的方便之处是,当数据源改变后,只需双击相应的UDI文件打开属性对话框重置数据源即可,不用更改软件编制的程序.实例选用了此方法,建立了TCCSH.udl文件.在dbandlg.h和dbandlg.cpp文件中添加的主要代码是:

(5)参数尺寸驱动模板模型改变,生成新零件 ①将底板操作界面列表框内的一行数据,赋值给对话框中的编辑框,获得驱动尺寸参数,如图4所示.

图4 底板操作界面图

主要代码:

2.4 编译链接,生成.dll文件,加载插件

在SolidWorks中,通过点击菜单“工具/插件”,打开插件对话框,选择mold插件完成加载;也可点击菜单“文件/打开”,选择文件类型Add-Ins,打开mold.dll文件实现加载.

图5 底板三维模型图

2.5 运行实例

打开SolidWorks菜单栏里“模具参数化设计”下拉菜单,选择“YP系列模具”选项,打开系统主界面,双击主界面树形图中“底板”选项,弹出“底板”操作界面,双击列表框中“图号”是“YP4881DB-2”的一行数据,编辑框内出现相应尺寸参数,也可手动输入尺寸参数,然后单击“三维模型”按钮,生成新的底板三维模型,如图5所示.

3 结束语

以SolidWorks为平台,运用VC++6.0二次开发工具,开发陶瓷墙地砖模具参数化设计系统,实现相似零件的快速设计,有利于满足模具产品系列化、快速化的设计需求.同时零件的参数化设计方法,对其他品种规格多样的零件实现企业标准化设计具有一定的参考价值,达到减少零件种类、缩短设计周期、减少工艺装备、降低生产成本、提高企业经济效益的目的.

[1]姚德良,吕晖.陶瓷墙地砖模具制造业现状、问题及建议[J].陶瓷,1996(4):3-5.

[2]董玉德,赵韩.CAD二次开发理论与技术[M].合肥:合肥工业大学出版社,2009:7-11.

[3]王文波,涂海宁,熊君星.SolidWorks2008二次开发基础与实例(VC++)[M].北京:清华大学出版社,2009:4-12.

[4]姚敏敏,陈昊哲,许树勤.基于SolidWorks二次开发的精冲模设计系统[J].液压装备与制造技术,2009(1):93-95.

[5]李凯岭,孙乃坤,朱连富,等.基于SolidWorks的注塑模具CAD系统[J].山东大学学报,2004,34(2):22-26.

[6]王东,蒲小琼.基于SolidWorks的机械零件参数化设计[J].机械制造与研究,2004,33(5):15-17.

[7]陈岳坪,高健.基于 ATL技术的SolidWorks二次开发新方法[J].模具工业,2009,35(6):5-7.

[8]王影.VC++中访问COM 组件的五种方法[J].计算机时代,2005(12):69-71.

[9]陈璐.基于SolidWorks的参数化建模[J].CAD/CAM 与制造业信息化,2007(2-3):72-73.

[10]李明星.起重机运行机构三维参数化系统的设计与研究[D].太原:太原科技大学,2012:21-25.

[11]向卫兵,王刚.陶瓷墙地砖模具类型与分析[J].佛山陶瓷,2008(3):29-32.

猜你喜欢

二次开发对话框底板
正常恢复虚拟机
西门子Operate高级编程的旋转坐标系二次开发
浅谈Mastercam后处理器的二次开发
Bootlace Worms’Secret etc.
What Is Beauty?
板上叠球
地下室底板防水卷材施工质量控制
西门子Easy Screen对倒棱机床界面二次开发
浅谈VB的通用对话框《CommonDialog》控件的使用
新型装煤底板