楊興,曹宇峰,周鵬
東風汽車公司技術中心 湖北武漢 430058

高級工程師 楊興
汽車模具數字化制造的發展和三維實體設計的普及使模具的全尺寸程序化設計和數控加工成為可能。汽車模具在設計階段,在NX軟件平臺上基于PDM系統并結合汽車模具的應用需求,開發建立了三維大型汽車模具智能設計系統;在數控編程CAM階段,泡沫整體加工、鑲塊加工和模具結構加工實現了數字化的加工流程。因此,如何將模具結構設計人員和數控編程人員從大量單一、機械性的工作中解放出來,能將更多的精力放在前期設計優化和標準化、提高加工效率等技術含量高的工作上,從而提高設計和數控編程的效率及質量,成為亟待解決的問題。
在智能化制造系統開發前,設計特點如下。
(1)設計效率低 三維模具設計周期長,如斜楔修邊整形模具,設計裝配圖如圖1所示,其設計周期長達5個月,不能滿足用戶的要求。設計人員流動性大,新手多,容易出現設計質量問題。簡單重復性工作內容多,設計工作非常辛苦,沒有充分發揮計算機輔助設計作用。

圖1 模具設計裝配圖
(2)標準化程度低 標準化程度低、標準雜亂、標準件跟不上需要等已嚴重制約了汽車覆蓋件模具的發展。目前,國內已有不少企業以中國模具工業協會汽車車身模具及裝備委員會編印的《汽車沖模標準匯編》作為標準,但這一標準匯編尚未得到廣泛應用,還不是行業標準。在國內幾大汽車模具企業中通常采用合資方的外國標準,如東風公司與PSA合資就采用E24標準,與日產合資就采用KPS、NPS標準,各模具企業很難形成統一的設計、制造標準,造成現有的覆蓋件沖模CAD/CAM系統的集成化和智能化程度都比較低,知識重用困難。
(3)現有CAD軟件專用性差 目前國內自主開發的CAD軟件較少,而多數廠家引進的國外先進軟件多為通用型軟件,未經開發則專用性較差。面對當前模具行業日益激烈的競爭,開發“模具智能化設計系統”,以實現模具設計技術專業化、通用化和高效化已迫在眉睫。
汽車模具使用的NX軟件是主流的CAD/CAM系統,是集計算機輔助設計、輔助制造、輔助工程和產品數據管理(CAD/CAM/CAE/PDM)一體化的軟件系統。但NX作為通用支撐軟件系統,提供相關的CAD和CAM功能,并沒有提供模具設計和數控編程所需的專業功能。NX軟件給用戶提供了豐富的開發接口,用戶能在此基礎上開發專業的CAD和CAM功能。軟件二次開發模塊(UG/Open)以開發性架構面向不同的軟件平臺提供靈活的開發支持,從而讓開發者可針對模具制造開發出功能強大、適合自己使用的模具智能制造系統。此外還提供了后置處理開發模塊(UG/GPM、UG/POST)、車間工藝文檔開發模塊(UG/ShopDoc)和知識融合(UG/KF)等。
UG/Open是一系列UG開發工具的總稱,它主要由MenuScript(菜單腳本語言)和UIStyler(對話框設計)、API(應用程序接口)和Grip(圖形交互程序)4個組件組成。
(1)UG/Open MenuScript 一種定義菜單的腳本語言,以關鍵字來表示菜單的內容和結構。用戶創建或修改菜單文件(*.men,純文本格式),即可很方便地定義、修改UG界面的主菜單、快捷菜單及菜單項的響應動作(action),action需要在UG啟動時注冊方可使用。
(2)UG/Open UIStyler UG提供的對話框設計模塊UIStyler,可快速得到具有文本、按鈕和列表等控件的UG風格的對話框。但同目前流行的Windows應用程序開發工具相比,UIStyler包含的控件太少,且不能使用windows的豐富資源,有很大的局限性。
(3)UG/Open API 又稱User Function,是UG提供給外部應用程序的接口,由一系列函數和過程組成,是UG二次開發的關鍵。通過在C/C++程序中調用這些函數,能在UG主界面中創建交互式界面,并調用UG內部的操作。
(4)UG/Open Grip UGNX自帶的一種圖形交互編程語言,有其完整的語法規則、程序結構和內部函數,受其語法、結構的影響,適合做一些小型的、簡單的程序開發,往往把它作為API的一種補充。
在UG的二次開發過程中,上述4個組件往往需要組合使用,調用關系如圖2所示。

圖 2 UG/Open 4大組件調用關系
MFC(Microsoft Foundation Class)是VC++的一個重要資源,這套由微軟開發的庫已經成為設計窗口應用程序的準工業標準,它包含了上百種事先用C++程序寫好的類,將這些類組合起來,可以編寫功能強大的應用程序。與UG/UIStyler界面設計技術相比,使用MFC的界面在布局上更為容易,控件更為豐富,修改調試更為靈活。UGNX開發環境沒有提供對MFC的支持,無法直接使用MFC的豐富資源。通過改變MFC DLL項目的程序結構,成功地把MFC應用到了UG的二次開發中,大大增加了UG二次開發的自由度。其CString、CDialog、CList等類的使用,極大地簡化了二次開發的過程。其一般開發流程如下。
(1)創建項目文件 在VS2010/VC++里創建MFC DLL型項目文件,包括:.h頭文件、.cpp源文件、.def模塊定義文件和.rc資源文件等。
(2)項目屬性設置 在項目屬性里添加UG文件夾UGOpen、UGOpenPP為頭文件包含路徑,添加6個UG導入庫文件(*.lib)為附加庫依賴項。
(3)入口函數的設定 入口函數定義了UG以何種方式及何時加載動態鏈接庫。UG提供了多種入口函數。
1)ufusr(用戶入口):二次開發中最常用的入口方式,可通過菜單命令或工具條按鈕來加載,有3種不同的卸載方式:IMMEDIATELY、SEL_DIALOG(通過對話框卸載)和UG_TERMINATE(UG進程終止時卸載)。
2)ufsta(自動入口):UG啟動時自動加載,UG進程退出時卸載。菜單項響應動作(actions)需要在此入口函數內登記后方可被正常調用。
3)user exit(特定操作入口):可以在UG執行某一特定操作時轉而加載用戶程序,如新建文件、打開文件、CAM初始化等操作都有自己的入口函數,每個入口函數對應一個系統環境變量。
圖3所示是開發的UG文件管理系統的打開文件界面,其入口函數為ufget,建立對應的環境變量USER_RETRIEVE,指向生成的動態鏈接庫文件。這樣當用戶在UG中點擊打開文件按鈕時,系統在動態鏈接庫中搜索并執行ufget函數,出現圖3所示的界面,取代了UG自身的打開對話框。

圖3 UG文件管理系統界面
(1)利用MFC創建對話框類 在資源視圖里添加對話框資源,用對話框編輯器設計話框布局,最后使用ClassWizard(類向導)創建對話框類,修改此類的源程序以實現對話框控件的功能。
(2)對話框的調用 在主程序中必須先調用宏AFX_MANAGE_ST,指明MFC對話框使用DLL本身的資源。常用的對話框分為模式和無模式兩種形式,其中模式對話框較簡單,定義一個對話框類實例,并調用其成員函數DoModal()即可實現對話框功能;無模式對話框的使用更為靈活,可以在不關閉對話框的條件下直接調用UG提供的界面交互函數,其創建及銷毀較為復雜,需要調用CWnd::Create函數創建對象、調用ShowWindow函數顯示對話框。
(3)源代碼編寫 在MFC、UG/Open環境中編寫源代碼,調試、編譯。加載設置:根據觸發方式的不同分為如下幾種情況。
1)UG啟動時調用:將*.dll文件放到UG的STARTUP文件夾內。
2)通過菜單按鈕調用:使用MenuScript語言編寫菜單文件(*.men),將*.men和*.dll文件放到STARTUP文件夾內。
3)通過工具條按鈕調用:修改STARTUP文件夾內用戶工具條文件(*.tbr),添加按鈕(button),并定義響應動作(actions),指向*.dll文件。
4)通過菜單命令(ctrl + U)調用:用戶需手動加載*.dll文件。
5)UG執行某一特定操作(user exit)時觸發:對應一個入口函數、一個環境變量,將*.dll放入環境變量定義的路徑內。
(1)建立大梁落料沖孔模裝配的參數化設計模板 整理大梁模原始資料,總結出其典型斷面結構,建立大梁主斷面的草繪圖,使用主參數和輔參數控制表達式來改變上下底板的大小和特征組。在UGNX軟件中事先使用參數化功能建立起上、下底板,上、下安裝座的通用三維模板,按功能將特征成組。按照設計規范建立起模具主要零件的裝配特征樹。使用開發的克隆程序,僅需輸入路徑和模具號即可完成一套新大梁模的模具主要部件的生成(見圖4),通過參數調整完成大梁模上底板、下底板、凸模固定座和凹模固定座4大鑄件的參數化實體設計,以及標準件裝配。

圖4 設計大梁模智能設計模塊
底板生成步驟:建立大梁主斷面的草繪圖→通過拉伸命令生成大梁上、下底板的基本實體→添加功能特征組,如導向部件、起吊部件、壓板槽特征組和加強筋組等完成參數化模板→手工修改添加其他特征,完成上、下底板設計。
(2)標準編程模板的建立 為了建立數控編程標準作業流程,減少出錯的幾率,公司將多年積累的編程經驗,及各種成熟的加工方法、加工策略、參數等進行固化,做成標準CAM模板,以便數控編程人員直接調用。圖5所示分別為泡沫編程模板、結構編程模板和鋼模編程模板。

圖5 標準編程模板
通過模板的調用,大大簡化了數控編程人員的工作量,同時利于實現標準化作業流程,便于統一管理。
(3)孔加工數控編程系統的開發 如圖6所示,采用非模式屬性頁(MFC)的對話框界面,能對設計三維實體自動進行孔的檢測,包括孔的類型、大小、方向和位置等參數,并生成孔位列表,可以通過右鍵彈出菜單方式對孔信息進行手工編輯,可自動輸出孔位加工程序、孔位清單,實現了孔加工的自動化編程,大大提高了孔加工數控編程的效率。

圖 6 孔加工數控編程系統
尤其對于大梁類沖孔模,孔非常多,數控編程的主要工作量是孔加工編程。軟件開發前只能靠人工來進行孔類型、大小等參數的辨別,并通過手工選取生成程序,效率非常低。編程工具開發前進行某項目大梁模編程,前后投入了3人,歷時1.5個月才完成數控編程任務。采用此工具,數控編程周期至少可縮短至原周期的1/6~1/5,質量也得到了保障。
對MFC的UGNX二次開發技術進行了深入的探討,同時提供基于UG/CAM的VC++編程開發實例:通過UGNX的開發接口調用內部指令,由軟件自動完成原本需要手工完成的工作。通過工具軟件的二次開發,大大降低了設計和數控編程人員的勞動強度,提高了模具的工作效率及質量,縮短了模具設計和數控編程的周期,極大地緩解了實際生產中任務重、工期緊的矛盾,實現了模具前期技術工作部分環節的自動化、規范化。
然而,與國外領先行業的智能化制造相比,軟件開發和實際應用仍有差距。在今后的工作中,針對模具智能化制造仍需進一步的探索、開發,向模具作業流程的智能化、標準化道路前進,提升模具制造技術水平。