位置:51电子网 » 技术资料 » 控制技术

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

发布时间:2008/9/4 0:00:00 访问次数:774

江苏泰州市德基数控机床技术部

  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

 

江苏泰州市德基数控机床技术部

  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

 

相关IC型号

热门点击

 

推荐技术资料

自制经典的1875功放
    平时我也经常逛一些音响DIY论坛,发现有很多人喜欢LM... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!