引言 ffice ffice" /> + x1 Z- c- `6 o6 P8 {
虛擬制造(Virtual Manufacturing VM)技術是虛擬
. r6 x4 F3 d7 p |7 [1 }. `2 }7 \, S: c; M顯示技術與計算機仿真技術在制造領域的綜合發展和 9 ]. |2 E6 x4 H6 G" q4 m( _/ E6 X# i8 Z
應用。VM 的實質是“計算中的制造”,即在計算機中 ) [3 C# Q) D2 z4 z0 z
借助建模與仿真技術及時地完成制造全過程的模擬和 3 J- l. d+ G7 g& f) k: G" n* ^
示范,并預測評價產品性能和產品的可制造性。數控 - p0 _3 e+ C* m, h) v
(NC)車削程序的編制過程與工藝過程相似,都具有經 5 ]3 e5 C! ^3 s4 b) y
驗性和動態性,在程序編制過程中經常發生錯誤。為 $ O2 m6 q; O- c% {) N$ R+ l
此,在數控機床上加工零件之前一般要進行數控程序
" k3 \* @# V- L/ k6 _8 ](NC 代碼)校驗,并進行首件試切。但這種傳統的試切
( v4 v0 n4 }! u/ |! [. j% Q方法來檢驗刀具路徑既費時又費力。隨著數控編程技 2 v* b6 w; Q2 Q1 J
術的發展,人們采用視覺檢查 NC 刀具軌跡的二維線
! z! j. k( v9 g( Y# s: W* q8 \0 k框圖,這種方法主要依賴于程序員對易錯區選擇的判 - l" M4 W, `/ S! e
斷和對該區域復雜的刀具軌跡線框圖的理解程度,一
- A N, {5 Y' S* o般的用戶無法判斷其正確性。通過數控加工三維幾何 " k; u6 U9 Q4 h' b2 C
仿真能夠使 NC 編程人員和機床操作者通過圖形顯示
5 c9 w# U* @$ M7 F1 o進行干涉和碰撞檢查,校驗數控程序,故可以大大減
; C- v8 U- N, I3 ~+ }+ R少上述情況的發生,提高數控編程效率和質量。
5 I5 S9 `9 t* Y- B1 系統總體結構 ) v: _( D2 b E0 ?. O
由于OpenGL適用于多種硬件平臺及操作系統,其
# u' m- L- f0 [& I! t圖形庫能夠制作出高質量的三維圖形和高質量的動畫
/ @6 U& b5 I5 M8 W' ~9 h效果。因而整個虛擬加工的3D顯示引擎選用OpenGL來
; V$ }* ^4 S) F1 l) d實現。考慮到Visual C++功能強大,開發出的系統執
. s. |; e: z6 ^: F6 A/ g1 `0 k4 S4 k行效率高,且便于控制OpenGL,因而選用Visual C++
* \3 Q+ N% \+ w' R9 O. j8 S0 U& [作為整個虛擬加工系統的開發工具。通過對數控車床 . s" x, m; A4 q9 p
及其加工過程進行仿真,動態顯示產品加工過程和結
# H- J7 f$ n# J( l% W4 Z/ N: `果,以實現產品零件的虛擬加工,并驗證NC程序的正
1 `% h, ?: A. ]7 o8 ~7 o& b$ G確性。
3 Y) o4 r6 D0 |: y) f( @, [2 x2 y 0 `) B- b9 g& O* l* p Z
圖1為系統的設計流程圖。
( i7 D! L) s0 E2 M- S2 系統功能實現 & ~1 X( W: z6 s) B2 A- _& x
2.1 NC程序編譯 $ ^6 ]* l) `& k4 F# w+ h7 d z; X
由于虛擬加工系統主要用于工業培訓及NC代碼的
; b2 T9 ^: _' U/ g. M: C+ ]正確性檢查,故要求系統能夠在加工之前通知操作人
, H# F8 h& a: j: W2 L0 k員NC程序中是否存在語法錯誤,上下程序段間的邏輯 " x5 G% L0 q3 C4 j
關系是否正確等,故選用編譯方式而不是解釋方式來 4 n9 T3 E& @7 {; l4 k( _( z
對NC程序進行編碼。根據編譯原理的思想[1,2],構造出 6 X" ~! g0 P; J
NC程序編譯模塊,對NC程序進行語法和詞法檢查。
0 n8 x U( m& t$ \, o8 [( z比如檢查地址符字母是否大寫,上下程序段之間的邏
3 H! Y. ?$ d) i. Q! h \7 E. w輯關系是否正確,圓弧的終點、圓心、半徑值等是否
. S0 O# A' W; I9 k) z j" D5 k& v9 `匹配,子程序調用時子程序號是否正確,程序開始字
, U' G0 w1 Z2 x: S- L符,程序號,程序主體,程序結束代碼和程序結束字 9 o: z+ @% [2 ]
符等是否完整等等。通過詞法和語法檢查指出錯誤發
) O3 v+ g6 x. Q( f; N生的位置,給出錯誤的原因。使得虛擬加工系統能夠 ) E+ t* A+ p$ V& L6 v. }
輔助用戶學習NC程序的編制。
" O- x1 T, \/ d, K6 Z% g2.2虛擬車床本體的搭建 " I; x% c2 ^3 X. E4 o8 J
在數控加工幾何仿真系統中,首先要建立虛擬加
4 N$ ] j: C8 R. m0 ]- K工環境,實現虛擬數控機床。由于機床是由許多零部 . i5 j! R, N8 h9 E6 ]- x# `# P
件組成,結構較為復雜,用OpenGL函數進行造型工作 ! O" v5 N$ ]# k& N8 `0 L
量太大,故先在CAD軟件Pro/E中造型出數控機床各個 8 U* d! z" I' I8 v; T4 o
零部件,將其導出成標準的三維數據格式STL,在程序 1 ^( k, ^! e4 g
中直接讀取STL文件,并將其裝配起來。在繪制機床時
- S% N/ m' c$ m4 G( S$ b. D6 c利用了OpenGL顯示列表技術,將每個零部件都生成一 1 ]( I4 w! @' W: b( E! d+ |
個OpenGL的顯示列表,這樣可以大幅度提高重繪效率, ; G6 L. i% ^: N
滿足實時繪制的要求。圖2為虛擬車床的效果圖。
$ U, h9 ^; ?7 E& p- I ( R6 B& D7 p7 C$ |
2.3 數控加工過程仿真實現
; f# ]4 Y' N" x* c 數控車床的毛坯常用棒料或鑄鍛件,加工余量較 6 ^5 I0 {0 j4 v g
大,但加工的零件形狀較為簡單,一般都是回轉體零 , M- P( ] W8 `, \
件。為了避免材料切除過程中毛坯與刀具運動形成掃 " _/ u0 Z5 Y1 Z
掠體之間耗時的布爾運算,將毛坯沿 Z 向進行離散,
' w& Q5 [& v/ M4 M將毛坯離散成單位高度的小圓柱,每個小圓柱稱為一 , X3 D/ S/ P) ]# ]
個薄片,每個薄片的厚度根據精度和顯示效果的要求
) I) o' T* }; E8 M( u- ] F) A來確定,精度越高,切的越薄。每個薄片的數據結構 8 m1 i* `4 ?' r$ P
如下:
: t, y( `5 z2 pstruct PieceCylinder 9 F+ S# [* o1 c% d1 e" L6 ~, [
{ ' G" T6 K5 L. v' ?
double m_dZSt;///////起始 Z 坐標 : b- U \4 j" u# }
double m_dZEd;//////結束 Z 坐標
! z; h2 ^, Q( Q% p: Vdouble m_dROutSt;////外圓起點半徑值 4 @$ p2 B( m+ }; o
double m_dROutEd;///外圓終點半徑值
" I/ J/ _* u" e) k7 xdouble m_dInSt;///內圓起點半徑值
- _# a" ^$ a1 V2 J3 l% m' Edouble m_dInEd;////內圓終點半徑值
( v! M. F/ r' A) r9 A( f. OBOOL m_bIsDelete;//////該部分薄片是否被切除
! k9 S! w& U. I! _) D7 w+ F: @PiesCylinder* m_pNext;/////下一個薄片數據
, _. ^6 g1 G8 O8 \};
. P( L5 n- E9 w 由于車削加工的回轉體常常有內孔,車削時也可 5 s8 K# F5 ?$ R6 F* y6 A
能進行鏜孔和鉆孔操作,因而每個薄片不但要記錄所
0 f- V9 v, F* C2 h* t在位置的外圓半徑,還要記錄內孔的半徑。為了光滑 ! k% f% ^+ @9 m* l' Q
的顯示加工的復雜回轉面,如圓弧面、雙曲面等,每
# C! |: ]1 b9 C; s個薄片在 Z 軸方向分為起點和終點。其起點和終點處 ( A! q) e8 O. _$ R1 Q+ L
外圓、內孔的半徑根據加工中的刀路軌跡單獨計算和
9 H3 o1 ?+ |# V7 L: I* E8 }存儲。 * b8 S0 z6 M' p; m4 U7 Q
在車削加工過程中,一方面工件繞其自身的回轉
" t- P( w q" e9 C6 R% ?" g0 e' _6 |軸高速旋轉,另一方面刀具在工件的軸平面內沿 X 軸、 7 B2 E0 k1 o" a6 X
Z 軸運動,并逐漸從工件上切除多元的材料,加工出
1 Y* v3 S, J, P所需的外形,每一步刀具所掃掠出的均是一個多邊形。 , y' O: o2 m" s5 y& d, R
根據每一步的插補指令,求解出該步刀具所掃掠出的
0 `4 h- c' v; P! b/ @3 O多邊形。將刀具掃掠出的多邊形和離散后的工件模型
( |" M" k( U7 F求交,并相應修改工件上所有和刀具掃掠多邊形相交
4 a# _/ q# |6 L7 u9 Y; \' }部分的半徑值。將修改半徑后的工件重新繪制出來, " l* W6 v8 L4 e( P- }3 r# D
即可完成仿真過程的實時繪制。
1 }1 p% f; A# c6 j! ^/ b% Y$ Y/ \3 運行實例
' V# L9 t, T: r% X" N7 e) D 為了驗證系統的仿真效果,進行了兩個加工實例
% R J8 A- ~2 K9 t研究。由于固定循環的實現比較有代表性,故這里選
3 c2 S9 t: E+ W# ]7 j4 g用固定循環來進行研究。程序O1234是G71外圓粗車固
7 d: O% {, U, j6 w5 f; U3 T& j定循環里面包含G70的精車循環,程序O1235是G72端 . l" S: x l! n
面車削固定循環,圖3為G71精車后的效果圖。圖4為 ; B6 G/ v9 p5 C! d0 D
G72粗車過程中截圖。 # I' Q( R% r4 F4 d
O1234
$ S- s9 J9 z5 Z7 TSffice:smarttags" />1200M3
Q C! t2 a% o. }6 `T0101
1 Q! G$ K$ L* |7 `G50X100Z50
) u9 G7 d3 a4 v! k: fG0X80Z5 , Z) _) e/ o7 t/ g
G71U3R0.2
( f% U- J5 s6 J8 @0 h+ |7 MG71P00Q60U0.2W0.1F200
6 l7 t: D( I) ^) uN00G0X6Z1
, Q( V: L, M0 a1 d% \ ON10G1X10Z-3 . y, q9 X) d( g8 ~, p- {+ [
N20G1W-15
; i, p, _ h$ N( s1 PN30G2U30W-15R15
% L6 h5 \: S) b( WN40G1W-30
: p' w* J+ _# [. H5 g) I7 A! e' Y2 [N50G3U30W-15R15
4 y( i' f' c$ t2 xN50G1U10W-10 : {& o% L7 d; O; m: |5 T- [
N60G1W-70
3 _% y: a! x, I5 F+ Z& ZN70G0X100Z50 " p+ _) ^7 M+ C& x+ q
G0X30Z5
; O: ?, { k6 d$ @2 q# l/ }0 BG70P10Q60
# g5 {) f: j0 p8 G* tG0X120Z20
! W; l8 A, n6 j. J' zM30
: S( L8 Y2 Z& v) \. a
1 G1 {# B) l0 W; x; T/ ?O1235;G72橫向切削復合循環 7 y$ P4 c$ x8 |1 H3 @
S1200M3 6 `0 c& |9 H! N& N: B, R' M K
T0101
; d* H1 d# y% u: J/ b: `G50X50Z50 2 `6 r( f& q+ Z: \/ f; D
G0X32Z5 7 R' t- `3 o. Z; \
G72U2R0.2 $ l, i" O' ]% |- _, J; r
G72P10Q50U0.2W0.1F200;呼叫子程序 . m/ `2 y7 H- R
N10G0X80Z-80 " J& y1 J/ o2 z8 W" q# R; e
N20G1X60Z-70F100 5 {) `7 }) |0 I" L9 C, ^- l( r
N30W8
- @! N6 M9 ?; Z$ q; j/ y3 N' HN40G3X30W15R15 Q. `* o) F2 k8 x4 d
N50G1X18Z2
4 F" i9 W0 v, B/ wN60G0X100Z50
@& j& I. l# m; |( B y1 FG0X30Z5
; q7 B; N2 m2 \& n2 uG70P10Q50 + o$ K0 \8 b9 C" J
G0X100Z50
9 X) \; u; [$ I$ L% X) ]; }4 q3 Q: qM30 - ~) X8 Z* U/ }: |* D$ c
; C" H$ W5 x2 ~# M& F. q4 結論
, M+ i, r* t& i/ v! | 詳細介紹了車床虛擬加工系統的一種實現方法, 4 a: r0 s! _1 ]
并采用這種方法實現了車床虛擬加工系統。該虛擬加 0 |( z; \! U4 H: o |
工系統可廣泛應用于真實加工前進行仿真試切,在工 1 T3 l1 L8 {$ a7 H, @ K
業培訓、數控教學等行業中,具有廣泛的應用前景。 ( U" n; R8 l2 u3 q4 @
|