运行autocad,创建一个新文件,Alt+F11(或者在菜单栏点“工具”→“宏”→“Visual Basic 编辑器”),在新出现的窗口菜单栏点“插入”→“模块”,输入下面的代码:4 D, R- m0 B( ^# g8 ?
, m8 ~% {3 I G
Sub 我的第一个程序()2 k: X, }5 D1 s" R8 t, j
Dim 直线1 As AcadLine* x9 r. o1 o* J' P I' C" y
Dim 起点(2) As Double$ u1 U+ }$ W2 B2 `. B$ B U# A
Dim 端点(2) As Double1 o! }2 ^; V: E3 g4 g
# g$ C9 w# |; t" w 起点(0) = 10. n6 t/ T$ U: `' }
起点(1) = 20, p- u" B1 z5 K* f0 S& j+ q$ Y
端点(0) = 80 `, t" `7 Y, F2 ~
端点(1) = 100
6 ^, J" R. v! x1 h! O- r , e3 g8 k. E" B* c& y4 V
Set 直线1 = ThisDrawing.ModelSpace.AddLine(起点, 端点)
" W v+ `' h1 p/ i- l3 n' J! H; e6 \End Sub
2 X! h. @* i; i1 w# [% O+ T- G$ }( `3 x b# I5 }
检查一下,确信没有问题后按F5
0 b$ A2 ]3 ? b8 m9 G; o回到autocad窗口,看见了吗?一条直线,起点坐标(10,20),端点坐标(80,100)
4 u/ l1 P) B0 O9 f: ]* j8 T! R; M+ j) }& B; D
这个程序的第一行里,“SUB”和“()”是必须有的(人家微软就是这么规定的,我也没办法),“我的第一个程序”是这个程序的名字(如果你不喜欢也可以改个别的名字,我无所谓)。
! n# u( ?8 t" S; q3 B2 B( C第二行里,“Dim”是定义一个变量,“直线1”是要画的直线的名字(随便改,中英文都行),后面的英文必须有,意思是说:这是一条autocad直线。, q& H+ X+ ?) G4 S+ y! _
第三行里,“起点(2)”是一个数组(因为我要用它给直线赋予起点,所以取了个直观的名字,又因为点的坐标是三维的,所以必须用能容纳三个数据的数组),后面的英文意思是“这个数据是双精度类型”。
6 i8 z1 z1 A- r7 W z9 u第四行和第三行差不多,是用来给直线赋予端点的。
E7 I" U4 h( q; H, l! f9 s第五行和第六行是分别赋值给起点的x和y坐标(因为起点的z坐标是0,而定义这个数组的时候,默认数据就是(0,0,0),所以就不用管z坐标了)。# V: F* T* B) M/ p0 ~) a
第七行、第八行赋值给端点x和y坐标。
0 @1 k4 g3 w& E. U/ _+ k! ?1 F2 N) [第九行画直线,在“当前文件”的“模型空间”“画直线(按起点和端点)”。
' h8 j9 ~# m6 o: T H4 S& k第十行,完事了。
" V9 _* n; A9 C8 Y7 U" n* ]# ]7 D
有的网友一看见英文,头就会变大。别怕,如果你是用“复制/粘贴”把这段代码拷贝到VB编辑器里,就不会知道autocad有多么友善。试试用键盘把这段代码输入进去,你会发现,每到关键时刻,VBA就会提醒你下面该做什么了。* E2 _% W- I- @1 C- y
别听旁人瞎说autocad这不行、那不行,那是因为autocad的两个万能命令(一个是VBA,一个是lisp)你还没学会。这两个命令你只要学会一个(不用太精通,差不多就行),就没人敢说你不是高手。 |