王 珊1翟 震史宏昆 史小昱
(鄭州大學,河南 鄭州 450001)
中國白酒是中華文化傳承的重要載體。白酒作為我國特有的傳統酒種,是中國傳統文化與物質文化的結晶。近年來,我國經濟迅猛發展,人民生活水平不斷提高,白酒占中國酒類銷售額的比例最大,且呈不斷增長的趨勢。酒瓶包裝作為酒產品與消費者第一接觸文化要素,也得到快速發展。白酒瓶的需求量不斷增加,人們對白酒瓶的造型要求也日趨多元化[1]。為此研究與開發完善的白酒瓶CAD系統具有很大的現實意義。
通過比較市面上流行的CAD軟件,AutoCAD具有良好的開放性和豐富的計算機接口,為用戶對其進行二次開發提供了便利的條件[2]。在所有的二次開發語言中,VBA(Visual Basic forApplication)語言具有易于學習、方便操作、功能齊全等優勢。本文就應用最為廣泛的AutoCAD繪圖工具,利用VBA語言對其進行了二次開發,實現了各類白酒瓶的參數化設計過程。
采用模塊化思想來設計系統,將白酒瓶參數化設計系統分為8個主要功能模塊,包括創建標準瓶口模塊、創建標準瓶底模塊、訪問標準瓶型庫模塊、各類瓶型參數化設計模塊、模具結構設計模塊、自由點式設計模塊、設計結果輸出模塊和數據庫模塊。
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]。
參數化程序設計就是利用編程的方法實現系列產品的開發,在AutoCAD下利用二次開發工具編寫通用設計程序,在系列產品設計中就不需要利用繪圖命令逐一地繪制圖形,只需要根據程序的提示輸入基本的參數就能方便、快速、準確地完成設計[4]。
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)‘旋轉成三維瓶身
……
軟件界面設計是參數化設計系統能夠智能人機交互的重要部分,友好的用戶界面不僅方便用戶使用,也可以提高設計效率。界面設計中用到的標準控件均來自VBA系統。對于參數化繪圖程序來說,對話框主要考慮繪圖參數的輸入和相關控件的布局[5]。
2.2.1 訪問瓶型庫界面 主要功能是實現從瓶型庫直接調用瓶型,包括兩個對話框,第一個是選擇瓶型對話框,第二個是創建瓶型界面,如圖1所示。通過與瓶型數據庫連接,能夠在界面上直接顯示出白酒瓶的具體參數,便于酒瓶的交互設計。

圖1 創建瓶型界面
2.2.2 參數化設計界面 主要功能是用戶選定瓶型后,在設計界面上輸入瓶型參數,然后系統將參數賦值給特征模型相應的變量,在VBA程序中調用相應的代碼進行尺寸驅動,從而獲得所需尺寸規格的瓶形,實現交互式設計。如圖2為參數化設計對話框。

圖2 參數化設計界面
2.2.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.