QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

[分享] Autocad VBA初级教程

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

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

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

x
引用该贴作为教材,介绍简单的VBA编程。(本人将其转化为PDF形式)% x3 \/ r; \8 M: u! r
一,同心圆问题9 z/ ~6 w( ~- m, G* Y& z3 z8 ^
源程序如下) d' F( ]! r8 t% s- }, K; i5 s- ^
Sub c100()
/ f* z. J9 e+ j2 ?& x2 NDim cc(0 To 2) As Double '声明坐标变量8 P# F7 F7 Y/ u$ G3 G7 R" R. `
cc(0) = 1000 '定义圆心座标8 P0 i  Y+ o( B$ b2 ^0 [9 @
cc(1) = 1000
8 B6 y( T6 l5 ?/ e. M8 dcc(2) = 0
: S. c$ J4 K* R$ D: H7 r8 s7 ?9 ?9 tFor i = 1 To 1000 Step 10 '开始循环
. y7 f& D  b3 ?4 O( V0 N  w  Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆
5 e; t. @# E& _) G' qNext i9 U& W5 g% w- M5 r1 z9 I! \( O
End Sub# B8 ~# E$ {' l8 ~. d9 a+ z
操作步骤如下
: P3 O+ m: ^- q* u1、在模型空间按快捷键Alt+F8(或点菜单“工具->宏->宏(M)”),出现宏窗口' X$ d- v; X7 F( ?6 u9 G2 W! Z
# B: L( U( e( C; y. X
$\5w
9 r* g6 `/ \9 e3 L$ U9 pq{
# O4 B( A$ g+ t- s' p7 X" }2008年1月26日更新PDF文件
# k0 c# F" d% b$ E
  f5 {) Z; Y. {! ?9 \7 C4 m[ 本帖最后由 auluolal 于 2008-1-26 15:34 编辑 ]

Autocad VBA初级教程.pdf

266.43 KB, 下载次数: 166

 楼主| 发表于 2008-1-25 00:26:39 | 显示全部楼层 来自: 中国江苏无锡
2、在宏名称中填写C100,点“创建”、“确定”
8 |: \7 @# M2 ~  T. p3、 在Sub c100()和End Sub之间粘贴代码/ \7 D6 \" P% c
4、回到模型空间,再次按Alt+F8,点击“运行”2J8 P# O4 C, y  s+ ]# U) H$ ~. }
不会贴图,所以将图附件上传。6 A% V) u- e- x
个人理解:7 D5 J$ i% J! s; p6 ^
1、宏是用来做一些重复的繁琐的文件,虽然最终能实现很复杂的功能,但还是重复劳动7 ~% R- z, g; T
2、宏的存储范围决定了他的应用范围,这个以后会讲到。
' d  s& k% B9 U0 e$ ^3、AddCircle(参数1, 参数2),其中参数1,是个数组参数。(当然可以用Variant表示)8 J5 O) R# V" c3 D4 o1 |
; j3 \1 ]' u* v4 q9 ^- 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 | 显示全部楼层 来自: 中国江苏泰州
二、三维线段的问题1 o+ e: j/ L2 L* L. B% I
源码如下:
  v+ `3 l( y1 t, zSub myl()
9 q3 H% v$ q- ~5 M; bDim p1 As Variant
/ L6 q$ K" T/ D. vDim p2 As Variant0 y2 H# P7 {* ?& b+ i
p1 = ThisDrawing.Utility.GetPoint(, "输入点:")/ ?. D: B% h& Z5 s  I% f! W2 j1 g
z = ThisDrawing.Utility.GetReal("Z坐标:")
! q: C* e! z! s' r% k  E  qp1(2) = z
3 Y* C" V2 x6 U+ x5 |On Error GoTo Err_Control
) ~% h7 v2 v9 t5 ], U8 GDo& S8 ^1 x; K& E& {, ]
p2 = ThisDrawing.Utility.GetPoint(p1, vbCr & "输入下一点:")
6 C) T' B+ K# _; U/ |9 Gz = ThisDrawing.Utility.GetReal("Z坐标:")7 u; G5 y! p$ J# @* b/ D
p2(2) = z
3 S7 ]8 _: x9 |5 ?& ICall ThisDrawing.ModelSpace.AddLine(p1, p2)9 `+ b8 h; _" d/ M5 b! V
p1 = p2
2 U0 b. W; `, |  d9 vLoop. p& w8 ~1 f# F$ @1 J4 s' U
Err_Control:
( f# s2 Q0 [1 F8 |. a1 x0 ?" ]& t! LEnd Sub
, K$ B3 b/ ^& a- ]* Q$ T, v- V! W$ H8 F0 r4 [
个人认为要点为: 0 A  O6 u+ }6 P
Do  -----  Loop 循环
" N1 k/ K9 X& i4 X5 b  X5 BAddLine函数; P4 x- R1 d' d# t0 l" F8 C6 {
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 )

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