用ActiveX Automation技术开发线切割数控自动编程系统

时间:2008-09-04

  1 前言

  目前,国内线切割自动编程系统采用的操作平台绝大多数为DOS版本,采用语言开发程序,周期长、工作量大,技术开发工具较落后。国内有在AutoCAD R12.0版本上开发自动编程,也为DOS版本,操作平台也较为落后,并且编程相当复杂。

  AutoCAD R14.0是在Windows95/NT多窗口多任务先进操作平台下用Visual C++开发出来的,是目前世界上的绘图软件,利用其强大绘图功能完成自动编程的图形输入相当理想。

  同时,AutoCAD R14.0支持微软的ActiveX Automation技术,其显露出大约70个对象300多种属性给Automation Client(客户),ActiveX Automation技术可以用Visual Basic 6.0程序来直接在AutoCAD图形中提取图形实体(如直线、圆弧)的属性(如起点、终点、圆心等坐标,圆半径等),并可操纵实体。随着多任务多窗口操作系统的发展,线切割自动编程也必须紧跟当代先进计算机技术的发展,脱离单任务单窗口的DOS版本。因此,在AutoCAD R14.0中用ActiveXAutomation技术开发数控自动编程系统很有意义。

  2 AutoCAD R14.0的ActiveX Automation技术简介

  ActiveX技术是一组基于构件对象模型COM的技术集合。ActiveX Automation是OLE(Object Linking and Embedding,对象链接和嵌入)自动化技术的扩充和发展,它适用于OLE对象与ActiveX对象。Automation技术允许一个应用程序操纵另一个应用程序中实现的对象,从而可被操纵。AutoCAD R14.0的ActiveX Automation对象模型如图1所示,所有的对象组成一个层状结构。层是Application对象,其他对象都是Application子对象。与本自动编程有关的AutoCAD R14.0的Automation对象.

  (1)Application对象。Application对象有许多属性和方法:ActiveDocument属性返回当前文档, ActiveDocument对象是AutoCAD正在编辑的图形;Preference属性返回对象,返回对象等价于Preferences对话框。

  (2)Document对象。Document对象是AutoCAD当前正在编辑的图形,它可存取所有的AutoCAD图形与非图形对象。 ModelSpace和PaperSpace属性可存取图形对象(如直线、圆弧、多义线等),非图形对象可通过属性Layers、LineType、 TextStyles等存取。Document对象方法有文件的存储与打开。AutoCAD的图形或非图形对象都可以对象集合 (CollectionSet)的形式存在,通过对这些对象集合的操作,可遍历到当前图形中所有的对象。

  (3)图形对象。AutoCAD的图形对象被称为实体(Entities),是图形的可见对象。包括Lines(线段)、Arcs(圆弧)、Polylines(多义线)、Dims(尺寸标注)等。可使用ModelSpace和PaperSpace的AddEntityname方法产生一个新的图形对象。图形对象的编辑可通过图形对象自身的方法(Copy,Erase,Move,Rotate等)实现。一些图形对象的典型特征可通过对象属性进行修改,如Color(颜色)、LineType (线形)、Layer(图层)等。

  (4)非图形对象。非图形对象是指图形中不可见对象。包括Dimstyle尺寸标注风格,LineType(线型)、SelectionSet选择集等。

  (5)Preferences对象。可查询和设置Preferences对话框,该对象也是Application对象的子对象,它的主要功能是进行交互输入和类型转换。

  3 AutoCAD R14.0的ActiveX Automation技术编程设计

  AutoCAD R14.0的ActiveX Automation技术编程设计流程图如图2所示。

  图2 程序设计流程图

  3.1 设置应用程序全局变量

  一个Visual Basic 6.0应用程序包括三类模块:窗体模块、全局模块、类模块。为提高程序的健壮性和运行效率,将Application对象、Document对象、ModelSpace对象和PaperSpace对象定义为全局变量。

  3.2 将Application对象与AutoCAD程序链接

  Application对象是VB应用程序与AutoCAD之间链接的关键。只有通过Application对象才能获得Document对象、 ModelSpace和PaperSpace对象。将Application对象与AutoCAD链接是为AutoCAD开发ActiveX Automation应用程序的步工作。

  Application对象与AutoCAD链接的代码如下所示。如成功则返回Application对象,否则利用信息框反馈错误信息。

  Dim acadApp As Object

  On Error Resume Next

  ‘返回Application对象

  Set acadApp=GetObject(,"AutoCAD.Application")

  If Err Then

  Err.Clear

  `如果在AutoCAD没有运行,则强迫AutoCAD启动

  Set acadApp=CreateObject("AutoCAD.Application")

  If Err Then

  MsgBox Err.Description `反馈错误信息

  Exit Sub

  End If

  End If

  acadApp.Visible=True

  得到了Application对象,就可调用相应的方法与函数。调用ActiveDocument属性可得到当前的Document对象。调用Preferences属性可得到Preferences对象。

  3.3 使用Document对象

  AutoCAD属性的Document对象是进行图形编辑的层对象。Application对象的ActiveDocument返回一个Document对象,它是当前正在编辑的图形。下面的代码产生一个新的Document对象。

  Dim acadDoc As Object

  Set acadDoc=acadApp.ActiveDocument

  当得到Document对象后,就可使用它的方法和属性。

  3.4 零件图形输入及处理

  在AutoCAD中按零件图纸尺寸输入零件图形,可利用本文开发的“绘图点线圆及工具”菜单和“绘图点线圆及工具”按钮图标方便地实现。将零件图形编辑成多义线,加入放电间隙量,加入穿丝线,零件图形处理完毕。

  3.5 构造AutoCAD选择集

  将正在编辑的图形的直线和圆弧构成一个选择集。其中选择的、第二元素(实体)顺序必须为图形的加工方向,段实体可为穿丝线。构造AutoCAD选择集代码如下:

  Dim sset As Object

  Set sset=acadDoc.SelectionSets.Add("ss1")  ′构造新选择集

  Sset.SelectionOnScreen  ′在屏幕上选择直线圆弧实体

  3.6 确定选择集的、第二段元素的加工起点、终点坐标

  、第二段元素的起点、终点是根据绘图的顺序确定,根据段与第二段元素的相连点,确定出加工方向的起点、终点坐标。

  3.7 对所有选择的实体进行排序

  确定了加工方向的第二段元素的终点,再依次搜寻与加工方向第二段元素终点相连的直线或圆弧,作为加工方向的第三段元素,根据加工的第三段元素(实体)的终点再搜寻与其相连的下一段元素(实体),……,直到排序完所有加工方向的实体。

  3.8 生成3B数控加工代码或ISO代码

  排序的同时,得到了各段排序实体的几何数据,如加工方向直线的起点、终点坐标;圆弧的起点、终点、圆心坐标,起始角、终止角,圆弧半径,圆弧方向等。

  根据加工直线圆弧的数据,可方便地生成3B数控加工代码或ISO代码。

  4 应用菜单及按钮图标的开发

  一般自动编程绘图有12种直线、16种圆弧和4种点。可利用AutoCAD的菜单文件方便地扩充AutoCAD的功能。本文用写字板编辑程序调出菜单源文件Acad.mns,在“帮助”菜单后按照菜单的标准格式增加菜单“绘制点线圆及工具”项,即生成所需的应用菜单。

  利用AutoCAD的按钮图标开发工具,即下拉菜单中的“View/Toolbars”菜单选项、“Toolbars”对话框、“New Toolbar”对话框、“Customize Toolbars”对话框、“Button Properties”对话框、“Button Edit”对话框,可生成按钮图标并挂上所要执行的命令。

  5 Visual Basic 6.0程序文件的生成

  在Visual Basic 6.0下建立如图3所示的工程1(自动编程.vbp),其中3B指令显示.frm窗体是用RichTextBox文本控件制做的写字板,用来显示生成的3B指令,并对生成的3B指令进行保存。加工仿真.FRM窗体用来显示加工仿真的图形。自动编程.bas模块是对AutoCAD进行处理的主要模块。该工程生成可执行文件R14_3b.exe,外挂在Acad.pgp程序中,即可在AutoCAD中执行。

  6 编程实例

  在AutoCAD中输入如图4所示的图形,将图形编辑成多义线,加入放电间隙及穿丝线。用鼠标单击“3B”图标按钮,再单选穿丝线为段实体,穿丝线左边为第二段实体,再用复选框全选整个图形后,按鼠标左键即可生成3B代码。

  7 结束语

  在AutoCAD中用ActiveX Automation技术开发数控编程的周期短;开发工具及技术平台先进,编程简单;使用菜单和按钮图标,绘图简单易学,用户界面和通用性能好;可在同一个*.dwg文件中绘制多个零件图形,分别生成加工指令;利用多窗口特性,可不退出系统,查看生成的3B指令、AutoCAD编辑的图形和加工仿真图形,非常方便。计算机的配置也较简单,能较好地满足自动编程的要求。


  
上一篇:差分放大器测量高电压
下一篇:浅谈数控线切割机床的选型

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料