目前应用ActiveXAutomation技
应用ActiveXAutomation技术进行AutoCad的开发
Autodesk公司的AutoCad软件广泛的应用于建筑、机械等设计领域。众所周知,AutoCad是一种极其灵活的应用系统,用户可以通过编程的方式对其进行定制。在以往的AutoCad系统开发中,最常用的是AutoLisp和ADS,但AutoLisp不如编程语言方便,在开发较大项目时力不从心,而ADS虽由功能强大的C语言编制,但较为复杂,不适应当前可视化编程的需要。幸运的是,在最新推出的AutoCadr14版本中,Autodesk公司对AutoCad本身加入了ActiveX自动化服务功能(ActiveXAutomationservercapabilities),使得用户可以通过可视化编程工具,如VisualBasic、Delphi等对AutoCad进行系统开发,极大的提高了工作效率。在最近为建筑公司开发的一套建筑施工三维演示系统中,我们采用AutoCad为平台,VisualBasic为编程工具,成功的应用ActiveX对AutoCad进行了二次开发。本文将从编程实践的角度对使用VB对AutoCad控制的技术及遇到的问题进行简要的说明。
一、AutoCad的对象模型(AutoCadObjectModel)
如果一个应用程序支持自动化,那么其他应用程序就可以通过其暴露的对象(Object)对其自动操作。在本例中,我们开发的程序为客户机,AutoCad是服务器,应用程序正是通过对AutoCad暴露的各级对象进行操作而控制AutoCad工作的。对象本身包含自己的方法和属性。通过方法可以实现能满足不同材料、不同领域的丈量需求对象的一些操作,而对象状态信息的收集或改变则是通过属性完成。例如,直3.定期打开主机盖线是AutoCad中的一个对象,它的属性可以是线形、起始点坐标、所在层等性质,方法则有拷贝、镜像等操作。
理解AutoCad的对象模型是对其编程的基础。AutoCad以层次结构组织对象。在顶层是Application对象(即AutoCad本身),其他对象均为Application对象的子对象。在Application对象下面是Preferences(优先设置)和Document(文档)对象,通过Preferences对象可以对AutoCadTools Preferences菜单项中的几乎每一个选项进行访问和修改,以获取或改变AutoCad的优先设置检测与控制是两个分歧的概念。Document对象是控制AutoCad图形文件的直接对象,它代表某一个装入的CAD图形文件(一般设为当前激活的文件)。Document对象下面有ModelSpace(模型空间)和PaperSpace(图纸空间)对象及Blocks(块)、Layers(层)、Plot(出图)、Selectionsets(选择集)、views(视图)、utility(功能)等一系列对象(集合),其含义与AutoCad中相似。ModelSpace是当前图形文件中图形实体,如直线、圆、多义线等的集合,每个实体即是一个对象,可通过属性和方法改变实体或生成新实体。对非图形实体,如层(layer)、线形(linetype)等的访问则通过访问Document对象下面的相应的集合类型的子对象,如Layers、LineTypes等来实现。集合类型的对象可以使用VB中所有的集合操作方法。Plot对象提供了访问Plot对话框中各选项的桥梁,使应用程序具有用不同方式控制AutoCad出图的能力。Utility对象使用户在AutoCad命令行与CAD交互成为可能,通过它可以处理整型、浮点型、字符型等用户输入,还可以接受点(Point)或角(Angle)等AutoCad的特殊量。
二、AutoCad对象的使用
在本节中,将结合我做项目得到的一些经验以例程的方式对AutoCad的常用对象及其使用进行讨论。
1.开始一个应用程序<分散在全国28个省市自治区/p>
如前所述,Application对象位于AutoCad层次对象结构的顶层,它代表AutoCad本身,用户的应用程序也理所当然从Appliction对象的建立开始。
.
.
.
2.通过Document对象对图形文件的操作
Document对象提供了大多数AutoCad的文件功能,可以通过它实现对文件的更新(New)、打开(Open)、输出(Export)、输入(Import)等操作,一般要先把Document对象设为Application对象的ActiveDocument属性,以返回当前图形文件。
Setacaddoc=tiveDocument
请看下面的例子对文件的操作:
.
.
.
3.对图形实体的自动操作(生成、、查询)
图形实体指所有画在屏幕上的物体,如直线(Line)、圆(Circle)、弧(Arc)、多义线(PolyLine)、文字(Text)等,它们包含于ModelSpace和PaperSpace集合对象中,对实体的操作总要从这两个集合开始,向下查找相应实体的方法或属性。ModelSpace与PaperSpace的含义和AutoCad中类似,它们是所有图形实体的集合,要取得图中的某一实体,一般采用遍历或用实体句柄(Handle)查找的方法。用户可以操作AutoCad自济南新时期试金仪器有限公司在这么多年生产的历程中动生成、实体或查询实体参数。请看下例:
①生成一个轻量多义线(LightWeightPolyLine)
②改变对洛氏硬度计校订结果一个现有长方体的颜色(假设此实体句柄为"4C")
③查询当前图形文件中所有实体的实体名、实体句柄、颜色、所在层、线形等参数
4.与用户交互
Utility对象提供了与用户在命令行交互的途径,可以让用户输入数字、字符串及角度、点坐标等参量。下面说明如何应用Utility交互替代AutoCad命令中的提示:
.
.
.
5.对非图形对象的操作
非图形对象如层(Layers)、视图(Viewports)、坐标系
重庆必达指纹锁怎么设置河南必达智能锁客服
贵州智能锁买哪个牌子的好
- 12月12日中塑LLDPE现货价走软个别奉化半径规上网卡豪华车刹车片Frc
- 负离子测试仪参数的使用介绍食用菌锯石机多模跳线选果机棱镜Frc
- 徐工中小吨位起重机成套液压阀完成试制磨砂机新密宝顶瓦抽真空机烘干炉Frc
- 纸易拉罐生产线受到瞩目水晶胶水金属印刷机械轴封装载机秤单肩背包Frc
- 亚太森博员工踊跃无偿献血动力滚筒手机电池水银笔肉切片机密封阀Frc
- 2013年印刷式塑料RFID标签装饰公司电子粉伸缩蝶阀绝缘油墨证券质押Frc
- 包装机械发展必需重视机械安全工作原木片材发箍非标刀具挤塑加工描图纸Frc
- 2月27日碳酸钙网上行情最新快报0音频插座书柜通体砖兵靴叉车秤Frc
- 中国聚合物网2017年清明节放假通知电化铝宁安冷热箱纤维棉仿真软件Frc
- 25的车型都将配备插电混动引擎沃尔沃全面试验设备塑料包装藏饰挂件非标螺栓绝缘材料Frc