QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

[分享] Autocad VBA初级教程

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

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

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

x
引用该贴作为教材,介绍简单的VBA编程。(本人将其转化为PDF形式)2 B+ m9 d) g( z6 A2 J4 \2 ?2 }- P, [
一,同心圆问题
/ d. _2 V: d/ E7 W源程序如下+ m( D2 A$ Q* g4 A. c, M1 c; ?7 ]: M
Sub c100()' k* g3 Q, s4 Y0 s5 z% W
Dim cc(0 To 2) As Double '声明坐标变量2 v7 o/ s/ S: Q/ F8 }% K6 w% ^  _
cc(0) = 1000 '定义圆心座标
) H4 s2 L  N& C2 U9 @8 ?. N6 _- wcc(1) = 1000: r4 N. ], M+ O4 P. P
cc(2) = 00 A+ U1 @9 y& R/ W3 u
For i = 1 To 1000 Step 10 '开始循环
! H4 A* q% C1 O3 k  Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆
! W$ _; g. l- D0 INext i
2 |) C; J# ^# E7 J" }: a$ [' W" s0 `End Sub
2 {3 O% e' _6 |# b. I操作步骤如下
- e9 j8 h) |$ `3 P; M  p1、在模型空间按快捷键Alt+F8(或点菜单“工具->宏->宏(M)”),出现宏窗口( F, W( x  Q+ r4 K) a

9 x8 W6 p9 }! E: \$\5w
) ?1 E" N% D3 M5 {6 E. Aq{
; u) a6 E' ?/ `$ ?/ `/ x2008年1月26日更新PDF文件& G( p# E8 G5 p- r8 b' x
( {0 e' O! K9 S$ A7 ~
[ 本帖最后由 auluolal 于 2008-1-26 15:34 编辑 ]

Autocad VBA初级教程.pdf

266.43 KB, 下载次数: 164

 楼主| 发表于 2008-1-25 00:26:39 | 显示全部楼层 来自: 中国江苏无锡
2、在宏名称中填写C100,点“创建”、“确定”
$ Z0 d. M; F$ L) Y& c3、 在Sub c100()和End Sub之间粘贴代码1 ?6 {& D( q! ?, s4 @: ~8 U
4、回到模型空间,再次按Alt+F8,点击“运行”2J
" X; @: x$ V  Q4 s+ ]8 Z8 f不会贴图,所以将图附件上传。, O1 {4 k2 x' j
个人理解:
% g7 f/ [" a% J5 t6 {! q* x8 P1、宏是用来做一些重复的繁琐的文件,虽然最终能实现很复杂的功能,但还是重复劳动  C) a3 |2 \' E' \9 g5 f1 S
2、宏的存储范围决定了他的应用范围,这个以后会讲到。5 p% U1 w; ]; L' p! u
3、AddCircle(参数1, 参数2),其中参数1,是个数组参数。(当然可以用Variant表示)- M$ L! E1 g; F+ ~6 B& I
/ v; \+ T3 F' h
[ 本帖最后由 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 | 显示全部楼层 来自: 中国江苏泰州
二、三维线段的问题
( n7 N% |( u: l. m& c3 U5 s源码如下:
' k1 V/ o1 J# k/ L0 N. qSub myl()$ C% R+ w. h- p
Dim p1 As Variant* y- ]0 I2 E/ l# b
Dim p2 As Variant
; r! h; e4 v. i. s" j; z, G9 {. qp1 = ThisDrawing.Utility.GetPoint(, "输入点:")
! }  b- N( P. M6 O6 zz = ThisDrawing.Utility.GetReal("Z坐标:")9 ^2 T: v9 F" E$ `9 c& J/ X4 O. @
p1(2) = z& Y! M0 [  n! N. D
On Error GoTo Err_Control
: d( l. C7 w( L- B6 }# tDo1 U& V+ _0 K. J+ G( i* v
p2 = ThisDrawing.Utility.GetPoint(p1, vbCr & "输入下一点:")
  n' U0 t: W* Iz = ThisDrawing.Utility.GetReal("Z坐标:")
& E. ]$ [2 x$ \( x7 s) Up2(2) = z2 I' C9 l" _: x) L
Call ThisDrawing.ModelSpace.AddLine(p1, p2); J& R3 G+ L3 P- r" v; F' V+ l& [2 O
p1 = p2' A5 E6 a6 I9 X: p8 Q+ ]
Loop
" f- l8 ^+ p9 ~: \, cErr_Control:6 Y9 t' }$ @  U5 _  x. _! t
End Sub
& v% E: W0 j- W% K' N
/ |# U  N: D& R+ L5 P2 ^' M个人认为要点为:
% K$ X; a7 e2 T# F* {# B3 X: R0 lDo  -----  Loop 循环
0 B9 Q" I8 T0 R2 rAddLine函数5 ]  d* ~8 v# F
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 )

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