找回密码
 注册会员

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 217|回复: 0

[资料] 基于AutoCAD的数控图形自动编程系统

[复制链接]
发表于 2011-7-13 23:52:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转磨削论坛

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

×
1 引言
3 K) Q& I, C- v0 a' k0 z/ z: @2 A  数控技术作为现代制造技术的一项关键技术,它是有效提高机床生产效率、保证加工精度稳定和一致性的重要手段。目前,以美、日、欧为先驱,许多国家都在全力研制新一代开放式CNC高档数控系统,国内已有西北工业大学、北京航天航空大学、浙江大学等一些单位也在进行新一代基于工业个人计算机(Industrial Personal Computer,简称IPC)数控系统的开发与尝试。随着IPC数控系统的研制成功,其中数控系统软件的设计将更具开放性和易扩展升级的特点。为此作者选用“奔腾”PC机硬件平台、Windows95操作平台、AutoCAD for Windows开发平台、Visual Basic(以下简称VB)开发工具,研制适于工业PC机数控系统上使用的数控图形自动编程系统。该系统具有可移植性好,功能易扩展升级,操作、使用、维护简便等特点,本文对系统研制的主要内容予以介绍。
( ^7 n* o) {& |: e- U! V2 系统的框架结构和功能
) i# k' z8 [5 |% [% B( v& `  系统框架结构如图1所示,它主要包括AutoCAD图形生成、图形数据信息输入、工艺干预、NC代码生成、动态校验和数控加工程序输出六个功能模块。其中图形生成模块由AutoCAD完成;其余模块均为基于AutoCAD平台采用VB开发工具研制而成,功能如下:4 n  c4 a# R8 x1 \/ J( A4 O- V1 G2 J
20083811346.gif
* u! q. u" _  C4 ?; Q& n图1 系统总体框架结构4 O$ R! O# |: y; T1 Y4 T
  (1)图形数据信息输入:它是AutoCAD实体建模后首先进入的功能模块。具有AutoCAD图形交换文件DXF接口,读取DXF接口文件为自动编程系统准备必要的图形数据;/ N. T0 i+ Q( n6 s
  (2)工艺干预:它是继(1)步操作后对图形数据进行再加工的核心模块。工艺干预内容包括轮廓和点位两种方式,干预过程通过鼠标事件求鼠标干预位置与实体的最短距离实现。考虑到零件尺寸大小变化,本模块还具备视口放大和满屏显示的辅助功能,便于进行有效干预;
$ x6 O. j8 M6 b! s  (3)NC代码生成:经过工艺干预即确定刀具走刀路线后,根据ISO数控代码格式便可将图形几何信息和工艺干预信息转换成ISO标准数控加工程序代码。同时以“?.NC”形式文件名永久保存;
$ n: c+ ~; c# t' ]7 k8 G  (4)动态校验:上述生成的NC代码是否正确还要进行校核和检验方能制作控制介质输出,本模块采用逐点插补算法进行动态模拟检验ISO数控加工程序代码是否正确,以及刀具与工件是否会发生干涉等。如果检验不正确则需对上述各个环节进行反复调试直到正确为止;% q# W! y  G: _4 @
  (5)数控加工程序输出:经调试和校验后正确的数控加工程序可以通过拷贝、打印的方式输出。
& M2 t' t4 ~2 j  p: p3 软件设计过程# X: X+ i/ B" }& h" P4 f% Y
  构成图形自动编程系统的主要功能模块有图形信息输入模块、工艺干预模块、NC代码生成模块以及校核检验模块。以图形信息输入模块为例说明VB程序设计的过程。
$ f( s1 |& h) i+ v! g  (1)实体数据类型变量定义! r  j5 D7 Z* R3 [! U3 O: v
  系统对点、直线、圆弧和整圆四种实体采用通用数据类型结构定义几何信息,该类型的全部元素均为字符串型变量,在图形信息输入模块中主要保存读取实体的几何信息。具体以数组MM(200)变量来保存,这里要求实体数目最多不能超过200个。即
. q7 b$ w/ i" p4 e  |6 y9 N2 kType ENTITIES-TYPE
/ `6 u7 w7 z* O5 y9 W# K′实体形式数据类型名:! ^8 Y, ]' E# V' y3 n! v- b& O
  ENTITIES-TYPE;
% x8 \& U4 d4 ^9 K  STYLE As String+ H4 f+ p5 R/ y2 m" t4 j( V
′实体类型变量(其值为LINE,ARC,CIRCLE);- |) j5 ~7 e: m9 W8 L
  X1 As String
$ L* U5 v9 F. L  {" P' s′实体的起点坐标分量x;" ~! I; `3 A, O8 m# b9 I$ R
  Y1 As String$ b7 n) x/ t4 n# K4 e, ~2 N
′实体的起点坐标分量y;3 M9 l$ a: u" y! G# y: E6 f
  X2 As String: v  U# e6 a) H
′实体的终点坐标分量x;
( |1 h% f6 B' N( D/ J/ _  Y2 As String
  B8 z" F- \) j5 s( q6 Z$ H′实体的终点坐标分量y;5 F! x' N5 m% H; i& h9 H/ Z( b3 E
  X3 As String4 y5 ?) J+ A6 A. H
′实体(圆弧或圆)的圆心坐标分量x;
4 J  Q: P7 s2 t0 q& ?  Y3 As String: x- r4 c* g4 U2 v
′实体(圆弧或圆)的圆心坐标分量y;; G5 }9 j7 Q0 G& a! y* L
  R1 As String
) h5 V6 A0 [" Z′实体(圆弧或圆)的半径R;
; P# {3 h! I3 ~0 l0 r0 T6 G  WISE As String
. M& c) i8 y3 K% u0 m3 H6 Y′实体(圆弧或圆)的顺(=0)、逆(=1)方向;' L% }4 E# N9 P* r  R& g
  ANGLE1 As String, y& _; L9 t: [7 ~
′实体(圆弧或圆)的起始角;. M; b) ?, c* _. g5 P7 H! i2 q0 A
  ANGLE2 As String/ Z$ v* R, `% W' `
′实体(圆弧或圆)的终止角;
! i# p5 @3 l$ tEnd Type8 k0 X& Z- m* S8 d9 ?2 Y$ H9 V
Global MM(200) As ENTI-
& H% E! V4 r/ M5 F  O9 r; x  T0 U  CTIES-TYPE& P( L/ m: w2 i
′定义一维数组MM全局变量,其元素为ENTITIES-TYPE
1 Q# |, N7 V9 i: G′型变量,实体数目最多不能超过200个。
& n8 I+ ]9 q! L8 {  (2)DXF文件的读取程序9 D8 V# Y! u6 T* k% t/ I% [
  结合当今微机平台上广泛使用的AutoCAD图形软件包,本文采用这一平台开发的图形自动编程系统,可以充分发挥AutoCAD的强大实体建模功能,同时缩短软件开发的周期。本系统使用需首先进入AutoCAD图形系统绘制零件实体,当零件绘制完毕,便以图形交换文件DXF输出,然后进入图形自动编程系统启动图形信息输入模块,读取图形信息。下面介绍零件实体几何信息提取的程序设计。
! c* H5 x, q% }+ u  V+ C- L( S& G  DXF文件是具有专门格式的文本文件。一个完整的DXF文件由四个大段和一个文件结束标记构成。每一段的开始部分由四行组成:即DXF的组代码0和段标记SECTION,组代码2和段名各占一行,中间部分是段的实际内容,而段结合部分由组代码0和文件结束符EOF两行组成。DXF文件具有每个数据均占一行的特点。但是由DXF文件生成图形仅需实体段(以ENTITIES为段名)和文件结束标记。通过分析DXF文件的格式,现以VB编写的源程序说明读取DXF文件实体段几何信息的过程。$ F- D, H$ |1 ]- G8 \7 S5 g
Sub DXF-IN 0
' z: G7 S  }9 D. b0 t  ^! M9 DDim A As String:Dim B As STRING:Dim CC As ENTITIES-TYPE:Dim i,il As Integer
, R2 [$ u- ~, l& N: G& }& s+ i& YOpen FILENAME1 For Input As #1, h2 E' f8 P7 F+ o9 L6 M* i2 T- q
  Do Input #1,B) e2 O2 p0 ]9 H, U% e- u" @
  Loop Until B=“ENTITIES”
6 B/ q* D4 L8 l$ q4 b3 n: J" m4 e. ?  Seek #1,Seek(1)5 z1 s* Y/ Z/ W
  Do While Not EOF(1)
) N& y( v0 c. X, Z$ Z) w   Do Input #1,B' w8 x5 D+ u, `8 q- c3 b7 n( b$ B
   Loop Until B 〈〉“0”7 G% ~# o; _' m# p! U. X0 M
   i=i+17 W) I( O; c  u1 X9 ~4 w) G0 [6 G
   Select Case B' A: V% L6 T- A, A2 H& A
      Case “LINE”
. |* R" k" B" u( ~% a       INDXF-LINE 1
0 N6 P. D, G0 Q' x6 v       CC.STYLE=“line”2 u8 t, k* C- x
       CC.X1=Str$(x1)+ ^" _7 ^9 D9 }
       CC.Y1=Str$(y1)/ h- Y7 Z0 c) }  j' N: b5 K9 e
       CC.X2=Str$(x2)) R% }7 B. p- d. ^, _* E/ L( t1 o
       CC.Y2=Str$(y2)3 d7 K) b2 g4 z2 Y/ x
       xx1=x2
0 ^3 K+ a3 ~0 V. t& u; M4 E     Case“ARC”
/ |$ ~1 t' }" i; e% r" `( j% o       INDXF-ARC 1! W4 \; \9 n( F6 D8 ?! Q0 {( a
       CC.STYLE=“ARC”
: F; O2 t. O; j/ _       CC.X1=Str$(x1)
/ x* i  G$ V& n% p4 f7 I. r       CC.Y1=Str$(y1)
1 b) T4 g+ E( V  h' l       CC.X2=Str$(x2)
, z" X5 v5 N- Z0 X$ `  k0 D7 M, p: x       CC.Y2=Str$(y2)
% @  v  @: }' `4 R# }       CC.X3=Str$(x3)
, e4 F* P% o$ `: x$ H7 e7 B4 N       CC.Y3=Str$(y3)6 R$ n/ g: c* N* q. p
       CC.R=Str$(R)
1 h. r) p5 R+ j# D5 a0 I       CC.ANGLE1=Str$(ANGLE1)/ s5 L8 \. _9 E. o2 a& E
       CC.ANGLE2=Str$(ANGLE2)6 _1 Q' B: z: L8 E$ H& F) Z. W" ?+ N
       If Abs(x1-xx1)>.5 Then+ ]+ x, z: e' j$ G
        CC.WISE=“0”# C. O- c. I# E7 K* V, b
        A=CC.X1:CC.X1=CC.X2:CC.X2=A( n. r7 i" v8 [
        A=CC.Y1:CC.Y1=CC.Y2:CC.Y2=A  i; ]- f- t/ B
        A=CC.ANGLE1:CC.ANGLE1=CC.ANGLE2:CC.ANGLE2=A
/ m$ b" |7 Q0 G% v# z         Else CC.WISE=“1”( b6 M5 P/ F8 b7 a1 P4 y
      End If xx1=x2
" L4 q/ ?9 q" E7 y2 q* a2 ?3 V    Case“CIRCLE”
# p* Y. V2 E* [1 T( @7 p      il=il+13 C; @. p, a3 U  N- a& O( Z
      INDXF-CIRCLE 1/ k' _: Z+ A4 c. z) `' \5 h7 ?
      CC.STYLE=“CIRCLE”8 `8 o0 J; l1 p  F/ e: |6 b5 x
      CC.X1=Str$(x1), m1 h4 w( k. g! {
      CC.Y1=Str$(y1)) v5 o7 G: }0 N; j
      CC.R=Str$(R1)* `8 }5 y$ w" m6 r5 }  m
      CC.X2=CC.Y1
( D& A& Q4 p7 Q6 [4 d4 v8 Q      xx1=x1
$ B0 P/ K1 }$ o/ [    Case“POINT”  y3 `9 Z; a$ J% L- \6 ]
      INDXF-POINT 1' ?- a1 V. W, S! d: A
      CC.YSTYLE=“POINT”
" p1 o! ]( G( b$ [0 s" T1 i" b      CC.ZHX1=Str$(x1)
% C# n! C# _, z: E0 j      CC.ZHX2=Str$(x1)
; c: N9 M! o) Q8 Q8 X; d  N9 v( b) f      xx1=x1( I$ o& s" G/ V2 m9 e3 l. c/ K4 M$ M7 C+ E
    Case Else  T8 @; @" V' @. ~- Y. ?
      CC.STYLE=“NONE”
/ k  P$ ?7 f0 l  \( v End Select
, Y2 f7 R, n: L9 {3 `1 t) K Seek #1,Seek(1)( }3 D5 e/ N$ ]1 i' \* V
 j=Str$(i)& s8 T# Y* C1 [  d: [* U4 u
Loop+ N, i9 o/ v" w. O% x0 e3 U. d
Close #1
- E" x7 ~* }# g9 T% O8 j. z' NEnd Sub
& v, u3 K( D* Z) i9 \3 `  其它模块的程序设计不再赘述。6 H1 M( m; u: J
4 实例
+ A# R4 b6 }: t+ s" K1 @  本文以二维零件数控铣削加工为例,首先进入AutoCAD绘制零件轮廓如图2所示。经图形交换文件DXF传输到系统后,工艺干预可得沿图示1-2-3-4-5-6-7顺时针方向走刀的ISO数控加工程序,且此程序已顺利通过校核检验。7 N0 y, m! J0 B
 N0001: ~2 P% \' y+ \" b+ u
G90 G92 X0 Y0 S500 M03 LF4 ]- C6 y1 B  n6 r7 u8 ~0 f4 }
 N0002
5 u; a' z" C4 O4 n6 pG01 X1 Y1 LF
5 ]4 M( [2 e; N/ K N0003
8 I0 G. y! v' F) J! kG01 X1 Y61 LF2 Y& C1 Z, p9 z, m
 N0004" a# J1 `* d2 ~$ l5 W
G01 X41 Y61 LF; e( m: z5 H' t  I8 j9 C
 N0005
# n) z, c4 H* N% _  z6 @G02 X61 Y81 R20 LF% h! z8 s8 m% Y# e
 N0006+ X& P, }8 t& e8 X: ]8 Z0 U1 A  O
G02 X101 Y81 R20 LF
% z3 u# A& I" z7 ^6 d! a N00074 I  e1 O; y* a  [
G01 X141 Y81 LF" S# _$ ~" e5 ~7 S& G+ X
 N00083 n+ \; H1 c$ m. L- X
G01 X141 Y1 Lf2 b, f2 x0 f! `: b& t8 Z
 N0009! W9 r! K2 L) b: R5 ^+ U+ i0 I1 k
G01 X1 Y1 LFM
# b5 }4 G7 _% C: M4 U5 ` N0010
% M1 f. _& N, F: A# }: R02 EM
: s0 r2 A1 A2 N# o5 l: N) D% r" ? 2008381147.gif $ o) L4 y6 K5 n: L  o  k- |/ a
图2 AutoCAD绘制零件轮廓* p! }/ b  I; O" T$ j! @
5 结束语& B4 Y9 U5 Z. A) ~# k  J
  由以上实例可得如下结论:
% @  }2 W  H6 N! |& Q) c  (1)本系统基于AutoCAD平台成功地实现了二维轮廓零件的数控自动编程,从而弥补了繁重手工编程带来的许多缺陷;: k7 W: N' y  J* j
  (2)该系统既可单独作为图形自动编程系统使用又可作为工业PC机数控系统实现自动编程的功能模块;
. t3 P3 q. D: n, h0 _6 n( r' p9 u  (3)本系统一旦与CAPP系统结合,便发展为微机平台上的CAD/CAM一体化软件;
2 y4 Y* T; x* b, {8 Z1 |  (4)添加刀具半径补偿功能后本系统将能实现刀具偏置自动补偿;8 M, \3 A; h- O2 g8 N5 z4 a& @4 O
  (5)研制本系统是PC微机上实现自动编程的有效尝试,功能有待补充和完善。
& {! o& p' t$ z9 r6 _& d' |文章关键词:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

中国磨床技术论坛
论 坛 声 明 郑重声明:本论坛属技术交流,非盈利性论坛。本论坛言论纯属发表者个人意见,与“中国磨削技术论坛”立场无关。 涉及政治言论一律删除,请所有会员注意.论坛资源由会员从网上收集整理所得,版权属于原作者. 论坛所有资源是进行学习和科研测试之用,请在下载后24小时删除, 本站出于学习和科研的目的进行交流和讨论,如有侵犯原作者的版权, 请来信告知,我们将立即做出整改,并给予相应的答复,谢谢合作!

中国磨削网

QQ|Archiver|手机版|小黑屋|磨削技术网 ( 苏ICP备12056899号-1 )

GMT+8, 2024-9-17 10:16 , Processed in 0.132689 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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