QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

[分享] Autocad VBA初级教程

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

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

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

x
引用该贴作为教材,介绍简单的VBA编程。(本人将其转化为PDF形式); |- F) Z3 ^) J( ]+ w( t" T
一,同心圆问题. A5 t1 I/ x7 d) A
源程序如下* z" A4 U& z- i  S- O/ H* R; A" x2 L
Sub c100()
9 N+ A/ g3 j/ s+ P  ^8 V7 Q" M% oDim cc(0 To 2) As Double '声明坐标变量) j4 k  u( D3 e# u
cc(0) = 1000 '定义圆心座标
2 A" O6 p: H* w* Hcc(1) = 1000  @; l" @$ R5 {' y. r1 H2 p; o$ k) y
cc(2) = 01 B9 ^# p( X; }2 }1 H* B' g: w/ t
For i = 1 To 1000 Step 10 '开始循环
. c- f3 `, x& K# R* Q& i  Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆
3 E4 t, O! D6 m8 q) GNext i4 C5 B6 t) Y' t+ S& v, m
End Sub
4 l) s3 ]- _* c5 e' x0 A操作步骤如下1 J$ o! n3 V5 M( ?: n
1、在模型空间按快捷键Alt+F8(或点菜单“工具->宏->宏(M)”),出现宏窗口1 h9 k7 R9 x( z) @! Z* f9 l
2 S' V2 y5 j( [- A$ x, O' e2 S
$\5w& H/ ^4 p5 ^8 T. I, C) Y
q{
- i* a9 a, a! M5 S2008年1月26日更新PDF文件: X& H" c6 m1 T3 V! Y
% n- U# p& S6 \1 x" n
[ 本帖最后由 auluolal 于 2008-1-26 15:34 编辑 ]

Autocad VBA初级教程.pdf

266.43 KB, 下载次数: 165

 楼主| 发表于 2008-1-25 00:26:39 | 显示全部楼层 来自: 中国江苏无锡
2、在宏名称中填写C100,点“创建”、“确定”8 i/ w0 [8 j9 ?" }' A
3、 在Sub c100()和End Sub之间粘贴代码) O( {- O6 u4 s! g
4、回到模型空间,再次按Alt+F8,点击“运行”2J: x7 ?$ x  S5 ~; l. g. X
不会贴图,所以将图附件上传。
( o4 X3 U$ ?* h  e7 T. H0 |个人理解:
4 E8 j# \$ K" s! N9 o1、宏是用来做一些重复的繁琐的文件,虽然最终能实现很复杂的功能,但还是重复劳动( u) `* n7 l' k0 h7 Y
2、宏的存储范围决定了他的应用范围,这个以后会讲到。
+ o6 Z- `3 ~/ C( D" N3、AddCircle(参数1, 参数2),其中参数1,是个数组参数。(当然可以用Variant表示)
% s, q2 v' P& j9 @# Y7 O& |- \: `/ X" b) A) z% c' F* V
[ 本帖最后由 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 | 显示全部楼层 来自: 中国江苏泰州
二、三维线段的问题' W1 P4 f2 e" ^
源码如下:
! a' _& K( ]/ q0 Q& c% g. q: iSub myl()
% E( C7 O5 g( H5 z) u1 P0 D1 ADim p1 As Variant
. C- U1 s# T: u3 D* CDim p2 As Variant
1 ~3 o2 s' @: N# Pp1 = ThisDrawing.Utility.GetPoint(, "输入点:")0 r! L# \4 S. T2 f
z = ThisDrawing.Utility.GetReal("Z坐标:")
" f- ^$ v2 u2 B8 M3 O2 ?p1(2) = z. E# p8 B2 H$ X- i0 v1 K3 x' f; x
On Error GoTo Err_Control
' s1 t" i$ B8 p5 g7 G  n. ]Do1 q! A3 G% a. g' q0 Q
p2 = ThisDrawing.Utility.GetPoint(p1, vbCr & "输入下一点:"): X" `( w% y0 \$ x3 e2 @0 m+ U
z = ThisDrawing.Utility.GetReal("Z坐标:")
9 H% u9 v+ {" {8 ^% I& bp2(2) = z. x& c% ]% p! @3 c7 B
Call ThisDrawing.ModelSpace.AddLine(p1, p2). ]5 V( H' L0 J1 U5 b+ {
p1 = p2
  a1 `7 C8 ]9 v# G* x$ xLoop0 u7 [* Z) X$ |: v# Q
Err_Control:
. U6 V& S3 R: l- _0 {+ \2 {End Sub8 Q6 H* `+ O4 J) m) l8 H
/ k9 g4 a9 z0 b0 q
个人认为要点为: & f1 I# R/ H. K* N: Y
Do  -----  Loop 循环7 k; e$ Q  A0 m# |, E/ L
AddLine函数( ^& z! z! N- |: U: o; W' j( l
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 )

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