張萬里, 王金娥
(蘇州大學(xué)機(jī)電工程學(xué)院,江蘇 蘇州 215021)
數(shù)控自動(dòng)編程系統(tǒng)是CAD/CAPP/CAM集成系統(tǒng)的重要組成部分,一般的大型軟件如Pro/E、UG等都集成CAM,但這類軟件都比較昂貴,且都基于零件三維實(shí)體的特征識別技術(shù)進(jìn)行自動(dòng)編程。對于數(shù)控車床編程而言,二維零件圖應(yīng)用廣泛,因此作者將二維零件圖的特征識別技術(shù)和數(shù)控自動(dòng)編程技術(shù)結(jié)合起來,研究了實(shí)體打斷與重構(gòu)、外輪廓搜索、特征識別、特征重構(gòu)、自動(dòng)編程術(shù)等技術(shù),實(shí)現(xiàn)了CAD、CAM的集成。
零件圖主要由直線、圓弧、橢圓弧、多段線等實(shí)體構(gòu)成。由于軸類零件的對稱性,只需要獲取半輪廓即可。這些實(shí)體對于半輪廓來說,可分為3類:整個(gè)實(shí)體屬于半輪廓,整個(gè)實(shí)體都不屬于半輪廓和實(shí)體部分屬于半輪廓[1]。例如,在圖1中,需要搜索的是由弧AB、線段BC,…,線段MN依次構(gòu)成的外輪廓。則線段BC、DE等屬于第1類,線段GO、IF屬于第2類,線段DP、弧BR屬于第3類。對于第3類實(shí)體,半輪廓搜索時(shí)需要將一部分實(shí)體從整體中分離出來,所以需要進(jìn)行實(shí)體的打斷與重構(gòu)處理。例如,要獲取圖1中的弧AB,所以要將弧BR在交點(diǎn)A處打斷,重構(gòu)為弧RA和弧AB。
圖1 半輪廓信息分
本文基于ObjectARX選擇集操作,將所有實(shí)體放入一個(gè)選擇集中,取出一個(gè)實(shí)體與其他所有實(shí)體相交,求出交點(diǎn)后,按照一定的順序重排,組成一個(gè)節(jié)點(diǎn)集,依次重繪出新創(chuàng)建的各實(shí)體。圖1中,線段DP的節(jié)點(diǎn)為D、P、C、Q、R,然后將各節(jié)點(diǎn)按照Y坐標(biāo)從大到小排列,即D、C、R、Q、P,最后依次創(chuàng)建出新的線段DC、CR、RQ、QP。若待打斷的線段是水平或傾斜的,則可以將各節(jié)點(diǎn)X坐標(biāo)按照一定順序重排。圖1中圓弧BR的節(jié)點(diǎn)為B、A、R,然后依次求出該圓弧圓心與各節(jié)點(diǎn)組成的直線與X軸正方向的夾角,然后運(yùn)用下文提到的逆時(shí)鐘最小夾角的方法,按照夾角從小到大順序排列,即R、A、B,最后依次重構(gòu)出弧RA、弧AB。對于其他實(shí)體如橢圓弧、多段線等都有類似的處理方法。通用的流程框圖如圖2所示。
圖2 實(shí)體打斷與重構(gòu)通用流程圖
將實(shí)體打斷與重構(gòu)之后,得到一個(gè)新的實(shí)體選擇集。確定搜索半輪廓的起始點(diǎn)和起始實(shí)體,運(yùn)用改進(jìn)的逆時(shí)鐘最小夾角法[2],就可以搜索出零件圖的半輪廓。
如圖3所示,5個(gè)實(shí)體相交于點(diǎn)O,以O(shè)為圓心,0.5為半徑作一個(gè)小圓,該圓與各實(shí)體的交點(diǎn)分別為A、B、C、D、E(若為曲線,則求出小圓與該曲線切線的交點(diǎn))。求以點(diǎn)O和各交點(diǎn)所構(gòu)成的線段與X軸正方向的夾角。確定一個(gè)起始實(shí)體,其它實(shí)體為待搜索的實(shí)體。求出起始實(shí)體與其它所有實(shí)體的逆時(shí)鐘方向的夾角,比較各夾角的大小,最小夾角所對應(yīng)的實(shí)體就是待搜索的外輪廓。ObjectARX中只能求出線段與X軸正方向的夾角,并不能直接求出兩線段的夾角。由逆時(shí)鐘最小夾角法搜索外輪廓過程為:1)用360°減去起始角得到一個(gè)差角;2)將各夾角加上差角,得到一組新的角度;3)若新角度大于360°,則減去360°;若為360°,則為一個(gè)很大的值;4)比較各新角度的大小,最小角所對應(yīng)的實(shí)體即為待搜索的外輪廓。
例如,在圖3中,若夾角為210°的實(shí)體為起始實(shí)體,差角為150°,則夾角為270°所對應(yīng)的實(shí)體是待搜索的外輪廓。表1列出了逆時(shí)針最小夾角法的計(jì)算結(jié)果。
圖3 逆時(shí)鐘最小夾角法
表1 逆時(shí)鐘最小夾角法計(jì)算結(jié)果(單位,°)
從表 1中的最后一行可看出,最小角度為70°,即原夾角為 270°所對應(yīng)的實(shí)體是待搜索的外輪廓。根據(jù)以上分析,可以編寫一個(gè)驅(qū)動(dòng)程序,用來搜索一個(gè)半輪廓實(shí)體。
在打斷后的選擇集中,確定搜索起點(diǎn)和起始實(shí)體之后,調(diào)用半輪廓搜索驅(qū)動(dòng)函數(shù),找到下一個(gè)輪廓,重新確定起始點(diǎn)和起始實(shí)體繼續(xù)搜索下一個(gè)輪廓,直到輪廓的起始點(diǎn)和原起始點(diǎn)的Y坐標(biāo)相等時(shí),停止搜索,具體流程圖如圖4所示。
根據(jù)軸類零件的加工特點(diǎn),外輪廓的特征分為主特征和輔助特征[3]。主特征包括左右端面、軸肩、圓柱面外圓、圓錐外圓、圓弧外圓、螺紋軸段等。輔助特征包括:右傾倒角、退刀槽、倒圓角、左傾倒角等。由于倒圓角和左傾倒角可直接進(jìn)行外輪廓的粗加工,所以將它們視為主特征。
粗加工的時(shí)候,根據(jù)半輪廓先加工主特征,若得到的外輪廓中有輔助特征,則不能直接進(jìn)行粗加工,由于螺紋段的螺距和導(dǎo)程等數(shù)據(jù)信息并不能從外輪廓中獲得,所以要對外輪廓進(jìn)行主特征提取和輔助特征的重構(gòu)。
首先將構(gòu)成半輪廓的各實(shí)體分為豎直直線、水平直線、左傾斜直線、右傾斜直線、順圓弧、逆圓弧、橢圓弧等,并進(jìn)行類型編碼。然后將各實(shí)體所包含的特征進(jìn)行分類,并進(jìn)行特征編碼。如類型編碼為0的水平直線包含的特征為:圓柱右端面、圓柱左端面、軸肩、凹槽左線、凹槽右線等,特征編碼依次為 0、1、2、3、4。具體分類如表2所示,其中T表示主特征,F(xiàn)表示輔助特征。
圖4 半輪廓搜索流程圖
各特征分類依據(jù)如下所示:
豎直直線特征分類:若是外輪廓中第 1個(gè)實(shí)體,則是圓柱右端面;若是最后一個(gè)實(shí)體,則是圓柱左端面;若該實(shí)體的前一個(gè)實(shí)體是凹槽,則為凹槽左線;若該實(shí)體的后一個(gè)實(shí)體是凹槽,則為凹槽右線,否則為軸肩。
水平直線特征分類:若該實(shí)體特征與凹槽特征吻合,則是凹槽中線;否則是圓柱面外圓或螺紋段。
左傾斜直線特征分類:若是外輪廓中第1個(gè)實(shí)體,則是圓錐右端面;若該實(shí)體特征與倒角特征吻合,則是左倒角,否則為左傾圓錐外圓柱。
右傾直線特征分類:若是外輪廓中最后1個(gè)實(shí)體,則是圓錐左端面;若該實(shí)體特征與倒角特征吻合,則是右倒角,否則為右傾圓錐外圓柱。
順圓弧特征分類:若是外輪廓中的第1個(gè)實(shí)體,則為順圓弧右端面;若是最后一個(gè)實(shí)體,則為順圓弧左端面;若該實(shí)體與倒圓角特征吻合,則為順圓弧倒圓角,否則為外圓柱順圓弧。
逆圓弧特征分類:若是外輪廓中的第1個(gè)實(shí)體,則為逆圓弧右端面;若是最后一個(gè)實(shí)體,則為逆圓弧左端面;若該實(shí)體與倒圓角特征吻合,則為逆圓弧倒圓角,否則為外圓柱圓弧。
表2 類型編碼和特征編碼對照表
3.2.1 凹槽特征識別與重構(gòu)
1) 該實(shí)體是水平直線,即實(shí)體類型碼是1;
2) 該實(shí)體的前一實(shí)體是豎直向下的直線,后一實(shí)體是豎直向上的直線。識別出凹槽之后,需要將凹槽重構(gòu)。
(1) 若凹槽左線和右線等高,則以凹槽左線起點(diǎn)A和凹槽右線終點(diǎn)B作一直線,如圖5所示。
圖5 凹槽重構(gòu)類型1
(2) 若凹槽左線比右線高,則以凹槽右線的起點(diǎn)確定點(diǎn)A,凹槽左線X坐標(biāo)和凹槽右線起點(diǎn)Y坐標(biāo)確定一個(gè)點(diǎn)B,凹槽左線的終點(diǎn)確定點(diǎn)C。分別以A、B和B、C作兩條直線,如圖6所示。
圖6 凹槽重構(gòu)類型2
(3) 若凹槽左線比右線低,則以凹槽右線起點(diǎn)確定點(diǎn)A,凹槽右線起點(diǎn)X坐標(biāo)和凹槽左線終點(diǎn)Y坐標(biāo)確定點(diǎn)B,凹槽左線終點(diǎn)確定點(diǎn)C,分別以A、B和B、C作直線,如圖7所示。
圖7 凹槽重構(gòu)類型3
3.2.2 右傾倒角特征識別與重構(gòu)
1) 該實(shí)體必須是右傾直線,即該實(shí)體的類型編碼是3;
2) 該實(shí)體的前后實(shí)體都必須是直線;
3) 該實(shí)體與X軸正方向的夾角必須大于180°;
4) 該實(shí)體的前一實(shí)體、本實(shí)體、后一實(shí)體與X軸正方向的夾角按逆時(shí)鐘方向依次增大。
右傾倒角非主特征,需重構(gòu)。以倒角的起點(diǎn)確定點(diǎn)A,倒角起點(diǎn)的Y坐標(biāo)和終點(diǎn)的X坐標(biāo)確定點(diǎn)B,終點(diǎn)為點(diǎn)C,分別以點(diǎn)A、B和B、C作直線,如圖8所示。
圖 8 右傾倒角重構(gòu)
進(jìn)行螺紋段的自動(dòng)編程,首先識別出螺紋端,其次獲得螺紋段的大徑、小徑、導(dǎo)程、螺距等數(shù)據(jù)信息。
3.3.1 螺紋段特征識別
螺紋段的特征識別需要原零件圖和外輪廓共同來識別。以圓柱外螺紋為例:
1) 外輪廓中該實(shí)體是水平直線,即類型編碼為1,即螺紋大徑,記為實(shí)體1;2) 原零件圖中與實(shí)體 1對應(yīng)的實(shí)體(記為實(shí)體 2)下方有一與之平行且距離較小,但線型不同的實(shí)體,記為實(shí)體 3,即螺紋小徑;3) 實(shí)體 2和實(shí)體3起點(diǎn)X坐標(biāo)、Y坐標(biāo)差值較小,可自行設(shè)置。
3.3.2 螺紋段數(shù)據(jù)提取
普通螺紋標(biāo)注的一般格式為:螺紋特征代號螺紋大徑ⅹPh導(dǎo)程(P螺距) 旋向—螺紋公差代號—旋合長度。首先獲取尺寸標(biāo)注信息[4],將其存放在一個(gè)字符串中,然后利用字符串的查詢功能,依次查詢出所需要的數(shù)據(jù)。例如:某螺紋標(biāo)注信息為 M32ⅹP3(1.5)-6g。首先查詢該字符串的首字符為M,確定為普通螺紋,M后面的數(shù)字即為大徑;查詢到有字符P,P后面的數(shù)字即為導(dǎo)程;P后面括號中的數(shù)字即為螺距。小徑的數(shù)據(jù)信息在特征識別中即可獲取。
自動(dòng)編程粗加工所需的主特征信息包括外輪廓中的主特征和輔助特征重構(gòu)后形成的主特征,輔助特征仍保存在外輪廓中。具體流程如圖9所示。
圖9 主特征提取與輔助特征重構(gòu)流程圖
數(shù)控加工程序是以程序段為單位組成的。一個(gè)完成的程序段由程序號、準(zhǔn)備功能、坐標(biāo)尺寸及參數(shù)、進(jìn)給速度、M/S/T功能等地址字組成。
首先根據(jù)前置參數(shù)設(shè)置生成前置代碼;然后根據(jù)重構(gòu)后的主特征生成粗加工代碼,根據(jù)輔助特征生成凹槽段、倒角段、螺紋段等代碼;最后生成停機(jī)代碼。
在AutoCAD2002環(huán)境下,以O(shè)bjectARX為開發(fā)工具[5],開發(fā)自動(dòng)編程系統(tǒng),以某一典型軸類零件圖為例,特征識別和自動(dòng)編程效果如圖10所示。
從圖10可看出,特征識別和重構(gòu)效果良好,生成文本程序基本符合數(shù)控加工要求,精度較高。
圖10 特征識別結(jié)果和自動(dòng)編程文本程序
本文提出了基于實(shí)體類型編碼和特征編碼的自動(dòng)編程方法。首先討論了基于節(jié)點(diǎn)集的實(shí)體打斷和重構(gòu)的方法,并在此基礎(chǔ)上,應(yīng)用逆時(shí)鐘最小夾角法,搜索出零件圖外輪廓。然后對外輪廓中各實(shí)體進(jìn)行類型分類和特征分類,實(shí)現(xiàn)主特征提取和輔助特征重構(gòu)。最后根據(jù)保存的主輔特征,按照程序段格式自動(dòng)生成數(shù)控加工代碼。
[1]張樹有. 測點(diǎn)法自動(dòng)跟蹤獲取圖形輪廓信息[J]. 浙江大學(xué)學(xué)報(bào)(自然科學(xué)版), 1996, 30(4): 403-407.
[2]廖友軍, 王恒升, 余金偉. 軸類零件的外輪廓識別方法[J]. 機(jī)械設(shè)計(jì)與制造, 2007: 1(1): 34-35.
[3]廖友軍, 王恒升, 余金偉. 軸類零件二維工程圖的特征識別方法[J]. 工程圖學(xué)學(xué)報(bào), 2007, 28(2):174-178.
[4]張 霞, 楊 岳, 羅意平.在 AutoCAD 中應(yīng)ObjectARX自動(dòng)獲取標(biāo)注尺寸[J]. 機(jī)械與電子,2002, (3): 35-37.
[5][愛爾蘭]Charles McAuley. AutoCAD2000 ObjectARX編程指南[M]. 李世國, 潘建忠, 平雪良譯. 北京:機(jī)械工業(yè)出版, 2000: 58-67.