引言 ffice ffice" /> # Z5 H% V4 u! k( A! G1 s
虛擬制造(Virtual Manufacturing VM)技術是虛擬 ( B- v8 O4 q$ z% i- V
顯示技術與計算機仿真技術在制造領域的綜合發展和 1 F- i) g5 [7 R% Y3 Y0 C! a; _
應用。VM 的實質是“計算中的制造”,即在計算機中 / c% `7 a, O: t9 c1 \( x" M
借助建模與仿真技術及時地完成制造全過程的模擬和
* T3 S# G6 [4 I9 `7 v: `" w* ?示范,并預測評價產品性能和產品的可制造性。數控
0 e9 K/ s8 ?( p+ ?6 @( C(NC)車削程序的編制過程與工藝過程相似,都具有經 5 q' ^" Q/ }! P: q* o, F8 @6 b/ S% q
驗性和動態性,在程序編制過程中經常發生錯誤。為
4 m; ~% h1 ]1 @& e此,在數控機床上加工零件之前一般要進行數控程序
' P# F/ q9 i! j- O+ j3 C9 z) q9 W(NC 代碼)校驗,并進行首件試切。但這種傳統的試切 ( l5 |$ Y* ]) G! o% _
方法來檢驗刀具路徑既費時又費力。隨著數控編程技 0 ^2 y; Q4 \& p$ D# L
術的發展,人們采用視覺檢查 NC 刀具軌跡的二維線
9 U& O! O ?' e6 _2 I框圖,這種方法主要依賴于程序員對易錯區選擇的判 0 Z3 H* x- |5 p) w7 D
斷和對該區域復雜的刀具軌跡線框圖的理解程度,一 / ~' E p- z2 G! N
般的用戶無法判斷其正確性。通過數控加工三維幾何 % x0 f8 i9 e" }
仿真能夠使 NC 編程人員和機床操作者通過圖形顯示
( Z6 ^1 d0 f, u7 x, ~5 H# w進行干涉和碰撞檢查,校驗數控程序,故可以大大減
% H" q1 Y" t. S9 |少上述情況的發生,提高數控編程效率和質量。 U, H% v( } `+ v: _$ A
1 系統總體結構 ! w- K5 a# X B; ^: c( y& E: S
由于OpenGL適用于多種硬件平臺及操作系統,其
; `: {" b) J1 h圖形庫能夠制作出高質量的三維圖形和高質量的動畫
2 P" h' K) {6 S效果。因而整個虛擬加工的3D顯示引擎選用OpenGL來
$ k' R- \, v7 q7 G) q8 o實現。考慮到Visual C++功能強大,開發出的系統執
/ z$ P% T: W* j& q' F; a/ \行效率高,且便于控制OpenGL,因而選用Visual C++
8 }# m2 x5 w4 U4 B4 g9 m4 k作為整個虛擬加工系統的開發工具。通過對數控車床 N3 @6 F0 r& n; O0 l
及其加工過程進行仿真,動態顯示產品加工過程和結 4 z2 A8 q$ r6 S0 s& F( v
果,以實現產品零件的虛擬加工,并驗證NC程序的正 0 Q) C+ h, {' _9 \
確性。
% d8 C) R3 I/ Y6 S
0 @8 K: d ?% E% X. }2 ?* d" q圖1為系統的設計流程圖。
8 C9 r' Y2 P2 c6 s2 系統功能實現 7 z0 w) i( k1 {( L/ {9 E
2.1 NC程序編譯 4 }) d% s& R, b4 _3 M
由于虛擬加工系統主要用于工業培訓及NC代碼的
/ y+ H* b3 k- O0 J' W正確性檢查,故要求系統能夠在加工之前通知操作人 1 ~9 V$ q( V: I) Q1 C
員NC程序中是否存在語法錯誤,上下程序段間的邏輯 7 h6 a9 W( |( I1 P
關系是否正確等,故選用編譯方式而不是解釋方式來 % S0 y2 ~& L4 d- |
對NC程序進行編碼。根據編譯原理的思想[1,2],構造出 0 Q+ y6 D8 A i. H, }, C" ^1 t1 V
NC程序編譯模塊,對NC程序進行語法和詞法檢查。 2 p" x. M9 U! D: B
比如檢查地址符字母是否大寫,上下程序段之間的邏
5 N7 _' j7 x+ l3 }8 |1 t0 X輯關系是否正確,圓弧的終點、圓心、半徑值等是否
8 e4 e% [2 m3 [, R匹配,子程序調用時子程序號是否正確,程序開始字
M9 i9 o; a: T/ G符,程序號,程序主體,程序結束代碼和程序結束字
8 x4 G, ?) v4 K' a: x符等是否完整等等。通過詞法和語法檢查指出錯誤發 + n' a* R3 F2 B" R
生的位置,給出錯誤的原因。使得虛擬加工系統能夠 * y& \. y6 u3 K: z/ h
輔助用戶學習NC程序的編制。
' H1 |* {! {4 m0 O! D2.2虛擬車床本體的搭建 & C- `! y0 F S, a+ H
在數控加工幾何仿真系統中,首先要建立虛擬加
) F. i& q) L$ o `' }$ u" [工環境,實現虛擬數控機床。由于機床是由許多零部 : }; W5 {; |4 w- `9 V
件組成,結構較為復雜,用OpenGL函數進行造型工作
6 |# d1 C& D ]! p+ V$ ~4 a3 B量太大,故先在CAD軟件Pro/E中造型出數控機床各個
0 a: R6 j" q5 I$ Z2 N9 y零部件,將其導出成標準的三維數據格式STL,在程序
" W* I5 M' R' t" J; a2 T# d7 M# g中直接讀取STL文件,并將其裝配起來。在繪制機床時
" h. E' q: j; w* j( \# U. l利用了OpenGL顯示列表技術,將每個零部件都生成一 + C6 z- z7 Y* M9 c, [2 S3 s9 s
個OpenGL的顯示列表,這樣可以大幅度提高重繪效率, 9 f/ g* f; B6 ~* w: b; _" y
滿足實時繪制的要求。圖2為虛擬車床的效果圖。
) ^, n6 d; a- v0 o* p$ l% B/ [ ! |' g$ o# s0 Z3 E+ t# P
2.3 數控加工過程仿真實現
$ Q8 d2 t2 E, e3 z 數控車床的毛坯常用棒料或鑄鍛件,加工余量較 & ~5 [9 f1 l) ~. p& d
大,但加工的零件形狀較為簡單,一般都是回轉體零 * v1 ~' O- D7 u. }
件。為了避免材料切除過程中毛坯與刀具運動形成掃 + i* A4 K1 l: [# g/ o& X0 R4 N& T
掠體之間耗時的布爾運算,將毛坯沿 Z 向進行離散,
$ W3 I* W! @8 M6 E) m將毛坯離散成單位高度的小圓柱,每個小圓柱稱為一
+ A7 e( \. F& E個薄片,每個薄片的厚度根據精度和顯示效果的要求 % v0 }4 a6 L; }% Z
來確定,精度越高,切的越薄。每個薄片的數據結構 , e9 \' C8 o! v$ u" Y$ O
如下:
3 o2 I) E8 w. Z, X( ustruct PieceCylinder 3 \2 @- c2 @; ~) M
{
) G" H8 h+ q1 j4 \+ ~double m_dZSt;///////起始 Z 坐標 + C; X9 T: m% z% _5 S) u
double m_dZEd;//////結束 Z 坐標
4 e9 {, G% H( x* Q! K3 k/ adouble m_dROutSt;////外圓起點半徑值
* v6 u4 D. X4 z# _double m_dROutEd;///外圓終點半徑值
" D& i! V+ z% x; \% |2 {double m_dInSt;///內圓起點半徑值
( D" p& I* d6 Sdouble m_dInEd;////內圓終點半徑值
- L( g# ` Y! }( {; U* e' WBOOL m_bIsDelete;//////該部分薄片是否被切除
$ Q/ i+ m+ S, i, w7 lPiesCylinder* m_pNext;/////下一個薄片數據
) k, {0 e- W' T4 X4 O3 @% }8 ^}; ) Y) f5 K) O/ A
由于車削加工的回轉體常常有內孔,車削時也可
7 h! R1 I1 l/ g2 U( s能進行鏜孔和鉆孔操作,因而每個薄片不但要記錄所 1 s" f Z, O1 a* P: H* H
在位置的外圓半徑,還要記錄內孔的半徑。為了光滑
+ @5 C5 m4 A) r! d的顯示加工的復雜回轉面,如圓弧面、雙曲面等,每 ' z* A( i, t3 I
個薄片在 Z 軸方向分為起點和終點。其起點和終點處 % f; O' e/ q) G" u% V
外圓、內孔的半徑根據加工中的刀路軌跡單獨計算和 + m3 B% U' h4 Y( U4 D* Y
存儲。
& z0 F3 a, ]; Z% @ 在車削加工過程中,一方面工件繞其自身的回轉
6 t4 \# c. t; _3 |6 k2 y0 O6 n3 V軸高速旋轉,另一方面刀具在工件的軸平面內沿 X 軸、 % Z8 N- c1 O1 {" c6 q9 P
Z 軸運動,并逐漸從工件上切除多元的材料,加工出
5 N2 A5 U+ D- Q6 C所需的外形,每一步刀具所掃掠出的均是一個多邊形。 5 {/ D) C& V c: E/ i
根據每一步的插補指令,求解出該步刀具所掃掠出的 c6 |( G1 E/ M6 {1 p
多邊形。將刀具掃掠出的多邊形和離散后的工件模型 ' F- Y* A1 L. B8 Z
求交,并相應修改工件上所有和刀具掃掠多邊形相交 * W, j" D: I+ M3 q5 J! ~0 O" P
部分的半徑值。將修改半徑后的工件重新繪制出來, ' r( g( W8 v- `
即可完成仿真過程的實時繪制。
1 }1 [& @6 t7 g3 運行實例 7 E% }, `/ B/ D9 F; S: h( d
為了驗證系統的仿真效果,進行了兩個加工實例 ! Z% k* `: x; D, }7 ?; A- ^+ |9 h8 N
研究。由于固定循環的實現比較有代表性,故這里選 " q* `. e3 d# x; q) u: C; c- M
用固定循環來進行研究。程序O1234是G71外圓粗車固 % R$ K$ n3 N% ]5 z! D0 a5 b
定循環里面包含G70的精車循環,程序O1235是G72端 % @/ |, T& c; R1 t$ P5 n
面車削固定循環,圖3為G71精車后的效果圖。圖4為
) a1 k5 w& I4 YG72粗車過程中截圖。 $ x0 X$ X( x' X& I' f" S9 H
O1234
! d* F0 N: ?3 \Sffice:smarttags" />1200M3
% N* @3 a4 _0 w" r+ ] TT0101 ! Z, m# c5 K4 N+ ?5 p( @1 B
G50X100Z50 5 e* l, ^, r5 E& Y9 ^8 P% u0 K& G* W
G0X80Z5 3 G: k1 q3 n$ A% E$ f" i
G71U3R0.2 6 S" I! s, {: A# h; ] {( A0 I
G71P00Q60U0.2W0.1F200 8 @$ W6 U8 ^$ e A! F
N00G0X6Z1
9 \( G7 [' z* a0 Z! NN10G1X10Z-3 & p) J2 c: x: ~0 E' Z
N20G1W-15 ( Y V/ e f3 s$ F5 E n# J
N30G2U30W-15R15
; [2 E" }- j" Z& A2 fN40G1W-30
/ ~! o6 H2 v- ]9 AN50G3U30W-15R15
) S1 x$ Q9 }4 U: GN50G1U10W-10 6 y9 O6 C9 E- H7 s& D1 n. `, I
N60G1W-70
8 D% M9 g( `9 r; ~5 p4 m9 PN70G0X100Z50
' y ] Y- U9 H! h- E' oG0X30Z5
3 j, S" Z0 g1 H5 e. C; z2 xG70P10Q60
7 l. i O1 N5 p3 _" w: V4 bG0X120Z20 7 u! g- X$ k# ^' I8 n
M30 ) C2 o* n, x: k0 {1 O J
2 @4 d+ V. x4 A( \5 q: E5 I3 \- SO1235;G72橫向切削復合循環 # J# o% P/ `' U# l0 d
S1200M3 ) \8 E- o4 b" N8 O; Q& B
T0101
' B/ r: t$ F* B) Q6 UG50X50Z50 5 g$ t& a$ _; t: z4 G8 @
G0X32Z5
3 g: t/ z6 |; F9 ~G72U2R0.2
' P. o1 v# j+ c( Z9 ?: d9 rG72P10Q50U0.2W0.1F200;呼叫子程序 & w+ c: L( `% |8 M Y, q& M1 w
N10G0X80Z-80 ) ~+ y# J; ?7 J' s B
N20G1X60Z-70F100
( w- f$ Q2 @/ S7 y' U5 wN30W8 * N5 h7 m7 Z8 a5 y
N40G3X30W15R15
' N ]" A/ C, Q+ XN50G1X18Z2
: \) f" ~3 H* ]4 S. M0 V: ]N60G0X100Z50
, x4 L# [$ K* S! MG0X30Z5
: J3 C2 S& g- @/ C) S& TG70P10Q50 5 a/ B! o, O0 C4 ~3 i
G0X100Z50
4 c" ^) y+ `5 I/ \5 RM30 6 X2 l+ ]9 Q( E' D% Z, S: R9 K: C
5 \/ e- [3 _: Y3 z
4 結論
) j8 {; ]; W4 U- {7 C+ B2 E 詳細介紹了車床虛擬加工系統的一種實現方法,
3 m4 S8 T9 x# }# G, A9 I' v7 D并采用這種方法實現了車床虛擬加工系統。該虛擬加 ) d& g3 L) N! i M+ J1 E
工系統可廣泛應用于真實加工前進行仿真試切,在工
( l0 f9 f6 ~! {業培訓、數控教學等行業中,具有廣泛的應用前景。
9 A) P9 h0 D3 b- x7 s" | |