引言 fficeffice" />
/ D5 ?% d7 f6 D4 X1 |' N 虚拟制造(Virtual Manufacturing VM)技术是虚拟
7 N4 W: ^' Q6 p" |3 Q显示技术与计算机仿真技术在制造领域的综合发展和 ! O' _" R/ u! A# L/ A
应用。VM 的实质是“计算中的制造”,即在计算机中
/ @7 ~5 p8 |8 w. Q借助建模与仿真技术及时地完成制造全过程的模拟和 ' ?5 g& c4 b2 ]2 e- n; _, \0 y# r
示范,并预测评价产品性能和产品的可制造性。数控
5 M6 b, q0 X ]3 U(NC)车削程序的编制过程与工艺过程相似,都具有经
( x. Y4 m4 o2 v6 F验性和动态性,在程序编制过程中经常发生错误。为 7 S ~' ^4 V. r
此,在数控机床上加工零件之前一般要进行数控程序 1 b5 V' d$ c$ c% F. a* F
(NC 代码)校验,并进行首件试切。但这种传统的试切 , h# H1 f4 R1 H* _) S2 {5 _
方法来检验刀具路径既费时又费力。随着数控编程技
& q9 G) _$ @# J+ f, x3 ~* ~; w1 z术的发展,人们采用视觉检查 NC 刀具轨迹的二维线 9 ]3 s2 z" \4 x' L- q1 i7 Q m
框图,这种方法主要依赖于程序员对易错区选择的判 ; ?8 W8 v3 ]% ?8 l5 a
断和对该区域复杂的刀具轨迹线框图的理解程度,一 $ C- T5 a8 x- y! n- P& e
般的用户无法判断其正确性。通过数控加工三维几何 & E, W+ \7 O" t4 c, K0 j; q, `
仿真能够使 NC 编程人员和机床操作者通过图形显示
8 D4 V* q& R I! {) E2 R' ?进行干涉和碰撞检查,校验数控程序,故可以大大减
. a, d5 T5 f" f少上述情况的发生,提高数控编程效率和质量。
' n+ I3 ^. f x" b, k {. a1 系统总体结构 5 t6 m6 E/ _( y( [
由于OpenGL适用于多种硬件平台及操作系统,其
9 Q% d1 V* M' q1 [( _5 Y图形库能够制作出高质量的三维图形和高质量的动画 + }0 p" g2 G& n; Q
效果。因而整个虚拟加工的3D显示引擎选用OpenGL来
X' U: F$ o1 x8 P. t7 e. h实现。考虑到Visual C++功能强大,开发出的系统执 / \* d z, p }, [6 {
行效率高,且便于控制OpenGL,因而选用Visual C++ 4 M. k# d4 E/ b- j( B3 K
作为整个虚拟加工系统的开发工具。通过对数控车床
4 j, N3 ~5 ]) Q/ g! j及其加工过程进行仿真,动态显示产品加工过程和结
D S1 S5 `% n: z8 Y0 Y, ?果,以实现产品零件的虚拟加工,并验证NC程序的正 9 Z% t: X) _( Z6 p! d
确性。
9 n9 u. i8 ^+ w% r5 g 9 A* c4 A" g' r4 c
图1为系统的设计流程图。
2 n; v" [6 [# E2 系统功能实现 0 p; ~7 B+ G% D$ \7 o2 a& @2 v
2.1 NC程序编译 ( y' i6 i3 o( }( Y' L0 n9 ?* Z( U
由于虚拟加工系统主要用于工业培训及NC代码的
5 H/ X% |* @( w, I) J+ q) R7 d正确性检查,故要求系统能够在加工之前通知操作人
0 H1 X: w3 [9 F5 o% \; \- u6 U员NC程序中是否存在语法错误,上下程序段间的逻辑
$ l8 }) H2 o# u关系是否正确等,故选用编译方式而不是解释方式来 % |' I% ], @8 e6 A. A
对NC程序进行编码。根据编译原理的思想[1,2],构造出 # O% L' l. b" j" C$ W, X3 B
NC程序编译模块,对NC程序进行语法和词法检查。 ; t0 h6 F6 J6 u+ N
比如检查地址符字母是否大写,上下程序段之间的逻
. D b- o/ R6 E( C' C8 f辑关系是否正确,圆弧的终点、圆心、半径值等是否 3 ^ m4 h1 y* V" f. a% |1 G
匹配,子程序调用时子程序号是否正确,程序开始字 3 X6 P/ U8 C7 [3 |
符,程序号,程序主体,程序结束代码和程序结束字 $ Q5 l. p+ G+ Q2 H7 q2 v* c& k
符等是否完整等等。通过词法和语法检查指出错误发
: {% k% \. Q% J生的位置,给出错误的原因。使得虚拟加工系统能够 3 I& I, K7 D5 c: o+ p
辅助用户学习NC程序的编制。
7 V) i1 e* z% @( y2.2虚拟车床本体的搭建 8 c9 C. C4 g0 t! w9 X3 r
在数控加工几何仿真系统中,首先要建立虚拟加 ; M6 U+ @9 a2 n$ f6 g5 B- m
工环境,实现虚拟数控机床。由于机床是由许多零部
' G/ z! v3 s/ e' l9 h2 p件组成,结构较为复杂,用OpenGL函数进行造型工作
" v2 e0 b! m3 A量太大,故先在CAD软件Pro/E中造型出数控机床各个
0 e( K, R7 L1 c$ J零部件,将其导出成标准的三维数据格式STL,在程序
% c; X* B' d L5 B中直接读取STL文件,并将其装配起来。在绘制机床时 0 G8 I e j2 k; l- P. N
利用了OpenGL显示列表技术,将每个零部件都生成一
6 e1 X3 d3 ~( T! I个OpenGL的显示列表,这样可以大幅度提高重绘效率, 2 ~, ?( w9 [& T6 o
满足实时绘制的要求。图2为虚拟车床的效果图。 8 d1 o, h9 ]" R0 Y1 P1 A
/ q5 J3 x; n8 V& l2.3 数控加工过程仿真实现
* P+ n" L; |5 f8 @6 ~+ Y 数控车床的毛坯常用棒料或铸锻件,加工余量较
g' E9 \: S! ~( g* h大,但加工的零件形状较为简单,一般都是回转体零
4 c5 b- L0 C& [9 ^+ C0 }件。为了避免材料切除过程中毛坯与刀具运动形成扫 3 h& c/ v/ y6 V% y w
掠体之间耗时的布尔运算,将毛坯沿 Z 向进行离散,
8 g) S0 D, h& g* H3 m将毛坯离散成单位高度的小圆柱,每个小圆柱称为一 4 i: L, W% ?" O. b/ E
个薄片,每个薄片的厚度根据精度和显示效果的要求 ( l9 ]( C. Q/ k6 C2 n1 V
来确定,精度越高,切的越薄。每个薄片的数据结构
6 N5 h" ]' Z8 q2 N如下:
8 { e7 F0 ?) _7 P$ estruct PieceCylinder
/ v& x" t m* z; [{
c: q/ ]" `$ ldouble m_dZSt;///////起始 Z 坐标 7 g7 Z7 w% {4 ^: p- ]* x. F
double m_dZEd;//////结束 Z 坐标 6 Z! U4 c2 L4 `+ \: l2 \4 n$ Z0 a
double m_dROutSt;////外圆起点半径值 A( R) W5 @$ n4 ^, L! _ q5 v
double m_dROutEd;///外圆终点半径值 5 v1 _- L. r) e _ r( @
double m_dInSt;///内圆起点半径值
" G) x0 W- r# kdouble m_dInEd;////内圆终点半径值 / V( Z0 T. g1 n( d6 d1 @! K) n
BOOL m_bIsDelete;//////该部分薄片是否被切除 ) w. k; f4 l! D+ R( H1 a
PiesCylinder* m_pNext;/////下一个薄片数据
! D: |% A9 f6 E6 g};
( ^6 R- c) C0 u3 W1 B3 G H4 u; } m( a/ | 由于车削加工的回转体常常有内孔,车削时也可
5 D* D' s+ t o0 E/ _+ q' r能进行镗孔和钻孔操作,因而每个薄片不但要记录所 " T1 F; _8 T5 g; J$ c0 B+ P# ^8 I2 G
在位置的外圆半径,还要记录内孔的半径。为了光滑
7 q" _5 P( O" ]+ h+ Z4 V& y的显示加工的复杂回转面,如圆弧面、双曲面等,每
. y4 ~5 e2 r. ^/ ]个薄片在 Z 轴方向分为起点和终点。其起点和终点处
# A. I; S+ M: J7 v' F' G外圆、内孔的半径根据加工中的刀路轨迹单独计算和 / U: n& \. k" M$ y9 U
存储。 ; K$ a. q9 p+ ^- W4 A4 D3 ~
在车削加工过程中,一方面工件绕其自身的回转
/ I. `, x/ d9 C轴高速旋转,另一方面刀具在工件的轴平面内沿 X 轴、 # t3 i9 E4 I6 h0 D& N6 [
Z 轴运动,并逐渐从工件上切除多元的材料,加工出
9 X! n% z) |% R$ z9 L- X5 ?- O所需的外形,每一步刀具所扫掠出的均是一个多边形。
, P* X# v7 d3 ~+ }; A+ y根据每一步的插补指令,求解出该步刀具所扫掠出的
/ D1 j# u+ p7 r5 H0 s多边形。将刀具扫掠出的多边形和离散后的工件模型
3 L9 C X9 f7 f4 N. G) w' ]/ V求交,并相应修改工件上所有和刀具扫掠多边形相交 + g7 t& t% }& z2 ?5 ^' ^
部分的半径值。将修改半径后的工件重新绘制出来, . l. c8 f# c* a; r0 r, @8 ~
即可完成仿真过程的实时绘制。 * z N4 q U9 | s3 P- T3 p
3 运行实例 + F& D R7 v) a
为了验证系统的仿真效果,进行了两个加工实例
* g+ i& s9 q3 E: t) b. t) y1 Y% K研究。由于固定循环的实现比较有代表性,故这里选 ) x. N4 ^. I" P+ Z) k
用固定循环来进行研究。程序O1234是G71外圆粗车固
4 s6 p+ P, R9 ~( G* g2 Q" y2 \. z定循环里面包含G70的精车循环,程序O1235是G72端
. R: M9 w6 \5 S$ v9 z3 j U5 ?面车削固定循环,图3为G71精车后的效果图。图4为 % ~+ B( ]! \" v- r) h
G72粗车过程中截图。
, I% m# u4 g* b9 EO1234 ) Y' t7 r( S: N {9 M% r: q# v
Sffice:smarttags" />1200M3
; s, g! |6 l/ ~* S0 }( W' YT0101
Z+ q, v! v8 _1 R( ]( [4 gG50X100Z50
% m' }) t: M8 e) z( a1 _: @G0X80Z5 * h: I5 r% {- o- f
G71U3R0.2
! A! I9 J t, A& r+ HG71P00Q60U0.2W0.1F200 ' h$ l5 v2 w! m2 ^$ s2 a+ n+ |
N00G0X6Z1 3 J0 c A) a: |% v# h5 {
N10G1X10Z-3 $ _8 f- R* b2 ^ f! z7 ?
N20G1W-15
9 ~+ W# b8 ]* C' \N30G2U30W-15R15 . p, e7 x n: `; s8 f: |
N40G1W-30
& c: B" N- A1 c2 Z( e: ON50G3U30W-15R15
2 @/ J4 P( C( z% @8 C& GN50G1U10W-10 5 Y7 C0 ?0 ^2 Z) I; H- e/ z' n
N60G1W-70
! p* y* P+ `5 C% {4 _8 pN70G0X100Z50 7 w4 }. v* ]8 e+ w+ U& q6 p
G0X30Z5 1 g3 h) s+ G* i" @4 o% N g. h; q
G70P10Q60
; _8 P: F: r0 l' B! dG0X120Z20 q6 d/ p. ?2 \
M30 ( |+ A) a2 G6 w5 E* S1 Y1 l
- u |$ y/ i* k+ ?O1235;G72横向切削复合循环
; A* G% c. k2 m; e$ O# RS1200M3
: V( g' e- `/ F' z2 uT0101 " Z! v1 X1 P/ ~$ O5 Q' n4 u4 \
G50X50Z50
7 e/ M7 m0 P' C% v% u9 \G0X32Z5 1 R" v6 U7 R( y! V2 ^! J* L
G72U2R0.2 " b7 K1 m: o, Z/ k
G72P10Q50U0.2W0.1F200;呼叫子程序
8 I& o7 k( A9 y2 dN10G0X80Z-80 * B% y. Q( l# A0 M5 o( A4 R" v
N20G1X60Z-70F100
T* a/ F, }0 `0 m& |4 EN30W8
( F4 D2 j/ ^+ B3 R7 fN40G3X30W15R15 / [% v6 p8 g$ j1 K3 S# `% @' m4 Y
N50G1X18Z2 5 G: f$ T: n8 r* g
N60G0X100Z50 # v0 d% y. a% |* n5 m. n
G0X30Z5 / ~4 r- L4 i# I+ n# {
G70P10Q50
* j1 w1 f. Z$ W/ K0 Y/ XG0X100Z50 0 X/ e' H) y2 _, O
M30
+ B u. a, ~ y ' e5 P* j( ]9 \6 I8 L, Z
4 结论
3 B7 ?; h+ n- w 详细介绍了车床虚拟加工系统的一种实现方法, & i0 P2 I( K% r2 G$ A' g
并采用这种方法实现了车床虚拟加工系统。该虚拟加 & C) I' R4 I9 b
工系统可广泛应用于真实加工前进行仿真试切,在工
7 K" A; T* `/ N5 X6 S7 \9 I业培训、数控教学等行业中,具有广泛的应用前景。
: ]1 A l0 o7 L4 |! j |