教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教学研究 >

用Delphi进行AutoCAD二次开发的研究

来源:网络收集 时间:2026-09-29
导读: 第21卷2001年5月 文章编号:1001-9081(2001)05-0080-02 计算机应用ComputerApplicationsVol.21,No.5May,2001 用Delphi进行AutoCAD二次开发的研究 黄 玲,李陶深 (广西大学计算机与信息工程学院,广西南宁530004) 摘 要:本文论述了以Delphi作为开发工具,使用Auto

第21卷2001年5月

文章编号:1001-9081(2001)05-0080-02

计算机应用ComputerApplicationsVol.21,No.5May,2001

用Delphi进行AutoCAD二次开发的研究

黄 玲,李陶深

(广西大学计算机与信息工程学院,广西南宁530004)

摘 要:本文论述了以Delphi作为开发工具,使用AutoCAD2000的ActiveAutomation提供的接口来访问和控制AutoCAD对象的具体方法和实例。

关键词:AutoCAD;Delphi;ActiveXautomation中图分类号:TP311.52  文献标识码:A

1 引言

AutoCAD2000继承了AutoCAD一贯的开放灵活的风格,

者。自动化服务器中包含了一系列的暴露对象(Exposed

Objects),这些对象又包含了一些函数,被称为方法与属性。方法是自动化对象的一些函数,它们是提供给客户程序的外部公共成员函数。属性是自动化对象的一些命名特征,即对象的一些公有数据域。

AutoCAD2000中的ActiveAutomation所提供的编程接口,使用户很容易地用各种ActiveX客户编程语言(如VB、Delphi等)来定制AutoCAD。它可用于在Windows环境下的应用程序操作AutoCAD中的对象,如在AutoCAD中建立视图、指定和提取扩展数据、向外设输出图形、为AutoCAD增加专业对象等。采用VB、Delphi等编程语言,可以实现Windows平台上诸应用程序的无缝连接,从而可以将所有程序都集成在统一的操作环境中。

对于用Delphi开发AutoCAD自动化程序而言,ActiveAutomation技术使得AutoCAD被登录为一个Delphi可以访问的对象。该对象还包含了具有层次结构的各种子对象,它们都有相应的方法和属性供用户调用。Delphi通过访问AutoCAD的这些绘图对象和非绘图对象,从而实现特定的功能。AutoCAD2000的对象模型如右图所示,最高层对象为AutoCad.Application,其属性反映了AutoCAD主应用窗口的属性,并含有两个子对象Preference和Document。Preference子对象等价于AutoCAD的Preference对话框,包含了AutoCAD的系统参数设置。Document子对象包含多级的子对象,是图形文

向用户提供了传统的面向过程的开发工具,如:ADS/ADXRX

(结构化的面向过程的开发工具)、Autolisp(解释型的过程语言),同时也推出了以面向对象技术为主的全新二次开发工具,如:ObjectARX(面向对象的C++开发工具)、ActiveXAutomation(面向对象的解释型开发工具)、VisualLisp(面向对象的Lisp开发环境)等。其中,ActiveXAutomation丰富了

AutoCAD的API,为AutoCAD进行二次开发开辟了新的途径,

使程序员可以使用各种面向对象的高级开发语言,实现对AutoCAD的二次开发。Delphi是Inprise公司推出的基于ObjectPascal语言的可视化集成开发工具,是RAD最完美的体现。AutoCAD2000在其发行的CD盘的随机文档中介绍了大量用VB和Excel写的ActiveXAutomation的例子,而用Delphi写的ActiveXAutomation程序则在公开发表的文献中极少述及。笔者在这方面进行了有益的探索和实践,实现了Delphi通过ActiveAutomation来驱动AutoCAD以完成其二次开发。

2 ActiveAutomation技术简介

ActiveAutomation技术是微软提供的API和一组规范,具有组件对象模型(COM)的特征。它由客户程序和服务器程序

组成,客户程序是操纵者与控制者,自动化服务器是被控制

  收稿日期:2000211208  基金项目:广西自然科学基金项目(桂科自9912009)资助  作者简介:黄玲(1975-),女,广西南宁人,助教,硕士,主要研究方向:分布式数据库、CAD; 李陶深(1957-),男,广西邕宁人,教授,主要研究方向:CAD、工程数据库.

以采用MDX语句很容易地进行,MDX语句是专门用于对多维对象进行访问的语言,它沿袭了SQL语言的形式并对其进行了扩展。另外用户可以使用Excel辅助分析,对数据进行切片、切块、上钻、下钻、旋转等操作,并可以通过图形、报表的形式直观地呈现。

定的推广价值。

参考文献

[1] BansalSK.

Realworldrequirementsfordecisionsupport—

ImplicationsforRDBMS[A].ProcofACMSIGMOD′95[C],1995.[2] 王珊,等.数据仓库技术与联机分析处理[M].北京:科学出版

社,1999.

[3] RogerJennings.VisualBasic6数据库开发人员指南[M].北京:机

4 结束语

本文所提出的OLAP解决方案采用了OLAP引擎,并根据用户需要定制数据抽取、分析程序,该方案完全能够满足企业的OLAP要求,由于可以进行二次开发,可以满足用户的特殊要求,并具有灵活、投资小的优点,非常适合国内企业,具有一

械工业出版社,1999.

[4] 杨光,张雷,艾波.数据仓库实施策略[J].计算机应用,1999,19

(9):4-7.

[5] 张凤荔,葛晓峰,卢显良.基于数据仓库的综合查询系统的设计

与实现[J].电子科技大学学报.1999,28(2).

第5期黄玲等:用Delphi进行AutoCAD二次开发的研究    81

件的所有对象集合,使用户可以实现图形的二维和三维处理

以及人机交互、打印输出等功能

。性和使用其方法,可以在应用程序中操纵这些对象。下面的

代码可以新增一个TextStyles并设为当前值。

VarAcadtextstyles,Acadtextstyle:OLEVariant;

//定义文本样式及样式集对象变量

Acadtextstyles:=AcadDwg.Textstyles;

//获取当前文本样式集合对象TextStyles

);Acadtextstyle:=Acadtextstyles.add(′NewStyleName′//加入新的TextStyle

Acadtextstyle.fontfile:=fontpath;//设置新TextStyle的字体文件AcadDwg.Activetextstyle:=Acadtextstyle;

//设置新TextStyle为当前TextStyle

3.4 操纵图形对象

AutoCAD的图形对象分别包含在ModelSpaceEntitiesCollection、PaperSpaceEntitiesCollection、Block三个对象中,它们可由函数AddObj(Parameter)创建,通过设置其属性以及使用

相应方法可以操作该对象。下面的代码可以在当前的图形文件中生成直线。

VaraLine,Point1,Point2:OLEVariant;//定义直线及点对象变量Point1:=VarArrayCreate([0,2],VarDouble);//设置直线起点坐标Point1[0]:=150;Point1[1]:=150;Point1[2]:=0;

Point2:=VarArrayCreate([0,2],VarDouble);//设置直线终点坐标Point2[0]:=200;Point2[1]:=200;Point2[2]:=0;

aLine:=AcadDwg.ModelSpace.AddLine(VarArrayRef(Point1),VarArrayRef(Point2));aLine.Update;//在ModelSpace上生成直线

AutoCAD2000的对象模型

3 用Delphi开发AutoCAD自动化程序的方法

3.1 对AutoCAD的ActiveXAutomation初始化

在Delphi环境下进行AutoCAD的ActiveXAutomation设计

需要进行三方面的初始化:一是由uses语句引用的ComObj单元,它是Delphi应用程序中处理ActiveXAutomation的关键代码;二是对OleVariant类型变量的引用,因为ActiveXAutomation的代码中广泛使用Variant;三是获取AutoCAD的Application和Document对象,用来管理AutoCAD应用程序和操纵当前活动图形文件。下列代码可进行必要的初始化工作:

usesComObj;//引用ComObj单元varAcad,AcadDwg:OLEVariant;

//定义Application和Document对象变量

);Acad:=GetActiveOLEObject(′AutoCad.Application′

//获取Application对象

AcadDwg:=Acad.ActiveDocument;

//获取AutoCAD当前活动文档Document对象

3.5 实现交互功能

用户在AutoCAD和应用程序进行交互操作是很有必要的。用于交互功能的函数都是Utility对象的方法。下面的代码是交互绘制文本 …… 此处隐藏:3974字,全部文档内容请下载后查看。喜欢就下载吧 ……

用Delphi进行AutoCAD二次开发的研究.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1571376.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150份
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)