QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 3491|回复: 6
收起左侧

[分享] Autocad VBA初级教程

[复制链接]
发表于 2008-1-25 00:15:11 | 显示全部楼层 |阅读模式 来自: 中国江苏无锡

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
引用该贴作为教材,介绍简单的VBA编程。(本人将其转化为PDF形式)  o5 `8 V" N% c, Z
一,同心圆问题
$ k7 p- h9 D9 }4 a* K源程序如下$ H+ |: p, d4 O
Sub c100()9 F; d3 \7 G4 d1 S+ J% M
Dim cc(0 To 2) As Double '声明坐标变量
3 r/ R! ]3 l/ _cc(0) = 1000 '定义圆心座标
1 p- h8 b. B+ v# t% [cc(1) = 1000; E# C1 k! h% w9 ]6 p1 h! U
cc(2) = 0
3 b& z& I3 D8 l. [For i = 1 To 1000 Step 10 '开始循环" N" y3 z; i* M4 u) \
  Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆5 D3 n2 _) T: g3 x' J
Next i
" R5 _- P" Y- e+ t# [1 oEnd Sub
& R. T& a7 T$ ~操作步骤如下
) s% ]- `! j& v# O5 Y3 N' b1、在模型空间按快捷键Alt+F8(或点菜单“工具->宏->宏(M)”),出现宏窗口+ `! U% C' P( M. a

7 B5 E1 L: q# V$\5w
, U6 y. l$ U( v# q6 n: L1 ?q{& b6 x2 }. @2 t- T
2008年1月26日更新PDF文件
9 `- Q; Z5 k7 z" T: e
6 O3 u, r# y9 q8 c' V[ 本帖最后由 auluolal 于 2008-1-26 15:34 编辑 ]

Autocad VBA初级教程.pdf

266.43 KB, 下载次数: 165

 楼主| 发表于 2008-1-25 00:26:39 | 显示全部楼层 来自: 中国江苏无锡
2、在宏名称中填写C100,点“创建”、“确定”
/ P/ b; @- l6 r- x, d0 K8 g3、 在Sub c100()和End Sub之间粘贴代码
) s' ], \" v; Z" M' J0 L4、回到模型空间,再次按Alt+F8,点击“运行”2J
, O  }, q/ l, L' r. C1 e不会贴图,所以将图附件上传。
8 X0 l0 {& H& i: b7 F个人理解:" M7 z8 l  J; @" R; h- R' _
1、宏是用来做一些重复的繁琐的文件,虽然最终能实现很复杂的功能,但还是重复劳动
* u$ [; A& @7 v8 p8 `2、宏的存储范围决定了他的应用范围,这个以后会讲到。
0 \& h/ E3 J, r2 P3、AddCircle(参数1, 参数2),其中参数1,是个数组参数。(当然可以用Variant表示), l* r2 a- d8 n! u! |4 f
& `' U# n% z. E
[ 本帖最后由 auluolal 于 2008-1-25 01:01 编辑 ]
1_3.jpg
1.jpg
2.jpg
3.jpg
发表于 2008-1-25 09:23:02 | 显示全部楼层 来自: 中国辽宁鞍山
有没有深入一点的资料
 楼主| 发表于 2008-1-26 15:56:23 | 显示全部楼层 来自: 中国江苏泰州
二、三维线段的问题
' V$ W- @. o8 O0 y# Y源码如下:
- c# C3 B" h. U. g5 }Sub myl()7 t1 v3 l, E, I& g: U5 {5 A  K* Z
Dim p1 As Variant0 \: y% z' Q3 l
Dim p2 As Variant
- o8 l) a3 l$ f8 m3 a% P; Mp1 = ThisDrawing.Utility.GetPoint(, "输入点:")- K: ?+ [; i  R  \0 G" K. {
z = ThisDrawing.Utility.GetReal("Z坐标:")
+ k0 ]; l& R+ u! v, K- K3 G& ep1(2) = z$ u( `! d0 h# j9 A3 u; N
On Error GoTo Err_Control
7 s" I8 h" u7 S& E1 NDo( E. b9 ^4 M! H8 C9 n
p2 = ThisDrawing.Utility.GetPoint(p1, vbCr & "输入下一点:")* Y# t  @. `* s+ k* n
z = ThisDrawing.Utility.GetReal("Z坐标:")
- p6 X) b% n; ]8 j/ U2 Z6 ~p2(2) = z
. b- G# k1 E: U- ~% H. kCall ThisDrawing.ModelSpace.AddLine(p1, p2): _. U# h& p! G8 o# r- n
p1 = p2  F# m/ d9 m$ a6 q! b! }
Loop2 c6 M% a8 q6 a9 x* l, |' Y3 u
Err_Control:
" n* `$ u0 z+ Z" p. nEnd Sub
8 t0 {/ |# C' t4 V9 V/ T& k. D+ l1 B) a; G
个人认为要点为: ' z  Q% x; e1 W. V+ `
Do  -----  Loop 循环
- j* Z& i' K# y" L6 uAddLine函数' F7 x1 g( _5 y
On Error goto 标号
发表于 2008-2-5 11:08:32 | 显示全部楼层 来自: 中国浙江杭州
我十分想学习CAD方面的知识。谢谢楼主分享!
发表于 2008-9-8 18:05:38 | 显示全部楼层 来自: 中国广东东莞
谢谢啊,刚开始学
发表于 2014-2-4 20:57:47 | 显示全部楼层 来自: 中国广西柳州
需要更深入的资料啊!!先谢谢哦!!
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表