运行autocad,创建一个新文件,Alt+F11(或者在菜单栏点“工具”→“宏”→“Visual Basic 编辑器”),在新出现的窗口菜单栏点“插入”→“模块”,输入下面的代码:+ v. Q) I; T5 [/ G2 e
, G0 Q# |" t2 _* s t
Sub 我的第一个程序()
( B2 f+ s3 X$ ~$ g Dim 直线1 As AcadLine
$ \5 B2 [7 z3 K( |5 f3 M* [0 S Dim 起点(2) As Double2 _" m4 M7 g. e# A
Dim 端点(2) As Double
7 i/ j% J' ]0 u d' P: q: | J# E' u; H2 z% l% ~( g3 C
起点(0) = 102 r$ x9 ]: d( H- r$ `
起点(1) = 20+ U# C. Q+ ^+ y) a# q1 d8 _
端点(0) = 80 ]7 ^9 Y, _" h. D4 w4 Z4 j6 a
端点(1) = 100
1 }! e: v0 f' \# g
: C8 w: D& ^1 ?. C w/ z- u Set 直线1 = ThisDrawing.ModelSpace.AddLine(起点, 端点), X, P+ ^ J. Z
End Sub
$ O- U6 q3 U7 w+ w
# X* G/ k! {" ?* i) U1 E! T0 j. d检查一下,确信没有问题后按F51 ^' C; p8 ` ~7 S
回到autocad窗口,看见了吗?一条直线,起点坐标(10,20),端点坐标(80,100)
9 c# w+ Q v6 R2 U3 @
) D+ V. ^5 I7 I这个程序的第一行里,“SUB”和“()”是必须有的(人家微软就是这么规定的,我也没办法),“我的第一个程序”是这个程序的名字(如果你不喜欢也可以改个别的名字,我无所谓)。% w0 `9 A, n8 B$ F2 q
第二行里,“Dim”是定义一个变量,“直线1”是要画的直线的名字(随便改,中英文都行),后面的英文必须有,意思是说:这是一条autocad直线。
# y2 f3 Z0 O+ y1 }) V1 b4 [第三行里,“起点(2)”是一个数组(因为我要用它给直线赋予起点,所以取了个直观的名字,又因为点的坐标是三维的,所以必须用能容纳三个数据的数组),后面的英文意思是“这个数据是双精度类型”。
7 b' r& c$ e% w% h7 \第四行和第三行差不多,是用来给直线赋予端点的。, s6 b9 U3 U3 `0 K, i4 b9 U
第五行和第六行是分别赋值给起点的x和y坐标(因为起点的z坐标是0,而定义这个数组的时候,默认数据就是(0,0,0),所以就不用管z坐标了)。, A. {& o5 k/ Q- d) r$ r. K, v
第七行、第八行赋值给端点x和y坐标。
: |( q! o) H+ N9 _第九行画直线,在“当前文件”的“模型空间”“画直线(按起点和端点)”。
& R1 p+ h5 S# e$ t% u. s U$ Q第十行,完事了。
1 s1 I! q8 k# [5 S' o$ ^# Z/ }- ^
+ B, A9 j$ s$ i8 I& m5 I1 L有的网友一看见英文,头就会变大。别怕,如果你是用“复制/粘贴”把这段代码拷贝到VB编辑器里,就不会知道autocad有多么友善。试试用键盘把这段代码输入进去,你会发现,每到关键时刻,VBA就会提醒你下面该做什么了。8 D* I. t* T6 P! Q" K1 w
别听旁人瞎说autocad这不行、那不行,那是因为autocad的两个万能命令(一个是VBA,一个是lisp)你还没学会。这两个命令你只要学会一个(不用太精通,差不多就行),就没人敢说你不是高手。 |