陳智淵,石 鑫
(1.青海師范大學(xué)民族師范學(xué)院,海南藏族自治州 813000;2.中航工業(yè)江西洪都航空工業(yè)集團(tuán)有限責(zé)任公司,南昌 330024)
當(dāng)前,隨著CAD/CAPP技術(shù)的深入應(yīng)用以及應(yīng)用領(lǐng)域不斷擴(kuò)大,特別是在計(jì)算機(jī)輔助的機(jī)械制造加工領(lǐng)域的運(yùn)用,極大地加速了機(jī)械加工過程自動(dòng)化的進(jìn)程,促進(jìn)了三維CAD的無縫集成,提高了工藝決策的可靠性與靈活性,保證了零件設(shè)計(jì)與工藝設(shè)計(jì)的可行性[1-2]。雖然CAD/CAPP技術(shù)擁有上述諸多優(yōu)點(diǎn),但是,市面上的各種典型CAD/CAM系統(tǒng)卻不具備完善的CAPP功能,這中斷了CAD到CAPP的轉(zhuǎn)變進(jìn)程,不能將CAD處理后的幾何信息轉(zhuǎn)化為CAPP所需的基于特征的數(shù)據(jù)結(jié)構(gòu)而加以利用。
通常,在計(jì)算機(jī)輔助車削自動(dòng)加工系統(tǒng)中,基于CAD/CAPP結(jié)構(gòu)的回轉(zhuǎn)體圖形文件是系統(tǒng)的主要數(shù)據(jù)來源,關(guān)系到數(shù)據(jù)傳遞過程能否順利進(jìn)行,是整個(gè)自動(dòng)加工系統(tǒng)能否正常運(yùn)行的關(guān)鍵環(huán)節(jié)。為了獲得CAPP模塊所需的特征信息,就需要對CAD回轉(zhuǎn)體的幾何信息進(jìn)行轉(zhuǎn)換,以確認(rèn)轉(zhuǎn)換文件的正確性。為此,本文通過OpenGL對轉(zhuǎn)換后的CAPP特征信息進(jìn)行三維數(shù)據(jù)重構(gòu),繪制三維立體效果圖,亦包含其他顯示處理內(nèi)容,以期為CAD/CAM系統(tǒng)集成提供新的技術(shù)支持。
本系統(tǒng)采用文本格式(.txt)進(jìn)行數(shù)據(jù)的存儲。文本格式的數(shù)據(jù)文件是最終提供給下一模塊使用的數(shù)據(jù)文件,是根據(jù)系統(tǒng)統(tǒng)一的文件數(shù)據(jù)結(jié)構(gòu)建立的,包含全部的拓?fù)湫畔⒑蛶缀涡畔?。根?jù)回轉(zhuǎn)體零件工程圖信息進(jìn)行加工特征的定義和零件特征模型的描述,建立的系統(tǒng)文件數(shù)據(jù)結(jié)構(gòu)如圖1所示。
另外,該文本格式的數(shù)據(jù)文件包含3種存儲格式,即零件圖點(diǎn)數(shù)表、零件幾何關(guān)系數(shù)表、各幾何數(shù)據(jù)表。具體解釋如下(文本格式數(shù)據(jù)文件解釋時(shí)Z值為相對坐標(biāo)下X坐標(biāo)值,X值為相對坐標(biāo)下Y坐標(biāo)值)。
(1)零件圖點(diǎn)數(shù)表:ppon(nr,2)。
圖1 系統(tǒng)文件數(shù)據(jù)結(jié)構(gòu)Fig.1 System file data structure
表中每一個(gè)點(diǎn)(Z,X)代表了某個(gè)圖素的終止點(diǎn),對應(yīng)的面號即為rela()中該圖素的指針;共有nr個(gè)點(diǎn)數(shù),按照左逆時(shí)針從1~nr依次對零件圖進(jìn)行排列。
(2) 零件幾何關(guān)系數(shù)表: rela[np,1]
屬性碼表示圖素的特征:
1—外腔圓柱面,2—外端面,3—外錐面,4—外螺紋面,5—外圓弧面,6—外空刀槽,7—內(nèi)腔圓柱面,8—內(nèi)端面,9—內(nèi)錐面,10—內(nèi)螺紋面,11—內(nèi)圓弧面,12—內(nèi)空刀槽。
指針:圖素對應(yīng)幾何數(shù)據(jù)的指針。
rela()的行號1~np對應(yīng)各圖素的編號。
外、內(nèi)指將零件圖從左到右看作兩個(gè)部分,外形即是外腔,內(nèi)形即是內(nèi)腔。
(3)各幾何數(shù)據(jù)表(以外腔為例)。
外腔圓柱面:OCYLG[ ,3]。
其中,特征值1—外圓柱面;2—內(nèi)圓柱面。外腔端面:OEDFG[ ,3]。
其中,特征值1—左端面;2—右端面。外腔錐面:OCONG[ ,5]。
其中,特征值1—外腔外錐面;2—外腔內(nèi)錐面,錐角用弧度度量。
外腔螺紋面 :OTHRG[,4]。
其中,特征值1—普通螺紋;2—細(xì)牙螺紋。
外腔圓弧面: OCURG[,7]。
其中,旋向1—順旋;2—逆旋。
同理易得,內(nèi)腔圓柱面ICYLG[ ,3]、內(nèi)腔端面IEDEG[ ,3]、內(nèi)腔錐面 ICONG[ ,5]、內(nèi)腔螺紋 ITHRG[ ,4]以及內(nèi)腔圓弧面ICURG[ ,7],各數(shù)表結(jié)構(gòu)與對應(yīng)的外腔圖素大體相同,對應(yīng)數(shù)據(jù)的存放順序如圖2所示。與之相對應(yīng)的內(nèi)腔面存放順序與圖2結(jié)構(gòu)相同。這樣,刀位點(diǎn)計(jì)算模塊或后置處理模塊只要按上面的數(shù)據(jù)結(jié)構(gòu)讀取數(shù)據(jù)即可全部取出輸入模塊的全部信息。
通過上述分析,基于特征的零件結(jié)構(gòu)信息主要由對應(yīng)的特征值和主要屬性(如圓心、半徑、拱度)構(gòu)成。針對回轉(zhuǎn)類零件的特點(diǎn),并依據(jù)數(shù)據(jù)的相互關(guān)系及存儲順序,采用循環(huán)結(jié)構(gòu)將讀取的圖素?cái)?shù)據(jù)保存在VC++的動(dòng)態(tài)數(shù)組類(CObArray)中[3]。應(yīng)用程序讀取的數(shù)據(jù)主要包含3種類型,說明如下:
(1)幾何圖素的類型都可分為直線或弧線;
(2)直線段用起止點(diǎn)坐標(biāo)表示;
圖2 數(shù)據(jù)存放順序Fig.2 Data save order
圖3 圓弧縱向切割Fig.3 Arc longitudinal cutting
圖4 回轉(zhuǎn)體二維圖形Fig.4 Two-dimensional graph of revolving part
(3)弧線段用起止點(diǎn)坐標(biāo)和拱度表示。
另外,由于車削加工的零件主要是回轉(zhuǎn)體零件,故其沿中心線對稱剖面的特征都是相同的,而且剖面上的坐標(biāo)也是相對中心線對稱的。在這樣的條件下本系統(tǒng)可將回轉(zhuǎn)體零件視圖簡化為1/2中心線剖面形式。由這個(gè)剖面可以換算出該回轉(zhuǎn)體的全部信息,也就是說采用這樣的處理不會(huì)丟失信息。經(jīng)這樣簡化后的零件具有以下特點(diǎn):零件圖是由外輪廓線繞母線旋轉(zhuǎn)構(gòu)成,是一個(gè)封閉的單連域;零件圖是一個(gè)二維截面圖;各幾何圖素都是由直線、弧線組成,且每個(gè)圖素具有特定的工藝特征,如空刀槽對應(yīng)3條直線段,需要采用上插值的方法進(jìn)行數(shù)據(jù)讀取。
在進(jìn)行回轉(zhuǎn)體零件的構(gòu)造時(shí),實(shí)際上就是利用已知的軸線與母線,來構(gòu)造對應(yīng)的旋轉(zhuǎn)曲面,這也是基于回轉(zhuǎn)體零件的圓周對稱的特點(diǎn)所決定的[4]。構(gòu)造旋轉(zhuǎn)曲面時(shí),需要使用到旋轉(zhuǎn)成形算法,包含兩個(gè)步驟。
(1)橫向切割。
橫向切割是指在已知輪廓線上逐段均勻地分割成若干個(gè)點(diǎn),并把所有分割點(diǎn)坐標(biāo)按次序存入所設(shè)置的3個(gè)二維數(shù)組x[i,j],y[i,j],z[i,j]的過程。程序中橫向分割點(diǎn)的個(gè)數(shù)即為橫向切割密度值,其值越大,則所生成的曲線輪廓就越接近于原圖形曲線輪廓,與此同時(shí)數(shù)據(jù)的計(jì)算量也會(huì)相應(yīng)增大。
(2)縱向切割。
縱向切割要對橫向切割形成的全部點(diǎn)進(jìn)行三維回轉(zhuǎn)操作,還需對每點(diǎn)的圓周軌跡進(jìn)行插值點(diǎn)的坐標(biāo)計(jì)算。插值點(diǎn)數(shù)就是密度值大小,這就是說,縱向插值點(diǎn)數(shù)越多,分割越細(xì),所生成真實(shí)感圖形橫截面越圓滑,但數(shù)據(jù)的計(jì)算量也相應(yīng)增大。
圓弧縱向切割如圖3所示。由橫向切割得到母線輪廓的全部坐標(biāo)點(diǎn)數(shù)組x[i,j],y[i,j],z[i,j],進(jìn)行縱向切割計(jì)算時(shí),假設(shè)繞x軸作圓周回轉(zhuǎn)操作,要計(jì)算圓周軌跡上的n個(gè)點(diǎn)的坐標(biāo),設(shè)回轉(zhuǎn)步長t為2π/n,可得回轉(zhuǎn)變換矩陣T:
設(shè)母線上任一點(diǎn)坐標(biāo)為(x,y,z),則回轉(zhuǎn)后的點(diǎn)坐標(biāo)為:
其中z=0,至此,就獲得了回轉(zhuǎn)體零件全部的三維空間坐標(biāo)。構(gòu)造算法對應(yīng)的程序如下:
圖4為CAD系統(tǒng)輸入的回轉(zhuǎn)體二維圖形。OpenGL具備繪制三維圖形的所有功能,本系統(tǒng)調(diào)用OpenGL主要實(shí)現(xiàn)功能如下:窗口初始化、回轉(zhuǎn)體旋轉(zhuǎn)造型、坐標(biāo)變換、光照和材質(zhì)設(shè)置、霧化和紋理貼圖等[5]。該應(yīng)用程序中的各種功能均是通過ActiveX有效實(shí)現(xiàn)系統(tǒng)集成的。如通過回轉(zhuǎn)體選擇造型即可獲得回轉(zhuǎn)體零件的三維實(shí)體,如圖5所示;另外,通過設(shè)置材質(zhì)與光照,就可更為準(zhǔn)確模擬真實(shí)的外部光照效果,實(shí)現(xiàn)該回轉(zhuǎn)體在計(jì)算機(jī)輔助應(yīng)用中的真實(shí)感效果,顯示處理功能亦包含霧化、紋理貼圖等特殊處理效果。
圖5 三維造型Fig.5 3D model
本研究通過設(shè)計(jì)合理的CAD/CAPP回轉(zhuǎn)體零件圖形文本結(jié)構(gòu),采用旋轉(zhuǎn)曲面構(gòu)造算法,實(shí)現(xiàn)了基于母線和外輪廓構(gòu)造圖形零件的目的。結(jié)合OpenGL技術(shù)完成了對回轉(zhuǎn)體零件的交互式顯示處理,涵蓋材質(zhì)與光照設(shè)置、霧化以及反走樣等功能,這樣就為CAD/CAM系統(tǒng)集成技術(shù)提供了新的技術(shù)支持,目前已在本校工訓(xùn)實(shí)踐中得到了有效應(yīng)用。
[1]舒海生,牟曉偉,余豪華,等.基于加工特性和制造資源約束的CAD/CAPP研究[J].制造技術(shù)與機(jī)床,2012(3):113-117.
SHU Haisheng, MOU Xiaowei, YU Haohua, et al. Study of CAD/CAPP based on manufacturing features and manufaturing resource restriction[J].Manufacturing Technology & Machine Tool, 2012(3):113-117.
[2]李群力,王宗彥,鄭江,等.基于三維參數(shù)化模型的裝配CAPP系統(tǒng)研究[J].制造業(yè)自動(dòng)化,2013(19):120-122.
LI Qunli, WANG Zongyan, ZHENG Jiang, et al. The research on assembly CAPP system based on 3D parameter models[J]. Manufacturing Automation, 2013(19):120-122.
[3]孫燕華,張臣,周來水.基于DXF文件的數(shù)控車削編程系統(tǒng)零件信息輸入技術(shù)研究[J]. 機(jī)械設(shè)計(jì)與制造,2011(6):211-213.
SUN Yanhua, ZHANG Chen, ZHOU Laishui. Technology of part information input for NC turning programming system based on DXF files[J]. Machinery Design & Manufacture, 2011(6):211-213.
[4]趙陌.計(jì)算可視化的一個(gè)快速三維旋轉(zhuǎn)算法[J].系統(tǒng)仿真學(xué)報(bào),2008, 20(4):938-943.
ZHAO Mo. Rapid 3D rotation algorithm for visualizations of computing processes[J]. Journal of System Simulation, 2008, 20(4):938-943.
[5]尹海峰,庫祥臣.基于Visual C++與OpenGL的風(fēng)電機(jī)組仿真系統(tǒng)研究[J].組合機(jī)床與自動(dòng)化加工技術(shù),2013(6):142-144.
YIN Haifeng, KU Xiangchen. Research on wind turbines simulation system based on visual C++ and OpenGL[J]. Modular Machine Tool &Automation Manufacturing Technique, 2013(6):142-144.