張文燕+許海霞+周茂軍
摘要:在模具成型件的檢測中,常常需要分析從成型件上測得的批量點(diǎn)與原設(shè)計(jì)模型間的偏差值,從而來判斷產(chǎn)品是否合格。而Pro/E系統(tǒng)只提供單個(gè)點(diǎn)的測量分析工具,測量效率低且容易遺漏待測點(diǎn)。經(jīng)過對(duì)Pro/E系統(tǒng)中測量工具局限性的研究,通過Pro/E自帶的二次開發(fā)工具Pro/Toolkit,使用MFC可視對(duì)話框技術(shù),編寫Visual C++程序,開發(fā)出集成化的分析測量工具。能夠根據(jù)允許公差值,快速、準(zhǔn)確地判斷成型件是否符合要求。使得成品的測量分析效率提高,并且縮短了零部件產(chǎn)品的檢驗(yàn)周期。
關(guān)鍵詞:Pro/Toolkit; 批量點(diǎn); 公差 ;測量;分析
中圖分類號(hào):TP20 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)26-0207-03
Abstract: During the detection of molding parts, we often need to analyse deviation between the mass points measured on the molding and the original design model ,According to the result ,we can determine whether the product is qualified. The Pro / E system only allows a single point to measure and analysis.By this way,It is slow to measure mass points,and it is easy to miss the measured points. This paper analyzes the limitations of present measurement tools.By development tool Pro/Toolkit, applying MFC visual dialog technology,and writing Visual C++ program. We develop an integrated tool of analysis and measurement. According to the values of allowable tolerance, it can rapidly and accurately determines whether the machined parts meet the production requirements. It improves the efficiency of analysis and measurement, and shortens the inspection cycle of parts.
Key words: Pro/Toolkit; batch points; tolerance; measurement; analysis
隨著計(jì)算機(jī)輔助設(shè)計(jì)技術(shù)的發(fā)展,UG、Solidworks、Pro/E等三維設(shè)計(jì)軟件被廣泛應(yīng)用[1]。Pro/E作為一種參數(shù)化設(shè)計(jì)軟件,它功能強(qiáng)大,性能優(yōu)良,運(yùn)用廣泛[2]?;赑ro/E的二次開發(fā)也受到人們廣泛關(guān)注。目前不少程序開發(fā)者已經(jīng)開發(fā)一些有關(guān)Pro/E設(shè)計(jì)的輔助工具。例如基于Pro/E的工程圖設(shè)計(jì)輔助工具,基于Pro/E的零件尺寸標(biāo)注輔助工具、基于Pro/E三維建模輔助工具等。但是在對(duì)批量點(diǎn)進(jìn)行測量分析方面還沒有相關(guān)輔助工具的開發(fā)。PRO/E系統(tǒng)自帶的單個(gè)點(diǎn)距離測量,測量效率低,結(jié)果不直觀,后期誤差分析困難。如果能開發(fā)集成化的測量分析工具,將解決企業(yè)零部件檢驗(yàn)測量中的實(shí)際問題,大大提高檢測效率。
1 批量點(diǎn)測量分析程序的總體設(shè)計(jì)及步驟
1.1 總體設(shè)計(jì)
元素,使用向量判斷測量點(diǎn)與設(shè)計(jì)模型面的法線方向是否一致,從而判斷出測量點(diǎn)位于設(shè)計(jì)模型面的內(nèi)部還是外部。然后根據(jù)公差的允許值,用顏色區(qū)分點(diǎn)至曲面的距離是否在公差范圍之內(nèi),在公差范圍之內(nèi)為綠色,超過公差上限為紅色,超過公差下限為藍(lán)色。本設(shè)計(jì)流程圖如圖1所示。
1.2 Pro/Toolkit開發(fā)步驟
Pro/Toolkit 應(yīng)用程序體系是由 VC++應(yīng)用程序設(shè)計(jì)向?qū)ё詣?dòng)創(chuàng)建的程序框架加上新的函數(shù)代碼、資源文件、和CPP 源文件構(gòu)成。其開發(fā)步驟主要由如下7步組成:
1) 確定運(yùn)行模式
Pro/Toolkit應(yīng)用程序主要有兩種模式:同步模式和異步模式。其中同步模式又分為標(biāo)準(zhǔn)模式和多進(jìn)程模式;異步模式又可分為簡單異步模式與完全異步模式[2]。本文采用Pro/Toolkit應(yīng)用程序中同步模式下的標(biāo)準(zhǔn)模式。
2 )Pro/Toolkit程序菜單
菜單設(shè)計(jì)主要為程序的框架設(shè)計(jì)。圖2為本系統(tǒng)菜單。
3) 新建項(xiàng)目及設(shè)置相應(yīng)的開發(fā)環(huán)境
VC開發(fā)環(huán)境設(shè)置是的作用是用于指定Pro/Toolkit函數(shù)庫的目錄位置。
4) 定義初始化及結(jié)束函數(shù)
Pro/E中進(jìn)行Pro/Toolkit應(yīng)用程序加載時(shí),應(yīng)首先調(diào)用User_initialize()函數(shù)。user_terminate()函數(shù)主要用來處理程序結(jié)束時(shí)需要進(jìn)行處理的工作[3]。
5) 編寫代碼
源文件包括:C程序、菜單文件和窗口信息文件。在編寫應(yīng)用程序的過程中經(jīng)常會(huì)用到 Pro/Toolkit函數(shù)庫和MFC類庫中的相關(guān)函數(shù)。
6) 可視對(duì)話框的創(chuàng)建
①利用 AppWizard 建立基本的可視對(duì)話框結(jié)構(gòu)。
②在對(duì)話框結(jié)構(gòu)基礎(chǔ)上創(chuàng)建相同名稱文件并且添加初始函數(shù)user_initialize()以及結(jié)束函數(shù)user_terminate()。endprint
③用visualC ++語言創(chuàng)建對(duì)話框。
④資源類型設(shè)置為Dialog類型,然后鼠標(biāo)操作調(diào)出菜單系統(tǒng),在系統(tǒng)功能界面中進(jìn)行特殊功能編輯工作。
⑤用Developer Studio實(shí)現(xiàn)可視對(duì)話框的設(shè)計(jì);。
⑥創(chuàng)建可視對(duì)話框,在應(yīng)用程序中對(duì)對(duì)話框進(jìn)行相應(yīng)調(diào)試。
⑦最后生成對(duì)話框程序。
7) 添加輔助應(yīng)用程序
添加輔助應(yīng)用程序時(shí),需要將Pro/Toolkit 程序中的注冊(cè)文件注冊(cè)到 Pro/E系統(tǒng)中,本系統(tǒng)中的注冊(cè)文件如圖3所示。
2 Pro/Toolkit應(yīng)用程序設(shè)計(jì)
在理解Pro/Toolkit函數(shù)的邏輯關(guān)系后,運(yùn)用Pro/Toolkit中某些函數(shù)編寫代碼來解決批量點(diǎn)距離測量問題[4]。本文主要敘述程序中所涉及有關(guān)Pro/Toolkit的函數(shù)序列。
2.1 創(chuàng)建菜單
Pro/Toolkit應(yīng)用程序的入口是初始化函數(shù)user_initialize()。一般在其中完成添加菜單功能。本課題在Pro/E系統(tǒng)菜單下進(jìn)行菜單按鈕的添加,圖4為主要的 Pro/Toolkit函數(shù)序列。用 ProMdlCurrentGet()初始化當(dāng)前的Pro/E對(duì)象。ProMenubarMenuAdd()的功能是添加新的菜單名稱,建立新的菜單信息文件。ProCmdActionAdd設(shè)置Pro/E的菜單動(dòng)作。ProMenubarmenuPushbuttonAdd()添加菜單。菜單的位置與父菜單、子菜單相關(guān)聯(lián)。圖中的的父菜單是“零件測試”,子菜單是“遍歷所有的面”。
2.2 實(shí)體特征訪問
首先用UserDemoAxisAct()遍歷動(dòng)作函數(shù),用函數(shù)ProAxisIdGet()獲得軸線ID[5], ProModelitemInit()初始化模型句柄,ProGeomitemFeatureGet()獲得軸線所屬特征,如果獲得特征類型失敗,則跳過。用函數(shù)ProModelitemNameGet()獲得軸線的名稱,然后高亮顯示孔。
接下來訪問動(dòng)作函數(shù),對(duì)訪問特征進(jìn)行過濾,第一步,ProSolidFailedFeatsList()判斷訪問實(shí)體特征是否成功。第二步,ProFeatureIsIncomplete()判斷指定特征是否完整。第三步,ProFeatureStatusGet()判斷特征有沒有被激活或隱藏。第四步,ProFeatureVisibilityGet()驗(yàn)證特征可見。 圖5為主要函數(shù)序列。
2.3 遍歷所有點(diǎn)到面的距離
定義ProSelection用來在Pro/E數(shù)據(jù)庫中確定一個(gè)模型樹。第一步ProMdlNameGet獲得設(shè)計(jì)模型的名稱。第二步ProSolidFeatVisit訪問模型內(nèi)的特征。第三步ProSelectionCopy把模型的特征添加到樹中。
ProFeatureGeomitemVisit()訪問指定特征的全部點(diǎn)特征,ProGeomitemDistanceEval()測量點(diǎn)與面組之間的距離,再根據(jù)允許公差值,用條件判斷語句判斷是否超差并變色。ProSelectionHighlight()高亮顯示,如果超過公差下限則高亮顯示藍(lán)色,超過公差上限則高亮顯示紅色,在公差允許范圍之內(nèi)則高亮顯示綠色。ProSolidRegenerate()進(jìn)行實(shí)體再生。ProMessageDisplay()將測量點(diǎn)的距離,寫入文本框[6]。如圖6所示:
3 軟件應(yīng)用實(shí)例
3.1 注冊(cè)運(yùn)行Pro/Toolkit應(yīng)用程序
Pro/Toolkit應(yīng)用程序的運(yùn)行有自動(dòng)注冊(cè)和手動(dòng)注冊(cè)[7]。本程序選用手動(dòng)注冊(cè),首先打開Pro/E,選中標(biāo)題欄中工具按鈕,點(diǎn)擊注冊(cè),打開已經(jīng)編輯好的輔助應(yīng)用程序。
3.2 設(shè)定坐標(biāo)系導(dǎo)入點(diǎn)云
打開設(shè)計(jì)模型設(shè)定坐標(biāo)系,使得測量點(diǎn)云的坐標(biāo)系與導(dǎo)入設(shè)計(jì)模型相一致,然后將測量好的點(diǎn)云數(shù)據(jù)按照設(shè)定好的坐標(biāo)系進(jìn)行導(dǎo)入。
3.3 公差設(shè)值與測量分析
1) 點(diǎn)擊零件測試模塊上的公差設(shè)值,根據(jù)要求設(shè)置正負(fù)公差值。如圖7所示:
2) 點(diǎn)擊標(biāo)題欄零件測試下的子菜單遍歷所有點(diǎn)到面,經(jīng)過程序運(yùn)行即可以得到測量點(diǎn)到設(shè)計(jì)模型面的距離。如圖8所示:
3) 同時(shí)點(diǎn)的顏色如預(yù)期發(fā)生改變
4 結(jié)束語
1) 在VS2008環(huán)境下,利用Pro/Toolkit開發(fā)出批量點(diǎn)數(shù)據(jù)分析測量工具;
2) 本文分析了集成化的測量模塊,描述了響應(yīng)實(shí)現(xiàn)功能的主要函數(shù)及關(guān)系;
3) 通過測試的方法驗(yàn)測量程序的正確性。程序開發(fā)的實(shí)際過程為其他的類似工具的開發(fā)提供了參考。
參考文獻(xiàn):
[1] 張海軍,吳晶華.Pro/Toolkit工程制圖功能開發(fā)方法[J].制造技術(shù)與機(jī)床,2008(11):79-81.
[2 陳積強(qiáng),李春,周碧池.Pro/Toolkit同步與異步開發(fā)模式[J].上海理工大學(xué)學(xué)報(bào),2008,30(1):99-102.
[3] 吳立軍. Pro/ENGINEER 二次開發(fā)技術(shù)基礎(chǔ)[M].北京:電子工業(yè)出版社,2006:37-41.
[4] 基于Pro/Toolkit的點(diǎn)坐標(biāo)測量工具的開發(fā)[J].控制與檢測,2010(8):33-38.
[5] 王文波.Pro/E wildfire4.0二次開發(fā)實(shí)例解析[M].北京:清華大學(xué)出版社,2010:80-82.
[6] 張繼春.Pro/ENGINEER二次開發(fā)實(shí)用教程[M].北京:北京大學(xué)出版社,2003;52-54.
[7] 李世國.Pro/Toolkit程序設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2003:23-24.endprint