張信群
(滁州職業(yè)技術(shù)學(xué)院 汽車工程系,安徽 滁州 239000)
隨著三維CAD 技術(shù)的出現(xiàn),極大地推動了模具工業(yè)的發(fā)展,使模具零件設(shè)計和模具結(jié)構(gòu)設(shè)計可以在非常直觀的三維環(huán)境下進(jìn)行。SolidWorks 作為一種簡單、易用的三維設(shè)計軟件,在我國模具企業(yè)中得到越來越廣泛的應(yīng)用。
由于沖壓模具屬于標(biāo)準(zhǔn)化程度較高的工藝裝備,如果各種模具標(biāo)準(zhǔn)件能夠直接從CAD 系統(tǒng)中建立的標(biāo)準(zhǔn)件庫中直接調(diào)用,則可以縮短新產(chǎn)品的開發(fā)周期。在我國模具企業(yè)推廣沖壓模具標(biāo)準(zhǔn)件的參數(shù)化設(shè)計是實(shí)現(xiàn)模具標(biāo)準(zhǔn)化的有效途徑。
對于某一種規(guī)格標(biāo)準(zhǔn)件建立起來的三維幾何模型中包含著幾何約束,這些幾何約束又可以分為結(jié)構(gòu)約束和尺寸約束。結(jié)構(gòu)約束是指零件各幾何元素之間的固定關(guān)系,如各幾何元素之間的相對位置關(guān)系(平行、相切、對稱等)、建模過程中的“拉伸”、“倒角”等特征關(guān)系,結(jié)構(gòu)約束對于標(biāo)準(zhǔn)件的系列零件是均保持不變的。尺寸約束是零件各幾何元素之間的數(shù)值關(guān)系,通過尺寸標(biāo)注來表示,包括數(shù)值相同的不變尺寸和控制零件形狀結(jié)構(gòu)發(fā)生改變的尺寸,后者稱為特征尺寸。參數(shù)化設(shè)計的原理是先建立標(biāo)準(zhǔn)件的初始幾何模型,將特征尺寸設(shè)定為可以任意調(diào)整的變量參數(shù),當(dāng)變化一個參數(shù)值,系統(tǒng)將自動改變所有與它相關(guān)的尺寸;用戶通過賦予變量參數(shù)不同的數(shù)值來修改和控制幾何形狀,自動實(shí)現(xiàn)整個零件模型的完全更新。
沖模標(biāo)準(zhǔn)件是國家標(biāo)準(zhǔn)規(guī)定的系列零件,如圖1 所示為在SolidWorks 環(huán)境下創(chuàng)建后角導(dǎo)柱下模座的三維模型,完整過程包括:建立4 個“草圖”文件和2 個“基準(zhǔn)面”、3 次“拉伸”、1 次“拉伸—切除”和6 次“倒角”,整個建模過程比較繁瑣,共需要標(biāo)注31 個控制模型各部分形狀結(jié)構(gòu)的尺寸(其中包括有一部分尺寸是重復(fù)的),但不是每一個尺寸在建立標(biāo)準(zhǔn)件庫時都需要調(diào)用的。
圖1 后角導(dǎo)柱下模座的三維模型
經(jīng)過分析和換算,該實(shí)體造型的特征尺寸共有12 個,如圖2 所示。參數(shù)化設(shè)計就是著眼于對這12 個特征尺寸所對應(yīng)的變量參數(shù)賦予不同的數(shù)值,后角導(dǎo)柱下模座零件結(jié)構(gòu)就會隨之改變,因此是一種高效的設(shè)計方法。
1.2.1 傳統(tǒng)的參數(shù)化設(shè)計方法及其不足
模具標(biāo)準(zhǔn)化在企業(yè)已經(jīng)越來越得到重視,目前在模具企業(yè)中也逐步開始引導(dǎo)技術(shù)人員在模具標(biāo)準(zhǔn)件設(shè)計中引入?yún)?shù)化設(shè)計方法。傳統(tǒng)的參數(shù)化設(shè)計方法是直接通過C、VB、VC 等高級程序調(diào)用SolidWorks API 函數(shù)繪制三維造型,三維造型完全由程序生成,這種方法稱為編程法。
SolidWorks 提供了幾百個API 函數(shù),用戶SolidWork 軟件自帶的宏工具錄制零件造型的全過程,通過修改宏程序代碼將選定的變量參數(shù)與API函數(shù)對接,用指定的數(shù)值或程序計算出的數(shù)值作為API 函數(shù)變量的值,并按該值重新完成整個三維造型過程。
編程法的主要不足在于:
(1)完全依賴錄制的宏程序代碼來描述建模的過程,程序代碼繁雜、冗長。零件重新造型時,需要從頭到尾地執(zhí)行一遍程序,時間比較長、效率低,并且系統(tǒng)的可維護(hù)性差。
(2)對于復(fù)雜零件的建模過程,使用宏工具錄制時難免會有遺漏,導(dǎo)致宏程序代碼不完整,因此重新造型生成的零件結(jié)構(gòu)會有殘缺。
(3)如果要得到?jīng)]有殘缺的再造型零件,用戶就必須使用SolidWorks API 函數(shù)自行編寫程序代碼,來補(bǔ)齊宏工具錄制遺漏的過程。但是Solid-Works 內(nèi)部有幾百個API 函數(shù),對于沒有熟練掌握高級編程語言的設(shè)計人員而言,難度很大,并且查找、核對宏代碼的過程非常繁瑣,也影響了模具設(shè)計的效率。
1.2.2 尺寸驅(qū)動法的原理和優(yōu)勢
由于我國中、小型模具企業(yè)的設(shè)計人員主要來自本科和高職院校的機(jī)械類專業(yè)的畢業(yè)生,在校期間學(xué)校均高度重視培養(yǎng)學(xué)生工程設(shè)計軟件的實(shí)際操作能力,而對程序語言類課程則是忽略或淡化。工作后企業(yè)以生產(chǎn)為第一要務(wù),也鮮有這方面的培訓(xùn);同時繁重的工作任務(wù)也使他們沒有精力再深入學(xué)習(xí)程序語言類課程。因此設(shè)計人員雖然能夠熟練操作SolidWorks 軟件,也能夠認(rèn)識到編程法在參數(shù)化設(shè)計中的重要性,但是實(shí)際應(yīng)用卻是力不從心。
本文主要探索另外一種參數(shù)化設(shè)計途徑——尺寸驅(qū)動法,它只需要設(shè)計人員簡單掌握任一種程序語言,就可以在SolidWorks 平臺上完成。
尺寸驅(qū)動法是在編程法基礎(chǔ)上發(fā)展而來的,尺寸驅(qū)動法的原理是對零件標(biāo)準(zhǔn)模型進(jìn)行尺寸分析,確定變量參數(shù),尺寸驅(qū)動程序只需修改這些變量參數(shù)的值,實(shí)現(xiàn)整個模型完全更新。
尺寸驅(qū)動法的優(yōu)勢在于:
(1)不需要使用宏工具錄制零件整個造型過程,編寫的程序代碼是針對特定的變量參數(shù),提高了系統(tǒng)運(yùn)行的可靠性,避免了部分過程被遺漏。
(2)重新建模省去了編程法中重復(fù)所有造型步驟的過程,而只是更新改變的尺寸數(shù)值所對應(yīng)的模型部分的結(jié)構(gòu),所以系統(tǒng)運(yùn)行速度快,設(shè)計效率高。
(3)編寫的程序代碼總量大大減少,程序代碼具有比較固定的格式,不要求設(shè)計人員掌握SolidWorks API 函數(shù)的具體含義也能完成。
由此可見,在模具企業(yè)推廣參數(shù)化設(shè)計,應(yīng)該優(yōu)先選擇尺寸驅(qū)動法。
在沖壓模具中,模座是最復(fù)雜的沖模標(biāo)準(zhǔn)件。本文以后角導(dǎo)柱下模座:250 × 200 × 50 GB/T2855.6-1990 為例,將尺寸驅(qū)動法與數(shù)據(jù)庫Microsoft Access 相結(jié)合,實(shí)現(xiàn)其參數(shù)化造型。
2.1.1 在SolidWorks 界面建立初始零件模型
在SolidWorks 界面建立后角導(dǎo)柱下模座的零件模型,如圖1 所示。
2.1.2 將特征尺寸設(shè)定為變量參數(shù)
后角導(dǎo)柱下模座零件模型的特征尺寸共有12個,只要對它們指定不同的數(shù)值,零件結(jié)構(gòu)就會隨之改變。
SolidWorks 系統(tǒng)會為標(biāo)注的尺寸自動賦予尺寸名稱,但是這種命名是隨機(jī)的,沒有規(guī)則可循,并且可以重復(fù),不可以作為變量參數(shù)的名稱。所以為了在程序代碼中調(diào)用尺寸方便,應(yīng)該將后角導(dǎo)柱下模座實(shí)體圖中特征尺寸的命名為變量參數(shù),其名稱應(yīng)盡量與國標(biāo)的規(guī)定保持一致,如導(dǎo)柱孔直徑命名為D1、D,其他變量參數(shù)還有:A1、R、S、A2、L1、b、L2、H、h、H1 (注:尺寸單位均為mm),如圖2 所示。
圖2 后角導(dǎo)柱下模座的尺寸名稱
2.2.1 選擇合適的程序語言
任何支持OLE 或COM 的計算機(jī)語言都可以作為編程工具,常用的有C、VB 、VC 等,相比之下,VB 語言更加大眾化,它保留了Basic 語法簡潔、直觀簡便的特點(diǎn),又充分利用了windows 平臺的圖形優(yōu)勢,為用戶提供了一個直覺的、全新的軟件開發(fā)環(huán)境和嶄新的可視化軟件開發(fā)工具。
針對每一種計算機(jī)語言(開發(fā)工具),Solid-Works 軟件提供了不同的接口連接方式。實(shí)現(xiàn)VB與SolidWorks 軟件連接的程序代碼如下:
(1)打開一個新的SolidWorks 實(shí)例
Sub main ()
Dim swApp As SldWorks. SldWorks.
Set swApp=GreateObject(,“SldWorks.Application”)
(2)連接一個已經(jīng)運(yùn)行的SolidWorks 實(shí)例
Sub main ()
Dim swApp As SldWorks. SldWorks.
Set swApp=GetObject(,“SldWorks.Application”)
2.2.2 建立人機(jī)對話窗口
建立一個VB 工程文件,將VB 窗體的界面設(shè)計成為一個人機(jī)對話窗口。在VB 窗體上添加如下控件:
(1)一個Image 控件??梢詾橛脩麸@示圖片。VB 程序運(yùn)行時,適當(dāng)?shù)夭迦胍恍﹫D形,會使VB窗體豐富多彩,且更加直觀。
(2)一個Data 控件。作用是建立VB 工程文件與數(shù)據(jù)庫Access 之間的聯(lián)系。
(3)一個MSFlexGrid1 控件。它是微軟的一個網(wǎng)格控件,用于數(shù)據(jù)庫文件的顯示及交互操作。
但是在VB 標(biāo)準(zhǔn)工具箱沒有這個控件,需要用戶添加,方法是打開“工程”菜單,在二級菜單中點(diǎn)選“部件”,在彈出的對話框中勾選Microsoft FlexGrid control 6.0 (SP6)選項即可。
(4)兩個Command 按鈕。分別命名為“建?!?、“退出”,單擊Command 按鈕,可以達(dá)到程序執(zhí)行和終止的目的。簡單易操作,并且一目了然。
國家標(biāo)準(zhǔn)規(guī)定的后角導(dǎo)柱下模座的規(guī)格較多,在參數(shù)化造型過程中所涉及的數(shù)據(jù)量很大,為了便于管理和調(diào)用,可以將標(biāo)準(zhǔn)模座的特征尺寸數(shù)值存儲到用Access 建立的數(shù)據(jù)庫文件中,構(gòu)成參數(shù)數(shù)據(jù)庫。
在本例中,運(yùn)行Access 2000,建立一個空數(shù)據(jù)庫文件,文件命名為“后角導(dǎo)柱下模座. mdb”,和后角導(dǎo)柱下模座的零件模型保存在同一個文件夾中。建立數(shù)據(jù)表如圖3 所示,這種數(shù)據(jù)表實(shí)際上就是后角導(dǎo)柱下模座的變量參數(shù)數(shù)據(jù)庫。
圖3 后角導(dǎo)柱下模座數(shù)據(jù)表
2.4.1 用Dim 語句定義變量
將后角導(dǎo)柱下模座實(shí)體造型的12 個變量參數(shù)定義為VB 程序變量,如對導(dǎo)柱孔直徑D1、D 定義變量的程序語句為:
Dim swApp As Object
Dim swPart As Object
Dim D1 As Double
Dim D As Double
2.4.2 窗體加載圖片程序語句
Private Sub Form_ Load ()
Image1. Picture=LoadPicture(App. Path &“下模座. JPG”)
本程序語句的作用是增強(qiáng)人機(jī)對話窗口的視覺效果,在程序運(yùn)行之初,窗口中就能顯示后側(cè)導(dǎo)柱下模座零件的三維造型圖片。
2.4.3 建立參數(shù)變量和參數(shù)數(shù)據(jù)表連接的程序語句
Data1. DatabaseName =App. Path &“ 下模座. mdb”
Data1. RecordSource= “表1”
本程序語句的作用是伴隨著程序開始運(yùn)行,在窗口中立即顯示后側(cè)導(dǎo)柱下模座零件的參數(shù)數(shù)據(jù)表。
用MSFlexGrid1 控件讀取數(shù)據(jù)表中參數(shù)數(shù)值,如讀取導(dǎo)柱孔直徑D1、D 定參數(shù)值的程序語句為:
Private Sub MSFlexGrid1_ SelChange ()MSFlexGrid1.Col=2:D1=CDbl(MSFlexGrid1.Text)MSFlexGrid1.Col=3:D=CDbl(MSFlexGrid1.Text)
2.4.4 對參數(shù)變量重新賦值的程序語句
如對導(dǎo)柱孔直徑D1、D 重新賦值:
swPart. Parameter(“D1@草圖4”). SystemValue=D1 / 1000
swPart. Parameter(“D@ 草圖4”). SystemValue=D / 1000
注:由于在VB 程序中參數(shù)的數(shù)值是以米為單位,所以各參數(shù)變量的取值必須除以1000。
2.4.5 重新建模并調(diào)整到全屏顯示的程序語句
swPart. EditRebuild
swPart. ViewZoomtofit2
從以上程序代碼可以看出,主要的程序語句都是VB 編程語言中固定的語句格式,可以直接套用;針對變量參數(shù)的程序代碼相似度很高,設(shè)計人員只需要掌握一些常規(guī)的、通用的程序段,達(dá)到開發(fā)整個程序要求的難度并不高。
EXE 格式的文件,可以在沒有安裝VB 軟件的計算機(jī)上直接在SolidWorks 界面運(yùn)行,并且操作人員看不到程序代碼,能夠很好地保護(hù)企業(yè)的知識產(chǎn)權(quán)和技術(shù)機(jī)密。
本例中生成的EXE 文件,設(shè)計人員可以根據(jù)需要進(jìn)行命名。該文件也提供了一個人機(jī)對話窗口,在窗口中可以看到數(shù)據(jù)表(即參數(shù)庫),能夠使用戶在參數(shù)化造型之前就對各種型號模座零件的相應(yīng)尺寸有全面了解。執(zhí)行EXE 文件時只要在數(shù)據(jù)表中選擇不同的標(biāo)準(zhǔn)件代號,點(diǎn)擊“建?!卑粹o,就可以得到相應(yīng)的下模座造型,如圖4 所示。
圖4 后角導(dǎo)柱下模座造型
企業(yè)對開發(fā)出符合我國標(biāo)準(zhǔn)的模具標(biāo)準(zhǔn)件庫的需求越來越高,本文中探討的沖模標(biāo)準(zhǔn)件的參數(shù)化設(shè)計方法,實(shí)際上就是建立起沖模標(biāo)準(zhǔn)件庫。編寫的程序代碼簡單、易學(xué),人機(jī)對話窗口簡潔、友好,設(shè)計人員很容易掌握。模座參數(shù)化設(shè)計的方法,完全可以推廣到其他沖模標(biāo)準(zhǔn)件的設(shè)計中,從而在企業(yè)設(shè)計人員之間建立起共享資源。經(jīng)過在滁州市兩家模具企業(yè)內(nèi)應(yīng)用,效果很好。
[1]季忠,王曉麗,劉韌. 沖壓模具設(shè)計自動化-SolidWorks應(yīng)用[M]. 北京:化學(xué)工業(yè)出版社,2007.
[2]魏錚,牟林.SolidWorks 2004 冷沖模設(shè)計實(shí)訓(xùn)教程[M].北京:電子工業(yè)出版社,2005.
[3]趙萬龍.Visual Basic 程序設(shè)計[M]. 北京:中國鐵道出版社,2006.
[4]張信群.SolidWorks 二次開發(fā)在沖模標(biāo)準(zhǔn)件中的應(yīng)用[J]. 制造業(yè)自動化,2010,(12 上):70-72.