运行autocad,创建一个新文件,Alt+F11(或者在菜单栏点“工具”→“宏”→“Visual Basic 编辑器”),在新出现的窗口菜单栏点“插入”→“模块”,输入下面的代码:
Q8 n; X) ? t+ w" i" \0 R4 o8 j3 p/ k& F0 C) \% Z
Sub 我的第一个程序()) ~# ~: Q: w$ B, G' G6 `) t; p
Dim 直线1 As AcadLine
+ }3 H6 `$ B; t- O2 z+ T Dim 起点(2) As Double
" o2 G) J# f9 G/ }, g Dim 端点(2) As Double1 J- j# _7 J( y. e/ f7 s3 p) D7 B
' Q* U+ X6 b' b/ c
起点(0) = 10
- u, m& h% y- r$ N- m: ~* P 起点(1) = 20' ^7 r, j% o6 Z; z f' `* J/ z5 h
端点(0) = 805 F3 E# }; L& d3 x9 `6 _( u
端点(1) = 1004 x2 o/ G' H# s7 ?9 ^
+ a' ^4 T# ?* `( Q1 K+ \7 c Set 直线1 = ThisDrawing.ModelSpace.AddLine(起点, 端点)
0 c/ @- J, Z# u" hEnd Sub
; q! ]$ z! m: W# y+ |& u: I! z% a& U( w. V
检查一下,确信没有问题后按F5
2 \7 m" t- a, @8 }: t8 b# j) d G- W回到autocad窗口,看见了吗?一条直线,起点坐标(10,20),端点坐标(80,100)
3 C! b1 Y5 o+ y! f/ k% T4 d9 A: ~5 n. h1 w/ M8 [
这个程序的第一行里,“SUB”和“()”是必须有的(人家微软就是这么规定的,我也没办法),“我的第一个程序”是这个程序的名字(如果你不喜欢也可以改个别的名字,我无所谓)。
; g" ^0 z8 L; a; S7 Z) k第二行里,“Dim”是定义一个变量,“直线1”是要画的直线的名字(随便改,中英文都行),后面的英文必须有,意思是说:这是一条autocad直线。
; u H1 j! i# q/ o7 u/ }第三行里,“起点(2)”是一个数组(因为我要用它给直线赋予起点,所以取了个直观的名字,又因为点的坐标是三维的,所以必须用能容纳三个数据的数组),后面的英文意思是“这个数据是双精度类型”。
+ X. k7 r, ?9 V ^第四行和第三行差不多,是用来给直线赋予端点的。
2 B* }3 P- g) s$ B5 y第五行和第六行是分别赋值给起点的x和y坐标(因为起点的z坐标是0,而定义这个数组的时候,默认数据就是(0,0,0),所以就不用管z坐标了)。
+ g- r2 M" u" ^' V% f$ r第七行、第八行赋值给端点x和y坐标。
! @; @. y' _# b8 J. f第九行画直线,在“当前文件”的“模型空间”“画直线(按起点和端点)”。; b2 Z+ Q$ m% U+ C
第十行,完事了。
& {* f# O# q* f- m% a6 Z
% P: y! a( S( N5 A: o4 o) T有的网友一看见英文,头就会变大。别怕,如果你是用“复制/粘贴”把这段代码拷贝到VB编辑器里,就不会知道autocad有多么友善。试试用键盘把这段代码输入进去,你会发现,每到关键时刻,VBA就会提醒你下面该做什么了。& M2 d" }+ I$ z# |! k A
别听旁人瞎说autocad这不行、那不行,那是因为autocad的两个万能命令(一个是VBA,一个是lisp)你还没学会。这两个命令你只要学会一个(不用太精通,差不多就行),就没人敢说你不是高手。 |