VBA开发AUTOCAD实现参数化绘图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VBA开发AUTOCAD实现参数化绘图
王若慧
Realizing The Parameter-Drawing taking the VBA and AUTOCAD
(.山西大学工程学院,山西省太原,030013)
Wang Ruo Hui
Engineering Colledge of SHANXI University, Taiyuan 030013)
摘要: 介绍了采用VBA(Visual Basic for Application)进行AutoCAD2005的二次开发,应用AutoCAD ActiveX Automation 接口技术访问AutoCAD对象,采用ADO实现AUTOCAD与Microsoft Access2000的数据通信,实现程序参数化绘图的基本思路及程序设计流程.
关键词:VBA AutoCAD ActiveX Automation ADO 参数化绘图
Abstract:Taking the ActiveX Automation of VBA and AutoCAD2005 to access the AutoCAD drawings, and the ADO to make the data communication between the AUTOCAD and ACCESS , the parameter-drawing can be well realized in the way what is described in the article .
Key words:VBA AutoCAD ActiveX Automation ADO
the parameter-drawing
引言:
传统的人机交互式绘图一般需要用精确的尺寸值定义几何元素,输入的每一条线都必须有确定的位置,图形一旦建立,即使结构相似但想改变图形大小尺寸,只能对图形进行编辑。而在工程设计中,一方面,进行新产品设计时不可避免地需要多次反复修改,需要进行多方面的综合协调和优化;另一方面,许多的专业图纸设计中,很多图形结构具有一定的相似性,往往只是尺寸的大小不同,其图形随尺寸参数的变化而相应变化。因此,希望有一种比交互式绘图更方便、更高效、更适合结构相似图形绘制的方法.为了解决这个问题,我们可研制出一种绘图软件,图中尺寸参数通过交互方式输入,随后通过运行有关程序,确定所有的绘图信息,自动绘出图形,这种工作方式通常称为程序参数化绘图.这就是参数化绘图要解决的问题,同时它也是CAD系统很重要的一个环节.
1.程序参数化绘图的实质
程序参数化绘图主要适用于图形结构形式基本固定而结构尺寸参数变化的图形。
程序参数化绘图的实质,就是将图形信息记录在程序中。图形的描述通常可分为:图形的拓扑关系、图形的几何参数以及这些几何参数与图形结构参数之间的联系。通常用一组变量记录图形的几何参数,用一系列的赋值语句表达几何参数与结构参数之间的关系,然后用一系列的调用语句来描述图形的拓扑关系。
如图1所示图形的几何参数是四个点的坐标(x1,y1),(x2,y2),(x3,y3)和(x4,y4),结构参数是两个尺寸a和b。这些参数之间的关系为:x1=x4;y1=y2;x2=x3;y3=y4;x2=x1+a;y3=y1+b。
(x4
(x1,y1y2)
图1 图形的描述
2. 程序参数化绘图的实现途径
为了实现参数化绘图,需要建立一个计算机图形软件系统.应用这个系统可以简化图形设计应用程序的编制,并能方便地应用计算机程序实现图形地输入和输出.建立一个图形系统可以有三种方式:(1)设计专用图形语言.(2)修改
高级程序设计语言,使其具有图形处理的功能.(3)建立图形设计程序包.前两种方式都需要用低级或高级语言重写一个编译器.一般来说,修改或者重写一个编译器的工作量比较大,而且图形设计过程并非简单的数据处理过程,还包括许多文件结构和存贮结构的问题,从而使上述工作的复杂性大大增加.有些绘图软件配有内部专用绘图语言,如AutoCAD配有AutoLISP编程语言,DDM/DIMENSION3图形软件配有DAL绘图语言等,利用这些语言用户可以开发参数化绘图软件.但是这些语言的数组,循环,函数,逻辑关系等功能一般较差,不宜作大量的计算工作,编程也不太方便.
第三种方式即建立图形设计程序包,其基本思想是选择一种合适的高级程序设计语言作为主语言,在此语言中扩展一系列的过程调用,以实现图形设计工作.在这种情况下,用户编写的图形描述程序由两部分组成:一是主语言语句,另一个是主语言中扩展了的过程调用语句.在扩充某种高级语言使其具有图形处理功能时,最好能利用已有的较成熟的图形软件.
3. 程序参数化绘图的技术路线
要实现程序参数化绘图程序的编制, 本文采用AutoCAD2005为绘图支撑软件,采用VBA(Visual Basic for Application)进行AutoCAD2005的二次开发,运用AutoCADVBA实现参数化绘制工程图纸.
3.1 AUTOCAD2005简介
1.AutoCAD是当今最流行的二维绘图软件, AutoCAD有强大的二维功能,
如绘图、编辑、剖面线和图案绘制、尺寸标注以及二次开发等功能,
同时有部分三维功能。
2.尽管AutoCAD是一个非常好的通用计算机辅助绘图和设计软件系统,
但每一行业和专业都有自的行业和专业标准,许多单位也有自己的技
术规格和企业标准,每个设计工程师和绘图员更有各自独特的工作方
式和习惯。因而AutoCAD不可能完全满足每个用户的具体而特定的要
求。对AutoCAD进行定制和二次开发,能使AutoCAD可以更加符合用
户的需求,更方便、更规范、更专业的实现设计和绘图中的应用。
AutoCAD提供的开放式体系结构正是为使用户可以根据各自的需求来
改进和扩充AutoCAD的许多功能而着想的
3.AutoCAD提供AutoLISP、ADS、ARX、VBA作为二次开发的工具。在许
多实际应用领域(如机械、建筑、电子)中,一些软件开发商在AutoCAD
的基础上已开发出许多符合实际应用的软件,很好的实现了参数化绘
制工程图纸.
3.2 VBA开发AutoCAD2005
采用面向对象的程序设计方法, 使用Visual Basic在AutoCAD2005 上用VBA技术进行二次开发, 能够较好地实现系统程序参数化绘图。
VBA是通过AutoCAD ActiveX Automation接口来建立和AutoCAD对象间的联系。ActiveX是建立在COM对象模型之上的一个标准通信协议,它允许对象