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