运行autocad,创建一个新文件,Alt+F11(或者在菜单栏点“工具”→“宏”→“Visual Basic 编辑器”),在新出现的窗口菜单栏点“插入”→“模块”,输入下面的代码:
4 L7 `. }! f8 Z
0 i4 f/ e$ X y3 PSub 我的第一个程序()
% n2 L; y+ u1 Z' ^ Dim 直线1 As AcadLine
; Y- U8 P+ C0 M! t Dim 起点(2) As Double9 j9 R- ^/ N& i- ^0 ^7 Y! d
Dim 端点(2) As Double
# L+ R: F5 V; h c$ D) d9 F( n4 n$ f# d! z 6 e2 |1 W# @; O' |' U. G) k- w
起点(0) = 10) ]. `5 z. ^3 |' c1 ^
起点(1) = 20- T5 Z& U9 d3 ^& O& |
端点(0) = 80. j0 Q$ L- |8 k7 O& r: Y
端点(1) = 100: E+ t; b' _7 h2 Z1 H2 ?
" U& k0 q4 y. D6 [& d9 i, b Set 直线1 = ThisDrawing.ModelSpace.AddLine(起点, 端点)
% |. A7 {. V: y% p% ^5 D/ [+ PEnd Sub
9 B$ m. H" O* h2 H" l) [/ e6 ?6 p# V5 f
检查一下,确信没有问题后按F5
9 h# g6 z1 p S; u1 B回到autocad窗口,看见了吗?一条直线,起点坐标(10,20),端点坐标(80,100)
4 O! N' n; n; b1 |' U/ u4 ]0 Z* W% B; \ Z. N
这个程序的第一行里,“SUB”和“()”是必须有的(人家微软就是这么规定的,我也没办法),“我的第一个程序”是这个程序的名字(如果你不喜欢也可以改个别的名字,我无所谓)。# E) K6 P5 m% P. R! h
第二行里,“Dim”是定义一个变量,“直线1”是要画的直线的名字(随便改,中英文都行),后面的英文必须有,意思是说:这是一条autocad直线。
9 c4 f% \: b8 h( C1 s4 ~* W8 ?( _第三行里,“起点(2)”是一个数组(因为我要用它给直线赋予起点,所以取了个直观的名字,又因为点的坐标是三维的,所以必须用能容纳三个数据的数组),后面的英文意思是“这个数据是双精度类型”。
" b* ]* a0 Q b第四行和第三行差不多,是用来给直线赋予端点的。3 c3 i7 W4 d1 h2 W* i
第五行和第六行是分别赋值给起点的x和y坐标(因为起点的z坐标是0,而定义这个数组的时候,默认数据就是(0,0,0),所以就不用管z坐标了)。) F" U3 S3 a9 E' g
第七行、第八行赋值给端点x和y坐标。
/ z C7 o4 n$ X" i第九行画直线,在“当前文件”的“模型空间”“画直线(按起点和端点)”。
3 l* [+ \. C5 t+ B; \/ L第十行,完事了。: m0 C6 K/ {; p/ K4 ~
$ X9 t. _+ l4 b, z( `2 v: k! F
有的网友一看见英文,头就会变大。别怕,如果你是用“复制/粘贴”把这段代码拷贝到VB编辑器里,就不会知道autocad有多么友善。试试用键盘把这段代码输入进去,你会发现,每到关键时刻,VBA就会提醒你下面该做什么了。1 a a" w. ^$ e' `& M. g
别听旁人瞎说autocad这不行、那不行,那是因为autocad的两个万能命令(一个是VBA,一个是lisp)你还没学会。这两个命令你只要学会一个(不用太精通,差不多就行),就没人敢说你不是高手。 |