运行autocad,创建一个新文件,Alt+F11(或者在菜单栏点“工具”→“宏”→“Visual Basic 编辑器”),在新出现的窗口菜单栏点“插入”→“模块”,输入下面的代码:8 ]6 e- y5 S3 n( Z$ O) H6 f
[% u9 T2 E- T4 o! p- N" }
Sub 我的第一个程序()
- _5 G; R0 S; ~5 C4 U# v Dim 直线1 As AcadLine |' ^; p1 ~+ p* t8 S' I! e
Dim 起点(2) As Double
! X2 _0 S1 h3 D7 N5 ~2 S2 X Dim 端点(2) As Double/ K' t! h* `2 ^8 ]
: x1 ]" ^4 H7 J4 h 起点(0) = 10
0 w ]: S1 W3 K) l0 s 起点(1) = 20) N* ]* Y2 |: S0 t h4 q
端点(0) = 80% d0 L- `2 D" g3 l
端点(1) = 100
2 r: G3 `5 J! m, @, S) j# x% l
5 G' H1 T7 q# V: D Set 直线1 = ThisDrawing.ModelSpace.AddLine(起点, 端点)
" s# v+ `5 D) n0 l n, FEnd Sub
1 w' A1 D, ~" s( i) A8 V ^3 T* x" j6 q
2 L3 J/ r o# t' a7 |0 ^. W) E检查一下,确信没有问题后按F5
9 t) Q! v4 \9 P回到autocad窗口,看见了吗?一条直线,起点坐标(10,20),端点坐标(80,100)
5 i1 O8 ]% E( U Y6 O, k8 P4 C8 q: W& `' X- D' C
这个程序的第一行里,“SUB”和“()”是必须有的(人家微软就是这么规定的,我也没办法),“我的第一个程序”是这个程序的名字(如果你不喜欢也可以改个别的名字,我无所谓)。
4 l% P: [6 [) b: R* l$ e第二行里,“Dim”是定义一个变量,“直线1”是要画的直线的名字(随便改,中英文都行),后面的英文必须有,意思是说:这是一条autocad直线。: N: [% Y( o- }8 Q; P
第三行里,“起点(2)”是一个数组(因为我要用它给直线赋予起点,所以取了个直观的名字,又因为点的坐标是三维的,所以必须用能容纳三个数据的数组),后面的英文意思是“这个数据是双精度类型”。/ o: @6 m' _0 D+ }# h4 [; Z0 w
第四行和第三行差不多,是用来给直线赋予端点的。
1 ^. v8 Z' t7 X1 [- R; r4 ^4 E第五行和第六行是分别赋值给起点的x和y坐标(因为起点的z坐标是0,而定义这个数组的时候,默认数据就是(0,0,0),所以就不用管z坐标了)。% A7 S$ X9 q9 R7 T
第七行、第八行赋值给端点x和y坐标。2 K' U) p+ P$ {' N9 ]8 ?9 p, {% E
第九行画直线,在“当前文件”的“模型空间”“画直线(按起点和端点)”。' S* m" R+ ]9 q5 k" k
第十行,完事了。
# H L/ [, ]" V1 G$ K9 Z5 w* _5 E% e
# x0 I- ^" o0 J5 \0 C有的网友一看见英文,头就会变大。别怕,如果你是用“复制/粘贴”把这段代码拷贝到VB编辑器里,就不会知道autocad有多么友善。试试用键盘把这段代码输入进去,你会发现,每到关键时刻,VBA就会提醒你下面该做什么了。
) Y3 z) V! a0 t! ]别听旁人瞎说autocad这不行、那不行,那是因为autocad的两个万能命令(一个是VBA,一个是lisp)你还没学会。这两个命令你只要学会一个(不用太精通,差不多就行),就没人敢说你不是高手。 |