用delphi二次开发AutoCAD的新技术—— ActiveX Automation
山东巨力股份有限公司 尹兆兵
---- AutoCAD R14.01版本提供了ActiveX Automation 技术,ActiveX 是微软制定的一种实现程序间通讯、
调用的软件复用规范,它提供了一种控制AutoCAD的机制,即凡是AutoCAD中每一个裸露的对象,如circle、
line都可以用VB、Delphi等支持ActiveX的语言来控制。每一个对象都有其相应的特性、方法,可以读取
或改变其特性,可以用方法来控制对象的动作。利用该项技术做AutoCAD二次开发,或者编写基于AutoCAD
的数据库程序,有着显而易见的优越性,尤其与专用语言autolisp相比。毫无疑问,ActiveX Automation
技术为AutoCAD业已丰富的二次开发又提供了一个崭新的天地。
---- 我厂在CAPP(工艺辅助设计)软件的开发中,应用Delphi4语言,利用AutoCAD的ActiveX Automation
技术,从数据库中读取数据,直接写到AutoCAD文件中,实现了工艺卡片的自动生成,获得了令人满意的
效果。下面以《机械加工工艺过程卡片》的生成为例说明具体的实现。
---- 首先,实现对AutoCAD的控制,AutoCAD本身是一个OLE自动化服务器,Delphi4用Olevariant类型的
变量来引用OLE自动化对象,进而访问自动化对象的特性和方法。首先创建AutoCAD自动化服务器,设
AutoCAD对象的变量为a,子对象之一document,即文档(图形文件),变量为ac,其创建如下:
a:=creataoleobject('autocad.application');
ac:=a.activedocument;
---- 在工艺卡片的生成过程中,最主要的是往工艺表格内填写工艺内容,插入工序简图,以填写工艺
文字为例,va是三维可变数组,用以确定工艺文字的起始坐标;text1、am是variant类型,其中am是
从属于document的modalspace对象。
va[0]:=0;
va[1]:=0;
va[2]:=0;
text1:=am.AddmText(va2,39,table2ljth.value);
text1.height:=3.5;
---- 上述代码实现了在坐标(0,0,0)处写工艺库记录某字段的内容。 本程序在win98/delphi4.0
下通过调试、运行。
到网上搜索一下嘛。