技术中心
 
 

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

   日期:2008-09-30     来源:中国测控网     作者:管理员    

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

图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

图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代码。

2

图4 编程实例

7 结束语

  在AutoCAD中用ActiveX Automation技术开发数控编程的周期短;开发工具及技术平台先进,编程简单;使用菜单和按钮图标,绘图简单易学,用户界面和通用性能好;可在同一个*.dwg文件中绘制多个零件图形,分别生成加工指令;利用多窗口特性,可不退出系统,查看生成的3B指令、AutoCAD编辑

 
  
  
  
  
 
更多>同类技术
 
全年征稿 / 资讯合作
 
推荐图文
推荐技术
可能喜欢