找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 3916|回复: 0

车床虚拟加工系统实现方法研究

[复制链接]
发表于 2006-4-28 09:29:52 | 显示全部楼层 |阅读模式

引言 fficeffice" />

8 G5 a- C& b) M4 ?7 h5 [. s+ a

    虚拟制造(Virtual Manufacturing VM)技术是虚拟

7 N5 j. g0 K1 x& J4 ]. f) J+ k) r

显示技术与计算机仿真技术在制造领域的综合发展和

$ G$ [ W: h* H( D

应用。VM 的实质是“计算中的制造”,即在计算机中

7 F/ f% x7 W( z: `: N$ f0 j

借助建模与仿真技术及时地完成制造全过程的模拟和

0 P& ^ l- W9 K

示范,并预测评价产品性能和产品的可制造性。数控

4 K, o4 W% b/ d" O) w/ N8 V; W+ Y& G

(NC)车削程序的编制过程与工艺过程相似,都具有经

$ B, y' ~! P1 ~& W4 a5 w9 ]

验性和动态性,在程序编制过程中经常发生错误。为

$ V4 o a2 Q, k1 \

此,在数控机床上加工零件之前一般要进行数控程序

/ ^0 r) d4 L9 r# R3 Y1 E3 J

(NC 代码)校验,并进行首件试切。但这种传统的试切

, W7 e0 N( J! t3 Y

方法来检验刀具路径既费时又费力。随着数控编程技

- W& s7 n/ n+ ?. ?& l: w. k

术的发展,人们采用视觉检查 NC 刀具轨迹的二维线

2 a0 P% M$ r/ i" a

框图,这种方法主要依赖于程序员对易错区选择的判

! @9 \7 u; O |% f( K" _+ S7 {

断和对该区域复杂的刀具轨迹线框图的理解程度,一

2 k& A$ B4 w# \: h% ^; T

般的用户无法判断其正确性。通过数控加工三维几何

* o+ Z" m# Q ]% h5 j

仿真能够使 NC 编程人员和机床操作者通过图形显示

* C4 e7 _7 q: y5 v4 o# v

进行干涉和碰撞检查,校验数控程序,故可以大大减

' L0 a, P& N9 _% Z3 k# o$ U: w5 ]

少上述情况的发生,提高数控编程效率和质量。

+ X; n: M! Z2 T7 X" H

系统总体结构 

Q: w+ e+ }. d6 |

    由于OpenGL适用于多种硬件平台及操作系统,其

+ H# t9 y; o! o; c

图形库能够制作出高质量的三维图形和高质量的动画

/ E. ^* P {( ]

效果。因而整个虚拟加工的3D显示引擎选用OpenGL来

~$ @" G# X, T7 p& J

实现。考虑到Visual C++功能强大,开发出的系统执

/ a8 W# T# U% j2 `' i. m0 O; u

行效率高,且便于控制OpenGL,因而选用Visual C++

# A' H3 S. G' o% n$ _: o+ P

作为整个虚拟加工系统的开发工具。通过对数控车床

2 u- e) U1 b& f

及其加工过程进行仿真,动态显示产品加工过程和结

- J: u: W3 C z7 n) \

果,以实现产品零件的虚拟加工,并验证NC程序的正

, Z6 e$ G: Z) e& N+ e! j

确性。

. g. J, ?3 d7 a: r0 c

3 H, N$ ~ W7 Y3 J I. W3 X

图1为系统的设计流程图。 

- |6 r8 w8 {1 X0 w) f8 k( k

系统功能实现 

8 d' }3 \* H4 \, O

2.1 NC程序编译 

! v" J2 Z8 u4 ^% [2 F8 `

    由于虚拟加工系统主要用于工业培训及NC代码的

9 U, w# }6 b2 m9 [+ X K

正确性检查,故要求系统能够在加工之前通知操作人

) y3 |7 Y' Y0 i5 B, K5 K0 F

员NC程序中是否存在语法错误,上下程序段间的逻辑

$ m$ `$ m$ ]* C3 l3 W% v ~ v

关系是否正确等,故选用编译方式而不是解释方式来

" H6 h. a5 d: Z( D

NC程序进行编码。根据编译原理的思想[1,2],构造出

- J. _6 L u/ `9 ]: U) Y1 A9 I* e

NC程序编译模块,对NC程序进行语法和词法检查。

" t/ y: T4 E3 @- L0 }

比如检查地址符字母是否大写,上下程序段之间的逻

' D0 N1 p" f9 ], |2 A, w5 X/ s9 \0 q

辑关系是否正确,圆弧的终点、圆心、半径值等是否

' ?; s# q4 F4 d! s+ g

匹配,子程序调用时子程序号是否正确,程序开始字

. h+ q L' |& d: v! ?, x

符,程序号,程序主体,程序结束代码和程序结束字

* ~2 N. a4 w# V2 R" ]

符等是否完整等等。通过词法和语法检查指出错误发

$ x4 E6 X1 z/ g3 r5 n" f2 |2 g

生的位置,给出错误的原因。使得虚拟加工系统能够

: b0 h; t1 r2 z/ W+ Q( i

辅助用户学习NC程序的编制。 

( i4 X3 V4 S) d- E3 r" h0 g

2.2虚拟车床本体的搭建 

" a( H! R' _' N2 ~3 x% l

     在数控加工几何仿真系统中,首先要建立虚拟加

- H" T# V: K0 `8 d7 D( K

工环境,实现虚拟数控机床。由于机床是由许多零部

" o- r' [2 i9 k0 k3 F0 ?

件组成,结构较为复杂,用OpenGL函数进行造型工作

6 w( a9 D4 ] P6 D+ `) R

量太大,故先在CAD软件Pro/E中造型出数控机床各个

2 ^/ n* e2 T; o4 \5 H' Z

零部件,将其导出成标准的三维数据格式STL,在程序

! s2 F. A/ q# I/ p

中直接读取STL文件,并将其装配起来。在绘制机床时

: Q6 h$ F6 B& I

利用了OpenGL显示列表技术,将每个零部件都生成一

* y) v: ]3 _7 P) [% y

个OpenGL的显示列表,这样可以大幅度提高重绘效率,

) r0 h# O; N3 L# L

满足实时绘制的要求。图2为虚拟车床的效果图。 

: D4 N |" w3 v& J" c- K6 X: ^6 r

# | A0 Z; A! m, ^ ~5 A

2.3 数控加工过程仿真实现 

' M% S7 ?4 F* d

     数控车床的毛坯常用棒料或铸锻件,加工余量较

1 n! P' a& W% u4 w: v9 a8 I

大,但加工的零件形状较为简单,一般都是回转体零

7 j+ ^# G1 n0 D _: U4 n* }0 y

件。为了避免材料切除过程中毛坯与刀具运动形成扫

7 u# }* i- ^- v: o

掠体之间耗时的布尔运算,将毛坯沿 Z 向进行离散,

- t+ D+ E7 T1 [7 I3 K

将毛坯离散成单位高度的小圆柱,每个小圆柱称为一

; I: u5 N6 Q+ G, e) ]5 t( J% R

个薄片,每个薄片的厚度根据精度和显示效果的要求

# [9 v+ Q* B; [: F1 n7 Z

来确定,精度越高,切的越薄。每个薄片的数据结构

( \$ V/ r8 w$ ? {9 m8 @3 a

如下:

" Q/ Y/ A. F9 i# _/ o) l

struct PieceCylinder

5 M9 R/ a% D4 \3 y2 _* U

{

2 ]$ P! k+ u6 v; m5 i3 N

double m_dZSt;///////起始 Z 坐标

* J$ ?9 ~) y" v7 D

double m_dZEd;//////结束 Z 坐标

7 Q& Y9 ^) q2 M

double m_dROutSt;////外圆起点半径值

0 L$ i7 J5 x4 T' n

double m_dROutEd;///外圆终点半径值

6 g% U( @ s6 U3 {0 q

double m_dInSt;///内圆起点半径值

. T: M+ S* z) ]6 S

double m_dInEd;////内圆终点半径值

" S& D+ a2 n' S) n" K6 o

BOOL m_bIsDelete;//////该部分薄片是否被切除

( `: ^( h9 N o# D8 ?+ n3 v

PiesCylinder* m_pNext;/////下一个薄片数据

7 c+ {* X$ g t) s

};

. [. |1 z" a; j# ?+ X

    由于车削加工的回转体常常有内孔,车削时也可

- o& p8 t; D" W

能进行镗孔和钻孔操作,因而每个薄片不但要记录所

2 M `8 x5 H; g9 _- A6 o

在位置的外圆半径,还要记录内孔的半径。为了光滑

# C0 V4 _: L$ e) L4 v7 @

的显示加工的复杂回转面,如圆弧面、双曲面等,每

7 o" L4 l- X) i% }

个薄片在 Z 轴方向分为起点和终点。其起点和终点处

4 S7 p7 ?& ^9 }% W8 l, E

外圆、内孔的半径根据加工中的刀路轨迹单独计算和

2 C5 g# K, ^. _, {

存储。

& L8 N5 r* u0 r ?3 }, O! b

    在车削加工过程中,一方面工件绕其自身的回转

9 K, z* y& c0 h4 m5 g1 q

轴高速旋转,另一方面刀具在工件的轴平面内沿 X 轴、

. n* y8 `) _- ?8 P" w

Z 轴运动,并逐渐从工件上切除多元的材料,加工出

; n5 G" j2 B/ a) a' N6 @$ k& W

所需的外形,每一步刀具所扫掠出的均是一个多边形。

$ ]8 H# `; T! k1 w

根据每一步的插补指令,求解出该步刀具所扫掠出的

6 u3 ]4 b# k& c9 i7 [: I

多边形。将刀具扫掠出的多边形和离散后的工件模型

! A0 h& H" R# s& R

求交,并相应修改工件上所有和刀具扫掠多边形相交

) ]. l/ z5 l3 T5 x8 ]

部分的半径值。将修改半径后的工件重新绘制出来,

5 W/ s5 @" g9 D8 n1 h

即可完成仿真过程的实时绘制。

+ A* a" B: R: ]. X. ~

运行实例 

. S3 q [2 F1 u" b! C6 V

    为了验证系统的仿真效果,进行了两个加工实例

! u. m1 ^( U: ?3 G6 F4 v! [8 p+ H

研究。由于固定循环的实现比较有代表性,故这里选

6 F5 p2 y E" E( l9 _3 \6 d

用固定循环来进行研究。程序O1234G71外圆粗车固

) a# O @ ?: l3 Y" x" [+ `

定循环里面包含G70的精车循环,程序O1235G72

" w4 t# o2 s+ Y7 j |1 b" n3 {; y

面车削固定循环,图3G71精车后的效果图。图4

0 U! R7 C7 ]; _$ a

G72粗车过程中截图。

& p) W7 M( G) | o

O1234

. ~/ u( v/ ]- }4 n, z! Z9 a0 i

Sffice:smarttags" />1200M3

2 R2 }1 S) t% c3 m

T0101

( s! g( V! h4 |8 Q

G50X100Z50

2 u( k" `& }! c( ]' s4 @ x

G0X80Z5

4 N" p# o9 u5 a' f2 S

G71U3R0.2

" ~5 I9 r) z3 F( y- m

G71P00Q60U0.2W0.1F200

8 C( o' L: V! G7 e; @# N) a1 g5 r

N00G0X6Z1

- s9 c* c3 J* r! @# M) v$ G6 F c

N10G1X10Z-3

4 B! B' V* k0 N" ~% c/ m3 z2 f6 L+ s

N20G1W-15

; ?5 B V- R, X. u

N30G2U30W-15R15

- r8 s- K: p5 Z! T

N40G1W-30

4 ?8 d& K' d0 Z7 l4 R

N50G3U30W-15R15

; T; ] ~( }, ^* V1 n

N50G1U10W-10

o2 X( ~% P& d: b" g5 I8 t# W: ~

N60G1W-70

4 {2 Z/ s2 A8 g& w

N70G0X100Z50

( c1 v3 h# z, d) U. q' R% q; z

G0X30Z5

7 J& k5 ~ [( q8 t" S

G70P10Q60

+ o5 m0 p4 T( ~9 Q' q

G0X120Z20

2 A! |, c9 u4 A1 s

M30

. j# O- _' `3 Z; M' H

! ^4 J v8 D$ f! { `* ?

O1235;G72横向切削复合循环

5 I% [- t! h- ~5 F+ K2 S

S1200M3

6 `* @1 S+ ?% o' L- X, ~- F2 R2 X

T0101

: K* C, r8 w2 {/ D8 `3 D! e" y

G50X50Z50

$ L7 M% l% }, V/ p9 j

G0X32Z5

" H. p+ I+ R& j! U c

G72U2R0.2

( [5 P9 y3 z/ d d3 m3 m3 o. I. B/ D

G72P10Q50U0.2W0.1F200;呼叫子程序

5 [8 J* {7 c- e7 k& ^ p

N10G0X80Z-80

7 `7 |; i2 c1 O+ n

N20G1X60Z-70F100

8 [' c* p1 g( N

N30W8

; X, m: |$ q" }& h U( U' t0 ]

N40G3X30W15R15

. Z. X( B C5 S8 E# K" E, R

N50G1X18Z2

$ a" _0 n: K% j8 M. ~4 _6 `

N60G0X100Z50

5 U9 Y3 z% P! N: a1 x. `+ U

G0X30Z5

7 p1 o3 Z) E" a) z! ^+ ~$ B

G70P10Q50

1 u+ i1 C9 C [' L, k/ r

G0X100Z50

/ }5 N2 u1 D9 W! T

M30

2 O$ j0 i; D$ Z6 U/ f3 A% Y

1 |/ V& x8 M, D) M0 }

结论 

5 |# N) G; x$ V: I( l; ~

   详细介绍了车床虚拟加工系统的一种实现方法,

! ?9 z! I( N; O- a

并采用这种方法实现了车床虚拟加工系统。该虚拟加

" [" p& D8 X6 c+ `( S; t8 {, z

工系统可广泛应用于真实加工前进行仿真试切,在工

3 d. U9 g# E0 ~ {; e

业培训、数控教学等行业中,具有广泛的应用前景。

1 F4 D/ ]' G$ _0 h- f' C) f

 

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-6-30 02:37 , Processed in 0.074393 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表