QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

[分享] Autocad VBA初级教程

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

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

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

x
引用该贴作为教材,介绍简单的VBA编程。(本人将其转化为PDF形式)  x$ G. j/ z9 O& [
一,同心圆问题
3 a( c7 J6 u4 `! k3 l. Z3 r& c源程序如下
1 _9 J5 f0 z* OSub c100()
- w4 m) L; P) _1 `3 L5 [* P4 P# fDim cc(0 To 2) As Double '声明坐标变量
' V6 V" o( ?! j. e7 N6 Icc(0) = 1000 '定义圆心座标- W7 j5 v% o5 S
cc(1) = 1000% E" H8 m. R5 e2 b  o- t+ A
cc(2) = 0* g' i4 t, s5 R& E6 T+ R
For i = 1 To 1000 Step 10 '开始循环7 f1 ]' h3 x% t- H+ J
  Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆- m8 E) @5 I  ?5 `1 z8 J
Next i. F  x' g  \* y! Z
End Sub2 O$ u2 L9 [8 R3 |
操作步骤如下5 ]% W, A+ @% s
1、在模型空间按快捷键Alt+F8(或点菜单“工具->宏->宏(M)”),出现宏窗口
6 W+ b) `9 O" N4 c( L: c3 e/ P* E& ^9 ^" O
$\5w
7 L1 k1 y* O8 W5 G& G$ p, M. Kq{
8 @: q* m% Y) \# r8 I2008年1月26日更新PDF文件
: R3 q& }3 B& c( {5 }
4 k+ }9 l1 j9 ]" c' E$ {) f[ 本帖最后由 auluolal 于 2008-1-26 15:34 编辑 ]

Autocad VBA初级教程.pdf

266.43 KB, 下载次数: 164

 楼主| 发表于 2008-1-25 00:26:39 | 显示全部楼层 来自: 中国江苏无锡
2、在宏名称中填写C100,点“创建”、“确定”- a1 N7 q! a8 C& v1 S
3、 在Sub c100()和End Sub之间粘贴代码* j! W5 ~6 g& v& \+ G: G
4、回到模型空间,再次按Alt+F8,点击“运行”2J/ W/ C- e. s& y$ h/ C1 {
不会贴图,所以将图附件上传。
5 ^# A0 I+ [* ^5 u  p个人理解:
, p% Y( {  o" E1 `! t( Z4 N8 [1、宏是用来做一些重复的繁琐的文件,虽然最终能实现很复杂的功能,但还是重复劳动
8 }8 ]% ~. l; v4 s/ q: Z3 R# x2、宏的存储范围决定了他的应用范围,这个以后会讲到。
" P/ M$ B$ B0 X1 m3、AddCircle(参数1, 参数2),其中参数1,是个数组参数。(当然可以用Variant表示)6 Z. P  k9 c. G, v4 V/ u

8 H  V' P" Y4 q2 Y0 Q, F! s$ D  u[ 本帖最后由 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 | 显示全部楼层 来自: 中国江苏泰州
二、三维线段的问题, j0 W4 ^  [+ I3 W" {5 Z- D
源码如下:
2 V  r% P- e$ W% g; t5 @Sub myl()1 g1 w; z0 g- E% f8 N1 W6 y
Dim p1 As Variant2 s4 e) z& q8 ?$ e4 v* U* A  Y
Dim p2 As Variant: z9 n, I, t4 x/ m$ W% Y, E
p1 = ThisDrawing.Utility.GetPoint(, "输入点:")
! t. `2 V. ~4 H5 D: Ez = ThisDrawing.Utility.GetReal("Z坐标:")) o. S7 I" N5 S% b) y1 G# W8 \
p1(2) = z
7 i5 e" E+ |( z( x& Y- R( Z* kOn Error GoTo Err_Control
, b; O1 W( B7 DDo
: Y( b6 v- d  Jp2 = ThisDrawing.Utility.GetPoint(p1, vbCr & "输入下一点:")) }" S8 U( Y- d# S9 X( y  y) m
z = ThisDrawing.Utility.GetReal("Z坐标:")
$ w: W& C$ T+ O  z( k( {! S2 Xp2(2) = z
* d0 k5 R( s- h+ B  N% LCall ThisDrawing.ModelSpace.AddLine(p1, p2)0 I  a3 R( ^2 e* @: D3 K8 U
p1 = p2* d& b& E' t! V1 m7 h
Loop( o2 \. |7 Z: R% D
Err_Control:
) g: F( Z# [1 aEnd Sub
. J9 q8 R" \' P9 c9 l
. ?7 a8 D3 s4 x0 `9 S个人认为要点为: - A0 N0 I3 A7 ~4 W
Do  -----  Loop 循环1 H7 J2 M* Y/ o" Q$ z
AddLine函数, A) F/ P6 Z5 p) `: U+ \
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 )

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