2010autocad 的 microsoft vba

合集下载

AutocadvbA初级教程(13)块操作

AutocadvbA初级教程(13)块操作

Autocad vbA初级教程(13) 块操作定义块方法:Set blocksobj=ThisDrawing.Blocks.Add(基点, 块名)把选择集加入块中的方法:ThisDrawing.CopyObjects(选择集,块)插入块方法:0ThisDrawing.ModelSpace.InsertBlock(插入点,块名, X轴比例,Y轴比例,Z轴比例, 旋转角度)画块属性方法:ThisDrawing.ModelSpace.AddAttribute(文字高度,模式,提示字符, 插入点, 显示字符,默认值)一共有五种模式,在输入时会有提示,其中最常用的是“acAttributeModeNormal”普通模式编程思路:1.定义一个空块2.在块中画一段弧(球服衣领)3.画多段线,镜像画出球衣4.画块属性,由于块属性默认的对齐方式是左对齐,而球员号码应该居中,所以必须把块的对齐属性改为居中。

但是当这个属性更改时块属性对齐点会自动归零,所以不得不再次更改对齐点属性5.把多段线和属性复制到块中6.提示用户点选球员位置和姓名7.插入块,修改球衣号码属性、球员姓名属性以下是源码,附有详细的注释,如果有疑问,建议用变量跟踪法研究一下。

Sub team()Dim playerlay As AcadLayer '定义球员图层Dim playerblock As AcadBlock '定义块变量Dim arcc(0 To 2) As Double '圆弧圆心Dim linep1(0 To 2) As Double '线条端点1Dim linep2(0 To 2) As Double '线条端点2Dim pline(0 To 20) As Double '定义队服右侧多段线7个顶点Dim basep(0 To 2) As Double '块基点00Dim playernumberpoint(0 To 2) As Double '块属性插入点Dim mytxt As AcadTextStyle '定义mytxt变量为文本样式Dim blockRef As AcadBlockReference '定义块属性变量Dim Attr3 As V ariant '插入块属性变量Set playerblock = ThisDrawing.Blocks.Add(basep, "球员") '定义一个"球员"的块arcc(0) = 0arcc(1) = 430Call playerblock.AddArc(arcc, 50, ThisDrawing.Utility.AngleToReal(180, 0), 0) '画弧并加入块中0pline(0) = 0pline(1) = 20pline(3) = 1000pline(4) = 20pline(6) = 100pline(7) = 250pline(9) = 125pline(10) = 2070pline(12) = 212pline(13) = 257pline(15) = 112pline(16) = 4300pline(18) = 50pline(19) = 430Set line1 = ThisDrawing.ModelSpace.AddPolyline(pline) '画队服右侧多段线linep2(1) = 1 '镜像轴第二点位于Y轴上任一点Set line2 = line1.Mirror(linep1, linep2) '镜像获得另一半多段线Dim p(0 To 2) As Double '定义坐标变量0 0Set mytxt = ThisDrawing.TextStyles.Add("mytxt") '添加mytxt样式mytxt.fontFile = "c:\windows\fonts\simfang.ttf" '设置字体文件为仿宋体ThisDrawing.ActiveTextStyle = mytxt '将当前文字样式设置为mytxtplayernumberpoint(0) = 0 '块属性位置playernumberpoint(1) = 2000Set attr1 = ThisDrawing.ModelSpace.AddAttribute(100, acAttributeModeNormal, "号码", playernumberpoint, "X", 0) '画块属性0attr1.Alignment = 7 '居中attr1.TextAlignmentPoint = playernumberpoint '重定义对齐点Set attr2 = ThisDrawing.ModelSpace.AddAttribute(100, acAttributeModeNormal, "姓名", playernumberpoint, "", 0) '画块属性attr2.Alignment = 7 '居中Dim objCollection(0 To 3) As Object '创建选择集Set objCollection(0) = line1 '线条1加入选择集Set objCollection(1) = line2 '线条2加入选择集Set objCollection(2) = attr1 '属性1加入选择集0Set objCollection(3) = attr2 '属性2加入选择集Call ThisDrawing.CopyObjects(objCollection, playerblock) '把选择集加入块中For Each element In objCollection '在选择集中进行循环element.Delete '删除线条和属性(此操作并不影响已创建的块)NextSet playerlay = yers.Add("球员") '新建图层playerlay.color = 2 '为黄色ThisDrawing.ActiveLayer = playerlay '将当前图层设置为球员图层Dim p1 As V ariant '块插入点位置For i = 1 To 11 '插入块pstring = CStr(i) & "号球员位置:"p1 = ThisDrawing.Utility.GetPoint(, pstring) '点选球员位置坐标nstring = ThisDrawing.Utility.GetString(30, "球员姓名:")Set blockRef = ThisDrawing.ModelSpace.InsertBlock(p1, "球员", 1, 1, 1, 0) '插入块 Attr3 = blockRef.GetAttributes '获取块属性Attr3(0).TextString = CStr(i) '赋值球员号码Attr3(1).TextString = nstring '赋值球员姓名NextEnd Sub。

AutoCAD_VBA帮助文件

AutoCAD_VBA帮助文件

简介本简介介绍了通过 ActiveX Automation 接口显示 AutoCAD 对象以及使用 Visual Basic for Applications 编程环境对这些对象进行编程的相关概念。

本节内容l AutoCAD ActiveX 技术概述lAutoCAD Visual Basic for Applications (VBA) 接口概述 l AutoCAD ActiveX 和 VBA 一起运行 l 本书的结构 l 关于更多信息 l 代码样例l 移植 Automation 工程请将您关于此页内容的评论发送给我们简介 >AutoCAD ActiveX 技术概述AutoCAD ® ActiveX ® 使用户能够从 AutoCAD 的内部或外部以编程方式来操作 AutoCAD 。

它是通过使 AutoCAD 对象暴露于“外部世界”来实现这一功能的。

暴露这些对象后,可以通过多种不同的编程语言和环境以及其他应用程序(例如 Microsoft ® Word VBA 或 Excel VBA )对其进行访问。

在 AutoCAD 中实现 ActiveX 接口有两大优点:l 更多的编程环境可以编程访问 AutoCAD 图形。

在 ActiveX Automation 出现之前,开发人员只能用 AutoLISP ® 或 C++ 接口访问 AutoCAD 图形。

l与其他 Windows ® 应用程序(例如 Microsoft Excel 和 Word )共享数据比以前要方便得多。

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

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

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

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

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

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

CAD里面的VBA能做什么-AutoCAD产品技术应用讨论区-欧特克AU技术社区...

CAD里面的VBA能做什么-AutoCAD产品技术应用讨论区-欧特克AU技术社区...

CAD里面的VBA能做什么-AutoCAD产品技术应用讨论区-欧特克AU技术社区...当用VBA开发基于AutoCAD的应用程序时,几乎总是在重复下面的几种工作:(1)创建和编辑实体。

作为计算机设计软件,AutoCAD最主要的工作时完成设计目标并为下一阶段的实际制造提供参考。

图纸仍然时其主要的工作产品,因而大部分的二次开发应用程序最终都要将结果用图形实体表现出来,这时AutoCAD二次开发的一个基础。

(2)和用户交互。

应用程序本身可以通过窗体或者命令行完成和用户交互。

比较特殊的时与图形相关的用户交互,列如提示用户选择一条多段线、输入一个整数、输入一个角度值等。

(3)利用队形特性来组织实体。

AutoCAD作为一种CAD 软件,其内在的特点决定了所有的图形实体不具有属性特征。

也就是说,如果绘制一条直线来作为一条道路,在AutoCAD中是无法标识出他是一条道路的,通常的解决方法是创建一个名为“道路”的图层,然后将所有的代表道路的线都放在这个图层中统一管理。

(4)处理图形文件,在文件之间交换数据。

在进行设计是,把所有的图形元素放在一个图形文件中并不总是个好主意,最常见的后果就是图形文件太大导致操作起来太慢。

解决这个问题的办法就是按某种法则将图形元素分布到几个图形文件中,在需要的时候交换图形文件之间的数据。

(5)视图管理。

在AutoCAD中绘图时,为了便于计算和观察图形,人们总时会很频繁地改变视图,列如缩放、平移或改变视点。

而在开发VBA应用程序时,这方面的要求相对来说会低一点,一般只需在创建实体之后给出一个合适的观察角度即可。

(6)文字。

在AutoCAD的基本图形元素中,文字是比较简单的一个,但是在实际使用中它的可变性最大。

列如,不同类型的说话需要不同的文字样式,还有一些特殊的符号以及行为公差都是通过文字来表现的。

(7)管理块的属性。

块是将若干个图形对象定义成一个组,在需要的地方可以多次引用它。

这带来两个好处,一是减小图形的尺寸,二是修改起来方便,只需要修改块的定义便可以更新所有引用。

AutoCAD2010快捷命令及注释大全(呕心整理,与acad.pgp及帮助文件一致)

AutoCAD2010快捷命令及注释大全(呕心整理,与acad.pgp及帮助文件一致)

创建按图形中对象的多个副本。 创建按图形中对象的多个副本。 将用户消息插入动作宏中。
*-ACTUSERMESSAGE 将用户消息插入动作宏中。 *ACTRECORD *ACTSTOP *-ACTSTOP *ACTUSERINPUT *ATTEDIT *ATTIPEDIT 启动动作录制器。 停止动作录制器,并提供将已录制的动作保存至动作宏文件的选项。 停止动作录制器,并提供将已录制的动作保存至动作宏文件的选项。 在动作宏中暂停以等待用户输入。 更改块中的属性信息。 更改块中属性的文本内容。
合并相似的对象以形成一个完整的对象。 将折弯线段添加至截面对象。 创建直线段。 管理图层和图层特性。 管理图层和图层特性。 保存、恢复和管理命名图层的状态。 创建引线和引线注释。 创建连接注释与特征的线。 更改对象的长度和圆弧的包含角。
JOGSECTION, *SECTIONPLANEJOG L, LA, -LA, LAS, LE, LEAD, LEN, LESS, LI, LO, LS, *LINE *LAYER *-LAYER *LAYERSTATE *QLEADER *LEADER *LENGTHEN
*CHECKSTANDARDS 检查当前图形中是否存在标准冲突。 *COMMANDLINE *COPY *COLOR *BCPARAMETER *MESHCREASE 显示“命令行”窗口。 在指定方向上按指定距离复制对象。 设置新对象的颜色。 将约束参数应用于选定的对象,或将标注约束转换为参数约束。 锐化选定网格子对象的边。
使用填充图案、实体填充或渐变填充来填充封闭区域或选定对象。
修改现有的图案填充或填充。 重生成不显示隐藏线的三维线框模型。 将块或图形插入当前图形中。 将块或图形插入当前图形中。 控制图像的亮度、对比度和淡入度显示。 将参照插入图像文件中。 根据指定边界修剪选定图像的显示。 显示“外部参照”选项板。 显示“外部参照”选项板。 将不同格式的文件输入当前图形中。 通过重叠实体、曲面或面域创建三维实体、曲面或二维面域。 通过两组选定三维实体之间的干涉创建临时三维实体。 插入链接或内嵌对象。

AutoCAD VBA

AutoCAD VBA

国内其它站点

开发入门Hello VBA
变量、数组定义
Dim strname as string Dim insertPoint(0 to 2) as double
对象的创建与实例化
Dim text as AcadText Set text = Thisdrawing.modelspace.addtext(…)
开发入门Hello VBA
函数
InputBox MsgBox
对象方法、属性的引用
实验4 AutoCAD VBA
ftp下载报告 完成实验 根据实验要求上传相关资料
Байду номын сангаас
AutoCAD 二次开发
VBA和ActiveX技术对AutoCAD进行二次开发 使用.NET(可以选择或C#语言)开 发托管ObjectARX应用程序
CAD和ObjectARX编程站
CAD大观园

ObjectARX编程站

AutoCAD VBA
Visual Basic Application(VBA)
CAD软件二次开发
由于任何一个通用的CAD软件都不可能解决某行业 用户在产品设计与制造中的全部问题,所以,在 CAD应用领域,更多的用户和技术人员要在基于某 个应用系统(如AUTOCAD等)的基础上,针对企 业或行业的特殊需要进行二次开发,以满足本企业 或某行业在产品设计、制造上的特殊要求,或者针 对CAD的某个应用领域进行专门软件开发,以完成 特殊的造型、计算、分析等专业应用要求。

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编号和对齐VBA程序(500个对象)

If xiaoshuwei = "" Then xiaoshuwei = 2
houzui = ThisDrawing.Utility.GetString(True, "输入后缀(字符串):")
On Error Resume Next
shunxu = ThisDrawing.Utility.GetInteger("输入顺序(1增序/2减序):")
Case 3
str_temp$ = "000" + CStr(i)
Case 4
str_temp$ = "0000" + CStr(i)
Case 5
str_temp$ = "00000" + CStr(i)
suoyin(0) = arr_suoyin(0)
zuobiao(0) = arr_zuobiao(0)
For jp = 1 To duixiangshu Step 1
For jpp = 0 To duixiangshu Step 1
If arr_zuobiao(jp) >= zuobiao(jpp) Then
Case 3
str_temp$ = "000" + CStr(i)
Case 4
str_temp$ = "0000" + CStr(i)
If shunxu = "" Then shunxu = 1
'zengliang = ThisDrawing.Utility.GetReal("输入增量(实数):")

autocad vba初级教程 (强烈推荐)

Autocad VBA初级教程 (第二课编程基础)Autocad VBA初级教程 (第三课编程基础二)Autocad VBA初级教程 (第四课程序的调试和保存) Autocad VBA初级教程 (第五课画函数曲线)Autocad VBA初级教程 (第六课数据类型的转换) Autocad VBA初级教程 (第七课写文字)Autocad VBA初级教程 (第八课:图层操作)Autocad VBA初级教程 (第九课:创建选择集) 18 Autocad VBA初级教程 (第十课:画多段线和样条线) 20 Autocad VBA初级教程 (第十一课:动画基础) 23 Autocad VBA初级教程 (第十二课:参数化设计基础) 26Autocad VBA初级教程(第一课:入门)1.为什么要写这个教程市面上ACAD VBA的书不多,它的帮助是英文版的,很多人看不懂。

其实我转行已经好几年了,而且手艺也慢慢生疏了,写个教程对自己来说也是一次复习。

2.什么是Autocad VBA?VBA是Visual Basic for Applications的英文缩写,它是一个功能强大的开发工具,学好VBA可以成倍甚至成百、成万倍提高工作效率,在工作中,有很多任务仅用ACAD命令不可能完成的,只要学好VBA就可以做到,相信到时候您一定会得到同事的佩服、老板的器重。

3、VBA有多难?相信大家都知道Basic是的含义。

应该承认,我的水平还不高,错误之处在所难免,如果大家发现错误一定要提出批评,以便及时更正。

4、怎样学习VBA?介绍大家一个学习公式:信心+恒心=开心。

仔细阅读本教程,完成例题,在学习的过程中一定要多思考,多想一些是什么、为什么。

本教程将陆续发布在CAD 世界论坛上,您不需要付费就可以学习。

本作者在此郑重承诺:关于本教程中有任何疑问,可以跟贴提问,只要有时间,本人一定会耐心解答。

我不会发到任何人的邮箱中,您自己在论坛上找就可以了,请不要再向我索要这份教程。

VBAForAutoCAD开发手册范本

VBA For AutoCAD开发手册作者:郑立楷目录第一章VBA入门了解嵌入和全局VBA工程用VBA管理器组织工程处理宏用VBA IDE编辑工程更多的信息回顾AutoCAD VBA 工程术语回顾AutoCAD VBA 命令第二章理解ActiveX自动操作基础..理解AutoCAD对象模型访问对象层次通过集合对象操作理解属性和方法理解父对象定位类型库在数据库中返回第一个图元在方法和属性中使用变体使用其它程序语言第三章控制AutoCAD环境打开、保存和关闭图形设定AutoCAD参数控制应用程序窗口控制图形窗口重置活动对象设定和返回系统变量精确制图提示用户输入访问AutoCAD命令行工作于无打开文档状态输入其它文件格式输出到其它文件格式第四章创建和编辑AutoCAD图元创建对象确定容器对象创建直线创建曲线对象创建点对象创建实体填充区域创建面域创建阴影创建实体填充区域创建面域创建阴影编辑对象工作于命名的对象选择对象复制对象移动对象删除对象比例缩放对象转换对象延伸和修剪对象分解对象编辑多段线编辑样条曲线编辑阴影使用图层、颜色和线型使用图层使用颜色使用线型分配图层、颜色和线型给对象添加文本到图形中处理文字样式使用单行文字使用多行文字使用Unicode字符、控制代码和特殊字符替换字体拼写检查第五章标注与公差标注的概念创建标注编辑标注利用标注样式在模型空间和图纸空间中标注创建引线及注解创建形位公差第六章定义菜单和工具栏理解MenuBar和MenuGroups集合加载菜单组改变菜单条创建和编辑下拉菜单和快捷菜单建立并编辑工具栏建立宏对菜单项和工具栏项增加状态栏帮...在右键菜单中增加条目第七章使用事件了解AutoCAD中的事件编写事件处理器的方法处理应用程序级事件处理文档级事件处理对象级事件第八章在三维空间下工作指定三维坐标定义用户坐标系统坐标转换建立三维对象在三维中编辑编辑三维实体第九章定义布局及打印了解模型空间和图纸空间了解布局了解布局与块的关系了解打印配置决定布局设置了解视口切换至图纸空间布局切换至模型空间布局建立图纸空间视口改变视口视图及内容在图纸空间中缩放线型样式在被打印视口中的消隐线打印图纸执行基本打印在模型空间中打印从图纸空间打印第十章-高级绘图与组织技术使用光栅图像附着和缩放光栅图像管理光栅图像修改图像和图像边界剪裁图像使用块和属性使用块使用属性第一章VBA入门本章将为你介绍AutoCADVBA工程及VBA交互开发环境(VBA IDE)。

AutoCADVBA简介及自动化介绍

AutoCAD VBA一、A u t o C A D V B A简介•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)集合包含在活动图纸空间布局中的所有图形对象(图元)。

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

在2010版AutoCAD中,Microsoft VBA(Visual Basic for Applications)是一种用于编写和自定义宏和脚本的编程语言。

VBA可以与AutoCAD的对象模型进行交互,从而允许用户通过编程来操作和控制AutoCAD的功能。

要使用Microsoft VBA进行AutoCAD编程,可以按照以下步骤:
1. 打开AutoCAD 2010软件。

2. 在工具栏上找到“工具”菜单,点击打开。

3. 在弹出的“选项”对话框中,选择“系统”选项卡。

4. 在“系统”选项卡下方的“支持路径”部分,点击“启用宏”复选框。

5. 点击“VBA项目”按钮,以打开VBA编辑器。

6. 在VBA编辑器中,可以编写和编辑VBA代码,然后将其应用于AutoCAD。

使用Microsoft VBA编写AutoCAD宏或脚本时,您可以使用VBA的语法和功能来操作和控制AutoCAD的各个方面,包括绘图、修改对象、执行命令等。

您还可以利用AutoCAD的对象模型来访问和操作AutoCAD的对象和属性。

请注意,Microsoft VBA在最新版本的AutoCAD中可能已被取代或不再提供支持。

如果您使用的是较新的AutoCAD版本,请查阅相关文档以确定可用的编程选项和语言。

1。

相关文档
最新文档