返回
AutoCAD

在AutoCAD R14.0中用ActiveX Automation技术开发线切割数控自动编程系统

2008-05-0662
摘 要  介绍了AutoCAD R14.0的ActiveX Automation技术及其有关自动编程程序的设计技术,在AutoCAD R14.0集成环境下实现菜单及按钮图标开发的方法,并给出了实例编程。

关键词  WEDM 自动编程 AutoCAD ActiveX Automation技术 开发

Abstract  This paper introduces the ActiveX Automation techniques of AutoCAD R14.0,the program design skill of the developing automatic program,the method of the developing menus and button icons in the integrated environment of AutoCAD R14.0,and gives a program example.

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 AutoCAD R14.0的ActiveX 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中执行。

图3 应用程序VB6.0工程的建立

6 编程实例

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

图4 编程实例

7 结束语

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

标签: 数控 自动 编程 系统 技术开发 对象 AutoCAD 图形 Automation
  • 举报
关闭
同类资讯头条
  • 账号登录

其他方式登录