基于Auto CAD的白酒瓶参数化设计系统的开发和设计
2015-11-23珊1翟震史宏昆史小昱
王 珊1翟 震史宏昆 史小昱
(郑州大学,河南 郑州 450001)
中国白酒是中华文化传承的重要载体。白酒作为我国特有的传统酒种,是中国传统文化与物质文化的结晶。近年来,我国经济迅猛发展,人民生活水平不断提高,白酒占中国酒类销售额的比例最大,且呈不断增长的趋势。酒瓶包装作为酒产品与消费者第一接触文化要素,也得到快速发展。白酒瓶的需求量不断增加,人们对白酒瓶的造型要求也日趋多元化[1]。为此研究与开发完善的白酒瓶CAD系统具有很大的现实意义。
通过比较市面上流行的CAD软件,AutoCAD具有良好的开放性和丰富的计算机接口,为用户对其进行二次开发提供了便利的条件[2]。在所有的二次开发语言中,VBA(Visual Basic forApplication)语言具有易于学习、方便操作、功能齐全等优势。本文就应用最为广泛的AutoCAD绘图工具,利用VBA语言对其进行了二次开发,实现了各类白酒瓶的参数化设计过程。
1 白酒瓶参数化设计系统总体分析
1.1 白酒瓶参数化设计系统模块
采用模块化思想来设计系统,将白酒瓶参数化设计系统分为8个主要功能模块,包括创建标准瓶口模块、创建标准瓶底模块、访问标准瓶型库模块、各类瓶型参数化设计模块、模具结构设计模块、自由点式设计模块、设计结果输出模块和数据库模块。
1.2 功能模块介绍
1.2.1 创建标准瓶口模块。白酒瓶通常用的有两种瓶口,冠形瓶口和螺纹瓶口,冠形瓶口包括普通冠形瓶口和特殊冠形瓶口,螺纹瓶口包括单头螺纹瓶口、多头螺纹瓶口和快速螺纹瓶口。选择瓶口外径以及瓶口类型,单击“创建瓶口”按钮,即可绘制所需的瓶口。
1.2.2 创建标准瓶底模块。白酒瓶常用瓶底有普通圆角瓶底、双圆角瓶底、圆角内凹瓶底和球冠型内凹圆角瓶底。此模块中可以创建的白酒瓶常用瓶底并将其插入到绘图界面。
1.2.3 访问标准瓶型模块。此模块中通过选择瓶型和瓶容量即可选择合适尺寸的瓶型并将其插入绘图界面,可生成二维和三维图形。
1.2.4 各类瓶型参数化设计模块。此模块是参数化设计的核心模块,可以完成各类白酒瓶型的参数化设计。
1.2.5 模具结构设计模块。此模块可以选择设计好的白酒瓶模型生成相应的模具,也可以根据已有瓶型直接创建相应的模具。
1.2.6 自由点式设计模块。在此模块中设计者可以自由设计瓶型,只需根据提示选择相应数量的点即可,分为一点式自由设计、两点式自由设计和三点式自由设计。
1.2.7 设计结果输出模块。根据结构设计结果,自动生成绘图文件,完成瓶样工作图、模具结构图进行绘图输出。本系统的应用程序菜单直接出现在AutoCAD主菜单上,如同AutoCAD自带功能一样进行工作。
1.2.8 数据库模块。数据库模块主要包括数据库接口和数据库,在实际操作中可以对数据库中的数据记录进行查询、修改、增减等。此处用到的数据库是由Access2007软件建立,里面存放标准瓶口、标准瓶底和瓶型库中每个瓶型的结构参数和其他酒瓶基本参数信息[3]。
2 参数化设计功能的实现
参数化程序设计就是利用编程的方法实现系列产品的开发,在AutoCAD下利用二次开发工具编写通用设计程序,在系列产品设计中就不需要利用绘图命令逐一地绘制图形,只需要根据程序的提示输入基本的参数就能方便、快速、准确地完成设计[4]。
2.1 参数化程序设计
2.1.1 连接数据库 在白酒瓶设计系统中,由于涉及大量的绘图基础参数和瓶型参数,涉及复杂的数据处理与查询,因此建立Access数据库可以方便系统管理相关数据。ADO对象模型是所有数据访问接口对象模型中最简单的一种,开发的白酒瓶设计系统使用的就是ADO访问技术[5]。
在VBA中使用ADO,首先要在VBA工程中引用ADO对象库。在VBA中选择“工具”|“引用”,选择Microsoft ActiveX Data Objects 2.1Library。连接数据库的部分代码如下[6]:
……
Cons="provider=Microsoft.Jet.OLEDB.4.0:DataSource=
E:MyDatadb1.mdb;
Persist Security Info=False"'数 据 路 径 是 E:MyData
……
2.1.2 图形绘制 按照每类酒瓶的模型特征,编写相应的图形绘制程序。已知瓶型的相关参数,它们可以作为主变量参数出现在设计界面中,其他参数从属于主变量,可根据所编的绘图程序计算得到[2]。以圆柱瓶为例,下面介绍一下瓶体轮廓的主要绘图程序部分,根据已知参数对白酒瓶进行参数化设计。
……
Dim pt1(0 To 2)As Double
Dim pt2, pt3, pt4, pt5, pt6, pt7, pt8, pt9,ptCen1,ptCen2,ptCen3,ptCen4,ptcen5 As Variant
pt1(0)=0:pt1(1)=0:pt1(2)=0
pt2=GetPoint(pt1,radius1,0)
……
Dim objarr(0 To 8)As AcadEntity‘绘制轮廓线
Set objarr(0) = ThisDrawing.ModelSpace.AddLine(pt1,pt2)‘瓶口部分直线
……
Set objarr(8) = ThisDrawing.ModelSpace.AddLine(objarr(7).EndPoint,pt1)‘轮廓中心线
Dim objRegion As Variant
objRegion=ThisDrawing.ModelSpace.AddRegion(objarr)‘将轮廓形成面域
Dim i As Integer
For i=0 To 8
objarr(i).Delete
Next‘删除各个线段
Dim objBoltT1 As Acad3DSolid
Set objBoltT1=ThisDrawing.ModelSpace.AddRevolved-Solid(objRegion(0),pt1,pt9,360)‘旋转成三维瓶身
……
2.2 用户界面设计
软件界面设计是参数化设计系统能够智能人机交互的重要部分,友好的用户界面不仅方便用户使用,也可以提高设计效率。界面设计中用到的标准控件均来自VBA系统。对于参数化绘图程序来说,对话框主要考虑绘图参数的输入和相关控件的布局[5]。
2.2.1 访问瓶型库界面 主要功能是实现从瓶型库直接调用瓶型,包括两个对话框,第一个是选择瓶型对话框,第二个是创建瓶型界面,如图1所示。通过与瓶型数据库连接,能够在界面上直接显示出白酒瓶的具体参数,便于酒瓶的交互设计。
图1 创建瓶型界面
2.2.2 参数化设计界面 主要功能是用户选定瓶型后,在设计界面上输入瓶型参数,然后系统将参数赋值给特征模型相应的变量,在VBA程序中调用相应的代码进行尺寸驱动,从而获得所需尺寸规格的瓶形,实现交互式设计。如图2为参数化设计对话框。
图2 参数化设计界面
2.2.3 自由点式设计界面 主要功能是用户根据提示可以自由选择点进行设计,非专业设计人员可以完全自行设计,简便易操作,而且瓶型多样。分为一点式自由设计、两点式自由设计和三点式自由设计。如图3为两点式自由设计的两个对话框。
图3 两点式自由设计界面
3 总结
本文介绍了利用AutoCAD自带的VBA技术对其进行二次开发,创建了完善的白酒瓶参数化设计系统,提高了瓶型设计的质量与效率。所设计系统能基本满足要求,但还存在许多不足,需要更进一步地完善。
[1]张惠秋,李纶.白酒酒瓶造型设计[D].昆明:昆明理工大学,2013.
[2]王丽娟,孙诚.基于SolidWorks的葡萄酒瓶参数化设计与研究[J].包装工程,2009,30(12):68-70.
[3]沈博.基于AutoCAD标准件的参数化设计[D].安徽:安徽理工大学,2007.
[4]王鹏.基于AutoCAD VBA的参数化辅助轴设计系统[J].机电工程技术,2014,43(6):32-35.
[5]辛杨桂.基于VB.NET的SolidWorks二次开发在液压设计中的应用[D].辽宁:东北大学液压与气动技术研究所,2011.
[6]翟震,张晓黎.基于AutoCAD环境下的数据库连接与参数化绘图[J].中国科技信息,2005(15):13.