QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
有知道cad中vba调用块怎么编程,4 L3 G4 l0 k; \# ~$ @
例如 我定义好一个块a  并且a中有3个属性,现在我要调用这个块300次,并且每次块中的属性需要修改,不知道怎么编程。有vba的高手指点下哈!
发表于 2008-11-10 12:37:15 | 显示全部楼层 来自: 中国辽宁营口
  1. Sub IB()& g- `/ m5 H: P0 Q: v
  2.     Dim I As Integer, J As Integer, B As AcadBlockReference, Attes As Variant, Att As AcadAttributeReference, P As Variant, S As String
    0 X) V  @4 I3 e$ Y
  3.     With ThisDrawing
    # h1 O# [2 i* X
  4.       j/ e3 d3 D# A4 q( S
  5.         '用For循环插入块参照300次
    ; K6 {; j4 Y# Q/ F
  6.         For I = 0 To 299
    " O# o; ?7 a1 ~; k. x& ~
  7.         # q4 n/ {* d$ {7 p
  8.              '在屏幕上指定点,也可以用其它方法指定点
    * k; |- @6 ]9 q6 k7 i/ Z
  9.             P = .Utility.GetPoint(, "指定插入点:")
    , l2 I; n6 }" f
  10.             5 G: |- O; J& j: ?1 r, e' N
  11.             '在指定点插入块参照并赋值给变量B
      }  d/ e# Q0 o. q
  12.             '三维比例(在这个例程中均设为1)和旋转角(在这个例程中设为0)都可以按需要设置- W  c+ f& w" [  \# G- r
  13.             '还有一个可选参数"密码"在本例程中没有设置6 v/ _9 _0 y9 d$ l0 C% H1 I
  14.             Set B = .ModelSpace.InsertBlock(P, "A", 1, 1, 1, 0)" d" i2 {/ k4 ?. `0 l
  15.             9 H6 q- i" H9 S6 g$ }8 s% R' y
  16.             '用变体变量获得块参照中的属性集合/ \5 Z% A. Z" T; _
  17.             Attes = B.GetAttributes' M1 w! n1 g! s
  18.             
    * j9 q4 P+ @' h
  19.             '用For循环分别修改块参照中三个属性的值+ r1 y; b$ n! t. J/ p: D  ^" B
  20.             For J = 0 To 2% |; D+ u, [3 B
  21.             , |" k: t7 D4 x6 f
  22.                 '把属性集合中的第J个元素赋值给属性参照变量
    0 z- t, R6 q" N% F7 ]( b
  23.                 '这不是必须的,这样做只是为了输入代码方便,因为在对象型变量后面输入"."时可以弹出可用的属性提示列表框,而变体变量没有提示' N. h/ x+ Y% b: f
  24.                 '就是说下面两行代码中"Att."完全可以用"Attes(J).",但这样一来它后面的属性关键字就全靠键盘输入了,不喜欢3 U1 I. m0 O3 H2 Q5 z
  25.                 Set Att = Attes(J)% G& p' [+ P+ `' P
  26.                
    2 X# [# [6 b: J! E3 M
  27.                 '由用户在命令行输入属性值字符串
    " `+ ~2 _$ W1 u0 M* L/ d
  28.                 '第一个参数为True时返回的字符串可以包含空格,只能以回车键为结束。) T* [& p5 R6 s6 o* Z3 _
  29.                 '当第一个参数为False时返回的字符串不许包含空格,可以以回车键或空格结束。) Y5 k7 g6 R. d# F+ ]
  30.                 '第二个参数(命令提示)中使用了块属性对象的"标记"属性
    ' H0 x% y3 i6 {
  31.                 S = .Utility.GetString(True, "输入" & Att.TagString & "的值:")7 A1 _+ \6 L" e+ @
  32.                 # m# R; E4 f5 j: l
  33.                 '把用户输入的字符串赋值给块属性
    6 h9 W* u; A- n' U& G  C
  34.                 Att.TextString = S' V" G, B* L9 z9 b: a
  35.             Next! f) d; u; n- A& `3 H. x1 v
  36.         Next) L' |6 x3 F: {7 n. w3 F
  37.     End With% h' T! S" \0 e4 ~, J; h' E/ A
  38. End Sub
复制代码

1.dwg

108.73 KB, 下载次数: 20

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

本版积分规则


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

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

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