不知道为什么不能上传附件只好。。。。
Delphi3.0在AutoCADR14二次开发中的应用
一、引言
----AutoCAD 是世界上使用范围最广的CAD系统,基于其之上的二次开发一直有很大的市场需求。最初,这些二次开发只能使用AutoLISP进行,这是一种解释型的编程语言,执行效率较低,而且稳定性较差。从R11.0版以后,AutoCAD推出了ADS接口,支持用C语言进行开发。到R13版后,又推出了ARX接口,支持C++语言。但这两种接口的程序设计都较为繁琐,不利于推广。从R14版开始,AutoCAD开始支持ActiveXAutomation技术,这一方面提供了一种安全而稳定的二次开发接口,另一方面又大大简化了程序
设计的
工作,使基于AutoCAD的二次开发进入了一个新的阶段。
----ActiveXAutomation是一种专用于使Windows下应用程序相互联系的技术,其前身是OLEAutomation技术。ActiveXAutomation分为两层:AutomationServer和AutomationController。
-- --AutomationServer是一种应用程序,它把自身或自身的一部分进行打包后,作为一个完整的对象输出。当它第一次运行时,它会在系统的注册表中写入注册信息,包括对象的注册名、
注册号和完整的执行路径。有了这些注册信息后,AutomationController应用程序就可以按照对象的注册名向系统申请。如果申请得到认可,系统就会生成一个该对象的实例,并把该实例的句柄传给AutomationController应用程序。通过这个句柄,AutomationController应用程序就可以使用该对象实例提供的全部功能了。ActiveXAutomation是完全独立于语言的技术,也就是说,可以用任何一种程序设计语言来开发AutomationServer和AutomationController应用程序。
----AutoCAD从R14版开始引入了Automation技术,它把全部的系统功能和函数打包成为一个名为AutoCAD.Application.14的AutomationServer对象。通过这个对象,应用程序可以访问AutoCAD的全部功能。
二、AutoCADActiveXAutomation对象体系结构
----AutoCADActiveXAutomation对象体系结构如下页图所示。在对象模型中,处于最高层的对象是AutoCAD.Application,称为应用对象,它包含了AutoCADActiveXAutomation对象所提供的全部功能。
-- --在AutoCAD.Application层之下是Preferences和Document子对象。Preferences子对象等价于 AutoCAD的Preferences对话框,它包含了AutoCAD的当前的系统参数设置。Document子对象代表AutoCAD
系统中当前活动的图纸文件,通过Document子对象可以对系统中当前活动的图纸文件进行所有的处理。
----Document子对象包含了所有的图纸信息子层,有:模型空间子集(ModelSpaceEntitiesCollection)、纸空间子集(PaperSpaceEntitiesCollection)和块子集(BlocksCollection)包含所有的三维图形绘制对象,用来进行图形文件的绘制;字典子集(Dicti
onariesCollection)负责自动拼写检查;标注子集(DimStylesCollection)负责图纸标注;组子集(GroupsCollection)负责当前活动的图纸文件中所有的组的管理;层子集(LayersCollection)负责当前活动的图纸文件中层的设置;线型子集(LinetypesCollection)管理线型;已注册应用
程序子集(RegisteredAppCollection)
管理系统中的外加应用程序;选择组子集(SellectionSetsCollection)管理用户在图纸中所选择的内容;文本风格子集(TextStylesCollection)负责文本字符风格;用户坐标系子集(UCSsCollection)负责管理用户坐标系;视图子集(ViewsCollection)负责管理用户视图;视角子集(ViewportsCollection)负责视角转换控制;打印输出子集(Plot)负责控制图形文件的最终输出及打印设置;应用子集(Utility)包含了大量的