QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 2871|回复: 1
收起左侧

[已答复] cad中vba调用块怎么编程

[复制链接]
发表于 2008-11-10 10:06:12 | 显示全部楼层 |阅读模式 来自: 中国上海

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

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

x
有知道cad中vba调用块怎么编程,2 t, o& F: k- |( p" {6 ~6 n
例如 我定义好一个块a  并且a中有3个属性,现在我要调用这个块300次,并且每次块中的属性需要修改,不知道怎么编程。有vba的高手指点下哈!
发表于 2008-11-10 12:37:15 | 显示全部楼层 来自: 中国辽宁营口
  1. Sub IB()
    : C! I9 u5 O3 q# \5 @+ T4 D0 s
  2.     Dim I As Integer, J As Integer, B As AcadBlockReference, Attes As Variant, Att As AcadAttributeReference, P As Variant, S As String- Z8 W, M# y' [0 D4 M. H  D% I
  3.     With ThisDrawing5 D2 L# a8 A* W' u2 B' R" T' a
  4.     $ M: o# B, v5 h9 a
  5.         '用For循环插入块参照300次
    ( D1 [8 F* k9 L" m1 t# Q. w, C6 Y
  6.         For I = 0 To 299( @" @& C2 y6 o* ~( Q; j1 s
  7.         # J% [$ A) h3 c% m9 M" |" W  Q
  8.              '在屏幕上指定点,也可以用其它方法指定点: J) T+ G  @3 d9 O
  9.             P = .Utility.GetPoint(, "指定插入点:")- L' \1 Y! l) y& h7 L: U
  10.             5 N+ O0 @# ~% G$ s8 c: }
  11.             '在指定点插入块参照并赋值给变量B( a2 k0 q" I: B& E2 _  e* w
  12.             '三维比例(在这个例程中均设为1)和旋转角(在这个例程中设为0)都可以按需要设置& s% j5 C1 P9 P9 Q1 y* F
  13.             '还有一个可选参数"密码"在本例程中没有设置7 |8 s+ ^, P( [9 I' \
  14.             Set B = .ModelSpace.InsertBlock(P, "A", 1, 1, 1, 0)
    3 d$ Z3 P# F+ W& y+ U1 {0 Q
  15.             
    . V  e" \2 ]: _7 Y2 `' {( z% _
  16.             '用变体变量获得块参照中的属性集合
    , `9 Z  j3 s  a, Y
  17.             Attes = B.GetAttributes0 x: V7 r( v7 ~% U3 a& {- @) D
  18.             
    ) i* B! M. U3 n2 f
  19.             '用For循环分别修改块参照中三个属性的值
    8 G% h% _) ]1 L( I+ u
  20.             For J = 0 To 2% r* h* x2 ~% N8 h  y- N& \
  21.             
    " W  Y4 g3 B2 f8 q3 M6 j) `) O
  22.                 '把属性集合中的第J个元素赋值给属性参照变量
    : `1 L# i) }1 `( j7 ?
  23.                 '这不是必须的,这样做只是为了输入代码方便,因为在对象型变量后面输入"."时可以弹出可用的属性提示列表框,而变体变量没有提示, R9 j- W5 ?/ m( A0 L
  24.                 '就是说下面两行代码中"Att."完全可以用"Attes(J).",但这样一来它后面的属性关键字就全靠键盘输入了,不喜欢# H! g( c0 j% ^6 ^6 c" T5 Z
  25.                 Set Att = Attes(J)3 R; L! S% |& i" s7 V& u
  26.                
    , V  V+ ~5 ?/ }! @& B$ F& v
  27.                 '由用户在命令行输入属性值字符串9 E4 X& \. O- c% R2 t
  28.                 '第一个参数为True时返回的字符串可以包含空格,只能以回车键为结束。
    , Q6 ?" c# `% U3 [
  29.                 '当第一个参数为False时返回的字符串不许包含空格,可以以回车键或空格结束。% i5 }) _8 `$ ~  B
  30.                 '第二个参数(命令提示)中使用了块属性对象的"标记"属性1 J2 B* n3 Y% K- z8 c7 I
  31.                 S = .Utility.GetString(True, "输入" & Att.TagString & "的值:")/ P0 w: ~; C+ R
  32.                 / U, r( n0 o; k) ]
  33.                 '把用户输入的字符串赋值给块属性
    2 ?) [3 [6 d1 ]3 F1 u8 I) o
  34.                 Att.TextString = S
    ' g  X/ x; _/ a
  35.             Next' V. D9 P+ ]( @0 U& @$ Q! D; X7 d
  36.         Next  m* y, G) o( A& f: f7 I( Q
  37.     End With
    + k8 u  @( y4 {6 u% X
  38. End Sub
复制代码

1.dwg

108.73 KB, 下载次数: 19

发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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