QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
8天前
查看: 2859|回复: 1
收起左侧

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

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

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

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

x
有知道cad中vba调用块怎么编程,
8 H* e  g; j7 z: f# `5 h4 j例如 我定义好一个块a  并且a中有3个属性,现在我要调用这个块300次,并且每次块中的属性需要修改,不知道怎么编程。有vba的高手指点下哈!
发表于 2008-11-10 12:37:15 | 显示全部楼层 来自: 中国辽宁营口
  1. Sub IB()
    3 K5 M' R; V7 F/ a/ {4 w
  2.     Dim I As Integer, J As Integer, B As AcadBlockReference, Attes As Variant, Att As AcadAttributeReference, P As Variant, S As String
    / c" ~2 w! v# `9 }3 q, B) T
  3.     With ThisDrawing
    ! y# X2 U9 F. A* w
  4.    
    5 q/ a! I1 F$ }3 c/ T  k/ B' D
  5.         '用For循环插入块参照300次; O2 o) T7 L# [# i4 I
  6.         For I = 0 To 299% [# Y- P5 c' K+ w4 ~9 x
  7.         
      p2 r2 x# V( t6 h* S
  8.              '在屏幕上指定点,也可以用其它方法指定点
      k" j8 z* Z* G" P, {6 O( x/ J1 V/ S
  9.             P = .Utility.GetPoint(, "指定插入点:")
    8 a% V' m0 v7 a( Y  |+ a: x
  10.             8 W! o7 `9 ^6 f# [+ h: f  ^6 c
  11.             '在指定点插入块参照并赋值给变量B' H) I0 v" @9 [' _/ H
  12.             '三维比例(在这个例程中均设为1)和旋转角(在这个例程中设为0)都可以按需要设置1 f" Z  l2 m0 ?# v; `3 L% _) X
  13.             '还有一个可选参数"密码"在本例程中没有设置
    % j" d- _/ Q, `
  14.             Set B = .ModelSpace.InsertBlock(P, "A", 1, 1, 1, 0)
    6 ~4 i6 ^; a0 E# I  ?" Q! f
  15.             
    : ^* _& X* L, n7 H) W
  16.             '用变体变量获得块参照中的属性集合
    0 ~; u$ n& F3 Y2 g7 |6 V- ]% p
  17.             Attes = B.GetAttributes* }# K! S6 R# {" D
  18.             ! H2 |- d- W- U# Y
  19.             '用For循环分别修改块参照中三个属性的值
    5 B8 k, m, }- y" v- }  K2 U9 ]0 q
  20.             For J = 0 To 2
    : {5 |( ?* N1 G! s! F
  21.             
    * T, E: O& T$ F/ _7 _* [$ M: |) Y
  22.                 '把属性集合中的第J个元素赋值给属性参照变量
    # |1 I( z  ~1 W/ f! p$ V
  23.                 '这不是必须的,这样做只是为了输入代码方便,因为在对象型变量后面输入"."时可以弹出可用的属性提示列表框,而变体变量没有提示
    2 u2 ^7 q( v# J3 V& r1 c
  24.                 '就是说下面两行代码中"Att."完全可以用"Attes(J).",但这样一来它后面的属性关键字就全靠键盘输入了,不喜欢# z! n% [+ r# _  z+ p
  25.                 Set Att = Attes(J)
    - T; c. L" h  x9 g, N
  26.                 0 I: o+ {# w; Z9 h& [, n
  27.                 '由用户在命令行输入属性值字符串
    / [: _5 H' L4 [. _* w. s* l& C
  28.                 '第一个参数为True时返回的字符串可以包含空格,只能以回车键为结束。
    & t  k1 S: l* i% O
  29.                 '当第一个参数为False时返回的字符串不许包含空格,可以以回车键或空格结束。1 ?8 ?9 N" ^5 r$ S, k
  30.                 '第二个参数(命令提示)中使用了块属性对象的"标记"属性6 W. t6 y: m. Z# m0 M
  31.                 S = .Utility.GetString(True, "输入" & Att.TagString & "的值:")! r2 W. o; k3 h. c/ F1 h) x1 K0 o
  32.                
    % {) a! a6 P% x
  33.                 '把用户输入的字符串赋值给块属性
    % f- r' F5 {% D
  34.                 Att.TextString = S
    0 V8 e* h5 l! j
  35.             Next6 v5 b  A/ c2 i9 b5 b; [, k
  36.         Next7 U( e6 [- u. s9 G( Z
  37.     End With; n- I, y4 I6 s0 Z* s
  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 )

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