覃存君
(東風柳州汽車有限公司,廣西柳州 545000)
基于UG的腳本驅動技術在汽車覆蓋件模具設計中的應用
覃存君
(東風柳州汽車有限公司,廣西柳州 545000)
UG二次開發(fā)在汽車覆蓋件模具設計中有著極其重要的地位,但由于其專業(yè)性需求、開發(fā)和維護均依賴于某個或某幾個專業(yè)性人員,限制了中小型模具企業(yè)的發(fā)展。為了解決這個矛盾,引入腳本引擎的概念,使用腳本引擎來簡化UG二次開發(fā)工作,并通過具體的應用案例證明了該方案的可行性,既提高了UG二次開發(fā)的效率,又有效降低了UG二次開發(fā)的成本。
覆蓋件;模具設計;UG二次開發(fā);腳本引擎;腳本語言
UG 是一款功能強大的 CAD/CAE/CAM 一體化軟件,已成為中國航空航天、機械、汽車、模具等領域首選軟件[1]。UG 軟件在三維產(chǎn)品模具設計和裝配過程中有很大的優(yōu)勢,它的應用可以使用戶方便快捷地把腦海中的想法轉變成立體可觀的三維實體圖形,但是由于UG軟件沒有針對某一個特定專業(yè)進行定制化開發(fā),因此具體產(chǎn)品的設計效率較低,這就需要對 UG 系統(tǒng)進行相應的二次開發(fā)。在汽車覆蓋件模具設計領域,UG二次開發(fā)在標準件庫、非標件庫、設計規(guī)范、非標斜楔、模塊化設計、自動出圖、自動材料表等方面,正發(fā)揮著極其重要的作用,提高了模具設計效率,有效縮短了模具開發(fā)的周期。
由于UG二次開發(fā)專業(yè)性比較強,需要熟練掌握VC++或VB.NET編程技術、有一定軟件設計功底、熟練使用UG軟件,通常要設置專人進行UG二次開發(fā)工具的開發(fā)和維護。但是,對于UG軟件應用局限于圖紙查看的企事業(yè)單位,是沒有必要設置這一專職崗位的,小型民營企業(yè)更是沒有足夠的資源支撐這一專職崗位。
所以,提出了簡化UG二次開發(fā)過程的需求,降低開發(fā)門檻,讓普通的UG設計人員只需要經(jīng)過簡單的培訓,就可以對UG進行二次開發(fā),提高工作效率。
為此,作者設計一套腳本語言,借助于編譯原理對常用的UG/Open API函數(shù)進行封裝,開發(fā)出一套腳本引擎,以腳本驅動的方式對UG軟件進行二次開發(fā)。
腳本語言(Scripting Language)通常被看作是計算機式的語言,更加接近于自然語言。以簡單的方式快速完成某些復雜的事情是創(chuàng)造腳本語言的重要原則?;谶@項原則,腳本語言通常比C語言、C++語言或Java之類的系統(tǒng)程式語言要簡單容易,也讓腳本語言另有一些屬于腳本語言的特性[2]:
(1)語法和結構通常比較簡單;
(2)學習和使用通常比較簡單;
(3)通常以容易修改程式的“直譯”作為執(zhí)行方式,而不需要“編譯”;
(4)程式的開發(fā)產(chǎn)能優(yōu)于執(zhí)行效能。
UG二次開發(fā)腳本語言采用初步描述語言的書寫格式,并將基本操作動詞形式化為類似于C語言的函數(shù)調(diào)用語句。主要功能腳本分別舉例如下:
(1)新建幾何元素:新建 點 x坐標,y坐標,z坐標,對象標識
指定屏幕上一點(x,y,z),新建一個點,并返回點的對象標識。
(2)新建幾何特征:特征 倒斜角 雙偏置,對象標識,邊緣序號列表,偏置值,偏置值
第1個參數(shù)“雙偏置”為偏置類型,第2個參數(shù)“對象標識”為執(zhí)行倒斜角命令的幾何元素,第3個參數(shù)“邊緣序號列表”指定該幾何元素體上的特定邊緣,第4、第5個參數(shù)分別表示雙偏置的第一個和第二個偏置值。
(3)變換幾何元素:變換 旋轉 對象標識列表,復制/移動,x0,y0,z0,方向x,方向y,方向z,角度,對象標識列表
參數(shù)“對象標識列表”表示需要執(zhí)行旋轉命令的幾何元素列表,參數(shù)“復制/移動”表示旋轉是否保留原幾何元素,參數(shù)(x0,y0,z0)指定旋轉中心點坐標,參數(shù)(方向x,方向y,方向z)指定旋轉方向矢量,參數(shù)角度指定旋轉的角度值,單位為(°)。
(4)輸入語句:輸入 浮點型 命令行提示,標題,變量
對浮點型變量進行賦值,參數(shù)“命令行提示”表示要在UG軟件狀態(tài)欄內(nèi)顯示的內(nèi)容,參數(shù)“標題”表示對話框的標題內(nèi)容,參數(shù)“變量”指定需要賦值給哪一個浮點型變量。
(5)輸出語句:輸出 信息窗口 字符串,表達式
顯示信息窗口,并在信息窗口內(nèi)輸出指定表達式的內(nèi)容,該內(nèi)容支持變量運算。
(6)圖層設置:圖層分類 新建 分類名,圖層列表[,分類描述]
參數(shù)“分類名”指定該圖層分類的名稱,參數(shù)“圖層列表”指定該圖層分類包含的圖層序號,參數(shù)“分類描述”指定該圖層分類的描述內(nèi)容。
(7)用戶交互:選取 樣條曲線 信息,標題,對象標識
參數(shù)“信息”表示要在UG軟件狀態(tài)欄內(nèi)顯示的內(nèi)容,參數(shù)“標題”表示選取對話框的標題內(nèi)容,參數(shù)“對象標識”表示將該對象賦值給哪一個變量。
腳本引擎的運作流程圖如圖1所示。
圖1 腳本引擎的運作流程圖
讀入腳本程序,先后通過詞法解析、語法解析、語法檢查、調(diào)用執(zhí)行,完成UG二次開發(fā)的簡易開發(fā)。
4.1 詞法解析的設計
詞法解析的流程如圖2所示。
圖2 詞法解析流程圖
此處設計的腳本解析按照行來讀取,輸入一行字符,由詞法解析器分解字符,按照腳本定義的規(guī)則分解出變量。
4.2 語法解析
語法解析采用遞歸調(diào)用的方式進行。
4.3 創(chuàng)建運行時變量
運行時變量的創(chuàng)建在腳本解析的過程中承擔著重要的作用,運行時變量是腳本解析過程中以及腳本解析調(diào)用后傳遞數(shù)據(jù)的載體。運行時數(shù)據(jù)是一個結構體,里面包含了運行時變量在調(diào)用過程中記載的業(yè)務數(shù)據(jù)[3]。
運行時變量數(shù)據(jù)由腳本解析過程中的語法分析器負責創(chuàng)建,并將變量處理過程中的相關數(shù)據(jù)存放到運行時變量的數(shù)據(jù)結構體中。
運行時變量數(shù)據(jù)的創(chuàng)建包括如下5步處理:
(1)從腳本中解析出變量定義。
(2)創(chuàng)建一個存放運行時數(shù)據(jù)的結構體。
(3)解析腳本規(guī)則定義,將賦值語句的計算結果值賦給變量。
(4)使用運行時數(shù)據(jù)。
(5)注銷運行時數(shù)據(jù)。
4.4 調(diào)用執(zhí)行
調(diào)用的主要UG/Open API函數(shù)如表1所示。
表1 調(diào)用的主要UG/Open API函數(shù)
注:所有函數(shù)均提取自UG幫助文件。
采用Block Styler設計功能對話框,獲得與UG/NX軟件完全一致的對話框風格,實現(xiàn)良好的用戶體驗。對話框布置如圖3所示。
圖3 用戶交互對話框
對話框內(nèi)放入一個文件夾瀏覽器、一個列表框。用戶通過點擊按鈕選擇腳本文件所在的文件夾;然后程序自動檢測該文件夾內(nèi)的所有腳本文件,并顯示于列表框中;用戶選擇列表框內(nèi)對應的腳本,并點擊“確定”按鈕,激活腳本文件,并開始解析執(zhí)行腳本內(nèi)容。
腳本引擎制作完成后,生成一個ScriptEngine.dll文件和一個ScriptBlock.dll文件,需要將它們掛載至UG軟件中,方便調(diào)用。掛載步驟如下:
(1)在D盤創(chuàng)建一個ScriptEngine文件夾;
(2)在ScriptEngine文件夾內(nèi)創(chuàng)建一個startup文件夾和一個application文件夾;
(3)將ScriptEngine.dll文件存入application文件夾內(nèi);
(4)將ScriptBlock.dll文件存入application文件夾內(nèi);
(5)在startup文件夾中新建一個ScriptEngine.tbr文件;
(6)ScriptEngine.tbr的文件內(nèi)容如圖4所示;
圖4 ScriptEngine.tbr內(nèi)容
(7)設置系統(tǒng)環(huán)境變量UGII_USER_DIR=D:ScriptEngine。
至此,UG掛載完成,打開UG后,工具條顯示如圖5所示。
圖5 將腳本引擎加載至UG軟件中
以上是腳本引擎的制作方法和制作過程,下面重點說明一下使用方法。
打開記事本,編輯內(nèi)容如圖6所示。
圖6 圖層規(guī)范.txt內(nèi)容
保存為“圖層規(guī)范.txt”,運行結果如圖7所示。
圖7 圖層規(guī)范.txt運行結果
8.1 代碼編寫內(nèi)容對比
以設置實體顏色為例,VC++編寫的代碼如圖8所示。
圖8 設置實體顏色VC++主要代碼
腳本編寫的代碼如圖9所示。
圖9 設置實體顏色腳本全部代碼
普通的UG二次開發(fā)代碼晦澀難懂,需要具備一定的英文基礎以及VC++編程經(jīng)驗。腳本代碼短小精湛,且通俗易懂。
8.2 代碼量對比
典型案例代碼量對比如表2所示。
表2 典型案例代碼量對比
汽車覆蓋件模具自動端頭運行效果如圖10所示。
8.3 開發(fā)周期對比
以最簡單的圖層設置為例,普通的UG二次開發(fā)編寫加測試使用了2天時間,而腳本代碼編寫加測試僅僅使用了1.5 h,極大地縮短了開發(fā)周期。
8.4 運行效率對比
總體上,普通的UG二次開發(fā)程序運行速度優(yōu)于腳本代碼程序,速度上快了500 ms~2 s。運行效率上,腳本代碼程序稍有劣勢,但與開發(fā)周期對比,此劣勢可以忽略不計。
由以上對比可知,腳本驅動的優(yōu)勢很明顯,腳本代碼短小精煉,通俗易懂,容易編寫,門檻低,開發(fā)周期短,既能提高設計效率,又有效簡化了UG二次開發(fā)流程,使得普通的模具設計工程師也可以勝任編寫,完全消除了對計算機專業(yè)技能的依賴。
以汽車覆蓋件為例,該方案適用于以下企業(yè):
(1)中小型模具企業(yè)等設計量大但資金不充裕的企業(yè);
(2)部分沖壓廠、主機廠等對UG圖紙修改量小但UG使用量大的企業(yè)。
【1】侯勇濤,丁向陽.UG/Open二次開發(fā)與實例精解[M].北京:化學工業(yè)出版社,2007:2-53.
【2】文中華,謝深泉.知識點腳本語言的設計[J].湘潭大學自然科學學報,1999,21(2):133-137. WEN Z H,XIE S Q.The Design of the Knowledge Point Script Language[J].Natural Science Journal of Xiangtan University,1999,21(2):133-137.
【3】童時中.模塊化原理設計方法及應用[M].北京:中國標準出版社,2000:19-305.
【4】AHO A V,LAM M S,SETHI R,et al.Compilers:Principles,Techniques & Tools[M].2nd Ed.New York:Pearson Education,Inc.,2007:39-356.
【5】李穎.基于腳本解析器的績效考核系統(tǒng)的設計與實現(xiàn)[D].沈陽:東北大學,2012.
【6】楊宗亮,吳兆華.UG二次開發(fā)技術及其開發(fā)技巧[D].桂林:桂林電子科技大學,2012.
【7】張錦盛.基于腳本驅動的應用系統(tǒng)開發(fā)方法[D].昆明:云南大學,2010.
【8】楊曉紅,張邦成.汽車覆蓋件拉深模具結構設計模板化CAD系統(tǒng)[J].農(nóng)業(yè)機械學報,2007,38(11):149-152. YANG X H,ZHANG B C.Stencil CAD System of Auto Panel Die Drawing and Extending Mould Structure Design[J].Transactions of the Chinese Society for Agricultural Machinery,2007,38(11):149-152.
【9】王志峰,高錦輝,趙維民.基于UG的汽車覆蓋件模具的模板化設計[J].模具工業(yè),2007,33(5):8-11. WANG Z F,GAO J H,ZHAO W M.UG-based Templating Design of Die for Automobile Metal Sheets[J].Die & Mould Industry,2007,33(5):8-11.
【10】方正,王耕耘.基于UG的汽車覆蓋件模具智能化標準件庫的實現(xiàn)[J].鍛壓裝備與制造技術,2007,42(2):106-110. FANG Z,WANG G Y.The Implement of Intelligent Standard Part Library for Panel Die Based on UG[J].China Metalforming Equipment & Manufacturing Technology,2007,42(2):106-110.
【11】毛雨輝,邱長華.基于UG的標準件庫的研究和建立[J].工程圖學學報,2007,28(1):157-161. MAO Y H,QIU C H.The Research and Establishment of Standard Part Library Based on UG[J].Journal of Engineering Graphics,2007,28(1):157-161.
【12】李素萍,劉劍,劉根生,等.基于UG參數(shù)化快速設計方法的研究及應用[J].鍛壓技術,2006,31(2):85-88. LI S P,LIU J,LIU G S,et al.Study and Application of the Parameterized Quick Design Method Base on Unigraphics[J].Forging & Stamping Technology,2006,31(2):85-88.
【13】蔣德云,朱德泉,周杰敏,等.基于UG平臺沖壓模三維標準件庫的建立[J].機械工程師,2006(3):25-27.
【14】徐國生,周志雄,劉正恒.UG二次開發(fā)技術在汽車沖模標準件庫開發(fā)中的應用[J].模具制造,2004(4):4-7.
【15】鄭清春,徐燕申,侯亮,等.汽車覆蓋件模具模塊化快速設計技術的研究[J].成組技術與生產(chǎn)現(xiàn)代化,2001,18(3):11-14. ZHENG Q C,XU Y S,HOU L,et al.The Research on Modular Design Technology in Automobile Panel Dies Oriented to Rapid Manufacturing[J].Group Technology & Production Modernization,2001,18(3):11-14.
【16】王慶林.UG/Open GRIP實用編程基礎[M].北京:清華大學出版社,2002:16-277.
Application of Script Driven System in Die Design for the Automobile Body Panel Based on UG
QIN Cunjun
(Dongfeng Liuzhou Motor Co.,Ltd.,Liuzhou Guangxi 545000,China)
The secondary development of UG plays an important role in the design of automobile panel dies. But because of its professional demand, development and maintenance are dependent on one or several professional personnel, it limits development of small and medium-sized mold enterprises. In order to solve this contradiction, the concept of the script engine was introduced, the script engine was used to simplify the secondary development of UG. The feasibility of this scheme was proved through some specific examples. It not only improves the efficiency of the secondary development of UG, but also effectively reduces the cost of the secondary development of UG.
Body panel; Die design; Secondary development of UG; Script engine; Script language
2017-05-03
覃存君(1984—),男,工學學士,主要從事汽車白車身沖壓工藝方案分析及模檢具制造項目技術工作。E-mail:blueeyes008@163.com 。
10.19466/j.cnki.1674-1986.2017.05.002
U461.99
B
1674-1986(2017)05-008-05