CAD - VBA 下载本文

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应用程序本身也是对象。对象是通过分层方式来组织

的,应用程序对象为根对象。这种分层结构的视图被归结为对象模型。对象模型提供了你访问下一层对象的途径。

AutoCAD ApplicationPreferencesDocumentsDocumentBlocksBlocksDocument3DFace3DPoly3DSolidArcAttributeAttributeRefBlockrefCircleDim3PointAngularDimAlignedModelSpacePaperSpacePViewPortDictionariesDictionarieXRecordDimStylesGroupsLayersLayoutsLineTypesplotConfigurationsRigisteredAppsSelectionSetsViewPortsTextStylesUCSsViewsDatabasePreferencesPlotUtilityHyperLinksHyperLinkDimAngularDimDiametricDimOrdinateDimRadialDimRotatedEllipseExternalReferenceHatchLeaderLightWeightPolylineDimStyleGroupLayerLayoutLineTypeplotConfigurationRigisteredAppSelectionSetViewPortTextStyleUCSViewLineMInsertBlockMLineMtextPointPolygonFaceMeshPolylinePolygonMeshRasterRayRegionPopupMenusPopupMenuPopupMenuItemshapeSolidSPlineTextToleranceTraceMenuBarPopupMenuMenuGroupsMenuGroupToolBarsToolBarsToolBarItemXLine 集合对象是预先定义的对象,它包含所有相似对象的实例(即这些对象的父对象)。集合对象有以下的对象:

文档(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、程序和文档窗口设置.............................................................................................. 4 2、视图.......................................................................................................................... 5 3、二维图形绘制.......................................................................................................... 5 4、图层.......................................................................................................................... 7 5、用户输入.................................................................................................................. 8 7、栅格图像 Raster................................................................................................ 10 8、计算面积................................................................................................................ 10 9、加载菜单................................................................................................................ 11 10、‘增加菜单按钮和创建菜单按钮 ........................................................................ 11 11、加载线型.............................................................................................................. 12 12、文件File............................................................................................................. 13 13、控制命令输入窗口SendCommand....................................................................... 14 14、三维绘图.............................................................................................................. 14 15、块 (综合练习).................................................................................................... 15 16、运行宏.................................................................................................................. 17

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 InitialDZBL '初始化