基于Pro/E平臺的CAD/CAPP/CAM系統(tǒng)集成化研究
Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E" title="Pro/E">Pro/E是美國參數化公司(PTC)研制的CAD/CAM軟件包,Pro/TOOLKIT是PTC公司專門提供的Pro/E二次開發(fā)工具。在 Pro/TOOLKIT中,PTC向用戶提供了大型的C語言函數庫,通過調用這些底層函數,用戶能方便、安全地訪問Pro/E的數據庫及內部應用程序,進行二次開發(fā),擴展一些特定的功能。
1 系統(tǒng)總體結構設計
從功能而言,系統(tǒng)各模塊只是對Pro/E的主要功能利用面向對象的思想所作的進一步封裝,其目的在于簡化人機交互的次數,使系統(tǒng)更易于操作和學習。各模塊間的相互關系如圖1所示。
圖1 系統(tǒng)總體結構圖
所有模塊均為各自獨立的Pro/TOOLKIT應用程序,模塊間的通訊由Pro/TOOLKIT提供的接口函數實現,相關參數的傳遞利用Pro/TOOLKIT函數和相關指針實現。
整個零件的設計和加工信息都存儲在Pro/E的數據庫中,由于Pro/E是基于單一數據庫的軟件系統(tǒng),因此在任一處的修改都將引起所有相關參數的變化,這使模型的修改非常方便。
當系統(tǒng)在仿真環(huán)節(jié)發(fā)現問題時,用戶可以通過修改工藝設置或直接修改產品幾何模型,然后再經仿真環(huán)節(jié)驗證設計的合理性,在加工軌跡仿真結果符合設計要求之后,即可經后處理模塊生成NC加工代碼。
2 各功能模塊的設計及其實現
2.1 造型模塊
該模塊的功能是實現零件的結構設計,其目標在于生成一個存儲零件整體信息的文件。
該模塊的核心是建立特征庫。首先依據生產的實際情況,按照GT技術的方法對零件的結構及加工條件進行分析和歸納,最終確定特征的種類和數量。特征的分類如圖2所示。
圖2 特征分類圖
幾何特征的建立是采用Pro/E提供的用戶自定義特征功能實現的 [2,3]。對每個幾何特征的建立過程是類似的,即首先手工構建產品模型,將要創(chuàng)建的特征附著在模型的上面,然后選擇菜單項進行幾何特征的創(chuàng)建。一個幾何特征的定義中要包括參考基準、可變尺寸及可變尺寸的記號,通過在程序中修改可變參數的數值,即可獲得所需要的特征衍生件,在建模的過程中也可利用鼠標點選標注尺寸,利用尺寸驅動技術修改這些參數。對非幾何特征則以特征碼的方式存放,最后將所有的特征以相同的格式(.gph)存放在同一根目錄下,形成特征庫 (UDFLibrary),作為造型的基本工具。
在應用中,首先利用特征庫進行幾何型的建立,然后根據對各幾何特征加工要求的不同,將非幾何特征附加到各特征上,從而形成對零件信息的完整描述。在幾何特征和非幾何特征之間通過指針的方式實現通信。
模型的建立采用與Pro/E系統(tǒng)建模思想完全吻合的特征拼裝技術。首先選擇幾何模型的主特征,并以其作為整個模型的父特征,其余特征依次從特征庫中選取并附加到主特征上,形成模型的基本形狀;然后對各特征的可變尺寸根據設計要求進行修改,完成零件的幾何模型的建立;最后,實現非幾何特征的附加。方法是:1)用鼠標選取定制菜單中“添加非幾何特征”項,彈出設置對話框并將其固定在桌面上;2)依次用鼠標選取幾何特征,使它的相關指針項指向對話框;3)對對話框中各項參數進行賦值,這個過程也即對選中特征相關參數的賦值。至此,零件的建模工作結束,將所有的設置以文件的方式存放在指定位置,作為 CAPP部分的輸入參數。
2.2 工藝處理模塊及加工仿真
工藝處理模塊的主要功能是CAM對系統(tǒng)加工參數的自動獲取,其目標是在加工仿真完成后生成刀位數據文件,以其作為后處理的輸入。其基本構成及相互關系如圖3所示。
圖3 工藝處理模塊框圖
顯然,制造模型的建立是整個工作的起點,首先制造模型建立模塊通過自身的指針函數讀取造型模塊所產生的文件,然后根據毛坯選擇規(guī)則庫的相關規(guī)則自動從毛坯庫中選取毛坯,并自動完成制造模型的建立,從而實現了制造模型建立的完全自動化操作。
工藝規(guī)劃為該部分的核心,也是整個二次開發(fā)的難點所在。鑒于Pro/E系統(tǒng)本身缺乏CAPP的信息集成,用戶對各加工特征的設定、加工方法的選擇、刀具的選擇、切削參數的設定等均需人機交互完成,這些操作對操作人員的要求高、交互復雜,是限制Pro/E的CAM功能廣泛應用的主要原因之一,為此,系統(tǒng)提出了如下的解決方案。
首先用交互的方式輸入工藝裝備信息,如夾具、機床信息等。然后進入推理環(huán)節(jié),推理步驟為:1)讀取造型文件,根據針對每個特征所建立的工藝推理規(guī)則自動產生每個特征加工的工序;2)結合制造模型的輸出信息,自動對所有特征的加工工序進行整合和排序,生成整個零件加工的刀位文件。其中,在推理環(huán)節(jié)完成粗加工、半精加工、精加工等各工序的加工參數、刀具選擇、切削參數的確定,在排序過程中確定加工的退刀面、走刀方式和進退刀方式、走刀次數等。將推理的結果輸入Pro/NC CHECK模塊進行刀具軌跡的仿真,以檢查設置是否合理,是否出現干涉等情況。用戶可以通過修改幾何模型或修改加工參數的設置使仿真結果更符合設計要求。在仿真結果滿足加工要求后,即生成最終的刀位文件。
2.3 后處理
利用Pro/E的后處理功能模塊,將刀位文件轉化為機床能夠識別的NC代碼。
3 用戶界面的開發(fā)
因為Pro/E一直是以工作站的UNIX作為開發(fā)和使用環(huán)境,所以界面風格更類似于XWINDOWS,而不像AutoCAD那樣與Windows 風格完全一致,同時Pro/E提供的對話框控件也非常有限。為此,系統(tǒng)采用VC++6.0的MFC類庫對用戶界面進行二次開發(fā)[1,3],同時也利用 VC++開發(fā)相關的數據庫,開發(fā)的實質是在Pro/E系統(tǒng)中調用MFC應用程序。在開發(fā)中使用動態(tài)連接庫(DLL)方式實現Pro/E系統(tǒng)、Pro /TOOLKIT應用程序、MFC應用程序三者之間的通信,因為通信是通過直接調用函數實現的,故有執(zhí)行速度快的特點[4]。三者之間的相互關系如圖4所示。
圖4 Pro/TOOLKIT與MFC連接的示意圖
在系統(tǒng)中為每個Pro/TOOLKIT應用程序都開發(fā)了對話框界面,在應用程序加載到Pro/E系統(tǒng)后,點擊定制菜單項即可調用二次開發(fā)模塊及其界面,從而使設計過程更加符合設計人員的思維習慣。
4 實例
為說明系統(tǒng)的運行情況,制作了一個階梯軸的例子,這樣的階梯軸由形狀特征(圓柱體和圓錐體)經過多次調用拼裝而成,造型過程不再論述。在修改過程中,通過添加不同的非幾何特征,可以得到不同的加工方案,其運行框圖如圖5所示。
圖5 零件加工流程圖
5 結論
在充分利用Pro/E系統(tǒng)提供的資源的情況下,應用Pro/E提供的二次開發(fā)工具Pro/TOOLKIT以及VC++6.0集成開發(fā)環(huán)境實現了 CAD/CAPP/CAM的集成,簡化了Pro/E系統(tǒng)CAM模塊的操作,為專用CAD/CAPP/CAM的集成研究提供了一定的經驗。
致謝:本文得到蘭州理工大學特色研究方向基金的資助,在此表示感謝。
參考文獻:
[1] Kruglinski DJ. Visual C++6.0 技術內幕[M]。北京:希望電子出版社,1998.
[2] 黃圣杰,張益三.Pro/Engineer 2001高級開發(fā)實例[M]。北京:電子工業(yè)出版社,2002.
[3] 賴朝安,李振南,孫延明,等.Pro/E二次開發(fā)的關鍵技術[J].機械設計與制造,2001,(1):43 45.
[4] 鐘建琳.Pro/Engineer數控加工實用教程[M].北京:機械工業(yè)出版社,2002.
[5] 王 政,黨軍峰,許文濤.基于Pro/E的WFCAD系統(tǒng)菜單的開發(fā)[J].甘肅工業(yè)大學學報,2003,29(1):26 28.
[6] 胡赤兵,閻樹田,鄔再新.齒輪加工參數自動編程[J].機械工藝師,1998,(7):18 19.
[7] 楊 萍,張淑珍,李鶴岐,等.基于Pro/E軟件平臺的混流式水輪機轉輪葉片形狀擬合及實體模型的建立[J].機械設計與制造,2002,(6):62 63.