QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

[分享] Autocad VBA初级教程

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

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

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

x
引用该贴作为教材,介绍简单的VBA编程。(本人将其转化为PDF形式)% m# [( i8 k/ a! o6 z" D- t
一,同心圆问题/ H0 q" Q& @. {: h  U
源程序如下: B1 m* w7 a) _4 K
Sub c100()# O$ N3 l6 T. H) [9 ]
Dim cc(0 To 2) As Double '声明坐标变量% h  n9 A" `/ E
cc(0) = 1000 '定义圆心座标
* \  f6 p' e. H) n( \; ecc(1) = 1000
1 D& N, @% y$ b' b. J, [) fcc(2) = 02 b7 y5 R$ P$ i% f- Y2 @: J/ }
For i = 1 To 1000 Step 10 '开始循环
9 Z$ ~# T8 l2 `1 e0 x  z  Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆
9 z) E% A& {5 f6 T2 z7 H" O+ y" DNext i; C7 M  S& N( N0 Y+ x) {
End Sub$ `5 C' _# Z/ C7 k& U  u4 r! y5 o
操作步骤如下7 e/ l; n9 A# c. J0 |( m; p' e; d
1、在模型空间按快捷键Alt+F8(或点菜单“工具->宏->宏(M)”),出现宏窗口
% b6 m8 r/ V$ K! S  j
4 a! o4 s: W. O, `+ d! ~$ c$\5w
# q6 }0 g! t1 Q3 Hq{$ T" u1 @6 v4 G% x
2008年1月26日更新PDF文件& _" u7 i+ S1 h4 m3 ?8 l

  f4 ^1 Y' h! H. G1 q[ 本帖最后由 auluolal 于 2008-1-26 15:34 编辑 ]

Autocad VBA初级教程.pdf

266.43 KB, 下载次数: 164

 楼主| 发表于 2008-1-25 00:26:39 | 显示全部楼层 来自: 中国江苏无锡
2、在宏名称中填写C100,点“创建”、“确定”6 @& I" [3 q6 U- k+ C* C
3、 在Sub c100()和End Sub之间粘贴代码
: h# c7 S" _* f9 w1 d. }& Q4、回到模型空间,再次按Alt+F8,点击“运行”2J
0 {+ v4 F+ ]2 T# @8 W/ [不会贴图,所以将图附件上传。) |2 ^' B( |9 b# X+ k: C) G0 X
个人理解:
1 W  u3 r8 R! A) ^1 A1、宏是用来做一些重复的繁琐的文件,虽然最终能实现很复杂的功能,但还是重复劳动
6 U" e. z7 ?, r5 c8 G0 h2、宏的存储范围决定了他的应用范围,这个以后会讲到。
% c* W) {! v0 ], |; D. `8 V' P; j5 k3、AddCircle(参数1, 参数2),其中参数1,是个数组参数。(当然可以用Variant表示)4 v6 _7 m* S0 m. }. J- b  i. Q4 F
' V) ?" R, |. h1 L' C  k
[ 本帖最后由 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 | 显示全部楼层 来自: 中国江苏泰州
二、三维线段的问题
, H1 m) K1 \. J* ~) g- w源码如下:
- y' |2 ^+ r5 JSub myl()
, U5 j1 y4 e$ i- R* p! m8 S: D! X8 KDim p1 As Variant
& m1 a* U' e3 B& S1 ~Dim p2 As Variant& R- b5 @! \3 W
p1 = ThisDrawing.Utility.GetPoint(, "输入点:")2 t% N7 E, r* f3 w
z = ThisDrawing.Utility.GetReal("Z坐标:")
- Z4 q* ~' z, b) }8 R) D$ gp1(2) = z) h3 g7 U3 K: u; {. |% }
On Error GoTo Err_Control
# f7 I, p! Y; f1 H# R" gDo, x8 J7 f8 r, I7 K" H  h7 t+ y
p2 = ThisDrawing.Utility.GetPoint(p1, vbCr & "输入下一点:")
% Y) l- W+ B* X7 `5 ^# qz = ThisDrawing.Utility.GetReal("Z坐标:")
9 H: Z! U5 O7 t1 @/ G# Bp2(2) = z
1 P2 K7 N4 ~, K! m5 iCall ThisDrawing.ModelSpace.AddLine(p1, p2); \7 s! |, t" R* c+ V
p1 = p2
, ?; F8 h3 \& m7 K. wLoop# Y# W0 v7 K$ Y) x" k0 s* u
Err_Control:0 s9 A, Q( ?6 V: F% p% }% b& l4 y
End Sub
7 W* o9 j8 j  _7 d, s% O0 H2 X8 C: P5 }' {6 j; K3 Q
个人认为要点为: 5 `9 [/ [- a3 h6 U7 u4 Q9 W9 w% w
Do  -----  Loop 循环
- |7 A1 d( l0 `" ~8 g( QAddLine函数. C6 K) o) R6 l1 W
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 )

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