QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

[分享] Autocad VBA初级教程

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

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

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

x
引用该贴作为教材,介绍简单的VBA编程。(本人将其转化为PDF形式)0 j/ B9 g/ u% K* I& u3 w
一,同心圆问题
/ e% ~! k& X& b1 U源程序如下
% Z/ H9 R8 g8 n8 O9 ]Sub c100()
( j9 u& [' J, ?2 |: FDim cc(0 To 2) As Double '声明坐标变量
* E* \# {! o" z/ zcc(0) = 1000 '定义圆心座标
. Z- c# i* P; C" Q/ Gcc(1) = 1000# R9 s' w' f' m8 j' m" B8 t
cc(2) = 0; {  n8 _9 x: N$ b; d) n6 X
For i = 1 To 1000 Step 10 '开始循环& r! F2 e1 n# E# C# L! m, o
  Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆
& ]% d% ^7 B% V- K5 J$ fNext i. _  J9 Q* p6 O& q  ^2 G
End Sub4 D0 m; t9 O$ n$ u5 Z- C& I
操作步骤如下0 _& j6 K3 ^* F/ S9 |
1、在模型空间按快捷键Alt+F8(或点菜单“工具->宏->宏(M)”),出现宏窗口
  b! P/ t1 d( U( z3 T  ^
0 ~- U2 r1 G+ v  N+ w1 z$\5w9 Q  J4 w  P8 ~9 [
q{0 @6 u6 }- g4 l, Z
2008年1月26日更新PDF文件
! U  D: Z; o5 z$ s" Q$ `! e# w3 F2 Y7 |& @
[ 本帖最后由 auluolal 于 2008-1-26 15:34 编辑 ]

Autocad VBA初级教程.pdf

266.43 KB, 下载次数: 165

 楼主| 发表于 2008-1-25 00:26:39 | 显示全部楼层 来自: 中国江苏无锡
2、在宏名称中填写C100,点“创建”、“确定”9 E$ H( o5 o9 x: \" w2 F6 H
3、 在Sub c100()和End Sub之间粘贴代码
+ }' |" |8 K* l4、回到模型空间,再次按Alt+F8,点击“运行”2J
1 S3 @" L* B; v& }不会贴图,所以将图附件上传。6 k8 @+ f+ L; C* c$ y+ S9 M* _. ^' J
个人理解:
  r& C) T7 i; o1、宏是用来做一些重复的繁琐的文件,虽然最终能实现很复杂的功能,但还是重复劳动# `# Q( L4 b  [
2、宏的存储范围决定了他的应用范围,这个以后会讲到。
6 M+ v2 c4 Q7 p8 a7 d6 C3、AddCircle(参数1, 参数2),其中参数1,是个数组参数。(当然可以用Variant表示)/ A' r( O* F3 O, x; G9 i% v# ?
  j) ^- h0 {4 T" ], F* |/ q
[ 本帖最后由 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. B- \7 D3 e" o4 q. `3 R4 ~
源码如下:- _% _' V5 {) B, r& d
Sub myl()
9 H' b+ ~" r- b" N% d5 ^Dim p1 As Variant
* g0 H$ u1 w, S% h0 F6 O% ]Dim p2 As Variant$ A  N3 D/ T0 V. k% D8 \
p1 = ThisDrawing.Utility.GetPoint(, "输入点:")+ ~: H1 L! D6 k  m# M
z = ThisDrawing.Utility.GetReal("Z坐标:")
' r2 L. U0 C  P2 p+ J5 K' l. h7 rp1(2) = z+ @" `5 w5 k  e3 c
On Error GoTo Err_Control; n# F1 ]% R/ T3 A
Do
+ h* E/ Q" L2 f$ k6 U' fp2 = ThisDrawing.Utility.GetPoint(p1, vbCr & "输入下一点:")
, t7 p3 x, s6 }$ F- D( o6 Az = ThisDrawing.Utility.GetReal("Z坐标:")
5 H9 i+ ^0 }. U' p- f! \p2(2) = z% d6 b% c$ H+ R' r: m$ F
Call ThisDrawing.ModelSpace.AddLine(p1, p2)7 E, @3 c: W9 @+ _( E) i0 w- z
p1 = p2
- ~9 x) T. K8 z9 TLoop
2 J' G* G( V+ y' P) }, OErr_Control:
9 j' B9 I1 ]3 h4 EEnd Sub
( X& i6 m" z# N' w. R: P2 y- D$ O5 m% V0 V! F; ~( K" d
个人认为要点为:
' V* i- \7 a" Z, d; |Do  -----  Loop 循环3 x6 C6 d3 K  l& @0 A
AddLine函数
% h. n. [7 j- W' b+ x: L' wOn 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 )

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