QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
6天前
查看: 3473|回复: 6
收起左侧

[分享] Autocad VBA初级教程

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

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

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

x
引用该贴作为教材,介绍简单的VBA编程。(本人将其转化为PDF形式)
% |' D4 F: B: \8 H7 @0 x! U/ ?一,同心圆问题
9 }7 ~6 p- c6 D1 X" P源程序如下. Y. _; B1 ^7 L( t$ R' V
Sub c100()8 ]7 n, p8 f  H: N/ ]! g
Dim cc(0 To 2) As Double '声明坐标变量1 b* r: f) F0 d: Z6 [" K0 v8 y) U% h
cc(0) = 1000 '定义圆心座标- p# F4 w4 `6 }! o' x+ f
cc(1) = 10009 l6 z) S- P6 ?, Q$ U, |
cc(2) = 0% d$ }6 k, b& d& P
For i = 1 To 1000 Step 10 '开始循环3 G2 b( n" U8 k
  Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆6 T% k# e" S- x( S1 w1 _
Next i; B7 K0 J# i3 d+ R
End Sub
' P. Z- q* r/ Z! v: Q7 E. X操作步骤如下6 s3 c7 a! h7 H+ \7 Z+ ~
1、在模型空间按快捷键Alt+F8(或点菜单“工具->宏->宏(M)”),出现宏窗口
+ z. b  z; N0 K
! A: c2 U; C& A$\5w
+ X$ D1 [; Y, fq{" e3 b. B7 n; D0 g( p6 ~7 k) W# E
2008年1月26日更新PDF文件& i9 K" E6 L3 q+ f: }
. x$ L% X; u3 q  w7 Y' X
[ 本帖最后由 auluolal 于 2008-1-26 15:34 编辑 ]

Autocad VBA初级教程.pdf

266.43 KB, 下载次数: 164

 楼主| 发表于 2008-1-25 00:26:39 | 显示全部楼层 来自: 中国江苏无锡
2、在宏名称中填写C100,点“创建”、“确定”
: X7 P3 _' ~* k: \! a2 }3、 在Sub c100()和End Sub之间粘贴代码& h6 c: D2 p' k1 i
4、回到模型空间,再次按Alt+F8,点击“运行”2J
/ D! p; P; v, v: z+ |不会贴图,所以将图附件上传。  \9 E  A" ]( E: T0 ]
个人理解:8 w7 y; D  [2 r2 v, k# n
1、宏是用来做一些重复的繁琐的文件,虽然最终能实现很复杂的功能,但还是重复劳动
8 z2 Q! N0 k( n+ C4 f2、宏的存储范围决定了他的应用范围,这个以后会讲到。
8 h! s1 k5 h! s* \& Y. h$ c( y1 F3、AddCircle(参数1, 参数2),其中参数1,是个数组参数。(当然可以用Variant表示)
% t- u$ i) _. B8 B4 w3 ?) o
- M! a, _; \2 }4 t  W[ 本帖最后由 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 | 显示全部楼层 来自: 中国江苏泰州
二、三维线段的问题
* P5 l2 _2 }6 R* H7 P源码如下:
  e/ T2 P  d& T. a- r  p' l0 NSub myl()
! n; W4 U( {2 P+ F, n: gDim p1 As Variant( ~1 N" \8 N8 C* [6 t4 ^7 B
Dim p2 As Variant5 q2 e( C; M/ L/ l/ t: A9 M
p1 = ThisDrawing.Utility.GetPoint(, "输入点:")
7 N& Z* Y" |" P9 r; n" S  Xz = ThisDrawing.Utility.GetReal("Z坐标:")
4 P3 `  K; B$ Y+ E0 Op1(2) = z
3 D. t# ~- h1 S& E" @On Error GoTo Err_Control6 t: v: B: ^' P
Do# q$ i: u  j/ g/ }: g
p2 = ThisDrawing.Utility.GetPoint(p1, vbCr & "输入下一点:")
. i' }4 l( C4 Q; Oz = ThisDrawing.Utility.GetReal("Z坐标:")2 I1 ~5 @% U) o+ L  h
p2(2) = z
0 I8 X' u2 k& }& c4 {0 H( ICall ThisDrawing.ModelSpace.AddLine(p1, p2); O3 z9 i) X8 d/ t$ a
p1 = p2# y2 m, A7 _0 b2 {+ ?% W" R, w
Loop0 s+ \& n( S. N8 T, B2 c) ?
Err_Control:, E: [5 e& w: j& ^8 Y
End Sub' a/ {' A% ?+ a( v8 V3 b; b
$ \, @$ Y4 C6 r7 _" u8 G
个人认为要点为: 5 M4 p( C6 h& R) |0 p
Do  -----  Loop 循环2 |, i7 g8 S( ?1 V0 a4 ^  M( N
AddLine函数
3 L+ _( t8 E/ }4 @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 )

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