王立新,朱長(zhǎng)春,閆志華,鄧秋超
WANG Li-xin, ZHU Chang-chun, YAN Zhi-hua, DENG Qiu-chao
(鄭州大學(xué) 機(jī)械工程學(xué)院,鄭州 450001)
CAD技術(shù)是先進(jìn)制造技術(shù)的重要組成部分,是計(jì)算機(jī)技術(shù)在工程設(shè)計(jì)、機(jī)械制造等領(lǐng)域中最有影響的一項(xiàng)高新應(yīng)用技術(shù)。CAD系統(tǒng)的發(fā)展和應(yīng)用使傳統(tǒng)的產(chǎn)品設(shè)計(jì)方法與生產(chǎn)模式發(fā)生了深刻的變化,已經(jīng)產(chǎn)生、必然繼續(xù)產(chǎn)生巨大的社會(huì)經(jīng)濟(jì)效益[1]。隨著CAD技術(shù)的普及,三維模型在裝備制造業(yè)生產(chǎn)中得到了廣泛的應(yīng)用。如今的三維設(shè)計(jì)軟件,基本已經(jīng)具備了“甩圖紙”的功能,大都可以使用基本尺寸與公差共同描述三維模型的尺寸大小。
在將來(lái)企業(yè)“甩圖紙”工程實(shí)施后,由設(shè)計(jì)工程師按照設(shè)計(jì)要求設(shè)計(jì)出零件的三維模型,再由數(shù)控工程師按照零件的三維模型編寫數(shù)控程序,進(jìn)行零件的數(shù)控加工。然而,設(shè)計(jì)工程師設(shè)計(jì)的三維模型中零件的尺寸信息通常都是由零件的基本尺寸值和公差描述的,數(shù)控程序中要編寫的是零件的加工尺寸,即數(shù)控機(jī)床的走刀尺寸,這樣才能保證生產(chǎn)出來(lái)的零件尺寸值分布在公差帶內(nèi)。因此,數(shù)控工程師首先需要將三維模型的基本尺寸值改為尺寸公差帶的中心點(diǎn),然后方可直接使用模型數(shù)據(jù)進(jìn)行數(shù)控編程。大多數(shù)箱體類零件尺寸信息眾多,這給數(shù)控工程師編寫數(shù)控程序帶來(lái)了很大的麻煩,增大了出錯(cuò)率,直接影響到工廠的生產(chǎn)效率。本文提出了基于Pro/E的復(fù)雜箱體三維數(shù)控加工前處理的方法,數(shù)控工程師在數(shù)控加工前不用再手工轉(zhuǎn)化零件的基本尺寸,而是運(yùn)行本文所開發(fā)的程序直接對(duì)箱體類零件進(jìn)行尺寸前處理,之后就可以直接讀取模型的尺寸信息進(jìn)行零件的CNC編程,不僅節(jié)省了時(shí)間和人力,還大大減小了出錯(cuò)的概率。
1)讀取Pro/E中箱體類零件的設(shè)計(jì)模型,此模型中包含完整的零件基本尺寸和公差信息;
2)提取箱體模型中所有尺寸,篩選出帶公差的尺寸;
3)將帶公差的尺寸值按照公差分類,挑選出帶有不對(duì)稱公差的尺寸對(duì)象,計(jì)算出該尺寸對(duì)象所對(duì)應(yīng)的公差中心點(diǎn)尺寸值dimen;
4)使用dimen值來(lái)驅(qū)動(dòng)箱體模型,從而得到適合數(shù)控編程的三維模型。
Pro/E wildfire4.0支持的開發(fā)方法有:Pro/Toolkit,Program,Layout,族表,UDF,J-link,Automation GATEWAY,VB API等等。本文采用VB API對(duì)其進(jìn)行二次開發(fā),VB API 是PTC公司為滿足用戶在Microsoft .Net Framework開發(fā)環(huán)境中使用VB.NET進(jìn)行二次開發(fā)的需求在Pro/E wildfire4.0中新增加的開發(fā)工具,用戶可以直接使用這一工具采用VB.NET語(yǔ)言編寫應(yīng)用程序。
圖1 零件生產(chǎn)方法程序的流程圖
與使用Pro/Toolkit開發(fā)相比,VB API的開發(fā)模式只能是異步連接模式,即應(yīng)用程序要獨(dú)立于Pro/E軟件啟動(dòng),啟動(dòng)后再將其連接到Pro/E的一個(gè)進(jìn)程中。盡管VB API的異步連接模式?jīng)]有Pro/Toolkit的同步連接模式交互信息的速度快,但是其良好的系統(tǒng)穩(wěn)定性是Pro/Toolkit同步連接模式無(wú)法比擬的。異步連接模式分為簡(jiǎn)單異步連接模式和完全異步連接模式兩種連接模式。它們的區(qū)別是完全異步模式可以使用VB API應(yīng)用程序從Pro/E程序中監(jiān)聽消息的控制環(huán)路,實(shí)現(xiàn)菜單按鈕添加和通知反饋等功能,而簡(jiǎn)單異步模式則不能處理這種請(qǐng)求和實(shí)現(xiàn)這類功能。
VB API采用面向?qū)ο蟮木幊谭椒?,刪除了易錯(cuò)的對(duì)象指針,系統(tǒng)為用戶提供了一個(gè)內(nèi)容豐富、功能強(qiáng)大的類庫(kù)。使用這個(gè)類庫(kù)可以訪問Pro/E的內(nèi)部數(shù)據(jù)和大多數(shù)的應(yīng)用函數(shù),而且各類之間有層次性很強(qiáng)的繼承關(guān)系,這樣用戶使用起來(lái)更容易理解和掌握。由于VB API是一種面向?qū)ο蟮姆椒?,用戶可以自定義類用于處理一些經(jīng)常重復(fù)使用的代碼,從而達(dá)到節(jié)省大量寶貴的程序開發(fā)時(shí)間。
箱體類零件三維模型生成方法程序的開發(fā)流程與VB API實(shí)現(xiàn)如圖1、2所示。
圖2 VB API實(shí)現(xiàn)圖
首先由程序讀入箱體零件模型,提取模型的所有尺寸和公差信息,判斷所提取模型尺寸是否有公差,將帶有不對(duì)稱公差值的尺寸信息提取出來(lái),處理所提取的尺寸值,將其修改為尺寸公差帶的中心點(diǎn),使用修改后的尺寸值驅(qū)動(dòng)模型,生成新的箱體三維模型。
VB API中包含開發(fā)Pro/E的所有類和對(duì)象,這些類和對(duì)象具有明確的繼承關(guān)系,其模型樹結(jié)構(gòu)非常復(fù)雜,但是開發(fā)中只需要搞清楚自己關(guān)心的模型數(shù)據(jù)對(duì)象即可,下圖3是有關(guān)零件模型尺寸和公差的對(duì)象模型。在這個(gè)模型對(duì)象樹中,零件的尺寸和公差是由IpfcDimension對(duì)象來(lái)進(jìn)行維護(hù)的。
圖3 零件模型尺寸和公差的對(duì)象模型
剖析Pro/E wf4.0中的模型數(shù)據(jù),在下表1中給出了零件的尺寸類型、公差類型及各類型數(shù)據(jù)實(shí)例。在零件模型中所有的尺寸都有默認(rèn)的系統(tǒng)自定義的尺寸公差,其類型都是“Limits”,上下偏差系統(tǒng)默認(rèn)值為正負(fù)0.01。
表1 零件尺寸信息分類
表2 零件各類型尺寸值
提取箱體零件模型的基本尺寸和公差信息時(shí),首先要根據(jù)每一個(gè)尺寸名稱代號(hào)得到尺寸對(duì)象,判斷尺寸是否含有公差,把帶有公差的基本尺寸和公差提取出來(lái)。本研究所討論的箱體模型包含所有類型的尺寸類型和公差類型,此箱體模型具有269個(gè)尺寸信息,這里僅在每種類型中列出一個(gè)尺寸和公差值以作說(shuō)明。
得到零件的尺寸信息后,通過公差分類,將公差類型為“Limits”與“Plus/Minus”兩種類型的公差值篩選出來(lái),判斷提取出來(lái)的尺寸公差是否為對(duì)稱分布,檢索出非對(duì)稱分布的尺寸公差值,通過下面的算法得到尺寸的中心值:
上面的方法是在“Plus/Minus”下使用的,而“Limits”類型是首先將其轉(zhuǎn)化為“Plus/Minus”后,再使用上面的方法得到尺寸的中心值。
根據(jù)前面得到的零件尺寸中心值dimen,將其賦給零件的基本尺寸值,來(lái)驅(qū)動(dòng)三維零件模型,將零件另存一個(gè)名稱就可以得到計(jì)入尺寸公差的三維零件模型。使用下面的語(yǔ)句來(lái)進(jìn)行模型中一個(gè)尺寸的驅(qū)動(dòng):
驅(qū)動(dòng)后的齒輪箱體模型如圖4所示。
圖4 齒輪箱體模型
提出了計(jì)入尺寸公差的零件模型生成方法,在Pro/E軟件上使用VB API編程實(shí)現(xiàn)了零件模型的尺寸信息提取和上、下偏差處理,并生成符合數(shù)控編程要求的零件模型,從而不僅節(jié)約了數(shù)控編程的時(shí)間,還大大減小了手工模型尺寸轉(zhuǎn)換過程中的出錯(cuò)率。
[1]殷國(guó)勇.CAD技術(shù)的發(fā)展趨勢(shì)與深化推廣應(yīng)用的建議[J].機(jī)械,1999(4).
[2]王立新,黃文良,魏維.計(jì)入尺寸公差的虛擬樣機(jī)零件生成[J].機(jī)械設(shè)計(jì),2004(3).
[3]Parametric Technology Corporation.The VB API Wildfire4.0 User’s Guide[M].USA:PTC,2008.
[4]劉龍,朱林波.基于VB.NET的Pro/E二次開發(fā)關(guān)鍵技術(shù)[J].現(xiàn)代制造工程,2008(10).
[5]朱本成,王鳳林.Visual Basic.NET2005全程指南語(yǔ)言基礎(chǔ)、開發(fā)進(jìn)階、數(shù)據(jù)庫(kù)開發(fā)、高級(jí)技術(shù).電子工業(yè)出版社,2008(3).
[6]張繼春.Pro/ENGINEER二次開發(fā)實(shí)用教程[M].北京大學(xué)出版社,2003.