QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

[分享] Autocad VBA初级教程

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

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

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

x
引用该贴作为教材,介绍简单的VBA编程。(本人将其转化为PDF形式)
" G" J2 V9 p; T6 S* s+ ~4 q# ^/ a一,同心圆问题3 v/ j* P, ~6 [+ M" ~
源程序如下
- {% |7 R, s- b* ~( Y9 b7 u$ ~Sub c100()
0 m' C0 {. y( S- q8 {( }* iDim cc(0 To 2) As Double '声明坐标变量
: S  X8 v" D5 f( @1 [" e; L& dcc(0) = 1000 '定义圆心座标$ u5 e" h4 f% B- C  Z9 A6 p
cc(1) = 10009 {! [3 g4 X4 p! j
cc(2) = 03 R  c# [- V% D
For i = 1 To 1000 Step 10 '开始循环" V) E  m: b7 f3 W% j/ H2 ~
  Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆) Q( ]# u/ W) B/ I8 k2 ?
Next i$ g1 v) E. V- z. g' t1 U* ]$ D  r  ?
End Sub
& l, O' b5 O: S# I2 i9 n7 e, f操作步骤如下* s8 w( B. F2 S" [1 Z  t
1、在模型空间按快捷键Alt+F8(或点菜单“工具->宏->宏(M)”),出现宏窗口
' b9 N0 x) c! y: P2 X) u7 x0 a( j1 C: A2 r5 e5 t" A: P1 y
$\5w/ `' B# R# V) U- K
q{
9 S; _4 u, x/ y5 I+ x6 X2008年1月26日更新PDF文件3 [! Z. {* e. k% w: M  u

; \! O4 X. U. y. a[ 本帖最后由 auluolal 于 2008-1-26 15:34 编辑 ]

Autocad VBA初级教程.pdf

266.43 KB, 下载次数: 164

 楼主| 发表于 2008-1-25 00:26:39 | 显示全部楼层 来自: 中国江苏无锡
2、在宏名称中填写C100,点“创建”、“确定”  v0 j+ ~/ ]1 B
3、 在Sub c100()和End Sub之间粘贴代码
" b* m6 D& n! O4 N" h4、回到模型空间,再次按Alt+F8,点击“运行”2J( ]! g$ c2 `1 W
不会贴图,所以将图附件上传。. E/ Y* v6 O: ^" P8 h1 t
个人理解:
: g' {0 J- w! O1 r* Z1、宏是用来做一些重复的繁琐的文件,虽然最终能实现很复杂的功能,但还是重复劳动  A7 ]. B3 F: ]$ J, Y! p
2、宏的存储范围决定了他的应用范围,这个以后会讲到。( e  @4 r1 A6 F( [5 ?0 q* Q! Z
3、AddCircle(参数1, 参数2),其中参数1,是个数组参数。(当然可以用Variant表示)
0 m2 @7 [. Y' K- G, C5 F
* q0 {* E/ o( p7 m3 J/ O& f9 ~& [1 l[ 本帖最后由 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 | 显示全部楼层 来自: 中国江苏泰州
二、三维线段的问题) S; M, E, X" }. i
源码如下:! E: @: B7 R5 ^- M
Sub myl()
4 k5 B! W; E# X2 H" H, @Dim p1 As Variant: v8 }& S7 v. w! A
Dim p2 As Variant
# \- v- J/ r" [% ~  Vp1 = ThisDrawing.Utility.GetPoint(, "输入点:"): N* s& }; h* a; ]! [
z = ThisDrawing.Utility.GetReal("Z坐标:"); ?$ T. s" H2 Z2 j/ V0 C% E! ^
p1(2) = z
( ~1 `* {- J3 q  U+ H8 fOn Error GoTo Err_Control1 J+ s8 }# a" |8 {) r% x
Do/ O. J7 O, m: |
p2 = ThisDrawing.Utility.GetPoint(p1, vbCr & "输入下一点:")
( Q( b4 K1 O& A  j9 qz = ThisDrawing.Utility.GetReal("Z坐标:")
- j' v/ i& K* [p2(2) = z7 Y5 d6 c3 d6 I4 t1 Q1 o" U
Call ThisDrawing.ModelSpace.AddLine(p1, p2)
3 P1 {* h, r& J6 w+ I7 wp1 = p2
" d& [" w& u* w* jLoop+ p+ u( K/ G5 a: ^, d9 i
Err_Control:
: u5 }8 Y2 {( f' ]4 O+ R0 rEnd Sub
) Y; N# Q0 }2 e! E0 h/ O9 W5 @5 b1 F5 e% e6 I
个人认为要点为: 9 L+ v$ O! C9 {' g- |, M/ \
Do  -----  Loop 循环. I3 S- q& l8 f* h
AddLine函数1 y- X) o! u0 I! v% Y9 V
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 )

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