QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

[分享] Autocad VBA初级教程

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

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

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

x
引用该贴作为教材,介绍简单的VBA编程。(本人将其转化为PDF形式)/ H7 @6 t+ V4 R
一,同心圆问题. [8 d! r# L7 f
源程序如下7 y4 a" `5 n; Z- `1 t0 d
Sub c100()) z2 @* d0 O2 G
Dim cc(0 To 2) As Double '声明坐标变量
' U! s3 G0 o0 ~( o; z* Fcc(0) = 1000 '定义圆心座标
2 E+ A! S- A- g" k5 c0 zcc(1) = 10009 I# u5 l. G. k
cc(2) = 01 h/ a& r$ ]7 a, G. G! \3 V- O5 ~
For i = 1 To 1000 Step 10 '开始循环; k2 h8 ], E7 G
  Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆2 d, j  }" h3 U" ^" c( U; Z
Next i
# o* W0 r) l$ H0 z# i; yEnd Sub
' j$ _; Y( V7 ?操作步骤如下7 v' ~6 X. i5 T4 w* V
1、在模型空间按快捷键Alt+F8(或点菜单“工具->宏->宏(M)”),出现宏窗口
: b$ t' p' l1 U9 y
# _) o) j0 q- |( e0 ]6 K$\5w4 ~" j8 B" u% c6 j+ w. @
q{7 y* W8 Z: z8 W" F
2008年1月26日更新PDF文件
9 ^0 A: V) l6 M. M7 J$ T) \4 T
3 ]% Y* x6 R$ o. h: d  K[ 本帖最后由 auluolal 于 2008-1-26 15:34 编辑 ]

Autocad VBA初级教程.pdf

266.43 KB, 下载次数: 164

 楼主| 发表于 2008-1-25 00:26:39 | 显示全部楼层 来自: 中国江苏无锡
2、在宏名称中填写C100,点“创建”、“确定”
2 w7 p( b, _" B& Z+ i/ Z3、 在Sub c100()和End Sub之间粘贴代码6 P# ?$ P6 h8 l; g
4、回到模型空间,再次按Alt+F8,点击“运行”2J7 y) ~- w! |4 i) @8 N& z3 {" |
不会贴图,所以将图附件上传。9 X$ Z. |7 i5 p& @" s- O' h5 |
个人理解:
( P5 _; E4 G; p+ `6 F* G1、宏是用来做一些重复的繁琐的文件,虽然最终能实现很复杂的功能,但还是重复劳动
4 ?$ G0 l/ K2 J) w2、宏的存储范围决定了他的应用范围,这个以后会讲到。. q5 g# _1 D% q4 b+ h; u! {. h
3、AddCircle(参数1, 参数2),其中参数1,是个数组参数。(当然可以用Variant表示)$ Q8 U! j/ i  V2 ]
2 Q* V6 X" H: [; 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 | 显示全部楼层 来自: 中国江苏泰州
二、三维线段的问题
( P) f. i$ @1 a. k5 o5 ~: p2 q6 G源码如下:; x0 x4 m4 x* [& i: R
Sub myl()
- |- W( X3 s( l7 n$ R9 p, sDim p1 As Variant
8 A! y5 s0 \) i- I+ ODim p2 As Variant- D: M7 V- @/ q5 L% V- \
p1 = ThisDrawing.Utility.GetPoint(, "输入点:"); N7 c1 X' k$ b  G* o  i- u" A5 A
z = ThisDrawing.Utility.GetReal("Z坐标:")
6 `, u0 N  y4 q& x6 U6 B& l; m) Q: tp1(2) = z! r$ u% {3 O* b/ @8 N
On Error GoTo Err_Control" h1 x# j% P6 d  r
Do) M, d  v/ l& {
p2 = ThisDrawing.Utility.GetPoint(p1, vbCr & "输入下一点:")5 v- @# q; q0 U" ~$ i
z = ThisDrawing.Utility.GetReal("Z坐标:")5 N! L7 q7 s# y& a$ Z% w- `
p2(2) = z
' V) G. v$ [' ?4 LCall ThisDrawing.ModelSpace.AddLine(p1, p2)$ V/ H/ R& K: A. P- i+ w
p1 = p27 }, v( i' S" ~( m
Loop; N# _7 y/ |5 \% L
Err_Control:
5 I3 c9 A% a3 S9 e9 w( UEnd Sub
( M4 U- L5 D$ `+ `% T9 K* B' R5 W/ D5 U+ b  y
个人认为要点为:
/ Z" b& Q, Z4 J* `) {6 q2 `Do  -----  Loop 循环& Q3 Y4 A1 F! M9 C% [
AddLine函数
3 {! j+ ~5 s8 P' O8 UOn 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 )

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