引言 ffice ffice" /> $ _3 e3 a7 z) |* v2 z
虚拟制造(Virtual Manufacturing VM)技术是虚拟 1 s6 u+ A. Q3 `# g. M! j- ]
显示技术与计算机仿真技术在制造领域的综合发展和
' g, P2 [0 [) }, u: B8 I* p应用。VM 的实质是“计算中的制造”,即在计算机中 # Q( D" @* ~- x! E* y2 I0 e8 S2 \9 J
借助建模与仿真技术及时地完成制造全过程的模拟和
8 b6 u% k/ {! Y示范,并预测评价产品性能和产品的可制造性。数控 + _6 x( d2 h7 ?! W7 q( V% B3 I, g
(NC)车削程序的编制过程与工艺过程相似,都具有经 ( y& M. Q1 q: k0 v- I5 v
验性和动态性,在程序编制过程中经常发生错误。为
: k e2 O7 {0 v0 b5 t此,在数控机床上加工零件之前一般要进行数控程序 ( F! q4 P* }4 J$ U5 R/ J
(NC 代码)校验,并进行首件试切。但这种传统的试切 6 k2 e1 W7 W: V& j
方法来检验刀具路径既费时又费力。随着数控编程技
N7 \, _& Z5 n# @) B; A& g7 i术的发展,人们采用视觉检查 NC 刀具轨迹的二维线
# J5 w# Z$ G( j/ L% a9 E- ~框图,这种方法主要依赖于程序员对易错区选择的判 , I _* `+ ?3 R$ i5 ]
断和对该区域复杂的刀具轨迹线框图的理解程度,一 & ]5 ]2 U+ Z) r( u) D' @
般的用户无法判断其正确性。通过数控加工三维几何
: E% E: b) ~- h/ X4 a% b8 v" M仿真能够使 NC 编程人员和机床操作者通过图形显示 4 ?% m. X) H+ R5 i
进行干涉和碰撞检查,校验数控程序,故可以大大减
! [) S. r- t, P少上述情况的发生,提高数控编程效率和质量。
2 U5 f, X m4 S3 E* T1 系统总体结构
. ]7 g( N3 d5 `+ T" l2 u 由于OpenGL适用于多种硬件平台及操作系统,其 ! Y1 R% d, O; y N4 V7 [, \
图形库能够制作出高质量的三维图形和高质量的动画 % p8 P$ Y8 L' X6 @
效果。因而整个虚拟加工的3D显示引擎选用OpenGL来 . R+ c( |$ p: U2 {! ]
实现。考虑到Visual C++功能强大,开发出的系统执
. z& Y1 N; f8 d0 p3 `行效率高,且便于控制OpenGL,因而选用Visual C++ , |( S) r4 J4 V H( v+ F
作为整个虚拟加工系统的开发工具。通过对数控车床 ; n5 s6 o* _8 V7 ` P& ?+ w
及其加工过程进行仿真,动态显示产品加工过程和结 % ~1 B' u) F2 g( X1 i0 o+ `8 ?' B
果,以实现产品零件的虚拟加工,并验证NC程序的正
, ]5 S* p7 O: b' B3 X确性。 1 F& }; C1 g$ ]
+ L# R# @2 X. Y/ d9 ^. R
图1为系统的设计流程图。
' p2 p: q2 n1 c8 m2 系统功能实现 9 X6 l, P+ K, l4 K* I
2.1 NC程序编译 ) B0 @3 {& }: e2 e
由于虚拟加工系统主要用于工业培训及NC代码的
7 \7 [3 I) T6 C% b( X7 s' u正确性检查,故要求系统能够在加工之前通知操作人
7 G1 j3 A2 C6 p( c: c员NC程序中是否存在语法错误,上下程序段间的逻辑 # j/ {7 w; s* V
关系是否正确等,故选用编译方式而不是解释方式来
" `* o b3 d. z! i# K) ]' t) b对NC程序进行编码。根据编译原理的思想[1,2],构造出
3 f. G+ \/ }8 ANC程序编译模块,对NC程序进行语法和词法检查。 4 h! w" g& k% s2 A1 O
比如检查地址符字母是否大写,上下程序段之间的逻 1 L J n* A& j: ?6 L$ j# H
辑关系是否正确,圆弧的终点、圆心、半径值等是否 , c( {7 e& N, z
匹配,子程序调用时子程序号是否正确,程序开始字 $ u9 o! x* Z, ?
符,程序号,程序主体,程序结束代码和程序结束字 + D9 v1 s2 ~& N
符等是否完整等等。通过词法和语法检查指出错误发 4 G8 g5 H/ Y9 e% b! B, f
生的位置,给出错误的原因。使得虚拟加工系统能够
6 O, L; ^. x/ V! O- ] s2 c( c辅助用户学习NC程序的编制。
, z0 {' P4 K" t7 X% T% F2.2虚拟车床本体的搭建 0 b+ Z5 W8 t, }: \+ Y
在数控加工几何仿真系统中,首先要建立虚拟加 # @0 E( q0 z9 T" ]) A
工环境,实现虚拟数控机床。由于机床是由许多零部
# ?8 l7 D5 [% J. Q' v件组成,结构较为复杂,用OpenGL函数进行造型工作
9 z$ ~6 z4 j: o7 x& O& l量太大,故先在CAD软件Pro/E中造型出数控机床各个 9 T$ L( ]8 X' L+ ]6 H
零部件,将其导出成标准的三维数据格式STL,在程序 2 Z: i6 t2 l0 u) z
中直接读取STL文件,并将其装配起来。在绘制机床时
5 a. |, c4 D5 U- e5 \利用了OpenGL显示列表技术,将每个零部件都生成一
% p0 P" F# X' h* C& ~! v& E" v个OpenGL的显示列表,这样可以大幅度提高重绘效率, - H( B! E. o2 ^
满足实时绘制的要求。图2为虚拟车床的效果图。 8 J, e4 G4 O( Q9 M& p+ j! {
: q, [3 U% _6 U4 p
2.3 数控加工过程仿真实现 " j3 X0 l) Y) D% D+ ]6 ~) `! g
数控车床的毛坯常用棒料或铸锻件,加工余量较
9 c8 v9 T3 m$ q6 T; y3 r大,但加工的零件形状较为简单,一般都是回转体零
5 g; z3 h, a3 N& A- T1 ~# B7 V8 G' |件。为了避免材料切除过程中毛坯与刀具运动形成扫 1 W( \' Z5 c! R
掠体之间耗时的布尔运算,将毛坯沿 Z 向进行离散, 5 X% s- z. v6 Q0 h: _: g+ H
将毛坯离散成单位高度的小圆柱,每个小圆柱称为一 ; x5 J7 D( p, X( u/ y1 i' d
个薄片,每个薄片的厚度根据精度和显示效果的要求
( T e, [; y6 U+ B6 u来确定,精度越高,切的越薄。每个薄片的数据结构 + r" u, G. Y" N# A
如下:
6 k# t% X$ x: U8 L5 q% G7 e( x/ _struct PieceCylinder
2 {& j# S& ^) @0 ~+ Z1 H{
* @( Z( O' i. q* \, y- ddouble m_dZSt;///////起始 Z 坐标 # r! O% u# K8 J
double m_dZEd;//////结束 Z 坐标
. I& W, }/ E, [- g3 p: pdouble m_dROutSt;////外圆起点半径值 ; N3 _4 J* _5 x9 f9 s, h2 O
double m_dROutEd;///外圆终点半径值
5 t# W7 I! Y' p% @5 Kdouble m_dInSt;///内圆起点半径值 6 z" t- C1 N q7 }$ i
double m_dInEd;////内圆终点半径值
- J, w g9 m( v% p! sBOOL m_bIsDelete;//////该部分薄片是否被切除 Q$ @: i3 y( J. O7 v9 q/ d, m" ]
PiesCylinder* m_pNext;/////下一个薄片数据 ' K, D8 ?& Y! T7 ]
}; 9 ~5 X0 d3 e% c$ q' q+ }* }0 N7 ~
由于车削加工的回转体常常有内孔,车削时也可
3 O b7 ?8 f3 ]# T8 \& Y9 b能进行镗孔和钻孔操作,因而每个薄片不但要记录所
5 |9 A9 H, L$ B& M0 ^在位置的外圆半径,还要记录内孔的半径。为了光滑 % w) A) |3 U3 {7 c
的显示加工的复杂回转面,如圆弧面、双曲面等,每 4 W' [8 v$ z( x. X" S6 o
个薄片在 Z 轴方向分为起点和终点。其起点和终点处 . K8 b* f# G7 d' F1 d2 F* p" X+ g+ ?1 E
外圆、内孔的半径根据加工中的刀路轨迹单独计算和
8 t/ F/ N2 @& N# z0 ~) w5 s d存储。 * C; ^, ~( L+ o4 t$ F
在车削加工过程中,一方面工件绕其自身的回转 / | P) t" `+ R8 u. F( B7 B, e
轴高速旋转,另一方面刀具在工件的轴平面内沿 X 轴、
3 y i' ?& C. ~% O- f. S5 UZ 轴运动,并逐渐从工件上切除多元的材料,加工出
* o- W& A, n" k ?# w所需的外形,每一步刀具所扫掠出的均是一个多边形。
0 r% u4 H. A4 @2 b2 x根据每一步的插补指令,求解出该步刀具所扫掠出的 6 M1 g* z2 {( z9 P( C7 M
多边形。将刀具扫掠出的多边形和离散后的工件模型 2 s) e6 K2 ?$ @; B" b
求交,并相应修改工件上所有和刀具扫掠多边形相交
6 ?4 Z4 {) `2 c) t7 ` ]部分的半径值。将修改半径后的工件重新绘制出来,
i5 A$ S0 A" w7 g v! x即可完成仿真过程的实时绘制。 8 F, P$ e- \. u
3 运行实例
* z$ B' O; c0 N Q: s1 G 为了验证系统的仿真效果,进行了两个加工实例 ( E: B7 S! S3 h7 j! T. ?" ~; d7 Y
研究。由于固定循环的实现比较有代表性,故这里选
% S5 q! s5 r+ i* g0 \$ P! M, g( m用固定循环来进行研究。程序O1234是G71外圆粗车固
( I% q" Y- m2 w" o定循环里面包含G70的精车循环,程序O1235是G72端
4 j$ f' a, J' F' {面车削固定循环,图3为G71精车后的效果图。图4为
/ |8 m4 h/ U, O' }" a: TG72粗车过程中截图。 & w" ^, U# {* x
O1234 & ]9 w$ D7 D3 J8 G x2 p8 N
Sffice:smarttags" />1200M3 8 E3 L6 |2 E3 r) I# f
T0101
, }# J( S$ F: M) `' K( n6 o# HG50X100Z50
0 A) R |7 C; _( q7 W, C* r8 ]G0X80Z5 + K) s2 m$ h% Z6 g+ n) t
G71U3R0.2 - ], N: B, C" ]
G71P00Q60U0.2W0.1F200 * N; _0 j! ?/ i( _% z$ c5 L
N00G0X6Z1 # j! N$ n8 |; y& t% o' x) H
N10G1X10Z-3
/ `* v9 Z# W' k4 {# W* U% F. yN20G1W-15 3 x# o' p" y% V0 J0 k% t* W! o# A
N30G2U30W-15R15 % p* I- R: Q# d0 |% O+ n6 g
N40G1W-30
$ s1 ]$ q0 K# E" o. JN50G3U30W-15R15
/ c: V9 Y5 u2 Q. l2 VN50G1U10W-10
8 u# U9 P/ |. z" ON60G1W-70 . H& F0 g! {' ?& s" Z- {2 Q$ M
N70G0X100Z50 a9 Q; ]. j y" j6 j' d
G0X30Z5
) ^0 p! J8 j& o9 V2 F- uG70P10Q60
5 _5 J* l, G2 a, B& w$ lG0X120Z20 ) i3 K7 g% k0 n' i" K
M30
$ n8 u* W+ ?3 c* L5 X, y , ^* _, O( q( }
O1235;G72横向切削复合循环
* O: s8 B5 C X9 c3 b C- q- aS1200M3 . l3 I6 p6 p0 k3 B3 B1 _
T0101
4 o8 n/ ?: L! M3 V. G% g) z, A! sG50X50Z50 8 ^3 n) D8 ?9 h8 G% |% ]
G0X32Z5 & B' p- M! A" Z% M; e$ k1 j/ e- ~
G72U2R0.2
- m, `" d5 }- B: u" t% {% @* |G72P10Q50U0.2W0.1F200;呼叫子程序
9 l& o Y$ |) C( ^, X2 t" m' O+ IN10G0X80Z-80
: ~, e- O5 J, W y7 J: ?; R# TN20G1X60Z-70F100 # c& ] p/ ^" ^' P
N30W8
8 F0 z+ U& M8 X0 {" WN40G3X30W15R15 ' f$ t& C- J& ~+ D& U- O
N50G1X18Z2 7 G M0 e* b- H5 E
N60G0X100Z50
; i8 V) ? P9 p. l7 DG0X30Z5
5 f6 q# z- i2 K1 B, WG70P10Q50 . S3 F2 j9 s+ K* D( }
G0X100Z50 1 n& E h e- t/ g
M30 / y' E0 U8 A+ o8 ?
5 D5 q w; ?- Q6 E5 K
4 结论
7 Z/ D Y% I9 C1 l4 u 详细介绍了车床虚拟加工系统的一种实现方法,
! ~" O$ N) O2 W5 G$ N b1 O并采用这种方法实现了车床虚拟加工系统。该虚拟加
/ p; l0 o& J4 o7 [4 A* J3 Q工系统可广泛应用于真实加工前进行仿真试切,在工 , q" @5 M5 P9 H# [6 |" [
业培训、数控教学等行业中,具有广泛的应用前景。
, q- Z0 S2 t, ?5 z& C; V |