引言 ffice ffice" /> " B7 r2 C/ r" g9 }$ @8 |, \
虛擬制造(Virtual Manufacturing VM)技術(shù)是虛擬 6 ]; l9 |2 M2 a! G: s+ M! p
顯示技術(shù)與計算機仿真技術(shù)在制造領(lǐng)域的綜合發(fā)展和 ( v T8 x, S2 C( b5 ^
應(yīng)用。VM 的實質(zhì)是“計算中的制造”,即在計算機中
6 w# h5 G% Z s+ p$ c借助建模與仿真技術(shù)及時地完成制造全過程的模擬和 ! ^+ J- {2 S4 }" @, Y2 i. ^
示范,并預(yù)測評價產(chǎn)品性能和產(chǎn)品的可制造性。數(shù)控 6 |; M2 z- v5 } F8 R' q1 ~
(NC)車削程序的編制過程與工藝過程相似,都具有經(jīng) Y0 y4 ?- {$ f* D7 t
驗性和動態(tài)性,在程序編制過程中經(jīng)常發(fā)生錯誤。為
6 `7 e9 `0 t$ _此,在數(shù)控機床上加工零件之前一般要進行數(shù)控程序 5 f2 ~1 w5 B9 i: T% g- o$ }7 T+ I
(NC 代碼)校驗,并進行首件試切。但這種傳統(tǒng)的試切
! ~6 _) O# V) A# b" U" d5 R方法來檢驗刀具路徑既費時又費力。隨著數(shù)控編程技 ; a. \3 |% F" N1 [8 \% `' @4 V0 A
術(shù)的發(fā)展,人們采用視覺檢查 NC 刀具軌跡的二維線 / k7 Q' E' u) G$ |
框圖,這種方法主要依賴于程序員對易錯區(qū)選擇的判
% C& z0 _* |, V' l2 J斷和對該區(qū)域復(fù)雜的刀具軌跡線框圖的理解程度,一
& v/ ]; k4 b5 Q3 T+ p般的用戶無法判斷其正確性。通過數(shù)控加工三維幾何 7 N+ c' |! G5 ~# S) r w
仿真能夠使 NC 編程人員和機床操作者通過圖形顯示 - V) n+ }( S# G( |
進行干涉和碰撞檢查,校驗數(shù)控程序,故可以大大減 ; r7 x4 ^2 \ z8 z
少上述情況的發(fā)生,提高數(shù)控編程效率和質(zhì)量。 8 ]/ [9 g" @) z5 L. V; F4 |& b
1 系統(tǒng)總體結(jié)構(gòu)
r, e+ Z5 z E* y 由于OpenGL適用于多種硬件平臺及操作系統(tǒng),其
% J- H" z. V% ?# O) l# |圖形庫能夠制作出高質(zhì)量的三維圖形和高質(zhì)量的動畫
. B' L) }4 Y: H e1 ^" n6 l效果。因而整個虛擬加工的3D顯示引擎選用OpenGL來
1 V* g8 }/ I! t- w, j5 D實現(xiàn)。考慮到Visual C++功能強大,開發(fā)出的系統(tǒng)執(zhí) 3 {8 d6 }& g3 o5 o% S+ r
行效率高,且便于控制OpenGL,因而選用Visual C++ ( c2 s! \. K7 _1 d: I: {
作為整個虛擬加工系統(tǒng)的開發(fā)工具。通過對數(shù)控車床
/ l; {9 q9 v- L; Z! w及其加工過程進行仿真,動態(tài)顯示產(chǎn)品加工過程和結(jié) 6 M2 V8 F! x& w. @
果,以實現(xiàn)產(chǎn)品零件的虛擬加工,并驗證NC程序的正 0 P1 ?6 {- E* k$ g5 M) W
確性。 & C, K9 k6 ]) z, y. ^
4 j% v l3 `* X, _. H* h) `圖1為系統(tǒng)的設(shè)計流程圖。 * o+ @( S Y" C# Y1 z3 ?" ?
2 系統(tǒng)功能實現(xiàn)
' N/ T$ ^% d1 j( y- v: u2.1 NC程序編譯 ( q1 b) B! Y' k" U. \
由于虛擬加工系統(tǒng)主要用于工業(yè)培訓及NC代碼的 2 ]4 |5 g& u% M) `, m+ d1 [# L
正確性檢查,故要求系統(tǒng)能夠在加工之前通知操作人 9 L1 B; G! D; j( D& y9 B l1 u
員NC程序中是否存在語法錯誤,上下程序段間的邏輯
0 c4 t' ]# e s' f, q+ L4 x6 Y# Q" z關(guān)系是否正確等,故選用編譯方式而不是解釋方式來
( A# k( q) r! n% `對NC程序進行編碼。根據(jù)編譯原理的思想[1,2],構(gòu)造出 ; w; \- [" R: T5 O' u
NC程序編譯模塊,對NC程序進行語法和詞法檢查。
4 m; G& n( U0 D9 T比如檢查地址符字母是否大寫,上下程序段之間的邏 2 p' N$ ^) z4 j; d' p% D& z1 l
輯關(guān)系是否正確,圓弧的終點、圓心、半徑值等是否
, a4 D; [" n7 G U5 O8 s# x匹配,子程序調(diào)用時子程序號是否正確,程序開始字
% d7 B+ e* @4 T: B符,程序號,程序主體,程序結(jié)束代碼和程序結(jié)束字
* M! x1 Y! F5 A符等是否完整等等。通過詞法和語法檢查指出錯誤發(fā)
9 }3 J% Q9 a* d( v8 d8 O/ j3 ]; U7 D生的位置,給出錯誤的原因。使得虛擬加工系統(tǒng)能夠
4 r" @& Y6 g) Z* s& S, V/ G0 B7 y輔助用戶學習NC程序的編制。
3 p. F7 b3 j6 q3 r' }2.2虛擬車床本體的搭建
% R s) z4 O8 e 在數(shù)控加工幾何仿真系統(tǒng)中,首先要建立虛擬加 / {- V2 k2 ?0 \" u2 w% q
工環(huán)境,實現(xiàn)虛擬數(shù)控機床。由于機床是由許多零部 * G4 L0 q& {5 ?9 ~; z- r
件組成,結(jié)構(gòu)較為復(fù)雜,用OpenGL函數(shù)進行造型工作
8 Z& E4 M3 L$ N5 z/ M, B9 n9 d# s3 X量太大,故先在CAD軟件Pro/E中造型出數(shù)控機床各個
8 c& y- R3 ?4 s1 R零部件,將其導出成標準的三維數(shù)據(jù)格式STL,在程序
/ t6 a0 Z, J9 H# X中直接讀取STL文件,并將其裝配起來。在繪制機床時 & A* Y/ v* N6 Z% ^ ^
利用了OpenGL顯示列表技術(shù),將每個零部件都生成一 0 x7 i% f1 g0 I! `
個OpenGL的顯示列表,這樣可以大幅度提高重繪效率, + m, r3 G# i, O% l n
滿足實時繪制的要求。圖2為虛擬車床的效果圖。
: F+ F6 W+ E' J T% f # u2 Y G% H A# P( W* g
2.3 數(shù)控加工過程仿真實現(xiàn)
9 h4 P c, Z+ k x% _$ l 數(shù)控車床的毛坯常用棒料或鑄鍛件,加工余量較 * Y2 u7 V7 m- m% u
大,但加工的零件形狀較為簡單,一般都是回轉(zhuǎn)體零
: {9 Y0 |; n, i9 ?# Z件。為了避免材料切除過程中毛坯與刀具運動形成掃
" p1 h; T& p e9 p掠體之間耗時的布爾運算,將毛坯沿 Z 向進行離散,
5 e# G* @7 L1 o2 f, c! W7 g+ \將毛坯離散成單位高度的小圓柱,每個小圓柱稱為一 3 P6 Q" N6 G5 v: r
個薄片,每個薄片的厚度根據(jù)精度和顯示效果的要求
/ R8 U4 J3 L* A0 @8 N來確定,精度越高,切的越薄。每個薄片的數(shù)據(jù)結(jié)構(gòu)
d7 D, m4 I) D如下:
! p; e4 c# b* B# ?struct PieceCylinder
& [$ o8 y1 k+ W8 z Y: E; B{ ( a% Z0 L7 z# S. V# {2 S: o2 [
double m_dZSt;///////起始 Z 坐標
% F7 M/ F; R3 X: r/ x) u$ ndouble m_dZEd;//////結(jié)束 Z 坐標 2 P8 X- M. f- Y- W5 s
double m_dROutSt;////外圓起點半徑值 8 }# ]& u7 z4 p; ?9 }3 \$ a
double m_dROutEd;///外圓終點半徑值
4 \' p c) C$ E8 s$ n% L8 N* b& }double m_dInSt;///內(nèi)圓起點半徑值 % M( b! `; a% ]5 l$ H9 \5 _
double m_dInEd;////內(nèi)圓終點半徑值
) g* O( g( K2 w" j* n L# S- m, sBOOL m_bIsDelete;//////該部分薄片是否被切除
, q- ^* E, S1 K9 j2 h$ KPiesCylinder* m_pNext;/////下一個薄片數(shù)據(jù)
T7 _) ]" c) y; \: I}; " B u* q- D! @, {' T
由于車削加工的回轉(zhuǎn)體常常有內(nèi)孔,車削時也可 0 C' y/ h# h+ q R7 N- B$ }
能進行鏜孔和鉆孔操作,因而每個薄片不但要記錄所
1 m# D1 U3 I* O% k4 J; X9 ^* L在位置的外圓半徑,還要記錄內(nèi)孔的半徑。為了光滑
' U$ R3 ~8 ^3 C( [0 a的顯示加工的復(fù)雜回轉(zhuǎn)面,如圓弧面、雙曲面等,每 ! _$ @5 b6 R& o& b7 V
個薄片在 Z 軸方向分為起點和終點。其起點和終點處
" L) `/ s: R% D4 W. E4 ^$ W外圓、內(nèi)孔的半徑根據(jù)加工中的刀路軌跡單獨計算和 `2 d0 x( x" K. b) m% N* u% e
存儲。 ( c1 k$ }5 p, K v) k
在車削加工過程中,一方面工件繞其自身的回轉(zhuǎn) % o, ?; G5 M0 l# z9 t4 o0 G! \
軸高速旋轉(zhuǎn),另一方面刀具在工件的軸平面內(nèi)沿 X 軸、 3 w7 I% m5 J0 T. a! k# a4 u4 u4 T
Z 軸運動,并逐漸從工件上切除多元的材料,加工出 5 g" W5 i+ Z7 F0 }% H
所需的外形,每一步刀具所掃掠出的均是一個多邊形。 + D! W3 A, Q6 \! X" S# \
根據(jù)每一步的插補指令,求解出該步刀具所掃掠出的 0 L- c6 `; S- u" J) k' ]" A$ `% s
多邊形。將刀具掃掠出的多邊形和離散后的工件模型
' L3 g6 G8 p5 l2 N/ V求交,并相應(yīng)修改工件上所有和刀具掃掠多邊形相交
" z N, ~( M% @3 I% ^: T部分的半徑值。將修改半徑后的工件重新繪制出來, 0 b/ L5 p7 r1 R; Y! j4 y
即可完成仿真過程的實時繪制。 ) f2 i2 K+ R- O D. Y
3 運行實例 0 T; O8 u8 o# n U8 X" s
為了驗證系統(tǒng)的仿真效果,進行了兩個加工實例 * E9 }( P. @- Y l
研究。由于固定循環(huán)的實現(xiàn)比較有代表性,故這里選 7 x* s; G. k8 f" S) w7 q5 Q. o; T3 K5 z
用固定循環(huán)來進行研究。程序O1234是G71外圓粗車固
+ g3 [& l1 I3 J8 j/ w定循環(huán)里面包含G70的精車循環(huán),程序O1235是G72端 3 s. E: n" x. R3 u/ @
面車削固定循環(huán),圖3為G71精車后的效果圖。圖4為
[; W5 w6 a- }5 m, B) @6 nG72粗車過程中截圖。 # @* F+ M; S) }7 V/ k. ~
O1234
3 E3 o% L# I! g$ m& i, dSffice:smarttags" />1200M3
0 ?' S! [, f0 q' [) J8 G2 x- MT0101 5 n7 D4 C z/ r {
G50X100Z50
3 ]5 h Z4 p. l) o! @! hG0X80Z5 N4 q! L: o; u: y- J+ @- L0 _3 B
G71U3R0.2 , c$ Q/ @" K# w
G71P00Q60U0.2W0.1F200
; U0 Q" H' u0 p8 D3 a+ Z* G: IN00G0X6Z1
, ?7 j5 | Z5 Y( a+ AN10G1X10Z-3 . Y2 F g8 h1 | L
N20G1W-15 ( f4 [$ S6 w) o3 t3 o& g, {' f% [. {
N30G2U30W-15R15 f: y: @; c2 \: c. T. c+ r
N40G1W-30
9 f4 ^( w+ V6 G# E3 y3 \) [N50G3U30W-15R15 ! v$ U- X9 R) H# I; I$ A
N50G1U10W-10
1 d, c* C1 M6 x$ C3 ^/ [N60G1W-70 " P/ d4 H2 _5 I
N70G0X100Z50
+ K2 R B8 ^# J8 ]- qG0X30Z5 3 e5 y$ G. Y& o. O1 L# S3 @
G70P10Q60
" k4 Z- N) y4 n7 YG0X120Z20 8 ?7 Y; G0 Q& ~) ^# b4 q: I% X
M30
0 P, J. d3 j4 R $ S" B8 j& E h, c) \- ^/ v. q3 H7 D
O1235;G72橫向切削復(fù)合循環(huán)
* m1 U6 I5 b! u% X* l0 CS1200M3
: D, Y0 A6 U* `7 M9 P% G( d! t) h: lT0101 9 M# v7 c# U( z
G50X50Z50 ! |# {. k" S. E! T) g( W! T
G0X32Z5
4 h/ ?; ?* q" R, _G72U2R0.2
+ M3 j* X& h% L! q6 o7 JG72P10Q50U0.2W0.1F200;呼叫子程序
6 ~' s4 h/ R* c3 gN10G0X80Z-80
9 E; i B+ u9 YN20G1X60Z-70F100
- j! E" R7 E. O0 I( h% k7 DN30W8 ; H# n/ m: `1 G$ {# L
N40G3X30W15R15 ; C& |0 o, I5 W. H" T8 ^$ ]0 A( E" D
N50G1X18Z2
" U$ S. |2 r, E6 X: _& AN60G0X100Z50
% ~$ [. l8 m1 h9 A; ^' A+ eG0X30Z5
* J8 F4 r1 J) LG70P10Q50 $ Z. Y# Q# j) {9 h
G0X100Z50
" ~; o. f, ?1 a: {* G3 Z" ` `; H* vM30
$ m. N, @2 Q) O " ^, a, m% B7 ?, I* ]0 f
4 結(jié)論 6 b: \% P2 T2 a* W8 I4 w" i0 ~
詳細介紹了車床虛擬加工系統(tǒng)的一種實現(xiàn)方法, 8 W' x% h7 ^" j' I; Y
并采用這種方法實現(xiàn)了車床虛擬加工系統(tǒng)。該虛擬加
8 a1 t) \. t4 q4 p5 I1 x z工系統(tǒng)可廣泛應(yīng)用于真實加工前進行仿真試切,在工
9 q. V" o$ H! I, D7 i9 _2 B業(yè)培訓、數(shù)控教學等行業(yè)中,具有廣泛的應(yīng)用前景。 . X( d4 {; k5 S0 V) c3 j
|