QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

[分享] Autocad VBA初级教程

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

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

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

x
引用该贴作为教材,介绍简单的VBA编程。(本人将其转化为PDF形式)5 C4 m  U) l' p3 q! s: V5 }+ x
一,同心圆问题
4 j; n9 F4 A7 ]$ k8 f! I( R源程序如下
% U, O+ n) Q8 A, C  _+ o- y6 dSub c100()8 ~% K7 i, p& x! B, l; _8 ~
Dim cc(0 To 2) As Double '声明坐标变量
6 E/ L( }6 l+ ], h& j% o* Jcc(0) = 1000 '定义圆心座标
0 O# P. ^1 B0 ?1 G. i4 s( Xcc(1) = 1000+ V/ V2 k; Z9 f0 T! T$ a3 L
cc(2) = 07 L3 X+ _, R2 ?1 z
For i = 1 To 1000 Step 10 '开始循环2 a8 z4 T( e) r: M1 P1 Y
  Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆
" T, `1 P# q7 w- KNext i( V; a9 [4 Q8 X8 I& i
End Sub! `" j( ?0 s* U# H7 }) H3 c
操作步骤如下
( {( ]' d- S0 H' ~4 s1、在模型空间按快捷键Alt+F8(或点菜单“工具->宏->宏(M)”),出现宏窗口
8 b* |) ]1 r+ H" j0 o0 }( r
  R$ C# s+ ^" h+ j' o$ Y/ ]$\5w
, T) s( v8 A6 k# v$ Z4 Rq{
% o* ]  V4 H) c  s! x) m2008年1月26日更新PDF文件4 _+ }% G4 A) D; e1 x0 o5 t* d

( F( Q1 I, i' K3 A) c% V  k[ 本帖最后由 auluolal 于 2008-1-26 15:34 编辑 ]

Autocad VBA初级教程.pdf

266.43 KB, 下载次数: 164

 楼主| 发表于 2008-1-25 00:26:39 | 显示全部楼层 来自: 中国江苏无锡
2、在宏名称中填写C100,点“创建”、“确定”- Z  r2 k/ G. D
3、 在Sub c100()和End Sub之间粘贴代码/ p5 z' Q" x3 }0 s6 f( @
4、回到模型空间,再次按Alt+F8,点击“运行”2J9 h# I- r: L, ]' ]
不会贴图,所以将图附件上传。: b9 b. p2 c" d3 O
个人理解:
% C, n; }0 z% H1、宏是用来做一些重复的繁琐的文件,虽然最终能实现很复杂的功能,但还是重复劳动) u/ Q6 }3 {' S$ E5 D$ W
2、宏的存储范围决定了他的应用范围,这个以后会讲到。
! K' c% F9 {' m0 }2 v3、AddCircle(参数1, 参数2),其中参数1,是个数组参数。(当然可以用Variant表示)) v# R: C$ m% ~$ d( k2 }, c: d+ G3 B4 l
9 M7 k; k& w! M+ {) V3 C
[ 本帖最后由 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 | 显示全部楼层 来自: 中国江苏泰州
二、三维线段的问题% ^* c3 T7 V3 L+ F; F; Z2 g% `
源码如下:: ]: H) y" Q0 y  N3 d% G+ }
Sub myl()
" ~( y  i5 T% cDim p1 As Variant) V7 v4 u- [4 L% W$ x
Dim p2 As Variant+ Q' N2 @, H7 Z( z# [  z3 j& C
p1 = ThisDrawing.Utility.GetPoint(, "输入点:")
0 _# w5 i+ c4 J# Wz = ThisDrawing.Utility.GetReal("Z坐标:")2 i( t) h1 r( ?# j, z; @
p1(2) = z9 q  W# n3 v5 a) N! P3 O
On Error GoTo Err_Control
. J* e" K1 e* K+ B2 F7 w, KDo* u' i8 _1 t3 w8 S
p2 = ThisDrawing.Utility.GetPoint(p1, vbCr & "输入下一点:")
( c4 B9 Q9 {2 I: D8 h2 N$ K8 gz = ThisDrawing.Utility.GetReal("Z坐标:")
- s1 D! x4 @& b& K1 y8 qp2(2) = z5 W" x) h9 o) e5 p+ E/ |
Call ThisDrawing.ModelSpace.AddLine(p1, p2): q( G, d3 t) q# Z
p1 = p2
3 z0 D0 D, X: }; XLoop* @/ N5 @/ v5 o3 b
Err_Control:
' t4 E! \! Q  v/ {5 m0 LEnd Sub! d" t  t, [" K, j

  E& @+ L( k  s$ X% L2 e/ R个人认为要点为:
" J$ S. G5 O: ]- }/ {, J4 NDo  -----  Loop 循环
9 q' x! e3 L3 U0 D8 b. P2 ^$ uAddLine函数. @+ {3 v! Q$ R
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 )

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