浦 东,曹苏群, 左晓明,严峰杰
(1. 淮阴工学院机械与材料工程学院,江苏淮安223003;2.江苏阳光新格栅栏科技有限公司,江苏淮安223400)
栅栏产品三维参数化设计软件开发研究*
浦 东1,曹苏群1, 左晓明1,严峰杰2
(1. 淮阴工学院机械与材料工程学院,江苏淮安223003;2.江苏阳光新格栅栏科技有限公司,江苏淮安223400)
以某栅栏生产企业生产的产品为研究对象,提出了一种基于Pro/E的栅栏产品三维参数化设计方法,利用VC++作为基本开发工具,开发了包括草坪栅栏、楼梯栅栏等多种栅栏产品三维参数化设计系统。该软件系统采用面向用户的开发思想,具有界面简洁、操作方便的特点。此软件系统的应用将大幅缩短栅栏生产企业的产品设计周期,达到快速响应的目标。
栅栏 三维 参数化设计 软件开发 VC++
栅栏是我们生活中经常看到的物品,小到阳台、楼梯,大到公园、酒店、游乐场都有各式各样的栅栏,有的是为了保护安全,比如阳台的栅栏,动物园的铁栅栏;有的是为了装饰,比如酒店的铁艺栅栏,公园的草坪栅栏。总之,栅栏的分类五花八门,数不胜数。因此,对于栅栏生产企业来说,如何将这么多种类的产品,直观地展示给潜在客户,是一个目前面临的很现实的问题。
为了解决这个问题,我们研究一种能快速高效地建立模型的方式,即三维参数化设计。为此本文介绍了一种以VC++为开发基础,以Pro Toolkit与Visual Studio 2005为开发平台,构建基于Pro/E的栅栏产品三维参数化设计软件系统。
参数化设计过程实际上是利用新数据替代原数据,驱动参数化模型库中的原有模型或程序,进行模型重构的过程[1]。
图1 草坪栅栏三维模型
以草坪栅栏为例,三维模型如图1所示,其参数接口与尺寸关联设置方法为:
1)参数输入。在模型图界面,点击【工具】→【参数】,点击【+】,将栅栏的相关参数依次输入:大立柱边长A、大立柱高H、大柱间距L、横杆宽A_1、横杆厚B_1、小柱宽A_2、小柱厚B_2、小柱数量N。在整体设计好后,其参数值可以根据实际情况进行修改,修改完成后通过【再生】即可得到实际情况下所需的模型[2]。
2)关系建立。点击【工具】→【关系】,此时出现了关系对话框,单击模型任意处,模型由灰色变成黄色,各处尺寸以D1、D2的形式被标注出来,选择需要定义的尺寸后单击,该尺寸会自动进入对话框内,输入相关尺寸的关联公式。
2.1 开发平台的选取
本系统设计开发所运用的软件主要是Pro/E和Visual Studio 2005两款软件。Pro/E软件是美国参数技术公司(PTC)于1988年首创的参数化设计三维CAD/CAM软件包,是一套由设计至生产的机械自动化软件,是目前国际上最流行的“全参数化、全相关”的三维设计软件之一[3]。Pro/E在提供强大的设计、分析、制造功能的同时,也为用户提供了多种二次开发的工具,在本系统中选用的则是基于C语言的Pro Toolkit。Visual Studio 2005则是为了辅助Pro Toolkit完成本系统的开发,因为其具有自动提供二次开发基础文件和自动报错的功能,将会大大减少设计者的工作强度。
2.2 制作自定义菜单
图2 栅栏参数化设计菜单界面
通过Visual Studio 2005新建工程,可以得到一个二次开发所需要的基本框架。在生成的工程文件中,新建一个文本文件,编辑菜单代码,在将设计完成的系统加载到Pro/E中后,新建的用户菜单与其他菜单条一样,以windows风格的菜单形式插入到Pro/E中去[4],如图2所示。
2.3 制作UI对话框
在进行UI对话框的设计时,首先要将驱动程序模板文件复制到工作目录[5]。打开resource,新建记事本,命名为“zhalan.res”。根据我们设计的系统需要进行对话框的设计,确定各组件的位置和数量。如果对话框内包含有图片,必须将图片复制到resource文件夹内,UI对话框设计如图3和图4所示。
驱动程序的编写,本质上就是获取UI对话框中输入的参数值,将其传递到参数化模型并驱动模型再生,从而生成相应的三维模型。
以草坪栅栏模型驱动程序为例。
void caoping_1_Action(char*dialog,char*component,ProAppData data)
{
ProMdl model;
ProModelitem modelitem;
ProMdlCurrentGet(&model);
ProMdlRetrieve(L"D:/zhalan/res/caoping.
prt",
(ProMdlType)PRO_PART,(ProMdl*)&model);
ProMdlDisplay(model);
ProMdlToModelitem(model,&modelitem);
ParamUpdate(dialog,"A_Value","A",&modelitem);
ParamUpdate(dialog,"H_Value","H",&modelitem);
ParamUpdate(dialog,"N_Value","N",&modelitem);
ParamUpdate(dialog,"A_1_Value","A_1",&modelitem);
ParamUpdate(dialog,"B_1_Value","B_1",&modelitem);
ParamUpdate(dialog,"A_2_Value","A_2",&modelitem);
ParamUpdate(dialog,"B_2_Value","B_2",&modelitem);
ParamUpdate(dialog,"L_Value","L",&modelitem);
ProSolidRegenerate((ProSolid)model,PRO_B_TRUE);
ProWindowRepaint(PRO_VALUE_UNUSED);
ProUIDialogExit(dialog,1);
}
从上述代码中可以看到,主要按照“载入模型(括号内为模型保存的地址)→将对话框内的参数赋值给模型→模型按照被赋值的参数进行变化→草坪栅栏零件再生→零件重绘→对话框关闭”完成模型驱动。
本文以参数化思想为基础,以Pro/E为开发平台,VC++为开发工具,实现了栅栏产品的快速设计。本设计所完成的栅栏参数化设计系统,具有使用简单、数据清晰、架构明了的特点,并实际应用到某公司的栅栏设计工作中,提高了公司产品设计效率,满足了公司投标中产品展示需求,具有强大的实用性和针对性。
[1] 白传武.门式起重机参数化设计系统的研究与实现[J].机电技术,2014 (4):53-57.
[2] 徐年富.基于Pro/E的行星减速器太阳轮的三维参数化设计[J].煤矿机械,2012, 33(1):244-246.
[3] 陈建军.基于VC++的摩擦同步离合器三维参数化设计及仿真集成系统[J].机械设计与研究,2016, 32(2):93-96.
[4] 王素艳.基于Solidworks的机床夹具标准件三维参数化设计[J].机电产品开发与创新,2014, 27(3):171-173.
[5] 李戬,王宗彦,秦慧斌.桥式起重机小车架三维参数化设计与研究[J].煤矿机械,2012, 32(7):16-18.
Development of 3D parametric design software for fence product
PU Dong,CAO Suqun,ZUO Xiaoming,YAN Fengjie
Focused on the products of a fence manufacturer, a 3D parametric design method for the fence product based on Pro/E is proposed. 3D parametric design systems are developed including lawn fence, stair fence and so on, taking the VC++ as the development tool. The software system has the characteristics of user-oriented concept, simple interface and easy operation. The application of this software system will shorten the product design cycle of enterprises greatly and achieve the goal of fast response.
fence,three-dimensional,parametric design,software development,VC++
TH126;TH138.51
A
1002-6886(2016)06-0101-03
国家自然科学基金青年基金(51505170),江苏省高校自然科学重大基础研究项目资助(11KJA460001),淮安市科技成果转化专项资金计划项目(项目名称:微型电感器件自动化生产装备研发及产业化),校企合作横向项目(项目名称:组装式耐腐蚀栅栏系列产品研究与开发)。
浦东(1993-),男, 就读淮阴工学院机械设计制造及其自动化专业,研究方向:计算机辅助设计。
曹苏群(1976-),男,博士,教授,研究方向:模式识别与软件工程。
2016-06-24