引言 ffice ffice" /> " e- b9 V! I- r1 q- P9 T+ |: }
虛擬制造(Virtual Manufacturing VM)技術(shù)是虛擬 , u& P! _: M7 `
顯示技術(shù)與計(jì)算機(jī)仿真技術(shù)在制造領(lǐng)域的綜合發(fā)展和
- q$ Y8 E6 E; c& A8 w% |+ g應(yīng)用。VM 的實(shí)質(zhì)是“計(jì)算中的制造”,,即在計(jì)算機(jī)中 9 k( F; a$ y1 t* y; e
借助建模與仿真技術(shù)及時(shí)地完成制造全過程的模擬和
, M8 t! a% O0 g6 C! h示范,,并預(yù)測(cè)評(píng)價(jià)產(chǎn)品性能和產(chǎn)品的可制造性,。數(shù)控
& S$ X8 q- g6 v& s- L% M4 B1 L/ \" K, R(NC)車削程序的編制過程與工藝過程相似,,都具有經(jīng)
K0 ^& U' p# v Z驗(yàn)性和動(dòng)態(tài)性,,在程序編制過程中經(jīng)常發(fā)生錯(cuò)誤,。為 ' P# \. u, V- e& m( Q
此,,在數(shù)控機(jī)床上加工零件之前一般要進(jìn)行數(shù)控程序
x, c. d$ i, c. k(NC 代碼)校驗(yàn),并進(jìn)行首件試切,。但這種傳統(tǒng)的試切
6 B) K8 u7 F g f0 [方法來檢驗(yàn)刀具路徑既費(fèi)時(shí)又費(fèi)力,。隨著數(shù)控編程技
9 ?* ]/ l" E3 ]" K& d4 b& w術(shù)的發(fā)展,人們采用視覺檢查 NC 刀具軌跡的二維線 5 o, _2 H5 d& e2 \% N" D# f
框圖,,這種方法主要依賴于程序員對(duì)易錯(cuò)區(qū)選擇的判
6 J: f- o9 {9 S6 p' z5 D斷和對(duì)該區(qū)域復(fù)雜的刀具軌跡線框圖的理解程度,,一
+ ~2 M9 F3 i" P0 B2 y- R9 I, U般的用戶無法判斷其正確性。通過數(shù)控加工三維幾何
9 V! v9 I p0 q8 Q8 B0 Z) ^7 u仿真能夠使 NC 編程人員和機(jī)床操作者通過圖形顯示
7 s: A8 W3 L) l: x) Y; J4 y, @7 U進(jìn)行干涉和碰撞檢查,,校驗(yàn)數(shù)控程序,,故可以大大減 3 K, H) @( V" p. _; j' k' L
少上述情況的發(fā)生,提高數(shù)控編程效率和質(zhì)量,。
& \; w% j/ j+ x1 系統(tǒng)總體結(jié)構(gòu)
) G$ l1 J, k8 J, b( ]* x5 \ 由于OpenGL適用于多種硬件平臺(tái)及操作系統(tǒng),,其
/ x7 | r i$ |' r圖形庫(kù)能夠制作出高質(zhì)量的三維圖形和高質(zhì)量的動(dòng)畫
/ ` s+ B- G1 F1 y效果。因而整個(gè)虛擬加工的3D顯示引擎選用OpenGL來
. f5 D ?/ L& G j( D& c實(shí)現(xiàn),�,?紤]到Visual�,。茫δ軓�(qiáng)大,開發(fā)出的系統(tǒng)執(zhí) 5 C# ~/ N, ]7 P$ J+ K
行效率高,,且便于控制OpenGL,,因而選用Visual C++ 5 h; x; P6 J' c& }- |! Z
作為整個(gè)虛擬加工系統(tǒng)的開發(fā)工具,。通過對(duì)數(shù)控車床 - ]# X/ L$ l) y0 g# s" j
及其加工過程進(jìn)行仿真,,動(dòng)態(tài)顯示產(chǎn)品加工過程和結(jié)
0 B ?! t7 s9 s. H果,以實(shí)現(xiàn)產(chǎn)品零件的虛擬加工,,并驗(yàn)證NC程序的正 $ R2 R m1 A- c4 ] \3 _ q6 S
確性,。 8 D8 _: g6 [% I0 C
9 e' z8 D" j$ `2 g' y; s
圖1為系統(tǒng)的設(shè)計(jì)流程圖�,!� . W% z7 l7 J9 `% U V
2 系統(tǒng)功能實(shí)現(xiàn)
; n. j, j$ W2 s) `# @2.1�,。危贸绦蚓幾g * k% F: D! N! c8 T/ i
由于虛擬加工系統(tǒng)主要用于工業(yè)培訓(xùn)及NC代碼的
5 s( B4 Y, c* B! s5 v5 E7 n' |正確性檢查,故要求系統(tǒng)能夠在加工之前通知操作人
& d( e0 k6 ~( Y- @: T0 d- g! \ r員NC程序中是否存在語法錯(cuò)誤,,上下程序段間的邏輯 + t0 U2 @6 T0 o) ?' K9 Y4 I& {3 ?
關(guān)系是否正確等,,故選用編譯方式而不是解釋方式來 4 z+ Z; l, e8 w. R& v
對(duì)NC程序進(jìn)行編碼。根據(jù)編譯原理的思想[1,2],構(gòu)造出
% P" O0 |/ M6 V, S& KNC程序編譯模塊,,對(duì)NC程序進(jìn)行語法和詞法檢查,。 ( {) r% A8 p7 x+ S- H4 Q
比如檢查地址符字母是否大寫,上下程序段之間的邏 j* F$ e$ R8 G( S& h
輯關(guān)系是否正確,,圓弧的終點(diǎn),、圓心、半徑值等是否
# l$ x$ z4 N% g1 ^匹配,,子程序調(diào)用時(shí)子程序號(hào)是否正確,,程序開始字 4 X1 l8 @! J. \( y
符,程序號(hào),,程序主體,,程序結(jié)束代碼和程序結(jié)束字
: b# ^6 E8 C7 }* o) |符等是否完整等等。通過詞法和語法檢查指出錯(cuò)誤發(fā) : i0 k, y+ p$ W2 S3 I
生的位置,,給出錯(cuò)誤的原因,。使得虛擬加工系統(tǒng)能夠
2 W: ^& Z/ l/ o2 o1 A8 }% ^5 f# T) t& E輔助用戶學(xué)習(xí)NC程序的編制�,!�
3 R+ x1 d8 q: k4 n* k$ L2.2虛擬車床本體的搭建 ; n0 y- m/ N( q4 o* T$ R
在數(shù)控加工幾何仿真系統(tǒng)中,,首先要建立虛擬加
+ y; X, z- n$ B+ g/ h% |0 \工環(huán)境,實(shí)現(xiàn)虛擬數(shù)控機(jī)床,。由于機(jī)床是由許多零部 % R2 {0 R. b: Q7 X a4 E* N
件組成,,結(jié)構(gòu)較為復(fù)雜,用OpenGL函數(shù)進(jìn)行造型工作 / S7 G- G0 m* c: a5 _. K& M
量太大,,故先在CAD軟件Pro/E中造型出數(shù)控機(jī)床各個(gè) 0 ~7 O# |$ \6 v( [3 f1 V. y
零部件,,將其導(dǎo)出成標(biāo)準(zhǔn)的三維數(shù)據(jù)格式STL,,在程序 . J( I0 o- ^, c8 s6 A
中直接讀取STL文件,,并將其裝配起來,。在繪制機(jī)床時(shí) ) C. D/ W4 O( ]
利用了OpenGL顯示列表技術(shù),將每個(gè)零部件都生成一 9 }0 G0 v7 y5 Q3 k1 i
個(gè)OpenGL的顯示列表,,這樣可以大幅度提高重繪效率,,
" d; i. ^, x/ B滿足實(shí)時(shí)繪制的要求。圖2為虛擬車床的效果圖,�,!�
9 {" ^1 \5 I0 B, a* z' y3 `. ^. b* g ' n# ?; ~9 r* t4 ?- ^* \- z
2.3 數(shù)控加工過程仿真實(shí)現(xiàn)
" w& O+ z& i5 t; X# F! N 數(shù)控車床的毛坯常用棒料或鑄鍛件,加工余量較
, u8 P/ T* i. ]+ K/ e! ~8 K大,,但加工的零件形狀較為簡(jiǎn)單,,一般都是回轉(zhuǎn)體零 , q5 S0 M. g6 p
件。為了避免材料切除過程中毛坯與刀具運(yùn)動(dòng)形成掃 l0 C/ L$ b( v* e
掠體之間耗時(shí)的布爾運(yùn)算,,將毛坯沿 Z 向進(jìn)行離散,, ; n5 \( ?# }" Z- X. F, B
將毛坯離散成單位高度的小圓柱,每個(gè)小圓柱稱為一 6 @8 d, b5 C( K4 q
個(gè)薄片,,每個(gè)薄片的厚度根據(jù)精度和顯示效果的要求
" @. T% q h! C$ u來確定,,精度越高,,切的越薄,。每個(gè)薄片的數(shù)據(jù)結(jié)構(gòu)
; j2 \- x) O% g7 ?3 d' x如下: 8 l3 D) N/ {$ x3 D
struct PieceCylinder " `/ O) L5 \ ~
{
: h* e- m8 U( K! {) bdouble m_dZSt;///////起始 Z 坐標(biāo)
/ y/ ~+ V! h6 o& @double m_dZEd;//////結(jié)束 Z 坐標(biāo)
, A2 W% Y/ u* {7 ^double m_dROutSt;////外圓起點(diǎn)半徑值 8 h8 V' W% G+ v
double m_dROutEd;///外圓終點(diǎn)半徑值 ! c) p3 J* B; J1 B, l# ~$ p
double m_dInSt;///內(nèi)圓起點(diǎn)半徑值
! d2 {+ E* Q! ^/ a# Rdouble m_dInEd;////內(nèi)圓終點(diǎn)半徑值
7 ~# T1 `$ L# _BOOL m_bIsDelete;//////該部分薄片是否被切除 % s9 m( H2 D1 @
PiesCylinder* m_pNext;/////下一個(gè)薄片數(shù)據(jù)
* ]) V R+ I( I' ~3 m}; 9 {( L! V& v- n4 V0 f" }! @
由于車削加工的回轉(zhuǎn)體常常有內(nèi)孔,車削時(shí)也可 ) x* |& }4 o2 y( u9 X
能進(jìn)行鏜孔和鉆孔操作,,因而每個(gè)薄片不但要記錄所
9 V- \6 k% W$ V+ e5 ]在位置的外圓半徑,,還要記錄內(nèi)孔的半徑。為了光滑
7 ~& }/ d$ }9 U+ P: R的顯示加工的復(fù)雜回轉(zhuǎn)面,,如圓弧面,、雙曲面等,每 3 v; R$ N7 V& _; S( M q7 K( Z
個(gè)薄片在 Z 軸方向分為起點(diǎn)和終點(diǎn),。其起點(diǎn)和終點(diǎn)處
" n J8 E. r6 C8 i外圓,、內(nèi)孔的半徑根據(jù)加工中的刀路軌跡單獨(dú)計(jì)算和
' M0 X1 W7 Z, K6 ?. d) S存儲(chǔ)。 + ?% h" q' ?2 @: Q$ U2 J
在車削加工過程中,,一方面工件繞其自身的回轉(zhuǎn) 8 p$ A0 ]# N( L- I% |, K
軸高速旋轉(zhuǎn),,另一方面刀具在工件的軸平面內(nèi)沿 X 軸、 % w0 U3 N1 R, [ D- {6 K- Z3 {- P5 ?) X4 P
Z 軸運(yùn)動(dòng),,并逐漸從工件上切除多元的材料,,加工出
( {$ C# u, |; C所需的外形,每一步刀具所掃掠出的均是一個(gè)多邊形,。 $ X; ]) t+ @& m1 Q; T1 [3 l4 W3 x
根據(jù)每一步的插補(bǔ)指令,,求解出該步刀具所掃掠出的
8 u! O, v/ ~6 C- V# q多邊形,。將刀具掃掠出的多邊形和離散后的工件模型 6 q- Q, Y: n0 Z& M" P8 y5 M& Z9 n
求交,并相應(yīng)修改工件上所有和刀具掃掠多邊形相交 5 R) C2 x7 E6 G2 ?
部分的半徑值,。將修改半徑后的工件重新繪制出來,,
% N6 P1 @0 e$ E* N" M" z8 M, j' z6 ]即可完成仿真過程的實(shí)時(shí)繪制。
0 p, L; K' {% N. Z. F0 R* K3 運(yùn)行實(shí)例
& l' o! s0 R$ \% X- z3 z0 R1 F 為了驗(yàn)證系統(tǒng)的仿真效果,,進(jìn)行了兩個(gè)加工實(shí)例
I! Z7 S! U- T, f研究,。由于固定循環(huán)的實(shí)現(xiàn)比較有代表性,故這里選 8 Q# C$ E4 E. e" L
用固定循環(huán)來進(jìn)行研究,。程序O1234是G71外圓粗車固
* ?) _* a& u4 p定循環(huán)里面包含G70的精車循環(huán),,程序O1235是G72端
2 n7 }) o0 V. k# R$ ^面車削固定循環(huán),圖3為G71精車后的效果圖,。圖4為
! t% G# D$ V; u: C9 B# g" h# R' fG72粗車過程中截圖,。
* Z4 b) h5 U/ p) a* L5 L' e9 YO1234 / k4 q) G/ E( l" R
Sffice:smarttags" />1200M3 c) ]+ K( a9 w9 V/ P# B$ r
T0101
- \4 o3 y: A \" H# h3 Z7 vG50X100Z50
7 L* `* X7 q1 t R' ~; k0 ^0 bG0X80Z5 3 ~- l9 k+ Q( E D# z
G71U3R0.2 4 Q; d, W& {' i" z
G71P00Q60U0.2W0.1F200 7 E* c% ^! O+ p1 I! P: H/ `4 P
N00G0X6Z1 9 R( x2 p' K, |6 j, ^' K% n( V
N10G1X10Z-3
6 l! x& k+ e: L6 SN20G1W-15
& c' I& X% d# ^' p; K5 lN30G2U30W-15R15
: }- Q/ `9 D ^3 C! TN40G1W-30
1 @- j6 ~: p- ]* G/ R* h+ dN50G3U30W-15R15
8 H+ @/ L' Z" ~* F& }0 YN50G1U10W-10
7 E h/ ]+ B0 L) ?" _0 k* Z/ lN60G1W-70 & ]8 f( F3 z# w5 g
N70G0X100Z50
- t1 O' M) k+ @5 mG0X30Z5
$ r% B. l/ s' y9 r/ _" xG70P10Q60 3 c$ X) g& p7 A2 G7 t
G0X120Z20
% y. G) A! P) c8 J' dM30 9 \9 B. F, f6 T7 p% o( M2 @# i
9 `3 ^' S4 M5 y
O1235;G72橫向切削復(fù)合循環(huán)
2 V3 A9 M: E' L/ v! x& R6 ^S1200M3
; L( {. ]+ }+ |% \$ i, t8 t1 ^T0101
* O( L) W) }, [8 H$ t/ z( ~G50X50Z50 - R- g) N5 ~$ X: P$ x" q( a
G0X32Z5 8 \: ?' I* I; u R
G72U2R0.2 0 o! m* I1 i. w' Q$ `
G72P10Q50U0.2W0.1F200;呼叫子程序
( B6 l0 d# y o1 s& sN10G0X80Z-80 % B& u1 ]% @6 j# @- |1 G5 e. f$ h
N20G1X60Z-70F100
3 G$ F, p5 l) D& i/ rN30W8
* `1 ^1 b$ I% F2 f6 R! xN40G3X30W15R15 7 [6 m3 r" L5 I0 I) k3 I) u7 R" A
N50G1X18Z2 % g/ U3 G+ w0 z% t ?+ R! D% c
N60G0X100Z50 3 [$ B: B! I. h( I
G0X30Z5 3 k5 T; O$ |0 ^
G70P10Q50 - O a: d! _% y
G0X100Z50
5 `. A7 }2 f- W7 v$ WM30
3 s2 `1 @$ \6 E" |) |; ]& a 0 G! ]7 G$ Z( }7 a
4 結(jié)論
0 M$ q( t Y! R0 d8 g+ d2 D 詳細(xì)介紹了車床虛擬加工系統(tǒng)的一種實(shí)現(xiàn)方法, 2 V" l& Y: l- g* Q( w a
并采用這種方法實(shí)現(xiàn)了車床虛擬加工系統(tǒng),。該虛擬加
3 a& g" _! h! E% h6 J% p1 W0 b工系統(tǒng)可廣泛應(yīng)用于真實(shí)加工前進(jìn)行仿真試切,,在工
# Z1 u- @# ~) H. w$ h! n' p業(yè)培訓(xùn)、數(shù)控教學(xué)等行業(yè)中,,具有廣泛的應(yīng)用前景,。 5 v, n. z% u5 x' o. U X1 }9 f7 q
|