引言 fficeffice" /> 5 k9 P5 ]! a' Q! A9 E5 L% B1 h
虚拟制造(Virtual Manufacturing VM)技术是虚拟
3 F! F- Q- H& g9 @5 @) @显示技术与计算机仿真技术在制造领域的综合发展和 ! D; |6 W: ~3 r" @6 G; G* T
应用。VM 的实质是“计算中的制造”,即在计算机中
+ c2 k5 }; s+ n v! ^8 z借助建模与仿真技术及时地完成制造全过程的模拟和
+ [2 G4 _, _! N' d8 a" n! w9 \示范,并预测评价产品性能和产品的可制造性。数控 $ ~( G3 f1 [! ^' p% H
(NC)车削程序的编制过程与工艺过程相似,都具有经
8 m3 }6 K2 D+ @2 `' n% ]验性和动态性,在程序编制过程中经常发生错误。为 ( r4 ]9 T1 x$ S0 U
此,在数控机床上加工零件之前一般要进行数控程序 - r8 K: e' [: q5 l9 b, y, \2 U& j
(NC 代码)校验,并进行首件试切。但这种传统的试切
% u6 J' g- g3 ?4 x% p方法来检验刀具路径既费时又费力。随着数控编程技 ' _/ a0 h. z( o
术的发展,人们采用视觉检查 NC 刀具轨迹的二维线
7 u3 f9 }1 Y6 c框图,这种方法主要依赖于程序员对易错区选择的判
0 R5 n3 r% j% H' }! H" t断和对该区域复杂的刀具轨迹线框图的理解程度,一
$ ]0 Q4 b; Z x3 Z般的用户无法判断其正确性。通过数控加工三维几何 2 ]/ w: Y) b# c
仿真能够使 NC 编程人员和机床操作者通过图形显示 5 X/ Z8 A" c) n5 e1 t
进行干涉和碰撞检查,校验数控程序,故可以大大减 4 o& s/ `0 W- k5 L3 [( `& J% b
少上述情况的发生,提高数控编程效率和质量。 ) p' P( Y! r- u5 G R6 `5 R! e8 |9 A
1 系统总体结构
7 N ^4 V* P& U: v* {6 | 由于OpenGL适用于多种硬件平台及操作系统,其 ' G1 X! u% O) S+ H# @# J+ R: p
图形库能够制作出高质量的三维图形和高质量的动画
7 J1 `$ p1 ]% e, l' Y. H6 @( N- l效果。因而整个虚拟加工的3D显示引擎选用OpenGL来 2 y4 C2 r) n( F* q
实现。考虑到Visual C++功能强大,开发出的系统执 : e; I2 \+ ^/ c( l
行效率高,且便于控制OpenGL,因而选用Visual C++
0 u1 {% b( V2 Q作为整个虚拟加工系统的开发工具。通过对数控车床 4 ^0 ]* r/ \; p9 G# Q! |
及其加工过程进行仿真,动态显示产品加工过程和结 ( \( `$ d' P7 c0 n
果,以实现产品零件的虚拟加工,并验证NC程序的正
8 F6 e( `. L' B, M" N& s确性。
' p% T( g2 j6 n' J3 N- {+ o 5 g0 `4 Z+ y' ?# f+ D* t4 {
图1为系统的设计流程图。 ; ^4 Q! G1 }' w! [$ g2 s3 n
2 系统功能实现 & k6 X% f/ R+ }
2.1 NC程序编译
! `3 g: w1 {+ h8 t 由于虚拟加工系统主要用于工业培训及NC代码的 % F; K; ~4 I$ C5 _) w7 K( [9 ?( Z
正确性检查,故要求系统能够在加工之前通知操作人 - Q2 ]( L. O3 E$ d, d
员NC程序中是否存在语法错误,上下程序段间的逻辑 & s' Y* @3 o0 B
关系是否正确等,故选用编译方式而不是解释方式来
. U! d$ O. ~/ a对NC程序进行编码。根据编译原理的思想[1,2],构造出
' f$ z' J+ r7 R# z0 d" f" lNC程序编译模块,对NC程序进行语法和词法检查。
) y* c5 H: o2 R+ N7 @比如检查地址符字母是否大写,上下程序段之间的逻
* `# K1 t0 `4 i) U7 u, D6 r辑关系是否正确,圆弧的终点、圆心、半径值等是否 . z, A8 t/ j# ^, Y- c
匹配,子程序调用时子程序号是否正确,程序开始字
+ e& t( Z b3 _4 e" L符,程序号,程序主体,程序结束代码和程序结束字
G" p* }4 k3 s符等是否完整等等。通过词法和语法检查指出错误发 # q4 M& l$ k' Q& T
生的位置,给出错误的原因。使得虚拟加工系统能够
, Z) U# v+ t& U辅助用户学习NC程序的编制。 ( k+ k3 w/ v0 h% ]; E
2.2虚拟车床本体的搭建
, |: J( _2 J2 l/ Y* E; i- ^ 在数控加工几何仿真系统中,首先要建立虚拟加
& G! X: E2 I4 D) [工环境,实现虚拟数控机床。由于机床是由许多零部
* `0 b5 N" i1 R% s8 l3 t/ _件组成,结构较为复杂,用OpenGL函数进行造型工作 ; O8 W5 v2 T& u2 x8 y% |, z
量太大,故先在CAD软件Pro/E中造型出数控机床各个 7 _- Z7 q4 x$ Y- g+ R
零部件,将其导出成标准的三维数据格式STL,在程序 ; H" \0 ^. [3 @" }, @6 q2 v! U
中直接读取STL文件,并将其装配起来。在绘制机床时 ' m' P7 U9 U2 f) }. E) Z% s
利用了OpenGL显示列表技术,将每个零部件都生成一 ; C3 `! L( h; o- g+ Y
个OpenGL的显示列表,这样可以大幅度提高重绘效率, 0 Y7 ?' w$ {" E J: o; ^0 F
满足实时绘制的要求。图2为虚拟车床的效果图。
5 r9 v% O1 V6 h( h( C; ?! _! T) h
: ]- P7 z6 _9 E: R2.3 数控加工过程仿真实现
% F6 h+ J) [1 E6 i& h 数控车床的毛坯常用棒料或铸锻件,加工余量较
6 C1 I) I/ D, h8 J1 L6 {" W. J大,但加工的零件形状较为简单,一般都是回转体零 : _ n( W' Z, a$ S8 n1 N) E
件。为了避免材料切除过程中毛坯与刀具运动形成扫
9 m% ^: m: ~$ p& {) G掠体之间耗时的布尔运算,将毛坯沿 Z 向进行离散, 1 f- l& G5 _+ h; f( T
将毛坯离散成单位高度的小圆柱,每个小圆柱称为一
, Q: E* @% V. v3 I3 v( C. w" l! L: `个薄片,每个薄片的厚度根据精度和显示效果的要求 # |0 q# J# s# I) u# T
来确定,精度越高,切的越薄。每个薄片的数据结构 ; g. I; L) s T& S* I! x- ?/ Q
如下: 4 D) E6 G- h8 @; W8 o
struct PieceCylinder 9 u4 j7 S9 ^4 w/ B5 R/ j7 m- P
{
/ A W$ {# N: A; p2 M& e, l) O% wdouble m_dZSt;///////起始 Z 坐标 * U' ^6 @7 |9 u+ X5 b" u
double m_dZEd;//////结束 Z 坐标 + u" k7 j9 \/ m Q
double m_dROutSt;////外圆起点半径值
| }6 I6 e8 j% L0 Udouble m_dROutEd;///外圆终点半径值 0 t' y. Y# d+ J, }2 `
double m_dInSt;///内圆起点半径值
" m- m0 n0 K; p* d" n+ y& m rdouble m_dInEd;////内圆终点半径值 " c7 T+ m. M5 A
BOOL m_bIsDelete;//////该部分薄片是否被切除
* A9 B% u: I2 S1 I: CPiesCylinder* m_pNext;/////下一个薄片数据 , G) c& n: e2 i& U, \3 e
}; 5 b) b3 P* r1 |- z1 b
由于车削加工的回转体常常有内孔,车削时也可
( d! m% w4 D: n能进行镗孔和钻孔操作,因而每个薄片不但要记录所
+ O" J' H) j% L3 X) p. w& T, Y在位置的外圆半径,还要记录内孔的半径。为了光滑
; O/ a" o3 I/ H8 Z" T2 o8 o2 `的显示加工的复杂回转面,如圆弧面、双曲面等,每
) ~. K* v0 B( P8 U8 E5 X q个薄片在 Z 轴方向分为起点和终点。其起点和终点处
9 x" B4 V/ X1 O外圆、内孔的半径根据加工中的刀路轨迹单独计算和
, w' I5 T/ Z B& H存储。
/ ?) L. f) k Y& x! J; d# P0 @ 在车削加工过程中,一方面工件绕其自身的回转
$ k/ z1 F' x+ B0 f. B. I0 M轴高速旋转,另一方面刀具在工件的轴平面内沿 X 轴、
% n i1 V7 X$ }; W1 ~6 e. _/ KZ 轴运动,并逐渐从工件上切除多元的材料,加工出
2 W/ p! w. p( U5 l所需的外形,每一步刀具所扫掠出的均是一个多边形。 [9 B* F2 X* v y9 [& G6 j
根据每一步的插补指令,求解出该步刀具所扫掠出的 5 B! u8 n' q. c
多边形。将刀具扫掠出的多边形和离散后的工件模型 2 p9 I* b$ Z+ S8 y
求交,并相应修改工件上所有和刀具扫掠多边形相交 0 G. \- I% f9 A2 V6 ?, j. P
部分的半径值。将修改半径后的工件重新绘制出来,
: P4 c8 Y- u% X& x5 ]9 s' }即可完成仿真过程的实时绘制。
' y2 |9 @/ s& ^* Y4 |3 运行实例
3 Q1 K, m) M' [9 T 为了验证系统的仿真效果,进行了两个加工实例 # A# G$ g, X5 H3 n; J, D0 a# u
研究。由于固定循环的实现比较有代表性,故这里选 ( X/ k) ], c& C% U; K
用固定循环来进行研究。程序O1234是G71外圆粗车固
: |* Q) k' P; `- y1 h5 H" I# e0 x3 n2 ^! _定循环里面包含G70的精车循环,程序O1235是G72端
" E$ L5 T2 A! `' P( S面车削固定循环,图3为G71精车后的效果图。图4为
4 h! P7 @/ G) k9 d) F' T( c4 `# hG72粗车过程中截图。 " b: Q* n" w, _+ V. D
O1234
$ l% |9 \8 A5 \3 O r( hSffice:smarttags" />1200M3
/ [6 t7 T4 p1 J5 q: O: C0 H' v8 yT0101 : D% A9 O$ g0 \* x) N& O U
G50X100Z50
8 c9 R& i- G+ a: n* _1 D: C) k, hG0X80Z5
8 b2 x* z9 H! a6 LG71U3R0.2 , W" A+ `% o( g% \) h8 t, n
G71P00Q60U0.2W0.1F200 U1 S% I5 Y' H5 K5 q: U# f) {
N00G0X6Z1
; G9 l- [7 Y2 P' f( u3 r, L/ vN10G1X10Z-3
( k2 |0 B8 u/ kN20G1W-15 ! Y' S/ z! E+ p* [9 g
N30G2U30W-15R15 4 N5 h2 `! R9 ]1 z
N40G1W-30 . _ J1 v9 G# F7 b
N50G3U30W-15R15
- Y; F8 b. n: G' K. HN50G1U10W-10 - V% ?/ E; E+ u
N60G1W-70
* C# E# F: W& B. p" xN70G0X100Z50
' g ~2 {* w* U: j3 D KG0X30Z5
' M# C* m3 L& c) S' E) u/ c+ EG70P10Q60
( S- z! p7 T* \: i7 O m+ ~' }G0X120Z20
- V4 v) j( V$ w; C" ~0 lM30
" n1 o1 b8 n2 `; v; u, J9 Z
* S/ ~- }' y A4 L4 JO1235;G72横向切削复合循环
) x6 v; r1 u P7 b6 B W* g2 G0 KS1200M3 . }$ D$ r1 G5 ~6 |( Z3 ?
T0101 ! y9 E$ X1 j" f+ `
G50X50Z50 ~* \) g2 l2 Y4 t2 g( C) s
G0X32Z5
! \: v/ @( H2 qG72U2R0.2 H4 B, [4 e7 [6 F2 L) n; N# W
G72P10Q50U0.2W0.1F200;呼叫子程序
/ X) X! R( }9 D1 QN10G0X80Z-80
; n2 \, m0 H7 T$ ]$ tN20G1X60Z-70F100 " V# N+ ~& C) G8 _8 [
N30W8
; T8 r- f% K3 B6 WN40G3X30W15R15 $ N7 ?0 U- O2 Q1 T. c* L
N50G1X18Z2 , D( w3 W# o1 f2 N4 s- N
N60G0X100Z50 0 w4 Y8 z7 X2 K0 a# e9 l
G0X30Z5 1 e( F$ @! Q* y
G70P10Q50
7 n) n& z; k+ u1 o% h! W' DG0X100Z50 $ |$ n4 W- I- E& h: F t
M30
; C9 O9 b2 |; O6 w3 d
5 s K) i6 Y! A+ I4 u4 结论
9 X. `. L9 D$ f) U" [3 I 详细介绍了车床虚拟加工系统的一种实现方法,
/ G: n8 O# ~0 T并采用这种方法实现了车床虚拟加工系统。该虚拟加
' N3 a1 Q6 _" k3 t; H: w9 A& B工系统可广泛应用于真实加工前进行仿真试切,在工 3 {4 \) x3 N, ?8 n# Q. l
业培训、数控教学等行业中,具有广泛的应用前景。
6 m# d5 [2 E* f$ C+ \ |