autocad二次开发(VBA)就这么简单(实用教程)
yrxv
yrxv Lv.13
2010年05月27日 16:30:05
只看楼主

运行autocad,创建一个新文件,Alt+F11(或者在菜单栏点“工具”→“宏”→“Visual Basic 编辑器”),在新出现的窗口菜单栏点“插入”→“模块”,输入下面的代码:Sub 我的第一个程序() Dim 直线1 As AcadLine Dim 起点(2) As Double Dim 端点(2) As Double 起点(0) = 10 起点(1) = 20 端点(0) = 80

运行autocad,创建一个新文件,Alt+F11(或者在菜单栏点“工具”→“宏”→“Visual Basic 编辑器”),在新出现的窗口菜单栏点“插入”→“模块”,输入下面的代码:

Sub 我的第一个程序()
Dim 直线1 As AcadLine
Dim 起点(2) As Double
Dim 端点(2) As Double

起点(0) = 10
起点(1) = 20
端点(0) = 80
端点(1) = 100

Set 直线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有多么友善。试试用键盘把这段代码输入进去,你会发现,每到关键时刻,VBA就会提醒你下面该做什么了。
别听旁人瞎说autocad这不行、那不行,那是因为autocad的两个万能命令(一个是VBA,一个是lisp)你还没学会。这两个命令你只要学会一个(不用太精通,差不多就行),就没人敢说你不是高手。
免费打赏
method1984
2010年05月27日 22:15:16
2楼
楼主有没有VBA教程啊
回复
monkey_12
2010年09月06日 20:42:28
3楼
新手,感谢分享,学习来了
回复
lsx2007123
2010年09月09日 14:31:05
4楼
教程在哪儿呢
回复
zuicai
2010年09月20日 13:34:02
5楼
这个简单了点,来个系列教程吧。
回复
ak47chn
2010年09月23日 13:19:35
6楼
入门教程~
找找感觉先~
回复
kewin32648
2010年09月26日 17:08:06
7楼
感谢楼主分享啦,我就是:lol :hug:
回复
注岩
2010年09月27日 17:27:23
8楼
这个简单了点,来个系列教程吧。
回复
hhzjxss
2010年11月10日 23:36:17
9楼
谢谢,测试成功,可能不象EXCEL那样。

2004中不能录制,在2009中才可以录制!:lol
回复
foxphantom
2010年11月11日 12:48:08
10楼
求更加详细高深的技术讲解~~~~~
回复
slzzzzzzz
2010年11月16日 09:59:33
11楼
新手,感谢分享,学习来了
回复

相关推荐

APP内打开