基于VBA的AutoCAD二次开发及应用实例

合集下载

cad二次开发基础教程和实例档

cad二次开发基础教程和实例档

大家知道什么是宏吗?说白它就是VBA过程。

看下面的代码:Public Sub MacroDemo()MsgBox "Hello,Welcome to AutoCAD VBA!"End Sub这就是宏。

打开CAD输入命令vbaide回车会出现VBA的编辑界面,双击ThisDrawing在右侧的代码区输入上面的代码。

如下图:然后按F5键会出现宏窗口,如下图:点击运行,大家看到什么?这就是一个最简单的一个用VBA对CAD进行二次开发的程序,也就是宏那什么是VBA呢?VBA就是VB的一个子集它的全称是Visual Basic For Application,它具有VB的大部分功能。

既然我们选择了VBA,我们首先要知道VBA能操作CAD里的哪些对象呢?打开VBAIDE窗口按下F2键会出现对象浏览器。

如下图库选择AutoCAD,这时下面显示的就是CAD为VBA提供的可操作的对象的类了。

这时有的人因没有基础,所以还是一头雾水,别怕,选中一个类图标后按F1,这时会弹出AutoCAD ActiveX and VBA Reference,选择最上面的一个子项Object Model(对象模型),这个就是在CAD里那些对象的关系,如下图:如果英文不好的话,可以安装CAD2000,它的这个部分是中文的。

为想学好VBA二次开发这个是必需的,而且VBA对Office的二次开发也是这样的。

这个在编程界叫做Active X,包括Active X控件、Active X DLL、和Active X EXE就好比一个程序为其它程序提供的一个后门一样下面我就给大家讲一下菜单吧。

因为我们用到的其它公司做CAD二次开发的插件,从直观上首先接触的就是它的菜单,刚开始用的时候就是从它的菜单开始接触的。

我经常用到的做菜单的方法有两种,一种是用CAD的菜单文件,另一种就是用VBA代码直接长成菜单。

我先介绍第一种,CAD的菜单文件它是文本文件,我们用记事本就可打开并编辑它,或者再重新创建一个说到这里有的人可能要问了,我应该从何处开始入手呢,要怎样做呢?别急,CAD本身就有现成的供我们参考,就放在CAD的安装文件夹下的Support文件夹内,或者其它插件的文件夹内,找不到可以按F3搜一下,扩展名分别为.mnu .mns ,mnc默认的菜单文件是acad.mnu。

基于VBA的AutoCAD二次开发在图纸明细表中的应用

基于VBA的AutoCAD二次开发在图纸明细表中的应用
时 间 而 且 不 能保 证 10 准 确 。 0% 成 块 , 方 便 程 序 调 用 插 入 。 明 细 表 表
解 决 上 述 问 题 成 为 构 建 应 用 项 制 作 成 属 性 块 , 程 序 调 用 插 入 时 , 程 序 的 关 键 , 应 用 程 序 设 计 的 基 根 据 用户 输 入 的表 项 内容 ,程 序 自动
关键 词 : 总装 图 ; 明细 表 ;A t C D u o A ;二 次 丌 发 ;V A B
O引 言
图 纸 文 件 中 总 装 图 是 产 品 必 不 可
多 条 表 项 时 , 需 要 手 工 调 整 表 项 位 置 F r p i a o )、O e t R 等 , o A pl c ti n bj c A X 并 重 新 编 辑 表 项 的 序 号 值 : 3 明 细 ) 利 用 这 些 开 发 工 具 用 户 可 以方 便 地 自
间 , 而 且 易 出 错 。A t C D 于 T g 建 uo A 中 ., J 装 图 中 引 用 了 子 部 件 , 子 部 件 同样 有
述 的手 工 操 作 完 成 的 种 种 不 足 之 处 。
明 细 表 的 一 般 方 法 是 表 项 采 用 属 性 块
生成 ,指 引线采 用L a e 命令 生成 , edr
对 象 的 关 键 不 是 如 何 创 建 、 编 辑 对 象 表 头 、 明 细 表 表 项 等 对 象 。 指 引 线 由 及 其 后 处 理 , 问题 的关 键 在 于 : 1 明 点 、 直 线 或 圆 单 行 文 字 等 组 成 , ) 、 用 札 + D + 细 表 对 象 创 建 后 如 何 存 储 在 图 形 文 件 户 选 择 点 后 由程 序 自动 生 成 , 生 成 后

基于VBA的AUTOCAD二次开发及应用实例

基于VBA的AUTOCAD二次开发及应用实例

基于VBA的AutoCAD二次开发及应用实例时间:2011-10-0318:25:09来源:作者:1引言AutOCAD2005是AutOdesk公司的系列产品,该软件从其使用和设计思路上都秉承了工程制图人员的绘图习惯,能够非常轻松地绘制出带有平面视图和三维渲染效果的工程图纸,是绘图人员的一个理想工具。

随着CAD基础理论和应用技术的不断发展,对CAD系统的功能要求也越来越高。

因而AutoCAD 不可能完全满足每个用户的具体而特定的要求。

设计人员希望它能从本质上减轻大量简单烦琐的工作量,使他们能集中精力于那些富有创造性的高层次思维活动中。

AutoCAD提供的开放式体系结构允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发,能最大限度地满足用户的特殊要求,更方便、更规范、更专业的实现设计和绘图中的应用。

VBA最早是建立在0ffice97中的标准宏语言,由于它在开发方面的易用性及具有的强大功能,许多软件开发商都将其嵌入自己的应用程序中,作为一种开发工具提供给用户使用。

AutOdeSk公司自从Aut0CADRl4.0l版开始,内置了VBA开发工具。

新一代程序开发工具ViSual BaSic,不仅继承了面向对象方法的特性,同时具备可视化程序语言及程序产生器的概念。

VBA(visual Basic For Apphcation)是AutoCAD R12以后推出的一种新的编程环境,提供了以Visual Basic为基础的面向对象的开发特征及程序接口,能真正快速地访问AutOCAD图形数据库,能明显提高软件开发和维护的效率。

2VBA的技术特性2.1VBA开发AUTOCAD的技术特点VBA是微软开发出来的应用程序共享一种通用的自动化语言,它可以使常用的程序自动化,并可以创建自定义的解决方案。

VBA被集成到AutoCAD中,VBA和AutoCAD中强大的Activex自动化对象模型的结合,代表了一种新型的定制AutoCAD的模式构架。

基于VBA在AutoCAD中自动绘图的应用

基于VBA在AutoCAD中自动绘图的应用

基于VBA在AutoCAD中自动绘图的应用------李广亚随着电脑技术的飞速发展,目前大多数企业都采用AutoCAD制图、绘图,在工程施工领域也是采用AutoCAD进行二维工程绘图。

GPS的应用使的施工现场坐标的采集非常方便,通常便于直观,监理、业主会要求将GPS采集的坐标绘制在CAD图上。

对于一个熟悉CAD的人来说,将10几个坐标数据手工录入坐标绘制到CAD中是比较容易的,但如果是几十个点,上百个点,甚至几百个点,对于一个施工技术员来说一个一个坐标的手工录入,就成了一个比较有难度的工作,主要因为手工录入会比较繁琐、耗费时间长还特别容易出错。

在这方面如何能提高技术人员的工作效率?基于此,我们采用AtuoCAD中的VBA技术,进二次开发,可以方便的将大量的坐标自动绘制到CAD图中。

下面通过一个简单事例来说明AtuoCAD中VBA技术的二次开发自动绘图程序的过程: 事件介绍:2012年业主在场区开挖一不规则多边形鱼塘,要求我单位将鱼塘进行测量并标注在总平面图上。

1、数据采集:使用GPS现场进行数据采集,在鱼塘周边从一点开始,顺时针方向进行,在不规则鱼塘的所有角点拐点均采集坐标,并保存在GPS中。

2、导出坐标:将GPS中采集的坐标导出到文本文档,如下图:3、数据处理:将导入的坐标使用EXCEl文档打开并编辑处理,高程全设为0,表单重命名为“SJ”,保存EXCEl文档到D盘,文档名称为“GPS导入坐标绘图”如下图:4、VBA跨平台技术二次开发:(1)、打开AutoCAD,选择工具->宏->VBA编辑器,打开VBA编辑器。

在VBA编缉器中插入用户窗体,在窗体上插入按钮组件,如图:(2)、双击按钮,打开代码编辑窗口,编缉代码如下:Private Sub CommandButton1_Click()Dim xlapp As Excel.ApplicationDim xlbook As Excel.workbookDim xlsheet As Excel.worksheetSet xlapp = CreateObject("excel.application")Set xlbook = xlapp.workbooks.Open("D:\GPS导入坐标绘图.xls")'打开的EXCEL路径xlapp.Visible = FalseSet xlsheet = xlbook.worksheets("sj") '打开EXCEL中的sj工作表i = xlsheet.Cells(1, 2) 'i为线条线数For p = 0 To i - 2 Step 1p = pk1 = xlsheet.Cells(3 + p, 3) '将表格第3行第3列内数值赋值给K1,X坐标值h1 = xlsheet.Cells(3 + p, 2)k3 = xlsheet.Cells(3 + p, 4)k2 = xlsheet.Cells(4 + p, 3)h2 = xlsheet.Cells(4 + p, 2)h3 = xlsheet.Cells(4 + p, 4)Dim 点 As AcadLineDim 起点(2) As DoubleDim 端点(2) As Double起点(0) = k1 '将K1值贱赋值给起点数组内第一个值,即起点X坐标。

基于VBA的AutoCAD二次开发及其应用

基于VBA的AutoCAD二次开发及其应用

基于VBA的AutoCAD二次开发及其应用
韩成龙;吕志鹏;廖燕
【期刊名称】《机械工程师》
【年(卷),期】2007(000)005
【摘要】利用AutoCAD的VBA技术开发的任意闭合图形面积的计算功能,弥补了AutoCAD面积查询功能的不足,并且实现了该VBA程序的菜单发布,有利于用户的操作.由实例可知,计算精度非常高,能够满足工程需要.
【总页数】2页(P36-37)
【作者】韩成龙;吕志鹏;廖燕
【作者单位】长江大学,机械工程学院,湖北,荆州,434023;长江大学,机械工程学院,湖北,荆州,434023;长江大学,机械工程学院,湖北,荆州,434023
【正文语种】中文
【中图分类】TB237
【相关文献】
1.基于VBA的AutoCAD二次开发在地质图中的应用 [J], 邓国成;王莉;朱宏
2.基于VBA的AutoCAD二次开发在图纸明细表中的应用 [J], 任中海
3.基于VBA的AutoCAD二次开发及应用实例 [J], 王若慧
4.基于VBA的AutoCAD二次开发在矿图中的应用 [J], 张涛;汪云甲
5.基于VBA的AutoCAD二次开发在巷道断面参数化建模中的应用 [J], 张杰因版权原因,仅展示原文概要,查看原文内容请购买。

autocad二次开发(VBA)就这么简单

autocad二次开发(VBA)就这么简单

autocad二次开发(VBA)就这么简单autocad二次开发(VBA)就这么简单运行autocad,创建一个新文件,Alt+F11(或者在菜单栏点“工具”→“宏”→“Visual Basic 编辑器”),在新出现的窗口菜单栏点“插入”→“模块”,输入下面的代码:Sub 我的第一个程序()Dim 直线1 As AcadLineDim 起点(0 TO 2) As DoubleDim 端点(0 TO 2) As Double起点(0) = 10起点(1) = 20端点(0) = 80端点(1) = 100Set 直线1 = ThisDrawing.ModelSpace.AddLine(起点, 端点)End Sub检查一下,确信没有问题后按F5回到autocad窗口,看见了吗?一条直线,起点坐标(10,20),端点坐标(80,100) 这个程序的第一行里,“SUB”和“()”是必须有的(人家微软就是这么规定的,我也没办法),“我的第一个程序”是这个程序的名字(如果你不喜欢也可以改个别的名字,我无所谓)。

第二行里,“Dim”是定义一个变量,“直线1”是要画的直线的名字(随便改,中英文都行),后面的英文必须有,意思是说:这是一条autocad直线。

第三行里,“起点(2)”是一个数组(因为我要用它给直线赋予起点,所以取了个直观的名字,又因为点的坐标是三维的,所以必须用能容纳三个数据的数组),后面的英文意思是“这个数据是双精度类型”。

第四行和第三行差不多,是用来给直线赋予端点的。

第五行和第六行是分别赋值给起点的x和y坐标(因为起点的z坐标是0,而定义这个数组的时候,默认数据就是(0,0,0),所以就不用管z坐标了)。

第七行、第八行赋值给端点x和y坐标。

第九行画直线,在“当前文件”的“模型空间”“画直线(按起点和端点)”。

第十行,完事了。

有的网友一看见英文,头就会变大。

别怕,如果你是用“复制/粘贴”把这段代码拷贝到VB编辑器里,就不会知道autocad有多么友善。

AutoCAD二次开发的方法与实例

AutoCAD二次开发的方法与实例

AutoCAD二次开发的方法与实例AutoCAD是一款广泛应用的CAD软件,具有二次开发的能力。

AutoCAD二次开发是将AutoCAD的API和开发工具与其他软件的API和工具结合使用,并将AutoCAD的功能与其他应用程序的功能集成。

AutoCAD二次开发可以自动化绘制过程,节省时间和人力,提高生产率。

AutoCAD二次开发的方法:1.使用ObjectARX进行自定义编程ObjectARX是一种C ++编程接口,可用于开发自定义应用程序和高级命令。

ObjectARX可以让程序员使用全局变量、类和函数等等。

使用这些概念来创建与AutoCAD交互的自定义应用程序。

ObjectARX还提供了一些命令、选项和工具来帮助程序员将其自定义代码集成到AutoCAD中。

2.使用Visual Basic for Applications (VBA)进行自定义编程VBA是一种广泛使用的面向对象编程语言,是Microsoft Office的一部分。

通过在AutoCAD的VBA编辑器中编写代码,程序员可以创建自定义命令和功能,以满足其特定的绘图需求。

VBA还提供了一些内置函数和对象,使编程更加简单和直观。

3.使用.NET Framework进行自定义编程使用.NET Framework,程序员可以使用多种编程语言(如C#、、F#等)来编写与AutoCAD交互的应用程序。

通过将.NET程序集嵌入到AutoCAD中,程序员可以创建自定义工具栏、菜单和命令。

.NET Framework还提供了大量的功能和类库,使得开发更加高效和简单。

AutoCAD二次开发的实例:1. 使用VBA实现批量修改AutoCAD文件名Sub BatchRename()Dim sDir As StringDim sOldName As StringDim sNewName As StringDim sMessage As StringsDir = InputBox(\。

基于VBA的AutoCAD二次开发及其应用(1)

基于VBA的AutoCAD二次开发及其应用(1)
所 编 制 的 计 算 任 意 闭 合 图 形 面 积 的 宏 程 序以文件名 “calculatearea.dvb”保存在 AutoCAD2004 的 安 装 目 录 下 。
具体代码如下: Sub CalculateDefinedArea( ) Dim n As Long n=ThisDrawing.ModelSpace.Count Dim pt As Variant pt=ThisDrawing.Utility.GetPoin(t , "assain the inword point") ThisDrawing.SendCommand "hpbound" & vbCr & 0 & vbCr ThisDrawing.SendCommand "- boundary" & vbCr & p(t 0) & ", " & pt ( 1) & vbCr & vbCr Dim objpoly As AcadRegion If ThisDrawing.ModelSpace.Count > n Then Set objpoly=ThisDrawing.ModelSpace.Item( ThisDrawing.ModelSpace. Count- 1) MsgBox "所选图形的面积为: " & objpoly.Area objpoly.Delete Else MsgBox "没有找到封闭的图形! " End If End Sub 4 VBA 程序的发布
在保存好菜单文件后, 用户可以通过选择“工具”“| 自 定义”“| 菜单”来加载用户自定义的菜单。本文所加载的菜 单如图 1 所示。
首先点击该菜单, 然后在所要计算的任意闭合图形
的内部单击鼠标即可弹出如图 2 所示显示面积的对话
框。图 2 是计算的长半轴为 10, 短半轴为 5 的椭圆的面

基于VBA的AutoCAD二次开发及应用实例

基于VBA的AutoCAD二次开发及应用实例
5 1 3
- l口 ,
形数据库 ,能明显提高软件开发和维护的效率 。
Au0 AD 05 tC 2 0 是Auo  ̄k td 公司的系列产品 ,该软件从其使 , 用和设 计思路上都秉承了工程制图人员的绘图习惯 , 能够非常轻 松地绘制出带有平面视 图和三维渲染效果的工程 图纸 , 是绘 图人 员 的一个理想工具. 随着 C D基础理论和应用技术的不 断发展 , A 对C AD系统 的功能要求也越来越高 。 因而Auo A tC D不可能完全 满足每个用户 的具体而特定的要求。 计人员希望它能从本质上 设 减轻大量简单烦琐的工作量 , 使他l f 集中精力于那些 富有创造 "g r ̄ ]
维普资讯
《 动化 术 应 》 07 第2卷 9 自 技 与 用 20 年 6 第O期
H- 机 应 用 算
Compu erAp ia i ns t pl to c
基 于 V 的 Au CAD二次 开发及 应 用 实例 A B t o
王 若 慧
( 山西大学 工程学院 , 山西 太原 001) 303
摘 要 : 介绍 了VBA 二次开发 AUT AD的技术特点 , 以实例说 明 VB OC 并 l A应用程序 的编写要点。进一步验证 了 AUTOC AD 与 VB 以 A t e u o t n自动化接 L技术实现连接 , A ci X A tmai v o j 利用 VB的可视化编程设计实现 C AD系统设计的实际价值 。 关键词: BA; V AUT AD二次开发 ; OC 自动化接 口技术; AD系统 C 中图分类号 : P 1 . 1 T 3 1 1 文献标识码 : B 文章编号 :0 3 7 4 2 0 )0 — 0 0 0 10 — 2 1(0 7 9 0 3 — 4

基于VB的AutoCAD二次开发

基于VB的AutoCAD二次开发

基于VB的AutoCAD二次开发摘要:Visual Basic是当今世界上最流行的编程语言之一,CAD是目前使用最广泛的绘图软件,本文将在测绘领域,探讨基于Visual Basic对AutoCAD进行二次开发,对外业获取的数据内业进行自动绘图,提高工作效率。

关键词:Visual basic;AutoCAD;ActiveX;CAD二次开发1.引言在使用全站仪的外业测图,如果我们对采集的数据赋予遵循特定规则的简码,用成图软件导入外业数据,然后利用二次开发的软件完成自动绘图,更能提高作业效率。

本文将基于Visual Basic对AutoCAD二次开发一个自动绘图的程序。

2.需求分析需求分析:该程序可以实现“外业测图,内业自动绘图”的功能。

具体是通过导出外业数据,对数据进行读取、分析识别,然后实现在AutoCAD画布上展点,自动绘图。

3.程序的设计程序的设计包括界面和功能设计和数据格式的设计。

3.1界面和功能设计程序Frmbase窗体由一个菜单栏、一个状态栏、一个公共对话框组成。

该程序主窗体frmbase设计如图3.1所示。

图3.1 frmbase窗体设计效果图菜单栏“文件”菜单下有创建新图形文件、打开、保存图形文件、导入DXF文件、导出DXF和BMP文件、关闭图形文件和退出程序这些子菜单。

如图3.2所示。

图3.2 “文件”菜单及其子菜单菜单栏“绘图”菜单下有展点和自动绘图子菜单,而展点可以通过两种数据文件来读取数据,所以展点子菜单下还有两个子菜单。

如图3.3所示。

图3.3 “绘图”菜单及其子菜单3.2数据格式的设计数据格式的设计:文件后缀为*.dat或者*.xls。

第一列是点名,第二列是简码,第三列是AutoCAD中的Y坐标,也是测量坐标系中的X坐标,第四列是测量坐标系中的Y坐标,第五列是高程。

编码规则:以地物名字的中文拼音首字母进行命名,例如井盖的简码为“JG”,平房的简码为“pf”。

图上的地物都是由点状地物、线状地物和面状地物这三种的抽象。

用VB对AutoCAD进行二次开发

用VB对AutoCAD进行二次开发

用VB对AutoCAD进行二次开发|用VB对AutoCAD进行二次开发AutoCAD一直是CAD市场中的主流产品。

随着AutoCAD的日益普及,在其上进行二次开发的工具也不断更新。

从早期的AutoLisp、ADS、DCL到现在流行的ObjectARX、ActiveXAutomation、VisualLisp,均可十分方便地对AutoCAD进行二次开发。

本文主要讨论关于运用VisualBasic对AutoCAD基于ActiveXAutomation的二次开发技术。

选用ActiveX有两个原因,一是因为VisualBasic的普及性与易用性,二是采用这种方法进行二次开发可方便地实现与其它图形软件的接口,如与SolidWorks实现实体造型与二维绘图的结合,以及根据用户的特殊需要开发出一定功能的软件。

的自动(如VB的图在启动对象。

EndIf2.Preferences与Document对象与AutoCAD中的Preferences对话框的作用相同,通过Preferences对象可以读取或设置AutoCAD的一些基本设置。

Preferences对象通过Application的Preferences属性返回。

DimAcadPrefasObjectSetAcadPref=AcadApp.Preferences比如,用户可通过Preferences对象进行如下的设置AcadPref.Cursorsize=100AcadPref.DisplayScreenMenu=acTrueAcadPref.DisplayScrollBars=Check1.valueDocument对象表示AutoCAD中中当前打开的文档,对AutoCAD中的任何其它操作都需用到Document对象,该对象可以通过ActiveDocument属性返回。

DimAcadDocasObjectSetAcadDoc=AcadApp.ActiveDocumentAutoDesk公司使用了集合的概念。

基于VBA的AutoCAD二次开发

基于VBA的AutoCAD二次开发

定 义 菜单 了 ,通过 点击 菜单 运行a da es d ly r 来
实 现具 体程 序 功能 。
D m S S b . be t 定 义 二 级 i u u Me uAs jc n O
菜 单 D m h n tig 定义 宏命 令 i o g Sr As n
h ng o

S b n1 d Me utm 1 ” u Me tA d n l ,二级 菜 单名 A . e



h ng o


由 于S bman) A tC D 动 时 自动 u i( uo A 启 是 运 行 的 启 动 入 口 ,因 此 可 以用 来 加 载 菜 单 和工 具 栏 , 以及 其 他 必 要 在 启 动 时运 行 的 程 序 都 可 以放 在 此 代 码 段 。 比如 图 层 、线 型 、字体 等等 。
基于VB A的Auo AD ̄ 次开 发 tC _ .
饶玉田 莫 华娟 颜 利军
( 船 国 际技 术 中心 ) 广
摘 要 :本 文 主要介 绍 如何 对A t C D 行二 次开 发 ,并针 对广 船 国际实 际设 计应 uoA进 用举 例 介绍 。 关键词 :A t C DV A 二次 开发 实 际应用 u 0 A B
( e u S : TART ( ( O d f n :S UP ) C mma d n
集 成 开 发 环 境 的 语 言 。 由 于 A tC D uo A 2 1 或 以上 版本Auo A 官方 已经不 再 绑 00 tC D 定 安装VB A,因此需 要 安装 独立 的V A 言 B 语 环 境 ,否 则 系 统 自带 , 不 需 要 单 独 安 装

AUTOCAD利用VBA进行二次开发

AUTOCAD利用VBA进行二次开发

利用VBA对AUTOCAD进行二次开发实例——输入螺栓参数自动生成图形①打开AUTOCAD软件②依次点击工具l菜单,选择,Macro(A),click Visual Basic Editor(B)③打开 Microsoft Visual Basic Editor 窗口.and “公共的额”,之后点击“确定”,如下图所示:.⑤点击.点击:Command:输入螺钉长度完成绘制VBA原程序Public Sub liweiwei()Set acadapp = CreateObject("autocad.application") Dim lineObj As AcadLineDim pt1 As VariantDim d As DoubleDim l As DoubleDim pt2(0 To 2) As DoubleDim pt3(0 To 2) As DoubleDim pt4(0 To 2) As DoubleDim pt5(0 To 2) As DoubleDim pt6(0 To 2) As DoubleDim pt7(0 To 2) As DoubleDim pt8(0 To 2) As DoubleDim pt9(0 To 2) As DoubleDim pt10(0 To 2) As DoubleDim pt11(0 To 2) As DoubleDim pt12(0 To 2) As DoubleDim pt13(0 To 2) As DoubleDim pt14(0 To 2) As DoubleDim pt15(0 To 2) As DoubleDim pt16(0 To 2) As DoubleDim pt17(0 To 2) As DoubleDim pt18(0 To 2) As DoubleDim pt19(0 To 2) As DoubleDim pt20(0 To 2) As Doublept1 = ThisDrawing.Utility.GetPoint(, "输入第一角点")d = Val(InputBox("所绘制螺钉的直径:”) )l = Val(InputBox("所绘制螺钉的长度:"))pt2(0) = pt1(0) + 0.4 * d: pt2(1) = pt1(1): pt2(2) = pt1(2)pt3(0) = pt1(0) + 0.4 * d: pt3(1) = pt1(1) + 1.5 * d: pt3(2) = pt1(2)pt4(0) = pt1(0): pt4(1) = pt1(1) + 1.5 * d: pt4(2) = pt1(2)pt5(0) = pt1(0): pt5(1) = pt1(1) + 0.95 * d: pt5(2) = pt1(2)pt6(0) = pt1(0) + 0.2 * d: pt6(1) = pt1(1) + 0.95 * d: pt6(2) = pt1(2)pt7(0) = pt1(0) + 0.2 * d: pt7(1) = pt1(1) + 0.55 * d: pt7(2) = pt1(2)pt8(0) = pt1(0): pt8(1) = pt1(1) + 0.55 * d: pt8(2) = pt1(2)pt9(0) = pt1(0) + 0.4 * d: pt9(1) = pt1(1) + 1.25 * d: pt9(2) = pt1(2)pt10(0) = pt1(0) + 0.4 * d + l - 1: pt10(1) = pt1(1) + 1.25 * d: pt10(2) = pt1(2) pt11(0) = pt1(0) + 0.4 * d + l - 1: pt11(1) = pt1(1) + 0.25 * d: pt11(2) = pt1(2) pt12(0) = pt1(0) + 0.4 * d: pt12(1) = pt1(1) + 0.25 * d: pt12(2) = pt1(2)pt13(0) = pt1(0) + 0.4 * d: pt13(1) = pt1(1) + 1.25 * d - 1: pt13(2) = pt1(2)pt14(0) = pt1(0) + 0.4 * d + l: pt14(1) = pt1(1) + 1.25 * d - 1: pt14(2) = pt1(2) pt15(0) = pt1(0) + 0.4 * d + l: pt15(1) = pt1(1) + 0.25 * d + 1: pt15(2) = pt1(2) pt16(0) = pt1(0) + 0.4 * d: pt16(1) = pt1(1) + 0.25 * d + 1: pt16(2) = pt1(2)pt17(0) = pt1(0) + 0.4 * d +1:pt17(1) = pt1(1) + 1.25 * d: pt17(2) = pt1(2)pt18(0) = pt1(0) + 0.4 * d + 1 :pt18(1) = pt1(1) + 0.25 * d: pt18(2) = pt1(2)pt19(0) = pt1(0) - 5: pt19(1) = pt1(1) + 0.75 * d: pt19(2) = pt1(2)pt20(0) = pt1(0) + 0.4 * d + l + 5: pt20(1) = pt1(1) + 0.75 * d: pt20(2) = pt1(2) Set lineObj = ThisDrawing.ModelSpace.AddLine(pt1, pt2)Set lineObj = ThisDrawing.ModelSpace.AddLine(pt2, pt3)Set lineObj = ThisDrawing.ModelSpace.AddLine(pt3, pt4)Set lineObj = ThisDrawing.ModelSpace.AddLine(pt4, pt5)Set lineObj = ThisDrawing.ModelSpace.AddLine(pt5, pt6)Set lineObj = ThisDrawing.ModelSpace.AddLine(pt6, pt7)Set lineObj = ThisDrawing.ModelSpace.AddLine(pt7, pt8)Set lineObj = ThisDrawing.ModelSpace.AddLine(pt8, pt1)Set lineObj = ThisDrawing.ModelSpace.AddLine(pt9, pt10)Set lineObj = ThisDrawing.ModelSpace.AddLine(pt10, pt11)Set lineObj = ThisDrawing.ModelSpace.AddLine(pt11, pt12) Set lineObj = ThisDrawing.ModelSpace.AddLine(pt13, pt14) Set lineObj = ThisDrawing.ModelSpace.AddLine(pt14, pt15) Set lineObj = ThisDrawing.ModelSpace.AddLine(pt15, pt16) Set lineObj = ThisDrawing.ModelSpace.AddLine(pt10, pt14) Set lineObj = ThisDrawing.ModelSpace.AddLine(pt11, pt15) Set lineObj = ThisDrawing.ModelSpace.AddLine(pt17, pt18) Set lineObj = ThisDrawing.ModelSpace.AddLine(pt19, pt20)End Sub。

AutoCAD中用VBA进行二次开发论文:AutoCAD中用VBA进行二次开发在工程测量中的应用

AutoCAD中用VBA进行二次开发论文:AutoCAD中用VBA进行二次开发在工程测量中的应用

AutoCAD中用VBA进行二次开发论文:AutoCAD中用VBA 进行二次开发在工程测量中的应用摘要:用VBA在AutoCAD平台上进行二次开发,创建非常好的应用程序,让那些绘制重复的测量绘图工作能自动执行,帮助我们自动地高效率地完成绘图任务。

笔者应用生产实用的二个例题来说明AutoCAD中用VBA进行二次开发在工程测量中的应用。

中图分类号:TP391.72文献标识码:A文章编号:1007-9416(2011)05-0119-021、AutoCAD与VBAAutoCAD是由Autodesk公司开发的工程绘图软件,是工程制图人员常用的绘图软件之一,功能十分强大,在测量工程领域广泛应用,AutoCAD除了具有强大的绘图功能,开放式体系结构也允许第三方开发者为它编写应用程序,显著增加了绘图工作效率。

VBA是Visual Basic for Applications的英文缩写,是由Microsoft创建的,它是一个功能强大的定制程序开发工具,用来自动执行任务的一个编程环境。

VBA为AutoCAD的二次开发提供类似Visual Basic(VB)语言所拥有的功能,引入了对象的程序设计环境,为开发者提供了用来创建图形用户界面(GUI)的可拖拉工具和用来与AutoCAD对象交互的编程语言。

工程技术人员绘制图形时,也许会重复地一遍遍地执行着相同的绘图任务。

如在地下管线测量任务时,一条街道上存在着具有各种不同属性的管线(通讯管线、军用光缆、上水管线、污水管线等),测量人员要用全站仪将成千上万的各种管线的特征点坐标测量出来,在AutoCAD上将这些具有相同属性的管线点连接起来绘制成综合管线图。

用手工在AutoCAD上连接这些特征点绘制成管线图,那是一项乏味的、重复的、极低效率的工作,而且会由于绘图人员的工作疲劳和疏忽产生错误。

如果我们的工程技术人员可以使用VBA在AutoCAD平台上进行二次开发,根据管线绘图任务定制应用程序,就可以帮助我们自动高效率地完成管线绘图任务。

VB对AutoCAD二次开发案例-编辑版-创建菜单栏

VB对AutoCAD二次开发案例-编辑版-创建菜单栏

VBA 对AutoCAD 二次开发开发背景因为公司电脑的layout 设计部门人员不能将元器件转换为3D ,故而每次需要结构工程师自行将元器件的2D 图处理后导入三位软件进行3D 绘制,在处理二维工程图时,出现很多小圆弧,小圆弧处于不同的层,依次删除小圆弧很繁琐造成工作效率低下。

故而通过创建一个菜单栏,将删除小圆弧的程序全部放入一个菜单之下,实现自动化操作 操作的流程如下:连接AutoCAD →获取AutoCAD 的菜单组链接→创建菜单→创建菜单项→将菜单显示到AutoCAD 中→编辑圆弧删除程序。

详尽代码一、在VB 中连接AutoCAD 的。

在VBA 中则可以跳过此步Application 对象是VB 应用程序与AutoCAD 之间链接的关键。

将Application 对象与 AutoCAD 链接是为AutoCAD 二次开发 应用程序的第一步工作。

当AutoCAD 运行时,GetObject 函数返回Application 对象,否则发生一个错误,这时Err 对象的基础属性就会被赋值为一个非零值,可以利用一个错误陷井进行处理。

如果AutoCAD 没有运行,可以使用CreateObject 函数强迫AutoCAD 启动。

Dim myapp As ObjectOn Error Resume Nextmyapp.Visible = TrueIf Err <> 0 ThenSet myapp = CreateObject("Autocad.Application") myapp.Visible = TrueEnd If注意: GetObject(, "AutoCAD.Application")里面的那个逗号的来源请仔细阅读VB 程序帮助里面的解释二、创建菜单(在VBA 环境下) 代码如下: Public Sub menu()Dim my_菜单组 As AcadMenuGroup Dim my_弹出式菜单 As AcadPopupMenuSet my_弹出式菜单 = my_菜单组.Menus.Add("乾康工具集") Dim my_弹出式菜单项 As AcadPopupMenuItem Dim openMacro As StringSet my_弹出式菜单项 = my_弹出式菜单.AddMenuItem(0, "删除圆及圆弧", "-VBARUN DEL_ACR + chr(13) ")my_菜单组.Menus.InsertMenuInMenuBar "乾康工具集", 6End Sub -VBARUN DEL_ACR + chr(13) 在宏名称之前添加 -VBARUN 是因为从AutoCAD 工具栏或菜 单运行 VBA 宏。

浅谈基于VB的AutoCAD二次开发及其在测绘中的应用

浅谈基于VB的AutoCAD二次开发及其在测绘中的应用
Ex i t S u b En d f I
En dI f
o b j _ A e a d . V i s i b l e =T r u e 设置 A u t o C A D为可 见( 或者在后 台运 行, 不可见) o b i A e a d . D o c u m e n t s . O p e n( n l e n me ) 打开 A u t o C A D图形文件 获 得 当前 活 动 图形 文 S e t o b j — D o c= o b j _ A 件. 即刚打开的图形文件 S e t o b j _ Mo d e l S p a e e=o b j D c. o Mo d e l S p a c e 获得 当前 活动图形文 件 的模型空间
2 开发 Au t o CA D 2 0 0 4应 用 程 序 实例
笔者用 V B 6 . 0 编制 了水文断面机助制图程序 ,程序设 计流程图 、 界面及部分源代码见下图 。 该程序通过读取野外采集 的纵断面数据文 件 .自动计算 和提取完成制 图所需的亘长和高程数据并写成文件 , 然 后完成纵断面的绘制 . 并可通过对界面的操作来控制制图的横 向比例 尺及纵 向比例尺。 2 . 1 程序设计整体流程
了V B与 A u t o C A D 的连 接 、 绘 制 纵 断 面 的数 据格 式 、 数据转换 。 以 实现 快 速 绘 制 纵 断 面 。
M s g B o x” 不能运行 A u t o C A D , 请 检查是否安装 ! I I , v b O K O n l y , ” 警告 !”
ห้องสมุดไป่ตู้
A c t i v e X A u t o m a t i o n是微软 公 司的一 个技 术标 准 .其宗 旨是在 Wi n d o W S 系统 的统一管理下协调不 同的应用程序 . 允许 这此应 用程序 之间相互沟通 、相互控制 ,但两个应用程序间的沟通不是对等的 , 其 中 ,一个 程 序称 为客 户程 序 ( C l i e n t ) ,另 一个 程序 称 为服 务程 序 ( s e “ 。 r ) , 一般情况下 。 由客户程序提 出需要进 行什么操作 , 服务程序 针对操作 申请 , 完成相应 的命令 。A u t o C A D R1 4后的版本中就引人 了 A c t i v e x A u t o ma t i 0 n技 术 . 利用 A u t o C A D A c t i v e X技 术 . 可 以从其 它外 部应用 程序 ( 如V B ) 或A mo C A D内部 ( A u t o C A D V B A ) 操作 A u t o C A D 对象 V B是最为常用的支持 A c t i v e X A u t o m a t i o n 技术 的开发工具 。 它 可 以编制 出 A c t i v e x的客户程序 . 用来操作 A u t o C A D 。 即利用 V B 编制 能与 A u t o C A D相沟通 的应用程序 . 以此来实现 A u t o C A D的二次 开发。 1 . 2 利用 V B进行 A u t o C A D二次开发的关键步骤 首 先 .要 在 v B中引用 A u t o C A D的类型 库 A c a d . t l b .该库 位 于 A u t 0 C A D 2 0 0 4的安装 目录下。其次 . 要建立用 V B 开发 的应用程序 与 A u t o C A D间的联系, 这一过程 . 称为初始化 。相应的程序代码如下 :

AutoCAD 2014 二次开发 VBA 基础与实例

AutoCAD 2014 二次开发 VBA 基础与实例

AutoCAD 2014 二次开发VBA 基础与实例第一集AutoCAD二次开发介绍第二集AutoCAD VBA创建直线1我们在用VBA在AutoCAD 中完成预期的操作时,需要调用VBA提供的类或方法。

这就要求我们了解vba的基本语法结构。

其实vba和vb的语法结构基本相同,如果学习过vb程序设计语言的话,那么对vba的语言结构就不会陌生,如果没有学过那么,我会逐步给大家来讲解vba的语法结构。

其实如果没有学过vb 语言,就直接学习vba也没有问题。

当然我们也不提倡为了学习vba而去学习vb 程序设计语言,因为没有必要,直接学习vba发而不会受到vb的影响,他们毕竟还是有一些差别的。

我们先来看一个简单的应用:Vba语法讲解:Dim ps As Variant '定义变量类型,在vba中使用变量前一定要先定义Dim pt1(0 To 2) As Double Dim pt2(2) As Double 两种定义数组的方法CAD中的点可以用数组来表示,数组中的三个值分别为x、y、z第三集AutoCAD VBA创建直线2上面的过程可以在模型空间内画出一条指定起点和终点的直线,但是如果指定的不是起点和终点,那该怎么办呢,我们可以通过相关的函数将其转换成起点和终点的形式,也可以自定义函数来实现相应的操作。

我们看到了上面过程的最后一个表达式很长,自定义函数可减少这种代码的书写,当然,如果你是初学AutoCAD VBA编程的话,我建议还是尽量多些这些长的代码,因为他可以帮助你理解AutoCAD VBA中各种对象和方法以至属性之间的关系。

那么过程和函数之间有什么区别呢?我们用关键字Sub定义的一段代码为过程,而用关键字Function定义的一段代码为函数,过程和函数都可实现一定的功能或者操作。

过程没有返回值,而函数可以有返回值,这样就可将一长段代码其中的部分功能用函数封装起来。

这样做的好处是,使得代码的可读性更强,代码看起来更简练,同时如果多个功能代码都有相同的部分,则可以减少书写的次数。

基于VBA的AutoCAD二次开发及其应用

基于VBA的AutoCAD二次开发及其应用

创建一个面域; ②用 A r e a 命令计算最后一个生成的实体 ( 面域) 的面积 ; ③删除该面域实体。
3 V B A 程序 的 编制
宏是 V B A的程序语句代码的集合 , 宏是指一个或多
个操作的集合 ,其中每个操作实现特定的功能。在 V B A 首先点击该菜单 ,然后在所要计算的任意闭合 图形 中, 可 以认 为与过程等同。 工程( 或工程文件) 是V B A对其 的 内部单击 鼠标 即可 弹出如图 2所示显示 面积的对话 开发 中的应用程序的称呼。 它包含 了很多功能单元 , 如窗 框 。图 2 是 计算 的长半 轴 为 1 0 ,短半 轴 为 5的椭 圆 的面 体、 模块和过程及其代码等等。 在A u t o C A D V B A中, 工程 积 ,与理论计算的该椭圆的面积几乎完全相等。由此可 文件被保存为. d v b文件。 见, 利用该程序所求面积的精度非常高。 所编制的计算任意闭合 图形 面积的宏程序以文件名 5 结 束语 v b Au t o CAD2 0 0 4 c a l c u l a t e a r e ”保存在 的安装 目录下。 具体代码如下 o a . A
维普资讯
维普资讯
黜拦罄监 皿 ■ 皿 ■ ■ 圃 珊 田 皿 回
状都可以通过" - b o u n d a r y ” 命 令创建一条封闭的多段线 ,
用户 从 闭合 形 状 ( 称 为环 ) 创建 的二维 闭合 区域 。 环可 以
m a R ” 的内容如下 :
} } MENUGROUP =Me n u Ma c r o
/ 菜单组 名称 例如椭圆等 。 而面域则ቤተ መጻሕፍቲ ባይዱ闭合形状基本没有要求 。 面域是 / / /菜单
} }* P OPI } M n u Ma c

AutoCAD二次开发技术VBA在窗体画图中的应用

AutoCAD二次开发技术VBA在窗体画图中的应用

AutoCAD 二次开发技术VBA 在窗体画图中的应用地质10-1班何有AutoCAD 二次开发技术VBA在窗体画图中的应用何有(黑龙江科技大学地质10-1班)摘要:依照目前提供的AutoCAD二次开发工具,结合VB面向对象编程的壮大功能,介绍了AutoCAD进行二次开发的一样原理,着重分析了VB对AutoCAD进行二次开发的实现途径和具体方式,而且结合实际要求,以窗体绘制巷道断面为例,说明了VB对AutoCAD二次开发完成窗体化画图的优势及有效性。

关键词: VBA; AutoCAD; 二次开发一、引言AutoCAD二次开发要紧包括用户接口的设计和开发,标准元件库的成立, 工程图纸的生成, 接口文件的生成,其顶用户接口包括画图主界面、菜单、工具按钮和命令行等。

标准元件库的成立能够大大减少复杂繁琐的重复劳动, 同时也能够提高应用程序的标准化程度。

各类明细表文件的自动生成关于完整的工程图纸也是必需的。

另外,利用数据库技术能够实现2个系统之间的信息互换,同时引入一些复杂的算法来实现应用程序结构的优化。

能够看出,二次开发专门是利用高级语言进行的AutoCAD二次开发具有较大的灵活性, 再加上数据库技术和动态链接库技术的支持等, 使应用程序具有更为壮大的功能和运行效率, 系统的集成性也取得专门大的提高。

Visual Basic 是独立于AutoCAD 的开发环境, 而VBA 和AutoCAD 运行在同一处置空间,通过接口界面提供AutoCAD 的编程操纵。

VBA 通过利用ThisDrawing 对象提供到AutoCAD当前进程中激活图形的链接, 从而能够快速访问当前文档对象和其方式、属性和事件,和其他所有对象层中的对象。

这使程序执行速度大大地提高了,二者之间的通信变得简练而高效。

系统环境为AutoCAD 和VBA 之间的结合提供很强的接口功能,不但能够操纵AutoCAD 对象,还能够从其他应用程序发送数据或接收数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于VBA的AutoCAD二次开发及应用实例时间:2011-10-03 18:25:09 来源:作者:1引言AutOCAD2005是AutOdesk公司的系列产品,该软件从其使用和设计思路上都秉承了工程制图人员的绘图习惯,能够非常轻松地绘制出带有平面视图和三维渲染效果的工程图纸,是绘图人员的一个理想工具。

随着CAD基础理论和应用技术的不断发展,对CAD系统的功能要求也越来越高。

因而AutoCAD不可能完全满足每个用户的具体而特定的要求。

设计人员希望它能从本质上减轻大量简单烦琐的工作量,使他们能集中精力于那些富有创造性的高层次思维活动中。

AutoCAD提供的开放式体系结构允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发,能最大限度地满足用户的特殊要求,更方便、更规范、更专业的实现设计和绘图中的应用。

VBA最早是建立在0ffice97中的标准宏语言,由于它在开发方面的易用性及具有的强大功能,许多软件开发商都将其嵌入自己的应用程序中,作为一种开发工具提供给用户使用。

AutOdeSk公司自从Aut0CADRl4.0l版开始,内置了VBA开发工具。

新一代程序开发工具ViSual BaSic,不仅继承了面向对象方法的特性,同时具备可视化程序语言及程序产生器的概念。

VBA(visual Basic For Apphcation)是AutoCAD R12以后推出的一种新的编程环境,提供了以Visual Basic为基础的面向对象的开发特征及程序接口,能真正快速地访问AutOCAD图形数据库,能明显提高软件开发和维护的效率。

2 VBA的技术特性2.1 VBA开发AUTOCAD的技术特点VBA是微软开发出来的应用程序共享一种通用的自动化语言,它可以使常用的程序自动化,并可以创建自定义的解决方案。

VBA被集成到AutoCAD中,VBA和AutoCAD中强大的Activex自动化对象模型的结合,代表了一种新型的定制AutoCAD的模式构架。

通过VBA,我们可以操作AutoCAD2004,控制ActiveX和其它一些应用程序,使之相互之间发生互易活动下面就是VBA的主要功能:(1)VBA提供强大的窗体创建功能,为应用程序建立对话框及其他屏幕界面。

(2)可以创建自己的工具条。

(3)可以创建功能强大的模块级宏指令,宏名实质上就是模块的过程名。

(4)提供建立类模块的功能,这对开发大型工程非常有用,因此类可以提供重用组。

(5)具备完善的数据访问和管理能力,通过ADO(ActivexData Objects),可以对Access数据库或其他外部数据库(像dBase,FoxPro等)实现访问和管理。

此功能比直接使用AutoCAD的数据库管理系统要方便,且功能强大。

2.2 VBA AutoCAD ActiveX Automation对象模型VBA是通过AutoCAD ActiveX Automation接口来建立和AutoCAD对象问的联系。

ActiveX是建立在COM对象模型之上的一个标准通信协议,它允许对象之间通过一定的接口相互通信。

AutoCAD Activex使用户能够从AutoCAD的内部或外部以编程方式来操作AutoCAD。

它是通过将AutoCAD对象显示到“外部世界”来做到这一点的。

这些对象被显示后,许多不同的编程语言和环境以及其他应用程序(例如Microsonword VBA或Excel VBA)就可以访问它们。

如图1是编程语言和应用程序通过AutoCAD ActiveX访问AutoCAD。

图1 编程语言和应用程序通过AutoCAD AcfiveX访问AutoCAD在AutoCAD中实现ActiveX接口有两大优点:·更多的编程环境可以编程访问AucOCAD图形。

在ActiveXAutomation 出现以前,开发人员只能使用AutoLISP或C++接口。

·与其他windows应用程序(如Microsoft ACCESS和Word)共享数据变得更加容易。

对象是所有Activex应用程序的主要构造块。

每一个显示的对象均精确代表一个AutoCAD组件。

AutoCAD ActiveX接口中有许多不同类型的对象。

例如:·直线、圆弧、文字和标注等图形对象都是对象。

·线型与标注样式等样式设置都是对象。

·图层、编组和块等组织结构都是对象。

·视图与视口等图形显示都是对象。

·甚至图形、AutoCAD应用程序本身也是对象。

AutoCAD对象是通过分层方式来组织的,应用程序对象为根对象。

这种分层结构的视图被归结为对象模型。

对象模型提供了用户访问下一层对象的途径。

用户可直接通过用户定义变量引用对象。

直接引用对象,应包括对象的层次。

举一个最简单的例子,在VBA中要利用圆心和半径创建圆可以使用以下代码:Sub drawcircle()* Dim ptl(2)As DoubleDim radius As Doubleptl(0)=23ptl(1)=78Dtl(2)=67radius=56’调用Addcircle方法绘制圆ThisDrawing.Modelspace.addcircle ptl,radiusEnd Sub3 AUTOCAD VBA实例应用这个实例,介绍了VBA开发AUTOCAD实现参数化绘图的编程思路与实际应用,是CAD系统中很重要的环节。

3.1绘制三维图形实例说明(1).本程序运行界面如图2所示,用户可以指定中心点,桌面及桌腿半径,桌子的高度,系统就能根据用户指定的参数在三维空间中创建出一个桌子。

(2).编程思路核心问题是创建大小圆的面域,复制出来的桌腿,角度的旋转及最后的合并着色。

3.2 VBA开发AutoCAD2005的技术流程(1)首先在AUTOCAD2004中,选择[工具/宏/VBA管理器]菜单项,在弹出的[VBA管理器]对话框中单击[新建]按钮,将其保存在适当的位置。

(2)在[VBA管理器]对话框中单击[Visual Basic编辑器]按钮,进入VBA 集成开发环境,选择[插入/用户窗体]菜单项,向工程中添加一个用户窗体。

图2 创建桌子运行界面(3)在用户窗体上插入如图2所示的相关控件,并按下表分别设置它们的相关属性。

(4)相关代码:l>.在Cammandbutton2命令按钮的单击Click事件的代码为:图3桌子的参数化绘图(2)在AutoCAD2004中,选择[视图/着色/体着色]菜单项,对生成的模型进行着色,所得结果,如图4所示图4 创建桌子运行界面该实例可以连接上数据库,使用时可以直接调用数据库中的参数,直接运行得出所需的图形。

4 AUTOCAD VBA数据库连接技术4.1 ADO数据库访问技术别随着CAD技术的发展,在CAD软件中使用数据库的场合越来越多,数据库连接方法ADO是Microsoft AcciveX Data ObjeCts的简称,ADO作为一种更新的数据库访问技术,“扩展”了DA0和RD0所使用的对象模型,包含较少的对象和更多的属性、方法、事件。

本节仅介绍ADO控件连接MICROSOFT、ACCESS数据库的基本操作,桌子的各个参数,存放在数据库DESK.mdb中,可以用于浏览数据库中的各条记录,还可以完成记录的添加,修改和删除操作。

在使用ADO对象之前,需要在VBA集成开发环境中,选择[工程/引用]菜单项,从弹出的对话框中选中[microsoft ActiveX Data Objects 2.5 Livrary]选项,引用ADO的对象模型,如图5所示图5 引用ADO的对象模型4.2 ADO编程在编程过程中使用AD0的一个典型的存取数据的步骤为:(1)连接数据源。

可以使用连接对象的Open方法打开数据库对象,例如:adoCon.Open“Provider=Microsoft.Jet.OLEDB.4.0;DataSource=“&_Left(strPath,Len(strPam)一6)&”\DESK.mdb;”(2)打开记录集对象。

可以使用记录集对象的Open方法打开记录集对象,例如:adoRs.Open“biaoData2”,adoCon,adOpenDynamic,adLockOptimiStic(3)使用记录集。

在各个记录集之间切换一般可以使用记录集对象的Move、MoveFirst、MoveNext、MovePrevious和MoveLast方法,添加新的记录可以使用记录集对象的AddNew方法,修改当前记录的内容只需对数据库记录集中的对象重新赋值即可,删除当前的记录可以使用记录集的Delete方法。

其中,记录集在进行添加的操作之后,必须使用Update方法更新数据库。

(4)断开连接。

使用close方法能够关闭记录集和数据库连接对象,在退出程序之后,必须用close方法关闭这两个对象。

向工程中添加一个用户窗体,并在窗体中放置如图6所示的控件。

向工程中添加一个用户窗体,并在窗体中放置如图6所示的控件。

图6桌子的数据库连接5 结束语基于VBA的AutoCAD二次开发技术,可以实现AUTOCAD功能的拓展及参数化没计,如零件标准图库的建立等各个方面,更好的满足机械电子行业等系列化产品的专业设计。

对于大型CAD应用软件的开发,能发挥极大的作用。

各大企业也在开发自己的CAD系统,具有很好的实用价值。

相关文档
最新文档