引言 fficeffice" /> : e9 T6 O# b# O
虚拟制造(Virtual Manufacturing VM)技术是虚拟
! ^& n" H, V' z' x4 ]& z显示技术与计算机仿真技术在制造领域的综合发展和 1 I5 o% u, [- F% q
应用。VM 的实质是“计算中的制造”,即在计算机中 - F+ T) u. v% Z: N1 w4 d1 Z8 A" w
借助建模与仿真技术及时地完成制造全过程的模拟和
3 w+ c" S* L$ h ]) }" f8 u+ [示范,并预测评价产品性能和产品的可制造性。数控
7 Q$ q$ s* ?0 F(NC)车削程序的编制过程与工艺过程相似,都具有经 + B: r6 J0 t/ C" v2 x7 \
验性和动态性,在程序编制过程中经常发生错误。为
, m, p1 {6 e; u此,在数控机床上加工零件之前一般要进行数控程序 " a& Y: ^/ B1 `5 {4 l
(NC 代码)校验,并进行首件试切。但这种传统的试切
+ X6 I1 K! e: [4 n8 d9 w方法来检验刀具路径既费时又费力。随着数控编程技 3 A2 B0 Y" \; ]0 h9 h4 Q
术的发展,人们采用视觉检查 NC 刀具轨迹的二维线
( S1 b8 b/ g4 G" U9 x0 c8 ^) x框图,这种方法主要依赖于程序员对易错区选择的判 % X4 W: U, u- r7 S2 F
断和对该区域复杂的刀具轨迹线框图的理解程度,一
. B$ e- u3 O2 C8 W般的用户无法判断其正确性。通过数控加工三维几何 ) u" w7 \( F/ M& Y# b9 a
仿真能够使 NC 编程人员和机床操作者通过图形显示
& J; r. T% G* E! L进行干涉和碰撞检查,校验数控程序,故可以大大减 ' d7 Q1 T& G' X6 I/ H$ N V( |' U; r
少上述情况的发生,提高数控编程效率和质量。
) G2 \2 I! m2 \, J1 系统总体结构
0 l( \. j* X7 x) e& T9 t8 D 由于OpenGL适用于多种硬件平台及操作系统,其 3 w2 t7 v! v: ]* g3 L. O
图形库能够制作出高质量的三维图形和高质量的动画
& A: v k" b6 o8 J1 F效果。因而整个虚拟加工的3D显示引擎选用OpenGL来 ; v# s1 k, d% y/ \0 F0 z
实现。考虑到Visual C++功能强大,开发出的系统执 ( d9 \7 ]8 H; P H
行效率高,且便于控制OpenGL,因而选用Visual C++ . ~8 _. K1 O) v% n7 Y+ n
作为整个虚拟加工系统的开发工具。通过对数控车床 2 A7 x( K" Q9 n& g* I( W/ l
及其加工过程进行仿真,动态显示产品加工过程和结
$ T. Y+ a- j; o; B0 J/ W果,以实现产品零件的虚拟加工,并验证NC程序的正 : O3 Z: W$ h3 r3 l
确性。 ' _1 @$ Z+ O1 E
. y4 E% o" Z# s图1为系统的设计流程图。
$ B1 w* C' t' |: O1 T3 U7 Z! Z2 系统功能实现
. K, y+ H8 [ s5 q- {7 D2.1 NC程序编译 ( q- A0 j5 j. |; H# i! [
由于虚拟加工系统主要用于工业培训及NC代码的
3 j9 |( e4 K% [8 G正确性检查,故要求系统能够在加工之前通知操作人
9 [' V- g/ H6 A% ^9 h员NC程序中是否存在语法错误,上下程序段间的逻辑 3 m# a# V: Y5 o6 O
关系是否正确等,故选用编译方式而不是解释方式来 , ~* l& `, O/ D) h& W( \0 v
对NC程序进行编码。根据编译原理的思想[1,2],构造出 1 `' c* L* ]5 V
NC程序编译模块,对NC程序进行语法和词法检查。
1 I! H. r* t& x( I: v' R7 H比如检查地址符字母是否大写,上下程序段之间的逻
7 q( m( {% u0 Q- G$ Y0 s) |辑关系是否正确,圆弧的终点、圆心、半径值等是否
* X* u& x8 P. ^匹配,子程序调用时子程序号是否正确,程序开始字
, F i0 z# Z. O8 H: K" e- |2 e符,程序号,程序主体,程序结束代码和程序结束字 " e) H; Y8 l& X) H4 s
符等是否完整等等。通过词法和语法检查指出错误发
' c1 Y% ]5 s1 f% B( J7 _5 q生的位置,给出错误的原因。使得虚拟加工系统能够 4 D+ I# i; b2 q
辅助用户学习NC程序的编制。
9 ]8 J0 p$ Y9 g! ?: G+ x2.2虚拟车床本体的搭建 ' u/ P8 k; A1 y4 k
在数控加工几何仿真系统中,首先要建立虚拟加 4 q) b2 N. _- u5 x
工环境,实现虚拟数控机床。由于机床是由许多零部
" Z5 @' m0 g1 `6 d8 c2 l件组成,结构较为复杂,用OpenGL函数进行造型工作
8 j7 @$ w. s/ t3 b3 A0 o' N量太大,故先在CAD软件Pro/E中造型出数控机床各个
% N1 V) X$ f/ a零部件,将其导出成标准的三维数据格式STL,在程序
% }0 F+ I0 P$ P, r' P中直接读取STL文件,并将其装配起来。在绘制机床时 5 K( W8 t( L* }( I, |
利用了OpenGL显示列表技术,将每个零部件都生成一 H7 R* q t, h$ x' M
个OpenGL的显示列表,这样可以大幅度提高重绘效率,
- Q- {, r* p! B; q满足实时绘制的要求。图2为虚拟车床的效果图。
: }/ f, _1 y( g/ T , m. X w7 p7 P- d5 |
2.3 数控加工过程仿真实现
. O9 ?. s* c; t. g- p# B+ [ 数控车床的毛坯常用棒料或铸锻件,加工余量较
4 Z& ?2 O. E; a8 G大,但加工的零件形状较为简单,一般都是回转体零
! M7 y& G; }, k2 ?' \ c件。为了避免材料切除过程中毛坯与刀具运动形成扫
3 T& @" i! _1 D7 n$ X掠体之间耗时的布尔运算,将毛坯沿 Z 向进行离散,
2 S9 c! X0 ~5 c: `. E' R" C将毛坯离散成单位高度的小圆柱,每个小圆柱称为一 4 a" }$ f) e& x
个薄片,每个薄片的厚度根据精度和显示效果的要求 : B; l7 u0 L" N
来确定,精度越高,切的越薄。每个薄片的数据结构 , m3 ]0 W9 W& T7 G
如下:
2 V$ u7 [6 @, Nstruct PieceCylinder
7 ]' l$ a6 D& _# ~/ T7 w d: W% ~* W{ ) Z5 B0 P$ V+ i K5 _6 `9 s. R1 z, y
double m_dZSt;///////起始 Z 坐标
9 M( Y+ G, C" d! k. D1 Kdouble m_dZEd;//////结束 Z 坐标
- X8 n: G i% U1 f* i- y9 ?5 x5 ~4 Hdouble m_dROutSt;////外圆起点半径值
0 ?9 _8 H5 g3 e' |5 J5 [double m_dROutEd;///外圆终点半径值 / M0 ~& n" G" d& Z9 V( ~+ E
double m_dInSt;///内圆起点半径值 ) M3 W/ ]$ O3 D6 M0 l
double m_dInEd;////内圆终点半径值
3 B. k8 y5 W- @' K1 e( t5 j+ a! dBOOL m_bIsDelete;//////该部分薄片是否被切除
- t7 O3 b9 t& r1 KPiesCylinder* m_pNext;/////下一个薄片数据 ( @* V: z/ { U/ r
}; $ j Q: B7 D1 a2 X3 r
由于车削加工的回转体常常有内孔,车削时也可 $ Q+ P! `( ?$ x. k% n4 T
能进行镗孔和钻孔操作,因而每个薄片不但要记录所 ! B7 l9 k( G' ^) j6 I
在位置的外圆半径,还要记录内孔的半径。为了光滑 - e6 k* T) a7 q/ R
的显示加工的复杂回转面,如圆弧面、双曲面等,每 7 p- O- U& q7 O
个薄片在 Z 轴方向分为起点和终点。其起点和终点处
* \) B- ?+ S3 V( `3 ~外圆、内孔的半径根据加工中的刀路轨迹单独计算和 ' O& ]% u7 V- `' q) z3 u
存储。
$ V; k" Y+ r7 u5 J: o 在车削加工过程中,一方面工件绕其自身的回转
6 _! {/ t. t0 H% w( O轴高速旋转,另一方面刀具在工件的轴平面内沿 X 轴、
0 w, W, P# J* c! o2 F9 F! iZ 轴运动,并逐渐从工件上切除多元的材料,加工出
6 p) O) l; _! G A所需的外形,每一步刀具所扫掠出的均是一个多边形。
3 w7 |/ ^* h4 r根据每一步的插补指令,求解出该步刀具所扫掠出的
Z" z) Z' A. u多边形。将刀具扫掠出的多边形和离散后的工件模型 8 G2 X7 f; z/ G* \1 l
求交,并相应修改工件上所有和刀具扫掠多边形相交 ) C2 n; }3 g [: L4 v
部分的半径值。将修改半径后的工件重新绘制出来, # m/ ~' y, X) M( ~ E7 _% B1 D& s
即可完成仿真过程的实时绘制。
( \* v* S8 V2 g8 v x3 运行实例
5 H- U" T4 I. W 为了验证系统的仿真效果,进行了两个加工实例
& g$ Q2 ]- G5 J- A4 l4 i研究。由于固定循环的实现比较有代表性,故这里选
' i/ Z+ D$ m* z2 \$ t5 G用固定循环来进行研究。程序O1234是G71外圆粗车固 : U6 J# l8 z3 z
定循环里面包含G70的精车循环,程序O1235是G72端 0 |! W! n" F& W/ E: ]( g
面车削固定循环,图3为G71精车后的效果图。图4为 2 O; v1 t- k, ^8 Y" {1 h
G72粗车过程中截图。 % B% J( v' B6 q' Z. w
O1234 ! \% V+ J- H8 e* J4 G! Y
Sffice:smarttags" />1200M3
+ N+ y" h6 k1 R& jT0101 + W* M$ R; i1 R# P. K4 Z- P# B1 W
G50X100Z50
: B( q5 s, c! m8 |% TG0X80Z5 3 [' J) p4 `1 p2 v- d- S
G71U3R0.2 ; E3 U9 ^8 S2 _. S; b* s V
G71P00Q60U0.2W0.1F200 4 ~$ o# v# C n8 W
N00G0X6Z1 4 g4 \5 U! P: w+ o: a
N10G1X10Z-3 / b" r5 B9 Z! H' L" O: B. r
N20G1W-15 , f! A" |8 p" \1 \9 W
N30G2U30W-15R15 6 p; L5 Z: o8 I+ ?
N40G1W-30 * I8 R& R+ v* ^8 A* @, A
N50G3U30W-15R15
, U g6 K5 _/ M, z9 X( HN50G1U10W-10 ; p) q5 B8 S* i2 ], K
N60G1W-70
5 N7 F p6 A# R% i7 _9 fN70G0X100Z50 ! K2 J$ y5 X0 c K8 B( o
G0X30Z5
`7 Z" y1 K1 _/ R3 k+ `5 l$ JG70P10Q60 ( P+ T" W; a/ U
G0X120Z20 3 N2 L. z2 f! r
M30
" a6 W, T4 v4 f; r, B4 y
0 B5 L% Z! Z2 yO1235;G72横向切削复合循环
& c0 k: T4 @, k) I6 h& Y3 hS1200M3 7 m8 Q1 O2 a( F) A f
T0101
9 C" p e/ A9 C) G$ WG50X50Z50
: |3 o- z5 S! a7 qG0X32Z5
7 q% K3 l& @7 o4 w4 b- fG72U2R0.2
( U! t3 w4 M' a% V: sG72P10Q50U0.2W0.1F200;呼叫子程序
3 u9 r* N: J9 y* @6 ^N10G0X80Z-80
+ D8 u# O! O# G; X% c% `3 \' ?N20G1X60Z-70F100
( s% N/ L( S: RN30W8 : p0 M- H0 _+ d
N40G3X30W15R15 3 p( u: E4 r# x$ I8 ~
N50G1X18Z2
, h" M3 H# ?- z% ?/ @! |6 ON60G0X100Z50 , i$ h& E! F; Z
G0X30Z5 ! O; f5 ~* z9 P: j( c* c
G70P10Q50 0 J% x q. N- s+ n) d8 Y$ T v
G0X100Z50 " u, y! i4 ~* b3 x4 x
M30
$ e3 c$ d) [+ J$ U& ]$ l5 V: n# @ " G2 E: g8 G# Q" Z: F B1 ~
4 结论 ' e- C5 u. C" L' \
详细介绍了车床虚拟加工系统的一种实现方法,
% s1 c% R- t% Q, L Z并采用这种方法实现了车床虚拟加工系统。该虚拟加 / j/ \( T/ Y, M- s
工系统可广泛应用于真实加工前进行仿真试切,在工 9 L! E' D, Y& O* l. E2 s Y
业培训、数控教学等行业中,具有广泛的应用前景。 # W0 s3 ^% p G- u: Y
|