引言 ffice ffice" /> # u- y5 T& O3 h/ s8 i# F
虛擬制造(Virtual Manufacturing VM)技術(shù)是虛擬
9 v" B; ^) e4 d4 W* c! F顯示技術(shù)與計(jì)算機(jī)仿真技術(shù)在制造領(lǐng)域的綜合發(fā)展和
1 f) E/ ?# I/ S" @應(yīng)用。VM 的實(shí)質(zhì)是“計(jì)算中的制造”,即在計(jì)算機(jī)中 * _8 i+ |7 w& ?0 a. q8 a/ Q
借助建模與仿真技術(shù)及時(shí)地完成制造全過程的模擬和 ' D: E8 a' P5 \/ A
示范,并預(yù)測評(píng)價(jià)產(chǎn)品性能和產(chǎn)品的可制造性。數(shù)控 7 x2 L6 d; Z% A8 j" `% q
(NC)車削程序的編制過程與工藝過程相似,都具有經(jīng) / Y3 E3 T: ]6 \4 R |: q! ~+ a: }
驗(yàn)性和動(dòng)態(tài)性,在程序編制過程中經(jīng)常發(fā)生錯(cuò)誤。為 . Z. v1 Y" z- d( n# i
此,在數(shù)控機(jī)床上加工零件之前一般要進(jìn)行數(shù)控程序 ! m$ ^4 ~' ]4 S j, K
(NC 代碼)校驗(yàn),并進(jìn)行首件試切。但這種傳統(tǒng)的試切
3 w J! G( ~1 k/ f方法來檢驗(yàn)刀具路徑既費(fèi)時(shí)又費(fèi)力。隨著數(shù)控編程技
4 M. A' R& v4 [術(shù)的發(fā)展,人們采用視覺檢查 NC 刀具軌跡的二維線
3 H" r9 J6 U3 N$ S, ]: a9 q) R框圖,這種方法主要依賴于程序員對(duì)易錯(cuò)區(qū)選擇的判
2 L. S( e3 U( X1 e0 o斷和對(duì)該區(qū)域復(fù)雜的刀具軌跡線框圖的理解程度,一 & c5 P" R6 \: D( D
般的用戶無法判斷其正確性。通過數(shù)控加工三維幾何
: W9 ?9 w0 b1 G# {0 Y: o7 o仿真能夠使 NC 編程人員和機(jī)床操作者通過圖形顯示
1 r& N( O) g) J* F- {" B2 \進(jìn)行干涉和碰撞檢查,校驗(yàn)數(shù)控程序,故可以大大減
7 j) W# H5 B3 S少上述情況的發(fā)生,提高數(shù)控編程效率和質(zhì)量。
% N/ \2 }$ e8 w& E$ i1 系統(tǒng)總體結(jié)構(gòu)
( }2 w; q' f3 O9 ~6 n0 \% ^8 D; ]: { 由于OpenGL適用于多種硬件平臺(tái)及操作系統(tǒng),其 7 Z9 m) s5 u3 K* }' y& P
圖形庫能夠制作出高質(zhì)量的三維圖形和高質(zhì)量的動(dòng)畫
% F+ Y( x8 p2 Q6 r4 N& ^2 g效果。因而整個(gè)虛擬加工的3D顯示引擎選用OpenGL來
3 q' Q# W0 m) q實(shí)現(xiàn)。考慮到Visual C++功能強(qiáng)大,開發(fā)出的系統(tǒng)執(zhí)
% G2 }) ~" Z. q' Z: D, J/ `# U行效率高,且便于控制OpenGL,因而選用Visual C++ ' d7 r2 D' U' t$ P$ u# U
作為整個(gè)虛擬加工系統(tǒng)的開發(fā)工具。通過對(duì)數(shù)控車床 % m6 F+ U4 k+ R D: s
及其加工過程進(jìn)行仿真,動(dòng)態(tài)顯示產(chǎn)品加工過程和結(jié) ! L `5 I$ ^# {4 k$ n
果,以實(shí)現(xiàn)產(chǎn)品零件的虛擬加工,并驗(yàn)證NC程序的正
; O4 q6 {; V0 `. d( M6 v6 u確性。 3 P. o* \4 _/ g
" z: {% s9 v# g( k3 Y5 _* e& C4 W圖1為系統(tǒng)的設(shè)計(jì)流程圖。 5 i) n7 N% X" i# u
2 系統(tǒng)功能實(shí)現(xiàn)
4 e& f J, T \9 u+ h. C2.1 NC程序編譯 : s8 {# j6 \0 J! U7 z
由于虛擬加工系統(tǒng)主要用于工業(yè)培訓(xùn)及NC代碼的 ; y. ?" @. I: s: v
正確性檢查,故要求系統(tǒng)能夠在加工之前通知操作人 ; [4 |* r' E9 \$ j: {
員NC程序中是否存在語法錯(cuò)誤,上下程序段間的邏輯
% g: O! \5 [+ G% [# \* A' o5 {0 t! g關(guān)系是否正確等,故選用編譯方式而不是解釋方式來 5 {: m# X+ j' P$ Z$ f5 N3 ~* G u$ S
對(duì)NC程序進(jìn)行編碼。根據(jù)編譯原理的思想[1,2],構(gòu)造出
3 ]2 @# M- B0 r- ]NC程序編譯模塊,對(duì)NC程序進(jìn)行語法和詞法檢查。
% B! S4 j: x L2 S/ f4 s比如檢查地址符字母是否大寫,上下程序段之間的邏 $ b) S y1 X0 C N, {+ \; F9 S
輯關(guān)系是否正確,圓弧的終點(diǎn)、圓心、半徑值等是否
' Z. `& T- v- H8 i匹配,子程序調(diào)用時(shí)子程序號(hào)是否正確,程序開始字 2 P Q5 q2 P5 d* }! z [
符,程序號(hào),程序主體,程序結(jié)束代碼和程序結(jié)束字 $ h; R0 x, H# ~) ~* E5 B" C$ K
符等是否完整等等。通過詞法和語法檢查指出錯(cuò)誤發(fā)
) M e. f1 k8 d5 d- ^# X# w; K生的位置,給出錯(cuò)誤的原因。使得虛擬加工系統(tǒng)能夠
/ v) z- G/ G7 z! e輔助用戶學(xué)習(xí)NC程序的編制。
! T! C }! l. W7 B/ t" P2.2虛擬車床本體的搭建
9 \8 R' ~( G- X; w 在數(shù)控加工幾何仿真系統(tǒng)中,首先要建立虛擬加 ' l6 J( O( J9 J \6 }- Y6 ], w: P
工環(huán)境,實(shí)現(xiàn)虛擬數(shù)控機(jī)床。由于機(jī)床是由許多零部
9 z8 P# A0 ~3 m件組成,結(jié)構(gòu)較為復(fù)雜,用OpenGL函數(shù)進(jìn)行造型工作
9 w9 u- s! v4 U& q量太大,故先在CAD軟件Pro/E中造型出數(shù)控機(jī)床各個(gè)
% J! d+ V1 R' x0 V/ S零部件,將其導(dǎo)出成標(biāo)準(zhǔn)的三維數(shù)據(jù)格式STL,在程序
. Q6 ^; g2 C }- @* R中直接讀取STL文件,并將其裝配起來。在繪制機(jī)床時(shí) & e. f/ [ w `% w% q% J2 B
利用了OpenGL顯示列表技術(shù),將每個(gè)零部件都生成一 ! W( F% G* [* u3 c' a+ L7 K2 W
個(gè)OpenGL的顯示列表,這樣可以大幅度提高重繪效率, ( e1 r9 H/ { T+ u: h8 B
滿足實(shí)時(shí)繪制的要求。圖2為虛擬車床的效果圖。 3 r; o& N# U3 M3 t, H: Q' d5 G
9 \& K) y% H% L' D, X
2.3 數(shù)控加工過程仿真實(shí)現(xiàn) / M8 ]' a M2 `; K& f t
數(shù)控車床的毛坯常用棒料或鑄鍛件,加工余量較 0 E9 n0 q$ m9 t! M; G. [8 W- E
大,但加工的零件形狀較為簡單,一般都是回轉(zhuǎn)體零 5 ]+ r# s: n5 i- `7 [1 w+ R) P) U
件。為了避免材料切除過程中毛坯與刀具運(yùn)動(dòng)形成掃 ( O& u* a' I+ Q: D3 T& F
掠體之間耗時(shí)的布爾運(yùn)算,將毛坯沿 Z 向進(jìn)行離散, " {3 {( e2 y* T1 F& B {4 U
將毛坯離散成單位高度的小圓柱,每個(gè)小圓柱稱為一 4 h4 l, U7 p0 t0 Q; a6 G% `- A
個(gè)薄片,每個(gè)薄片的厚度根據(jù)精度和顯示效果的要求 $ \, A5 f/ T' n& r% W! ^
來確定,精度越高,切的越薄。每個(gè)薄片的數(shù)據(jù)結(jié)構(gòu)
' Q$ g& K, ?. ?3 M8 d1 n4 `如下: t7 } ?: \( M
struct PieceCylinder # I: Q( H9 N, m+ O1 g
{ # W" [; p1 |* |8 G7 X. J
double m_dZSt;///////起始 Z 坐標(biāo)
" F3 b& {; f! \! V/ u/ L# Zdouble m_dZEd;//////結(jié)束 Z 坐標(biāo)
; d0 I, g4 H! ?, w1 f& K% Hdouble m_dROutSt;////外圓起點(diǎn)半徑值
& d3 f0 c6 M# Y1 o" p* cdouble m_dROutEd;///外圓終點(diǎn)半徑值 " A3 t8 I) K* K, o: ]( W
double m_dInSt;///內(nèi)圓起點(diǎn)半徑值 1 E Q% s' P8 y1 K( P( [7 u
double m_dInEd;////內(nèi)圓終點(diǎn)半徑值 6 z8 Z1 I# R ~, m
BOOL m_bIsDelete;//////該部分薄片是否被切除
+ {& ]$ r5 ^$ T) Q* g yPiesCylinder* m_pNext;/////下一個(gè)薄片數(shù)據(jù) 9 T; Q2 q$ u% w* A, ~
};
0 ^. T- m/ ]/ c* l/ H. g2 H 由于車削加工的回轉(zhuǎn)體常常有內(nèi)孔,車削時(shí)也可 + A$ p) `$ ~( \7 ]0 I! s# G+ M
能進(jìn)行鏜孔和鉆孔操作,因而每個(gè)薄片不但要記錄所
: b$ G8 D3 _# R在位置的外圓半徑,還要記錄內(nèi)孔的半徑。為了光滑
/ D6 x! F7 W+ s; a+ f/ P; u1 u的顯示加工的復(fù)雜回轉(zhuǎn)面,如圓弧面、雙曲面等,每
: `# i: \1 x4 e. p1 J- B2 d7 P個(gè)薄片在 Z 軸方向分為起點(diǎn)和終點(diǎn)。其起點(diǎn)和終點(diǎn)處
: b6 Z, T6 k! `% ^外圓、內(nèi)孔的半徑根據(jù)加工中的刀路軌跡單獨(dú)計(jì)算和
# ]8 @8 c8 i/ P存儲(chǔ)。
5 _& p6 y5 X% n 在車削加工過程中,一方面工件繞其自身的回轉(zhuǎn)
. A! b5 K7 H, M) a5 Y軸高速旋轉(zhuǎn),另一方面刀具在工件的軸平面內(nèi)沿 X 軸、 / X! o; }/ b( u' m
Z 軸運(yùn)動(dòng),并逐漸從工件上切除多元的材料,加工出 2 S6 X& P$ H" g8 ]
所需的外形,每一步刀具所掃掠出的均是一個(gè)多邊形。
4 m; x5 Q' C& c" r* n: W( ]根據(jù)每一步的插補(bǔ)指令,求解出該步刀具所掃掠出的 1 D" g! o8 g* f. Y
多邊形。將刀具掃掠出的多邊形和離散后的工件模型 1 Q P2 B( O! b0 H, C/ ]
求交,并相應(yīng)修改工件上所有和刀具掃掠多邊形相交
9 L: d: b" t! |& T# Y部分的半徑值。將修改半徑后的工件重新繪制出來,
, m. u1 k0 L+ B. ]# e即可完成仿真過程的實(shí)時(shí)繪制。
, H: J9 L* W) X: I" j& P# S) M& P( ~' O1 G3 運(yùn)行實(shí)例 - v: n- _4 n0 G7 G6 D3 @
為了驗(yàn)證系統(tǒng)的仿真效果,進(jìn)行了兩個(gè)加工實(shí)例 . Q8 r' E3 e/ L7 g
研究。由于固定循環(huán)的實(shí)現(xiàn)比較有代表性,故這里選 6 e! n9 y- A; H- U- x! h
用固定循環(huán)來進(jìn)行研究。程序O1234是G71外圓粗車固 9 ]6 I5 x) y! V- Z: I) p
定循環(huán)里面包含G70的精車循環(huán),程序O1235是G72端 & B9 y; I# R+ b3 y6 P; }0 f
面車削固定循環(huán),圖3為G71精車后的效果圖。圖4為 / l( n/ N3 S5 `( g; U& B
G72粗車過程中截圖。 3 ^) _! o7 E$ X- c$ ~2 A- |
O1234
0 ?8 ]( p2 I) h9 y) lSffice:smarttags" />1200M3 ) _' g- P4 N: \
T0101 ( A; d! t; E6 F T- u1 @0 j( _+ p& m
G50X100Z50 0 u7 m0 c9 E. N0 G9 \
G0X80Z5
- Q+ u! g$ n7 AG71U3R0.2
9 W7 U( q i2 B" S, w2 BG71P00Q60U0.2W0.1F200
+ Y7 M y% Y+ }; r& Q+ QN00G0X6Z1
' B5 P" `' {% @% ?5 w! rN10G1X10Z-3
# @- z+ Q% v) M/ M8 G+ }N20G1W-15 / X5 d5 M- D4 o& v$ \2 Z$ a4 I7 w
N30G2U30W-15R15 + x- c$ X6 B- L% \' l4 H. U* z
N40G1W-30
+ o" h6 W+ |% T2 |3 ]2 @0 B* qN50G3U30W-15R15 & E7 y z$ [, I( K2 P
N50G1U10W-10
0 a: n1 X5 r |/ I0 T6 H; zN60G1W-70
* P! T, p: t- S! ~/ o& h. {N70G0X100Z50
" J y% G) c5 N! d! A$ KG0X30Z5
. }! }+ I7 u' K; z' UG70P10Q60
# R5 z- j" l4 @ ~8 A6 R# n2 [G0X120Z20 - C& g3 l6 k" ]9 V5 R7 l
M30
|4 A# F/ X& e2 @: C
7 H7 I( i) B$ V8 ?# h6 |' V" j' cO1235;G72橫向切削復(fù)合循環(huán) " @# x8 p# _6 s8 P7 V R8 s9 W
S1200M3
8 t! z) X+ k& {" `# v( ^2 b1 JT0101 7 W3 u' I& S+ E* b e
G50X50Z50 8 K, l. _; N, E9 r6 y
G0X32Z5 " N# C$ c# a5 S
G72U2R0.2
% {; Q4 q2 u O" BG72P10Q50U0.2W0.1F200;呼叫子程序 8 |: k; v2 k2 e l6 O; @
N10G0X80Z-80
. J6 i. m! r$ N) QN20G1X60Z-70F100 ! Y" ?" N' ~" g5 N
N30W8 8 w$ s( [+ ]' Q8 J
N40G3X30W15R15
* I- W! {. ?" k! [! SN50G1X18Z2
* D. F1 d2 Q1 @1 a9 HN60G0X100Z50
I: u2 S% Z$ @# k7 m X( O+ @: ^# QG0X30Z5 & p: J' _7 `: d' F
G70P10Q50 3 U6 x: V8 |4 L+ {5 ?3 l
G0X100Z50
/ O1 {* v6 {- B/ PM30 8 d$ [2 N2 m! X. K/ s# G4 c) B
% X) w' p+ R1 M f# O4 結(jié)論 0 v! v b# k/ D: e/ p$ {9 ~
詳細(xì)介紹了車床虛擬加工系統(tǒng)的一種實(shí)現(xiàn)方法, , f% g& N% Q P( H$ {
并采用這種方法實(shí)現(xiàn)了車床虛擬加工系統(tǒng)。該虛擬加
' V. |0 F4 D& K/ |, Z1 R E工系統(tǒng)可廣泛應(yīng)用于真實(shí)加工前進(jìn)行仿真試切,在工 ! ]% b: q5 B5 X+ u F/ R8 r
業(yè)培訓(xùn)、數(shù)控教學(xué)等行業(yè)中,具有廣泛的應(yīng)用前景。
$ _+ a& X' ?; }9 i& o. v |