- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
word完美格式
精心整理 学习帮手
AutoCAD VBA
一、AutoCAD VBA简介
?VBA(Visual Basic for Application)
VBA是AutoCAD的一种开发工具,具有强大的功能。Microsoft VBA是一种面向对象的编程环境,它与VB一样具有很强的开发功能。VBA与VB之间的区别就是VBA AutoCAD在同一处理空间运行,为AutoCAD提供智能和快速的编程环境。
VBA功能:
创建对话框和其它界面;
创建工具栏;
建立模块级宏指令;
提供建立类模块的功能;
具有完善的数据访问和管理能力;(ADO、DAO、RDO,C/S)
能够使用Win32API提供的功能,建立应用程序与操作系统之间的通信;
在AutoCAD中使用VBA的好处
Visual Basic编程环境易学易用;
VBA作为AutoCAD的一个过程运行,这使程序执行速度变得非常快;
对话框结构快速有效,允许开发者在设计时启动应用程序并能得到快速反馈;(易于代码纠错和维护)
对象可以独立出来,也可以嵌入AutoCAD图形。灵活性很强。
二、理解类和对象
在AutoCAD VBA界面中有许多不同类型的对象。例如:
图形对象,如线、弧、文本和标注都是对象;
样式设置,如线型和标注样式均为对象;
组织结构,如图层、组合和图块也是对象;
图形显示,如视图和视口都是对象;
甚至图形和AutoCAD应用程序本身也是对象。
对象是通过分层方式来组织的,应用程序对象为根对象。这种分层结构的视图被归结为对象模型。对象模型提供了你访问下一层对象的途径。
集合对象是预先定义的对象,它包含所有相似对象的实例(即这些对象的父对象)。集合对象有以下的对象:
文档(Documents)集合
包含所有在当前AutoCAD进程打开的文档。
模型空间(ModelSpace)集合
包含在模型空间中的所有图形对象(图元)。
图纸空间(PaperSpace)集合
包含在活动图纸空间布局中的所有图形对象(图元)。
图块(Block)对象
包含在指定图块定义中的所有图元。
图块(Blocks)集合
包含在图形中的所有图块。
字典(Dictionaries)集合
包含在图形中的所有字典。
标注样式(DimStyles)集合
包含在图形中的所有标注样式。
组合(Groups)集合
包含在图形中的所有组合。
超级链接(Hyperlinks)集合
包含提供图元的所有超级链接。
图层(Layers)集合
包含在图形中的所有图层。
布局(Layouts)集合
包含在图形中的所有布局。
线型(Linetypes)集合
包含在图形中的所有线型。
菜单条(MenuBar)集合
包含当前显示于AutoCAD的所有菜单。
菜单组(MenuGroups)集合
包含当前装载到AutoCAD中的所有菜单和工具栏。
注册应用程序(RegisteredApplications)集合
包含在图形中的所有注册的应用程序。
选择集(SelectionSets)集合
包含在图形中所有的选择集。
字型(TextStyles)集合
包含在图形中所有的文字样式。
UCSs 集合
包含在图形中所有的用户坐标系统(UCS)。
视图(Views)集合
包含在图形中所有的视图。
视口(Viewports)集合
包含在图形中所有的视口。
三、理解对象的属性和方法
每一对象都关联着属性和方法。属性描述着单个对象的外观,而方法是一种可在单个对象上执行的行为。当对象创建后,你就可通过属性和方法查询和编辑对象。
例如,一个圆对象有圆心属性。该属性以三维世界坐标系统的坐标描述了圆的圆心。更改圆的圆心,你只要简单地将该属性设定为新的坐标。圆对象也有称为偏移(Offset)的方法。该方法可在相对于现存圆的指定偏移距离创建一个新的对象。关于圆对象所有属性和方法的列表,请参考AutoCAD ActiveX和VBA参考中的圆对象。
四、开发实例
1、程序和文档窗口设置
*****************************************************************************
Sub MyWindow()
MsgBox ThisDrawing.WindowTitle = 杨彪绘图01
ThisDrawing.WindowState = acMin acMax acNorm
End Sub
Sub SetMyAcadTitle()
Dim hw
hw = GetParent(GetParent(ThisDrawing.hwnd))
SetWindowText hw, 杨彪地质编录出图子系统
Call Init
文档评论(0)