QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

[分享] Autocad VBA初级教程

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

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

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

x
引用该贴作为教材,介绍简单的VBA编程。(本人将其转化为PDF形式). A9 N  N( R, ^, q2 e
一,同心圆问题
. }4 M& t6 i& j0 k6 D* G源程序如下
# d/ C: s" @; p8 x: }$ BSub c100()0 Q* h( t$ d# f
Dim cc(0 To 2) As Double '声明坐标变量
4 D) m: Y, K0 T  m3 Q. o1 I9 @" J' Tcc(0) = 1000 '定义圆心座标
! `& S8 k# W3 K/ T( q: _cc(1) = 1000
1 q  D1 a* }- }- R% [cc(2) = 0) _) ~+ c5 x+ g6 r* G
For i = 1 To 1000 Step 10 '开始循环
; O1 U# s+ C+ u. o. c3 W- B- {2 {  Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆
2 X3 j: A3 o/ v; WNext i
9 m. k+ ~* n" h- y. ?End Sub  `/ ^2 t; U* O
操作步骤如下
- U6 b0 \$ x9 M: ^2 h1、在模型空间按快捷键Alt+F8(或点菜单“工具->宏->宏(M)”),出现宏窗口
2 k& D; ~) q  B" @! z- Z& {: d1 H3 W1 N& d: h0 \* Q
$\5w
. ?" [0 e4 F3 j& r  G. K2 p) Aq{! K% m  Q1 W$ B) }+ E
2008年1月26日更新PDF文件, X! o( `" P$ P: `
. s3 @' g  Z0 \" c" Q4 F% n
[ 本帖最后由 auluolal 于 2008-1-26 15:34 编辑 ]

Autocad VBA初级教程.pdf

266.43 KB, 下载次数: 166

 楼主| 发表于 2008-1-25 00:26:39 | 显示全部楼层 来自: 中国江苏无锡
2、在宏名称中填写C100,点“创建”、“确定”
4 l! ~5 S% Q6 V7 x8 P+ x3 ]; K3、 在Sub c100()和End Sub之间粘贴代码+ L8 m7 i. X/ M5 z
4、回到模型空间,再次按Alt+F8,点击“运行”2J
+ w- L7 B/ o( z7 \不会贴图,所以将图附件上传。
, r# T! C. y/ w! @; u个人理解:# q" Z4 ?* ^2 [# `( l; a6 W
1、宏是用来做一些重复的繁琐的文件,虽然最终能实现很复杂的功能,但还是重复劳动
. h: O9 p' R5 Y% e  A' N! g+ l2、宏的存储范围决定了他的应用范围,这个以后会讲到。" B9 F, U/ `4 f% o$ \. i
3、AddCircle(参数1, 参数2),其中参数1,是个数组参数。(当然可以用Variant表示)- n0 {6 R, B9 ]! [
- O/ R+ T7 i1 ^/ M; n' g9 Q5 {
[ 本帖最后由 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 | 显示全部楼层 来自: 中国江苏泰州
二、三维线段的问题
5 P2 P6 q% w& P! V1 c8 X1 \2 y源码如下:' t! I# b9 L6 Q$ Q: ?! T
Sub myl()
7 [. e: ~/ j. ~0 VDim p1 As Variant
! q4 I7 W; ?% _3 eDim p2 As Variant
( B' O6 H% Y2 L7 ^& fp1 = ThisDrawing.Utility.GetPoint(, "输入点:")2 K9 q9 C0 v, \/ [! b7 g
z = ThisDrawing.Utility.GetReal("Z坐标:")
& @# W& @" T2 C5 E5 _8 m1 jp1(2) = z
1 e+ s2 ^6 d+ B! O: }  [& AOn Error GoTo Err_Control
2 F8 g5 X8 B$ KDo0 n! t* U7 y+ [6 H4 u
p2 = ThisDrawing.Utility.GetPoint(p1, vbCr & "输入下一点:")
8 @; O1 D$ I8 ]z = ThisDrawing.Utility.GetReal("Z坐标:")
0 C7 P  ~4 ~9 U9 d% Sp2(2) = z6 E* o$ X; e5 p& h
Call ThisDrawing.ModelSpace.AddLine(p1, p2)
+ Q/ G4 `6 O* T# k4 np1 = p2
- z0 q! U  j  b0 KLoop
* F% F- h/ g: F% EErr_Control:
" ?- e2 N# J4 a3 K  a* iEnd Sub5 a$ T+ q& W  Q. d9 r; U: s5 M

/ S4 F" S3 U$ p- {7 y% m5 |个人认为要点为:
! C! n7 e4 I+ e9 w% G7 u. P& |- `7 A3 \( nDo  -----  Loop 循环  F  D# G9 |7 x& A% g8 G
AddLine函数3 }' |* Y' H; F1 T$ ^
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 )

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