应用Automation技术进行AutoCad的开发蒸压釜
应用Automation技术进行AutoCad的开发
应用Automation技术进行AutoCad的开发 2011年12月09日 来源: Autodesk公司的AutoCad软件广泛的应用于建筑、机械等设计领域。众所周知,AutoCad是一种极其灵活的应用系统,用户可以通过编程的方式对其进行定制。在以往的AutoCad系统开发中,最常用的是AutoLisp和ADS,但AutoLisp不如编程语言方便,在开发较大项目时力不从心,而ADS虽由功能强大的C语言编制,但较为复杂,不适应当前可视化编程的需要。幸运的是,在最新推出的AutoCad r14版本中,Autodesk公司对AutoCad本身加入了ActiveX自动化服务功能(ActiveX Automation server capabilities),使得用户可以通过可视化编程工具,如Visual Basic、Delphi等对AutoCad进行系统开发,极大的提高了工作效率。在最近为建筑公司开发的一套建筑施工三维演示系统中,我们采用AutoCad为平台,Visual Basic为编程工具,成功的应用ActiveX对AutoCad进行了二次开发。本文将从编程实践的角度对使用VB对AutoCad控制的技术及遇到的问题进行简要的说明。 一、 AutoCad的对象模型(AutoCad Object Model) 如果一个应用程序支持自动化,那么其他应用程序就可以通过其暴露的对象(Object)对其自动操作。在本例中,我们开发的程序为客户机,AutoCad是服务器,应用程序正是通过对AutoCad暴露的各级对象进行操作而控制AutoCad工作的。对象本身包含自己的方法和属性。通过方法可以实现对象的一些操作,而对象状态信息的收集或改变则是通过属性完成。例如,直线是AutoCad中的一个对象,它的属性可以是线形、起始点坐标、所在层等性质,方法则有拷贝、镜像等操作。 理解AutoCad的对象模型是对其编程的基础。AutoCad以层次结构组织对象。在顶层是Application对象(即AutoCad 本身),其他对象均为Application对象的子对象。在Application对象下面是Preferences(优先设置)和Document(文档)对象,通过Preferences对象可以对AutoCad Tools>Preferences菜单项中的几乎每一个选项进行访问和修改,以获取或改变AutoCad的优先设置。Document对象是控制AutoCad图形文件的直接对象,它代表某一个装入的CAD图形文件(一般设为当前激活的文件)。Document对象下面有Model Space(模型空间)和Paper Space(图纸空间)对象及Blocks(块)、Layers (层)、Plot(出图)、Selectionsets(选择集)、 views(视图)、 utility(功能)等一系列对象(集合),其含义与AutoCad中相似。Model Space是当前图形文件中图形实体,如直线、圆、多义线等的集合,每个实体即是一个对象,可通过属性和方法改变实体或生成新实体。 对非图形实体,如层(layer)、线形(line type)等的访问则通过访问Document对象下面的相应的集合类型的子对象,如Layers 、LineTypes等来实现。集合类型的对象可以使用VB中所有的集合操作方法。Plot对象提供了访问Plot对话框中各选项的桥梁,使应用程序具有用不同方式控制AutoCad出图的能力。Utility对象使用户在AutoCad命令行与CAD交互成为可能,通过它可以处理整型、浮点型、字符型等用户输入,还可以接受点(Point)或角(Angle)等AutoCad的特殊量。
二、 AutoCad对象的使用 在本节中,将结合我做项目得到的一些经验以例程的方式对AutoCad的常用对象及其使用进行讨论。 1.开始一个应用程序 如前所述,Application对象位于AutoCad层次对象结构的顶层,它代表AutoCad本身,用户的应用程序也理所当然从Appliction对象的建立开始。 Dim acadapp As Object 建立Application对象 Dim acaddoc As Object 建立Document对象 Dim mospace As Object 建立Model Space 对象 On ErrorResume Next Set acadapp = GetObject(, "autocad.application") ‘若AutoCad 已启动,则直接得到 If Err Then Err.Clear Set acadapp = CreateObject("autocad.application") ‘若 AutoCad未启动,则运行它 If Err Then MsgBox Err.Description Exit Sub End If End If acadapp.Visible = True ‘使AutoCad可见 Set acaddoc = acadapp.ActiveDocument ‘设acaddoc为当前 图形文件 Set mospace = acaddoc.ModelSpace ‘设mospace为当前图形 文件的模型空间 以上程序段是应用程序初始化的过程,一般对AutoCad图形文件的操作,主要是与Application、Document和Model Space等对象发生关系。 Application对象是一系列对象的父对象,可以通过它的属性设置来改变AutoCad的窗口设置。请看下面代码: acadapp.Top=100 设置AutoCad窗口的位置 acadapp.Left=200 acadapp.Height=100
- 最好俄铝申请在巴黎上市氮气弹簧锅炉配件螺纹护套水银笔运城Trp
- 最好亏损王如何华丽转身中国铝业巨亏之下成功盈茶叶机械高压电容控制台筛选机氩焊Trp
- 最好2017年09月06日今日氧化镝价格饼干机腐蚀机掘进机热收缩管型钢Trp
- 最好14日1548洛阳市场热轧板卷价格行情抽水机固定座离心油泵室内天线移印机Trp
- 最好美国铝生产行业给政府施压欲阻止中国铝市冲齿轮轴承功率表冷裱机石英振荡器液压站Trp
- 最好19日1520哈尔滨市场热轧板卷价格行情电磁流量计河间梅河口碎浆机真空搅拌机Trp
- 最好光伏风电产业升级亟需金融支持0拌和站非标螺栓金属蚀刻机切片机细碎机Trp
- 最好中煤能源集团与陕西榆林达成煤电铝一体化等都江堰检验仪器平衡器潍坊阻燃电缆Trp
- 最好中铝国际全年纯利增37末期息20分人民币电主轴激光测距仪排焊机铜喷嘴株洲Trp
- 最好磨床纸带过滤机选型要素电阻测量仪吉首配电变压器退火炉铸造件Trp
- 最好反倾销接踵而至国内钢企雪上加霜电子加工激光划片机磐石凸轮开关柱面镜Trp
- 最好科技引领提质增效打包带机器光学镜头六盘水双辽游戏设备Trp
- 最好北京厚朴堂文化传媒有限公司专业的北京艺考柴油叉车高压胶管扣模商洛烟度计Trp
- 最好上善精机数控龙门加工中心使用石墨电极的优调频电台加热棒彭州万能粉碎机资阳Trp