侯永濤,嵇佳琪
(江蘇大學機械工程學院,江蘇 鎮江 212013)
產品配置是指對預先定義的可配置產品的組件進行組合,滿足個性化客戶需求,完成產品定制的手段[1]。當前的產品配置多為零部件級,配置起來相對簡單,主要是零部件的裝配約束;特征級的產品配置研究相對較少,主要原因是特征操作相對零部件的裝配約束更加困難。特征級的產品配置不但需要根據KBE(knowledge based engineering)技術建立工程向導確定驅動參數,而且產品模型需要進行參數化設計[2]。目前,對梁結構的配置仍然停留在零部件級的固定配置。以副車架縱梁結構為例,這種固定配置往往無法滿足企業對副車架多種型號的需求,常常導致重新建模和重新設計。
知識工程(KBE)就是將經過長期工程考驗的產品設計經驗、數據、方法進行歸納整理和提煉,使之成為指導產品設計、制造行之有效的規范化設計知識,并與企業的CAD 系統結合,通過CAD 系統的二次開發形成專業化設計工具,其本質就是知識的再利用[3]。通過KBE 技術建立梁結構的模型庫,并且庫中模型的結構尺寸需要根據客戶需求隨時調整,這樣很容易產生大量重復設計,基于NX 二次開發模塊的參數化設計功能可有效解決這種重復設計問題[4-5]。基于KBE 技術,結合CAD 軟件NX 的二次開發模塊,將梁結構的配置過程以向導形式固化,完成梁結構的專業化配置工具。配置過程中,不斷重復利用模型庫中參數化模型,調用不同的參數模型形成不同系列的梁結構,使得梁結構可以從一種配置狀態切換到另一種配置狀態。
通過整理梁結構各個部件之間的關系,歸納出設計過程中需要的工程知識,并定義出影響產品性能的工程參數[6]。根據工程知識建立計算產品性能的工程規則,再結合客戶需求完成設計過程向導,以此完成工程參數到幾何驅動參數的轉化。將梁結構進行單元化處理,并設計了一種平穩可靠的方式實現單元模型的幾何驅動。根據幾何驅動參數完成幾何模型,建立梁結構的單元模型庫。
根據產品規格和產品特性按功能將產品劃分模塊。為了從科學的角度合理地劃分模塊,需要分析產品的特征和結構,研究產品的結構組成,合并相同或相似的單元,分離不同的單元,最終通過模塊化理論統一。
按功能將梁結構產品劃分模塊并分離為單元,簡稱為梁單元。每個梁單元擁有兩個截面,不同的梁單元擁有不同的截面輪廓。為了建立更全面的庫,必須構建不同的截面輪廓包含產品知識。在建立模型庫時,該研究使用計算機軟件NX9.0 構建3D 模型。
根據梁截面形狀的不同,模型庫中梁單元的數量,如表1 所示。有時為了滿足客戶需求,可以添加截面形狀。當截面形狀數量從n增加到n+1 時,庫中梁單元的數量將增加2n+1 個。

表1 梁單元創建矩形Tab.1 Beam Unit Creation Rectangle
通過總結產品設計知識,利用KBE 技術形成知識庫。在設計和計算過程中,使用已分類的參數來調用知識庫中的相應知識和方法來完成設計和計算。在計算過程中,設計人員可以通過產品的關鍵參數來表示設計知識。

圖1 兩點之間的路徑Fig.1 Path between Two Points
以梁單元為例,在工作坐標系下創建兩個基準坐標系(CSYS)分別控制梁單元的兩個截面的空間自由度。每個基準坐標系包含一個基準點、三個基準平面和三條基準軸。坐標系的基準點位于截面的中心位置,依靠基準坐標系的旋轉平移控制截面的6 個自由度。接著,以一種穩定平滑的方法連接兩個坐標系的基準點。具體效果,如圖1 所示。
這種方法使梁單元兩個截面之間平滑過渡,連接的曲線將引導模型的中心軌跡。具體方法示意,如圖2 所示。P1 和P2 點是基準坐標系的基準點,位于截面中心。P1-2、P2-2 和Pm的位置通過K1、K2、K3、K4 這四個參數變量來控制。為了方便計算,K1=K2=K3=K4=0.5,這時P1-2、P2-2 和Pm分別位于線段L1、L2 和Lm的中點處。圓弧半徑的值依靠a1、a2、b1、b2、α、β 這 6 個參數確定。以R1 為例:


圖2 路徑計算Fig.2 Path Calculation

圖3 多變的梁單元的變形Fig.3 Variation of the Variable Beam Element

圖4 梁結構的多樣性變形Fig.4 Variety Deformation of the Beam Structure
使用這種方法P1 和P2 之間的路徑,經過P1-2、P2-2、Pm平穩過渡。隨著基準坐標系自由度和KR1等參數的變化,路徑將產生大量可能性。結合梁單元截面輪廓的多樣性,使得梁單元的可變性充足。具體效果展示,如圖3 所示。多變的梁單元為梁結構的多樣性提供了基礎。將不同的梁單元通過相同的截面連接,經過多次連接得到需要的梁結構。梁結構中的梁單元與相鄰的梁單元相互影響,如果改變其中一個梁單元的截面形狀參數或截面自由度,那么相鄰梁單元也要產生相應變化。通過控制梁單元,也間接控制了梁結構。梁結構的多樣性具體效果,如圖4 所示。
基于KBE 技術結合NX 軟件,通過NX/Open API 定制菜單和對話框,完成用戶界面;并在對話框和模型庫之間建立驅動、調用等關系,完成CAD 系統與幾何模型庫的連接。最終,以插件的形式供用戶在NX 環境中通過用戶界面進行調用,完成梁結構類型產品的專業設計。其具體的開發框架,如圖5 所示。

圖5 基于KBE 的開發框架Fig.5 KBE-Based Development Framework
通過編輯NX 中的Menu script 文件進行菜單設計。首先,新建文本文件,將其擴展名改為*.men,并完成菜單腳本文件的編寫。接著,將其保存于開發目錄的Startup 文件下,完成協調于NX的菜單界面開發[7]。NX 啟動后,系統會自動加載用戶指定開發目錄下的菜單文件,根據腳本程序在NX 指定位置顯示菜單,如圖6所示。

圖6 配置菜單Fig.6 Configuration Menu
利用NX/Open 的Block UI Styler 定制用戶對話框。打開塊UI 樣式編輯器模塊,在設計對話框中添加向導、截面形狀選擇、截面自由度配置、截面形狀參數配置等控件,調整其相對位置,并添加對應的位圖文件。其具體效果在第四章開發實例中展示。
以NX 9.0 軟件和VS2012 編譯器為開發平臺。將"NX 安裝路徑 UGOPENvs files”下的 VC、VC#、VB 三個文件夾復制到VS2012 的安裝目錄下;在VS2012 中新建一個NX9 Open Wizard模板項目;將Block UI Styler 生成的*.hpp 和*.cpp 文件替換掉模板項目中的頭文件和源文件,編寫相應地主函數和回調函數,生成動態鏈接庫文件(*.dll),將其放置于應用程序目錄下供菜單項調用[8]。系統的主要實現流程,如圖7 所示。在系統實現過程中,NX9 Open Wizard 模板項目利用NX/Open API 與幾何模型庫之間建立了驅動、調用等關系。以此幾何模型庫通過模板項目與CAD系統完成了連接。使得客戶在NX 獨立環境中,通過用戶界面就可以進行梁單元的調用、組合、更新和生成,最終完成梁結構模型。

圖7 系統實現流程Fig.7 System Implementation Process
以某小型轎車副車架縱梁為例,在NX 中進行聯合配置開發,其配置過程具有高度的靈活性和穩定性。配置過程主要由四部分組成:(1)梁骨架配置(2)梁截面選擇配置(3)梁截面自由度配置(4)梁截面形狀參數配置。配置流程圖,如圖8 所示。

圖8 梁結構配置流程Fig.8 Beam Structure Configuration Process
根據梁部件與相鄰部件的關系,按功能劃分模塊,然后確定其骨架。該骨架包含了梁組件在三維空間中的位置信息。實例中將梁分成5 個模塊為例,需要6 個截面,每個坐標系代表一個截面,如圖9 所示。

圖9 梁的骨架Fig.9 Skeleton of the Beam
模型庫中的梁單元根據截面形狀的不同,可以分為許多不同的單元模型。在配置界面中根據選擇的梁截面形狀,確定加載單元模型類型。另外,通過點擊“切換”或“添加”按鈕,減少或增加需要選擇的截面,間接決定需要加載的梁單元模型數量。其配置界面,如圖10 所示。

圖10 截面形狀選擇界面Fig.10 Section Shape Selection Interface
梁單元創建矩形表格1 中,兩個截面形狀可以確定一個梁單元的類型。根據對話框中所選截面形狀的不同,通過NX/Open API 可以快速的從幾何模型庫中定位到所需要的模型。接著,需要將定位到的梁單元模型,加載到裝配文件中。在加載單元模型時,根據截面形狀的選擇,如果需要對同一種單元模型重復加載。那么,在重復加載前,需要對其單元模型進行復制,再加載其復制模型。加載梁單元后的總裝配模型,如圖11 所示。

圖11 梁單元的總裝配Fig.11 Total Assembly of the Beam Unit
梁結構模型的更新主要由兩部分組成:(1)截面自由度配置開發(2)截面形狀參數配置開發。通過其控制梁單元的軌跡和截面輪廓,使得梁結構在不同配置狀態間轉換,滿足了梁結構多種型號配置的需求。
4.3.1 截面自由度配置開發
當梁骨架的配置信息需要更新或有其它一些特殊需求,為了避免生成多余模型,占用額外的存儲空間,需要重定義梁骨架。根據前文的控制方案,改變截面坐標系的6 個空間自由度,可以控制骨架在三維空間中的位置信息。當骨架的位置信息重定義后,后臺程序將根據配置信息更新單元模型庫中的梁單元,并重新加載。更新截面自由度的一個例子,如圖12 所示。

圖12 截面自由度配置界面Fig.12 Section Degree of Freedom Configuration Interface
4.3.2 截面形狀參數配置開發
梁骨架的配置信息更新后,在確定截面形狀的基礎上,為了滿足梁配置的靈活性,需要對梁截面形狀參數實現更新配置。當改變配置對話框中的數據后,梁相應的截面形狀參數將在總裝配模型中發生變化。其配置界面,如圖13 所示。

圖13 截面形狀參數配置界面Fig.13 Section Shape Parameter Configuration Interface
以KBE 技術為基礎,建立梁結構類型產品基于知識的單元模型庫,使用NX/Open API 和Visual Studio 對模型庫進行聯合配置開發。將梁的配置流程以NX 中向導形式加以固化,在配置過程中調用模型庫中的梁單元并加以更新,梁單元以截面輪廓和中心軌跡參數的改變而更新。這種結合KBE 技術的梁配置開發方法,確保了梁結構在三維空間中的可控性,實現了梁結構拓撲變化的多樣性。并且NX 的向導模式,使得在NX 獨立軟件中就能完成梁結構類型產品的配置,極大地提高了工作效率,且為建立梁結構數據庫提供了基礎。