引言 ffice ffice" /> ! n) b9 s4 g9 g* }
虛擬制造(Virtual Manufacturing VM)技術是虛擬
* }' X9 u/ l1 T顯示技術與計算機仿真技術在制造領域的綜合發展和
7 h; B3 p. \2 Q) F7 X' B應用。VM 的實質是“計算中的制造”,即在計算機中 - R2 Y% _8 Z4 V$ V2 W# A
借助建模與仿真技術及時地完成制造全過程的模擬和
; p ~3 g# o5 G! U示范,并預測評價產品性能和產品的可制造性。數控
" Z/ c" Q/ r$ n1 ](NC)車削程序的編制過程與工藝過程相似,都具有經 0 g. G4 e% a" ~( g4 k
驗性和動態性,在程序編制過程中經常發生錯誤。為
% t5 v& V: |9 w% z2 }此,在數控機床上加工零件之前一般要進行數控程序 4 t1 z* _2 \; U6 X7 y
(NC 代碼)校驗,并進行首件試切。但這種傳統的試切 ! G1 P+ K: o7 V! }0 T( X2 W- F
方法來檢驗刀具路徑既費時又費力。隨著數控編程技
, @4 {# t& U/ \' C術的發展,人們采用視覺檢查 NC 刀具軌跡的二維線
- C' Y n! C; e* X, v框圖,這種方法主要依賴于程序員對易錯區選擇的判 * U. g2 }% O7 x) U) w2 v
斷和對該區域復雜的刀具軌跡線框圖的理解程度,一 9 P/ d: {+ e0 O5 x
般的用戶無法判斷其正確性。通過數控加工三維幾何
/ m8 a2 I7 A/ ~7 L* Q仿真能夠使 NC 編程人員和機床操作者通過圖形顯示 1 P8 S$ Q0 ~% c
進行干涉和碰撞檢查,校驗數控程序,故可以大大減 , W2 u' a, }: w, E, z
少上述情況的發生,提高數控編程效率和質量。 & E M# v' a1 D! x& a, K
1 系統總體結構 7 i- ?- g0 H: t& T
由于OpenGL適用于多種硬件平臺及操作系統,其
2 } ^& K0 n- c3 l' O7 Z) g圖形庫能夠制作出高質量的三維圖形和高質量的動畫 4 P2 q M% ^1 ^) m$ Y& f. u, p0 E5 I
效果。因而整個虛擬加工的3D顯示引擎選用OpenGL來
# v0 _$ b5 H% E5 @$ F實現。考慮到Visual C++功能強大,開發出的系統執 + u+ @# ]/ l: ]% B- q/ [2 G
行效率高,且便于控制OpenGL,因而選用Visual C++ . J$ z6 @: j( Y* h: _; r( x
作為整個虛擬加工系統的開發工具。通過對數控車床
" d7 t" b3 y7 p6 T8 o% O+ u% v及其加工過程進行仿真,動態顯示產品加工過程和結 ! j# T; R) r: |+ q" r
果,以實現產品零件的虛擬加工,并驗證NC程序的正
* O% E3 P# E7 Q& _- w, W' f+ a確性。 7 K4 S7 r( A" X: |& C# V4 ]4 X3 c
/ c2 c2 m" b/ W
圖1為系統的設計流程圖。 & A/ x2 q2 i' o, h8 u' ^9 Z" M
2 系統功能實現 0 m8 k6 N0 M; a' A: e1 M8 V
2.1 NC程序編譯 $ o& I! ^( n) U& w, t! Q# C5 Q5 z
由于虛擬加工系統主要用于工業培訓及NC代碼的 8 l. ?% O( X* g: v, h5 p) l
正確性檢查,故要求系統能夠在加工之前通知操作人 * ^4 k8 |% U6 V- J( ~3 y
員NC程序中是否存在語法錯誤,上下程序段間的邏輯 3 P8 `9 u( u0 U3 p4 u
關系是否正確等,故選用編譯方式而不是解釋方式來
3 }& Z! C4 H: v; e: z對NC程序進行編碼。根據編譯原理的思想[1,2],構造出
5 `* {) P0 I/ L: w$ q/ {6 kNC程序編譯模塊,對NC程序進行語法和詞法檢查。
) Z* Q) Z) c# h) W# q% ~比如檢查地址符字母是否大寫,上下程序段之間的邏
1 ?. g# h0 ~2 L0 f輯關系是否正確,圓弧的終點、圓心、半徑值等是否 # l3 G" \0 k( z
匹配,子程序調用時子程序號是否正確,程序開始字
5 p1 ^5 U6 K2 _8 m3 c4 ]9 ?2 R符,程序號,程序主體,程序結束代碼和程序結束字
$ |2 n' k% S0 y p符等是否完整等等。通過詞法和語法檢查指出錯誤發 7 T7 ]: g: ]" U, i: {- Y! A6 K
生的位置,給出錯誤的原因。使得虛擬加工系統能夠
F" y/ q' W. p0 F9 \8 ~: u輔助用戶學習NC程序的編制。
; D) m8 c) j2 R- @% D2.2虛擬車床本體的搭建
+ H. b- y' w3 S0 w 在數控加工幾何仿真系統中,首先要建立虛擬加 " U7 D4 ?4 ^) g7 ]
工環境,實現虛擬數控機床。由于機床是由許多零部
5 a$ ^% o- f* q% z0 \$ U件組成,結構較為復雜,用OpenGL函數進行造型工作
& x+ r) u. Y! Y量太大,故先在CAD軟件Pro/E中造型出數控機床各個 7 R, T; A M7 O9 \
零部件,將其導出成標準的三維數據格式STL,在程序
- \$ C5 l, f3 I& D2 y中直接讀取STL文件,并將其裝配起來。在繪制機床時 % r0 ^9 M( B: |
利用了OpenGL顯示列表技術,將每個零部件都生成一 , g" a4 v1 K& E
個OpenGL的顯示列表,這樣可以大幅度提高重繪效率,
4 I$ o7 [! B8 M. p2 g滿足實時繪制的要求。圖2為虛擬車床的效果圖。
6 u2 L* I4 H1 ~7 o( U" r) i" y5 t 1 n$ _; r* e7 N$ r! Y& |5 N
2.3 數控加工過程仿真實現 : K* Q& B: m, [/ G2 W$ C$ u
數控車床的毛坯常用棒料或鑄鍛件,加工余量較 ; L# w( E, n' A/ r+ e
大,但加工的零件形狀較為簡單,一般都是回轉體零 ) I( S" L% G0 }: X7 ^
件。為了避免材料切除過程中毛坯與刀具運動形成掃 , [! x$ b, r6 M
掠體之間耗時的布爾運算,將毛坯沿 Z 向進行離散,
# I4 I& |$ d: h0 ?, i將毛坯離散成單位高度的小圓柱,每個小圓柱稱為一
[5 n8 Z! Z2 G/ F. e* t6 }0 ^1 U& N個薄片,每個薄片的厚度根據精度和顯示效果的要求
1 t6 H8 _! K) N+ j% |9 `* q |來確定,精度越高,切的越薄。每個薄片的數據結構 : b, z6 o6 [% S7 N* g
如下: 2 F7 G2 i8 u0 Y0 ~" v2 S B
struct PieceCylinder 2 w1 m' ~6 n7 v9 o2 T0 w
{ 3 _9 ?3 z8 g6 S: j( _# i
double m_dZSt;///////起始 Z 坐標
( b/ e; F% o# a* c+ pdouble m_dZEd;//////結束 Z 坐標 6 m% z. {6 a* R5 ?6 a$ ~
double m_dROutSt;////外圓起點半徑值 * |0 q+ f9 B2 Y0 y( ]$ a8 H
double m_dROutEd;///外圓終點半徑值
# |; T) i' k2 j" x' q* d/ adouble m_dInSt;///內圓起點半徑值 ' o2 w8 I% c7 F) }& q! g5 V
double m_dInEd;////內圓終點半徑值
' ]8 |5 v$ A; h: P* m0 D$ U$ sBOOL m_bIsDelete;//////該部分薄片是否被切除 3 E& \( e; q! w- t
PiesCylinder* m_pNext;/////下一個薄片數據 6 m: v# ^, S0 Q4 P
}; 1 {* ^" V2 B$ n' Z
由于車削加工的回轉體常常有內孔,車削時也可 . J2 Z; {( _7 K. M
能進行鏜孔和鉆孔操作,因而每個薄片不但要記錄所
( d6 t, z' C* P; N" t在位置的外圓半徑,還要記錄內孔的半徑。為了光滑
; z% D5 R& ?3 r3 V: P的顯示加工的復雜回轉面,如圓弧面、雙曲面等,每
+ @# W6 T# K6 p5 O' A0 ~個薄片在 Z 軸方向分為起點和終點。其起點和終點處
4 y/ r+ t. X- V5 [9 k8 _外圓、內孔的半徑根據加工中的刀路軌跡單獨計算和 {# z2 B& I( n$ \- l4 C5 I( X
存儲。 ! n" f5 y b- F+ F | A
在車削加工過程中,一方面工件繞其自身的回轉
( q# D2 V4 B9 Y) c軸高速旋轉,另一方面刀具在工件的軸平面內沿 X 軸、 0 ^8 w0 D: M; F+ s* t
Z 軸運動,并逐漸從工件上切除多元的材料,加工出
4 S3 c) b; ]% m. n4 E/ T所需的外形,每一步刀具所掃掠出的均是一個多邊形。 ; u& ^* b8 f( W
根據每一步的插補指令,求解出該步刀具所掃掠出的
, e0 E& O F4 L ?多邊形。將刀具掃掠出的多邊形和離散后的工件模型
) K+ I9 h' z N. g0 J8 E. U1 U' J求交,并相應修改工件上所有和刀具掃掠多邊形相交 / [* b4 Q# {/ ^% B* Q) S7 P
部分的半徑值。將修改半徑后的工件重新繪制出來, % z8 p8 `' d# j9 `. m/ D- I
即可完成仿真過程的實時繪制。 1 ]7 Y) D' B" S% _
3 運行實例 5 V* x4 i: J' p! b
為了驗證系統的仿真效果,進行了兩個加工實例
" p1 \+ D& f) H' D2 M, M研究。由于固定循環的實現比較有代表性,故這里選 / d# i) O( b- t7 G& C+ q U
用固定循環來進行研究。程序O1234是G71外圓粗車固
: z4 _+ @; r$ g3 _/ e, n7 n7 u定循環里面包含G70的精車循環,程序O1235是G72端
# P2 s% ~+ T/ \+ S面車削固定循環,圖3為G71精車后的效果圖。圖4為
# n- q& b* X& \* xG72粗車過程中截圖。 - X1 V8 O3 d ^7 O+ c/ o7 E
O1234 % j; S6 U& K7 b1 a. H$ I
Sffice:smarttags" />1200M3
+ ~, c! [4 T, k( FT0101 / h( X G' b* o7 z
G50X100Z50
8 j* I& {; S) A' V' U% t9 y" EG0X80Z5
2 }# M1 n0 W) R3 s% U% V4 {) YG71U3R0.2
1 U8 ~; Q% n7 |, m; t5 rG71P00Q60U0.2W0.1F200
- X$ m2 { u; QN00G0X6Z1 9 u- T1 R @2 G% d
N10G1X10Z-3 ( H: B" g8 j5 f, z# y8 R# W
N20G1W-15
8 K) {, r( e& K) o# o+ H* EN30G2U30W-15R15
5 ]. m! a7 |8 U( v/ [# |& EN40G1W-30 , p/ u& ^+ ^" @/ b; L
N50G3U30W-15R15
]6 p! \$ k( G& LN50G1U10W-10
; U5 V1 T8 M: {6 n5 H4 YN60G1W-70
2 _' n0 f3 v0 U& u! ]+ V, K9 b+ j1 eN70G0X100Z50
! c1 F8 N+ E8 u% GG0X30Z5 9 F8 L1 l, Q) q8 R9 V+ }4 p
G70P10Q60 & P' _ e2 ?/ K l' b) j' M
G0X120Z20
4 y' [! S C% a3 a% Q; ~M30 & d4 @' `, H! F% H' T |& b( `
+ B2 _9 S2 o8 K4 W
O1235;G72橫向切削復合循環
0 l3 _ i. z. c2 G- E! AS1200M3 # y* @ r, x5 n; R( O3 `2 w
T0101
' o! ?5 _' _- J; {G50X50Z50 & B G! R) V2 B/ C/ u
G0X32Z5 : s$ I/ {5 ~0 _( T- I
G72U2R0.2 ' {6 g5 L, U3 C4 M# \7 ?; n7 w" n7 {
G72P10Q50U0.2W0.1F200;呼叫子程序 9 m# C8 P! i+ X0 V i
N10G0X80Z-80
2 b# ^8 z3 o, DN20G1X60Z-70F100
* }# E7 ?5 q1 w* wN30W8
; w8 s5 u, C- L6 v5 qN40G3X30W15R15 6 x9 `- R7 g z b% o3 I( f) ~ f$ Y$ B% V
N50G1X18Z2 8 w) n" [3 G% e, d7 E: l9 y, U0 ?
N60G0X100Z50
* C4 g: g1 i2 y7 q8 cG0X30Z5
% @ v& b' n% | i+ jG70P10Q50
& k6 Z' M- [: N' @2 fG0X100Z50
& g6 z9 ]: t5 |M30
) b* Z, B3 l [8 Q3 K7 B
. @8 q0 m( E2 J& R9 {$ d4 結論 / x+ }+ n6 C* o# }6 D) ^
詳細介紹了車床虛擬加工系統的一種實現方法, ; a8 N# E: ]: n2 a8 }& E3 @6 u
并采用這種方法實現了車床虛擬加工系統。該虛擬加
; c7 s2 G. E& w. D7 J工系統可廣泛應用于真實加工前進行仿真試切,在工
9 L) z0 m: h5 @! O業培訓、數控教學等行業中,具有廣泛的應用前景。
1 }4 z% ]' j! W1 e& j |