机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 3841|回复: 0

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

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

引言 fficeffice" />

; K0 g. B! r& V3 J! }! _& J N

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

! O/ Z4 a9 Z$ E+ s7 h, G

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

8 i5 r$ U* h& v' X. l& P

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

& l5 j5 e- X _* }/ j% q; u8 T

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

2 y7 p& s% q$ B% w

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

% |! s& B3 L5 s T s1 ?

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

0 p5 Y1 p8 }7 N3 W2 }

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

) M! r j6 q' j7 m, b

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

4 t: @2 V9 f! t/ a5 Y

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

" s. c5 A9 i9 H# B

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

* s- _' D L0 r8 Q* i

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

' n1 R; S# z5 F% o

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

9 s. j3 {& ~3 u

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

3 v7 L+ q1 B$ t0 I

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

7 y; `: s# r( C

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

2 W, A: j/ Z/ a1 l- w! |

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

/ s7 Y% |$ Q; |; I2 {* X

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

6 n! T+ U5 K/ \% S% _3 G7 ]2 b

系统总体结构 

5 ]5 ]; p3 A4 c! t% n/ ]6 R' z) W

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

$ m# c$ [7 M2 a

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

6 g' O( o& Z% ?" x7 G

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

" O) `* q% i6 R0 \

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

0 }- F& b: H2 L2 ?5 C; l9 @

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

G7 P, n j" G! @: [! C

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

p$ t9 d4 Z1 X% M- H, ?

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

5 U9 u) e* a; j* C

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

; I6 a9 I3 X# j$ k& l8 l5 m% ^' H, E

确性。

* ^* q& C) I2 u1 B" u

6 f) d! V0 p7 A6 K

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

6 Q7 d, ~4 q4 ^! h

系统功能实现 

# E+ h1 I4 q! X- \4 \( p

2.1 NC程序编译 

N. @1 h. g- f

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

! l& b ~9 i+ Y8 e

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

' ^7 N" W$ d) e: w5 @

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

) R, Q% y0 l* d, i1 t9 w: ~: d

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

2 A, M% Y& g6 \7 m

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

8 A- l0 m. N h8 P( W1 N, o

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

8 F1 ]2 [( d( j& X: a; s2 @

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

$ D8 P3 R( m. ~1 O6 V1 x) I

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

8 f" T2 ^0 z" Z1 T- j+ N* ]; M

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

: j2 d6 O n4 }/ l7 f W- A8 H+ h2 G% D

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

. u3 D/ }4 [+ c0 S: t1 ?- h0 M/ j

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

1 x% O3 [( s1 Z

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

' S' t e4 v2 o/ ~

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

, c, s! [7 E) u3 e8 s2 w9 e6 ^

2.2虚拟车床本体的搭建 

" G7 B+ y6 g7 ^$ n3 O t& K4 j

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

6 S7 j& ^; z6 z+ j7 h1 [/ d4 y

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

- Y( b7 A4 U( \1 H) b

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

( L# r! F7 d& Z" n

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

- s7 R/ o w; w

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

. D* M% s2 G2 ^9 f; S9 J, K* C

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

: W; m0 Y) G, I' x5 c% ~

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

- j( P" } K! g( W8 Z+ y

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

' v" }0 M& X: P I |. ^, T

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

) q9 W0 K( ?; v4 J

% q* Y6 e7 k, {: w6 c- B! K* Q" V

2.3 数控加工过程仿真实现 

. Y, w4 _" v' d9 X

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

1 Y0 F4 i: @& j2 `: ?, M$ B0 w$ I

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

& U* a) G: d s/ g& B: j

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

( i$ V4 \: K8 M d

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

, \+ J/ ?; A4 D

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

3 \' X+ r) F* m- V+ V( \. O& ?

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

3 Z6 ?7 n; F% {6 P7 ]

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

3 |3 x6 C. Z+ }7 B3 H0 X

如下:

8 @( y$ }7 P% d k- o

struct PieceCylinder

5 g( }$ x: l5 p$ g. Q" e/ U; }" o* P7 n

{

( P# \+ V1 \* K+ i

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

. i. e+ E" X) P/ g2 X

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

. ^& C9 i$ f% G8 g" J% A

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

7 s* e- d0 s' P ?9 L& _6 F

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

" A# I W9 A& ^, l- m, j

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

# [* e* ^) @- f0 ?

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

* j( h$ s$ N8 F$ R% `

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

( i, l+ _" p5 i0 C5 z+ L9 d4 a" {! n

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

6 U, \3 I( \8 a+ W: ~

};

. X9 T8 {4 Z5 J) B2 f: H1 @

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

2 [, P$ ?8 Q! u& r6 V( {$ E

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

6 U$ C' u, n3 F$ |1 u

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

! V! J) r6 ?% {2 @7 Z+ }

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

- r9 {+ B% g6 L& S9 s

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

0 M: |* w. N% ?# l* @6 G9 h+ w. T

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

3 K6 I9 e; C6 X) j# c

存储。

6 R/ }3 R; F8 r( l

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

, n" }) w G. b2 \* z0 a! E$ m

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

, \& ~; @: z* [ ~

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

5 ?+ t4 ^2 e% X. Q; _, @; y* B6 q

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

9 F4 \1 z. D# R& t c% ?% |

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

, A. _* \/ P2 ?6 L& ?

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

9 N$ O' w8 I( q, _

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

8 M& N( I! Q- \ E

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

7 X' {) |8 o7 ^7 K( o$ u7 B+ ~6 \

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

6 A- R. m7 c7 Z0 v

运行实例 

9 ^9 x# `9 {8 M2 C

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

[ D+ ~0 F% K2 r; c$ e' E

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

( o9 S; s# A7 i8 j! M& C

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

2 Q" b$ S" U, ~: k n3 M

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

3 L2 W5 }* {+ V: X

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

* R) O! ~" k, M. u: Z y

G72粗车过程中截图。

1 ]: u/ d8 `% U: Q

O1234

. _) z& J0 O4 Q t# o v3 v$ w% \

Sffice:smarttags" />1200M3

" h8 J# S5 M9 u

T0101

0 U K+ A% T0 x; V% C

G50X100Z50

5 `: i5 G. Z k4 M1 z7 V" m5 b

G0X80Z5

& S* B# r* }' W6 @

G71U3R0.2

# E" S/ J$ ]& W/ a2 {

G71P00Q60U0.2W0.1F200

* O+ o4 |( ]' G! t G4 {

N00G0X6Z1

# Z$ k% Z/ e. O/ n8 }% o

N10G1X10Z-3

' q1 m' Q" D; X6 i

N20G1W-15

6 R! h' n9 {% X [$ T( |

N30G2U30W-15R15

Z7 l4 x" N7 ?( X/ _" n

N40G1W-30

0 n. U" x5 i5 J7 D! G

N50G3U30W-15R15

- F* U6 c6 _% ~5 j

N50G1U10W-10

* ]- b: m3 \0 q# P x0 I; O

N60G1W-70

( }7 K k! c/ D! N: j# q3 r$ g

N70G0X100Z50

# _& m: ^. q7 x

G0X30Z5

3 z$ b2 ], o+ D

G70P10Q60

/ I: g) ]3 f4 Y7 V

G0X120Z20

5 C# N5 l: {7 b" B2 a4 B- k A

M30

/ ~ D9 H; k' X# J) I9 N1 f

. h9 g; S, Q, P

O1235;G72横向切削复合循环

, c4 d# i6 g# E/ h

S1200M3

% ]" ?1 O( L1 p1 u# s: r$ P4 i

T0101

5 z, ]8 e# m* X8 |# N! G5 p# Z8 c! I( {

G50X50Z50

* r( ?' k! e3 Y+ k+ L1 d

G0X32Z5

) [& ?0 O. U4 f( O- j9 y4 L7 ]

G72U2R0.2

N1 H$ Q: e, Q3 K- A0 R1 ^' y

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

% F; t! j4 [$ \& ?3 q; M

N10G0X80Z-80

2 N* B9 \6 A# l8 B1 x

N20G1X60Z-70F100

% s" Q( {1 e- z E0 s

N30W8

* P- A$ }2 @+ U$ }

N40G3X30W15R15

( @) S$ i5 H1 f, k# S) `* T

N50G1X18Z2

2 ]7 |- t2 k1 G

N60G0X100Z50

( t, V1 B" M5 n4 s

G0X30Z5

: @4 c8 y/ J- [3 z1 E

G70P10Q50

: X' T3 k5 e* W

G0X100Z50

$ C5 ?7 {' s7 Y( s

M30

* m6 k( J# _$ }' Q

+ t) Q) B t' Y% B0 A( n( h

结论 

8 q" D6 g S8 O/ n

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

9 a2 W W2 h1 d& y) ?' Y6 d

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

: Q1 k* m7 S& q. z! H: {, B

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

- f6 z$ }) K) o

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

; F1 O& n0 b5 _/ Z" [' y

 

本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-26 13:07 , Processed in 0.057061 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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