应用ActiveX Automation技术进行AutoCad的开发
2008-02-23 06:52:32来源:互联网 阅读 ()
一、 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 Error Resume 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=1000 '调整AutoCad窗口的大小
acadapp.Width=800
acadapp.Caption="my first application" '设置AutoCad窗口的
标题
通过Application对象的方法还可以方便的调入ADS或ARX程序,以利于各类程序的集成。其例程为:
Dim arxname As string
acadapp.LoadARX arxname ‘arxname即为调入的arx程序名(带 路径)
2.通过Document对象对图形文件的操作
Document对象提供了大多数AutoCad的文件功能,可以通过它实现对文件的更新(New)、打开(Open)、输出(Export)、输入(Import)等操作,一般要先把Document对象设为Application对象的 ActiveDocument属性,以返回当前图形文件。
Set acaddoc=Application.ActiveDocument
请看下面的例子对文件的操作:
Dim dwgname As String
dwgname = "c:\acadr14\sample\campus.dwg"
If Dir(dwgname) <> "" Then
acaddoc.Open dwgname '打开一个CAD文件
Else
acaddoc.new("acad") '以acad.dwt为模板建立一个新
文件
End If
Document对象还提供了两个十分有用的方法——SetVariable 和 GetVariable,通过它们可以得到或改变AutoCad的系统变量。
如:acaddoc.SetVariable "Orthomode", 1 '打开正交模式
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:用VB5.0开发通信软件的技巧
下一篇:利用API播放声音文件
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash