引言
fficeffice" />
+ Q/ c. m5 ^ B+ Z4 T& h虚拟制造(Virtual Manufacturing VM)技术是虚拟
, Q8 Z( d: z/ Q/ z/ J* L+ n显示技术与计算机仿真技术在制造领域的综合发展和
" x9 ]- s) ~6 M3 i* X$ Y应用。VM的实质是“计算中的制造”,即在计算机中
2 y/ F* U+ P' e! }借助建模与仿真技术及时地完成制造全过程的模拟和
% l" o. F# a: b% t1 f示范,并预测评价产品性能和产品的可制造性。数控
' p- M. y# v2 Y! f& k(NC)车削程序的编制过程与工艺过程相似,都具有经
& ^, p( K5 e( k+ Z验性和动态性,在程序编制过程中经常发生错误。为
/ |# ]# o+ F0 e此,在数控机床上加工零件之前一般要进行数控程序
; H4 r" _, B! B2 U* t" t(NC代码)校验,并进行首件试切。但这种传统的试切
+ }& d0 u: q; s# M9 s: w9 Q方法来检验刀具路径既费时又费力。随着数控编程技
4 a# X# a; [" H* [# K3 @6 u术的发展,人们采用视觉检查NC刀具轨迹的二维线
0 _: c0 Z7 I K9 {. _' H框图,这种方法主要依赖于程序员对易错区选择的判
$ h: }0 N0 A, T1 V断和对该区域复杂的刀具轨迹线框图的理解程度,一
$ h. p: b5 X2 j: R1 l7 e般的用户无法判断其正确性。通过数控加工三维几何
, ?8 h5 j+ L3 ^& L9 @6 h- Y仿真能够使NC编程人员和机床操作者通过图形显示
7 l3 N2 B! T1 O% S; b进行干涉和碰撞检查,校验数控程序,故可以大大减
7 \% l( o8 _/ H& P$ l少上述情况的发生,提高数控编程效率和质量。
6 _8 Y8 f4 u3 n0 o8 P6 Q/ R! o1系统总体结构
- U9 ^6 N# [4 j, U$ y由于OpenGL适用于多种硬件平台及操作系统,其
3 V J1 X3 [4 \" G9 Q: C) B图形库能够制作出高质量的三维图形和高质量的动画
4 D+ ]2 s8 N: U! h: u- W效果。因而整个虚拟加工的3D显示引擎选用OpenGL来
$ g1 K# ^- {$ Q9 g8 h, v3 R实现。考虑到Visual C++功能强大,开发出的系统执
2 r/ T$ G/ ~& @* m3 O6 S行效率高,且便于控制OpenGL,因而选用Visual C++
& m' @. V. l' P2 v( \作为整个虚拟加工系统的开发工具。通过对数控车床
9 A' m1 X5 E/ _4 Y: [及其加工过程进行仿真,动态显示产品加工过程和结
0 d; l8 ^% \) n4 c$ ?1 T1 \果,以实现产品零件的虚拟加工,并验证NC程序的正
# T A: V3 N. H# z- S) N确性。 : z% q, B0 r2 l2 C7 G& @$ I
& k9 `: k5 d, C" J& O4 Z1 Z图1为系统的设计流程图。
2 X3 P$ f! O' l! }" F3 C) z2系统功能实现
7 h9 s' `* w5 h+ P* o/ Z7 @2.1 NC程序编译
) o9 t8 d, A% W* N8 a由于虚拟加工系统主要用于工业培训及NC代码的
/ Z6 `' s: w8 r. g# y正确性检查,故要求系统能够在加工之前通知操作人
9 m! T8 F* a" U" o员NC程序中是否存在语法错误,上下程序段间的逻辑
2 Z1 q( @7 n5 A( N. z+ N. c关系是否正确等,故选用编译方式而不是解释方式来 3 ]! A' t H6 v6 v7 b对NC程序进行编码。根据编译原理的思想[1,2],构造出
" b7 u" l, ]1 N: K$ F# SNC程序编译模块,对NC程序进行语法和词法检查。
! b6 D$ I3 v" r3 T, w! d) z& e. |比如检查地址符字母是否大写,上下程序段之间的逻
. n9 O) N4 I/ I, F$ K2 F" C辑关系是否正确,圆弧的终点、圆心、半径值等是否
" H/ ~# k$ a0 a/ ] o匹配,子程序调用时子程序号是否正确,程序开始字
. R4 b* V4 S- d% b/ l符,程序号,程序主体,程序结束代码和程序结束字 3 K$ _: N. X' r5 c: U符等是否完整等等。通过词法和语法检查指出错误发
" b; f2 O1 _) C0 |) \/ [生的位置,给出错误的原因。使得虚拟加工系统能够
7 N9 J1 m6 c7 d6 z1 j3 c辅助用户学习NC程序的编制。
' f. s8 ] t, d; x: U" q+ `" V3 b' F2.2虚拟车床本体的搭建
, e& L3 `6 l) e在数控加工几何仿真系统中,首先要建立虚拟加
& f/ R9 H- D! h0 w* Y工环境,实现虚拟数控机床。由于机床是由许多零部
$ ?& _$ q+ J0 m2 H! [ y件组成,结构较为复杂,用OpenGL函数进行造型工作
, r1 B, q6 O2 v" I" ^量太大,故先在CAD软件Pro/E中造型出数控机床各个
9 r+ h. O: N* \# l$ D零部件,将其导出成标准的三维数据格式STL,在程序
2 z- K, T. j( \- u" g中直接读取STL文件,并将其装配起来。在绘制机床时
1 [% _* K8 R: O4 U r5 e利用了OpenGL显示列表技术,将每个零部件都生成一
6 }. M4 u. n" b( l! I: V: w" j个OpenGL的显示列表,这样可以大幅度提高重绘效率,
$ D1 ?9 g( _( a: f8 x! k' D, l$ G满足实时绘制的要求。图2为虚拟车床的效果图。 4 a. t r& Z5 j. S `. Q A5 Q# A/ F# N, E" ~4 \( |2.3数控加工过程仿真实现
+ z& j, F$ g) Z! i2 w* d5 E数控车床的毛坯常用棒料或铸锻件,加工余量较
& U/ b* A; H$ P6 I) K大,但加工的零件形状较为简单,一般都是回转体零
7 Q5 }) E2 h3 E件。为了避免材料切除过程中毛坯与刀具运动形成扫
) P8 A& N6 T* w& z$ D! B' N) e掠体之间耗时的布尔运算,将毛坯沿Z向进行离散,
* b+ P9 ~- L3 p7 j) b& U将毛坯离散成单位高度的小圆柱,每个小圆柱称为一
' W% T( U" h- O' W个薄片,每个薄片的厚度根据精度和显示效果的要求
/ n/ Y: `* d) w! [! b来确定,精度越高,切的越薄。每个薄片的数据结构
9 w: Y5 w# {9 O% R# c如下:
( R2 l+ B# h! C& { f1 |struct PieceCylinder
" O4 y) { i! s y{
. N6 A* X* R! K" S% wdouble m_dZSt;///////起始Z坐标
6 F ?2 \1 @+ @ @double m_dZEd;//////结束Z坐标
S/ o" l0 K) Y5 X5 J5 y* {double m_dROutSt;////外圆起点半径值
% b, s- H) F" y' h5 M; H* ?double m_dROutEd;///外圆终点半径值
) E0 s" I4 P7 rdouble m_dInSt;///内圆起点半径值
0 Q) Q* z1 D5 I6 M( ]double m_dInEd;////内圆终点半径值
9 F$ G8 H* I: X6 F _- gBOOL m_bIsDelete;//////该部分薄片是否被切除 - y0 i1 z0 H5 M4 zPiesCylinder* m_pNext;/////下一个薄片数据
3 X/ t" V7 W8 y' }; E3 e};
( k, H; w3 t# V由于车削加工的回转体常常有内孔,车削时也可
, f) h7 k* y, @8 ]. E能进行镗孔和钻孔操作,因而每个薄片不但要记录所
" M* P/ ]% n% v. O$ c在位置的外圆半径,还要记录内孔的半径。为了光滑
/ N$ {, i3 X" O的显示加工的复杂回转面,如圆弧面、双曲面等,每
0 T$ X) ?0 D$ i/ _个薄片在Z轴方向分为起点和终点。其起点和终点处
& u* v1 t' i% _! V8 u) ~/ T- \外圆、内孔的半径根据加工中的刀路轨迹单独计算和
+ {; y0 z& V- C7 w# {存储。
- M% r6 \2 U. `; |" |( |$ W在车削加工过程中,一方面工件绕其自身的回转
% c; p' q- n+ Q2 T* X轴高速旋转,另一方面刀具在工件的轴平面内沿X轴、
1 @, R4 y4 O/ j) ^* ZZ轴运动,并逐渐从工件上切除多元的材料,加工出
7 g1 u V% z2 U' G! z6 _所需的外形,每一步刀具所扫掠出的均是一个多边形。
( x4 N, P5 h Y5 d0 P# q6 n9 K根据每一步的插补指令,求解出该步刀具所扫掠出的
; }, e- ] m0 L% m多边形。将刀具扫掠出的多边形和离散后的工件模型
9 \! |' p e. O6 }求交,并相应修改工件上所有和刀具扫掠多边形相交
2 ^& o. v; w4 x部分的半径值。将修改半径后的工件重新绘制出来,
) G8 g+ t' Y" y% p5 S& a即可完成仿真过程的实时绘制。
* i: R( P: f7 Y5 B0 |3运行实例
+ v/ q# M! L: @: h为了验证系统的仿真效果,进行了两个加工实例
- z; d0 }8 s7 r% k研究。由于固定循环的实现比较有代表性,故这里选
! H# r- X7 N( Y- E8 Z; R. F. N用固定循环来进行研究。程序O1234是G71外圆粗车固
% p. ?2 E2 I3 r6 u7 n b定循环里面包含G70的精车循环,程序O1235是G72端
' u6 a, I7 H, R/ R: X) S- |面车削固定循环,图3为G71精车后的效果图。图4为
5 i3 C; n1 w6 h; a" m dG72粗车过程中截图。
7 y( Y" c+ G, M7 ^ H. {' l! \) iO1234
7 c9 m. H$ B$ k( Y" X8 S: |/ _9 Y2 i S0 QS
ffice:smarttags" />
1200M3
0 w- J8 Q( M% v) M* W+ RT0101
( h- m6 K+ e5 G* k$ IG50X100Z50
( V/ \' a+ c; @! |( w, \G0X80Z5
! _( n/ v( X7 U1 Q) y* @1 XG71U3R0.2
; m7 `9 b" e, R! ZG71P00Q60U0.2W
0.1F
200
* f( ~0 p: i' v+ y% b3 @N
00G
0X6Z1
7 y: {( u h# v5 R$ @# hN
10G
1X10Z-3
9 G3 t# J2 s: B) m. ~$ n/ eN
20G
1W-15
, {# W' H1 F: j) n3 q3 W( aN
30G
2U30W-15R15
- N4 k6 T( n/ f. B; }$ TN
40G
1W-30
; _9 F7 j3 t+ K' ?; {N
50G
3U30W-15R15
+ m9 z" Q( D$ s; Q$ j" j5 FN
50G
1U10W-10
* |1 y$ g3 F0 F5 o+ ^8 e3 \: K" tN
60G
1W-70
$ T5 C7 V( B; @+ pN
70G
0X100Z50
) _. a( A' Z! {3 Y2 c0 g! [G0X30Z5
+ H( t% y5 X, l% iG70P10Q60 . Q- O! n$ ]$ g! jG0X120Z20
" w7 h9 Y2 m: S* c ]4 U( QM30 X6 ^: ?0 E7 J! s/ v1 r( c3 A( I : v& [, o5 i2 r: j: V, c# {2 h5 fO1235;G72横向切削复合循环
" F: K; O7 _- K* JS
1200M3
7 x' U9 n+ j2 X3 k1 D% }T0101
& U1 }0 c1 j+ n( XG50X50Z50
, \% S6 U, v* p% BG0X32Z5
: y/ ]* m5 K" O% tG72U2R0.2
: m, p" D" F4 a& l4 K* U7 `G72P10Q50U0.2W
0.1F
200;呼叫子程序
7 D0 f( \8 j; L. d4 jN
10G
0X80Z-80
5 n Z; \! T* L. \N
20G
1X60Z
-70F
100
1 e! j* C8 J, U+ T7 G s( mN30W8
/ \( D2 i/ D; p! V' GN
40G
3X30W15R15
P" Q, U; q. L' f' `4 `! EN
50G
1X18Z2 * M* x& Z' ~2 V5 B, L5 AN
60G
0X100Z50
/ j; O+ F2 L, L. p7 Q, JG0X30Z5
. J, a0 u ^- ]* [" l. I% `G70P10Q50
p' x8 G" [4 ]9 `G0X100Z50
) Q$ o+ ]) d0 @. H {6 \M30 X. [3 f- r; D4 V & R) ?7 v+ R, x) S, {% W3 [4结论
$ L' c% X) P; u; {6 Z详细介绍了车床虚拟加工系统的一种实现方法,
* N4 f; D- A9 [$ w) R3 e4 F5 |并采用这种方法实现了车床虚拟加工系统。该虚拟加
0 C3 j, ?: K, }! {% ~& q) V工系统可广泛应用于真实加工前进行仿真试切,在工
8 Q- n, b0 O2 `0 V" {业培训、数控教学等行业中,具有广泛的应用前景。 N: {8 K4 |7 K K4 d' H4 W
|