QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
11天前
查看: 2787|回复: 1
收起左侧

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

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

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

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

x
有知道cad中vba调用块怎么编程,; O. Y% m) J) O  Z$ \
例如 我定义好一个块a  并且a中有3个属性,现在我要调用这个块300次,并且每次块中的属性需要修改,不知道怎么编程。有vba的高手指点下哈!
发表于 2008-11-10 12:37:15 | 显示全部楼层 来自: 中国辽宁营口
  1. Sub IB()
    . M9 w5 E  m4 d1 g; I
  2.     Dim I As Integer, J As Integer, B As AcadBlockReference, Attes As Variant, Att As AcadAttributeReference, P As Variant, S As String$ Z, d/ i3 H" b8 _* E
  3.     With ThisDrawing
      m5 J4 k4 `; p& y; C
  4.    
    3 N5 E# r& S9 P% X+ h
  5.         '用For循环插入块参照300次
    % V0 x5 y. y! P: {& ^  x
  6.         For I = 0 To 299
    ; F: S4 V/ r9 Q) ]$ I" S
  7.         ) G& x1 C0 o2 I- V) R9 J
  8.              '在屏幕上指定点,也可以用其它方法指定点  S' R& w9 o6 P" M1 V( }. A$ r
  9.             P = .Utility.GetPoint(, "指定插入点:")1 v$ C6 ?$ Q) h7 y4 A* u  V
  10.             
    ) j7 O( X% a: g) R7 B+ U0 G1 ?
  11.             '在指定点插入块参照并赋值给变量B  l1 h" b* n5 q; p4 V, a* |
  12.             '三维比例(在这个例程中均设为1)和旋转角(在这个例程中设为0)都可以按需要设置+ A/ r# H8 w! J9 `1 _# Q( b
  13.             '还有一个可选参数"密码"在本例程中没有设置
    + q) V: a% C) @; b! V. X5 X. `  ^
  14.             Set B = .ModelSpace.InsertBlock(P, "A", 1, 1, 1, 0)
      r2 N4 j* E9 F' {. ?& \, {% B
  15.             
    5 O( A; R3 \! ]8 T, {+ [, r
  16.             '用变体变量获得块参照中的属性集合+ P, b$ @/ t1 T+ u6 U+ [
  17.             Attes = B.GetAttributes' w0 W0 y, t; ~2 ~0 `
  18.             ) W  @- U( e' e4 p2 [; i
  19.             '用For循环分别修改块参照中三个属性的值
    9 g3 c% o) }% a  V# E
  20.             For J = 0 To 2
    , }8 i: R  r( B# o3 n! q
  21.             8 g# u( D& F0 D" k: q* A+ h+ D
  22.                 '把属性集合中的第J个元素赋值给属性参照变量2 I/ H  @2 P. Z8 N
  23.                 '这不是必须的,这样做只是为了输入代码方便,因为在对象型变量后面输入"."时可以弹出可用的属性提示列表框,而变体变量没有提示
    2 J* Z! s/ Z) p2 i
  24.                 '就是说下面两行代码中"Att."完全可以用"Attes(J).",但这样一来它后面的属性关键字就全靠键盘输入了,不喜欢- J1 r' D, e% h8 U$ z: B
  25.                 Set Att = Attes(J)
    4 L. e$ e' e1 z$ T, s
  26.                 : {3 M: r. ~: L
  27.                 '由用户在命令行输入属性值字符串
    % k9 N, |1 v2 s) R( X& I8 m0 a
  28.                 '第一个参数为True时返回的字符串可以包含空格,只能以回车键为结束。
      s, m3 M. X" D3 H
  29.                 '当第一个参数为False时返回的字符串不许包含空格,可以以回车键或空格结束。
    4 d5 J( N$ O6 p, R8 A
  30.                 '第二个参数(命令提示)中使用了块属性对象的"标记"属性/ |* O5 o( q5 X$ w" @0 P& x
  31.                 S = .Utility.GetString(True, "输入" & Att.TagString & "的值:")
    + h' [) z# w. y% W* u4 P
  32.                
    0 E, m, P+ Q* n
  33.                 '把用户输入的字符串赋值给块属性
    . E/ y0 B+ |7 r
  34.                 Att.TextString = S
    2 b! k" z: R5 p, P) d# g
  35.             Next6 `) C1 J- v4 ^4 K& f
  36.         Next3 l. L+ A8 l+ D- n& r  J- m( w
  37.     End With% u6 M* I) X& n- L* {8 G
  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 )

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