QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
7天前
查看: 2858|回复: 1
收起左侧

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

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

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

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

x
有知道cad中vba调用块怎么编程,
, S+ e0 j# i8 p. O# o7 [- V" g$ G例如 我定义好一个块a  并且a中有3个属性,现在我要调用这个块300次,并且每次块中的属性需要修改,不知道怎么编程。有vba的高手指点下哈!
发表于 2008-11-10 12:37:15 | 显示全部楼层 来自: 中国辽宁营口
  1. Sub IB()  _' x1 n4 T) i" \
  2.     Dim I As Integer, J As Integer, B As AcadBlockReference, Attes As Variant, Att As AcadAttributeReference, P As Variant, S As String
    5 \& n. ]! g# Q" P) T) s& C
  3.     With ThisDrawing: V- M2 U5 w; @8 x+ h" S
  4.    
    2 _6 W/ S8 R! ?3 s+ ^/ p
  5.         '用For循环插入块参照300次
    0 ~5 X- L8 A- Z) Q$ P( s6 V
  6.         For I = 0 To 299) S4 j- D- ?! u* Z( [- m4 v& z
  7.         3 f! N7 R. ]+ l5 w* M/ M( V8 {
  8.              '在屏幕上指定点,也可以用其它方法指定点
    3 |7 s# M2 u; `: G6 |, t' }
  9.             P = .Utility.GetPoint(, "指定插入点:")" r# `! A- i  i
  10.             . q" k( O; C9 ]* k0 n7 Y8 o, f/ e
  11.             '在指定点插入块参照并赋值给变量B
    . q5 M* |' Q/ j1 O& j+ S
  12.             '三维比例(在这个例程中均设为1)和旋转角(在这个例程中设为0)都可以按需要设置
    % i, \6 B' V8 w  _
  13.             '还有一个可选参数"密码"在本例程中没有设置
    ) V2 y  X) G/ e5 v) n, L' Y4 i% r3 _$ U
  14.             Set B = .ModelSpace.InsertBlock(P, "A", 1, 1, 1, 0)
    ! S' h6 U& ]) W1 ~1 U* O# i
  15.             
    . x$ g; D% ^0 r2 e6 e
  16.             '用变体变量获得块参照中的属性集合' ?$ H, x$ N  r5 f1 Q
  17.             Attes = B.GetAttributes
    ' b$ Y8 X( J3 S6 T2 {) d
  18.             $ E7 W3 n- Q# Y' ~* }1 L% V: v7 S
  19.             '用For循环分别修改块参照中三个属性的值. s0 e- ~5 {7 `. R8 I
  20.             For J = 0 To 2
    * S! k0 C. Q+ r" D+ p" B3 V" P) s
  21.             , v4 f# d5 {0 y3 s4 u
  22.                 '把属性集合中的第J个元素赋值给属性参照变量
    + ?( n! s) h' Q" R+ ]5 U
  23.                 '这不是必须的,这样做只是为了输入代码方便,因为在对象型变量后面输入"."时可以弹出可用的属性提示列表框,而变体变量没有提示) N& ^& @" \9 S2 j, U& P$ j: j9 n
  24.                 '就是说下面两行代码中"Att."完全可以用"Attes(J).",但这样一来它后面的属性关键字就全靠键盘输入了,不喜欢
    ! B2 ^+ b4 k* S9 R% l6 l. x
  25.                 Set Att = Attes(J)
    + u% U1 x' {4 F3 O
  26.                 $ L5 m# R9 ~4 }5 V. W8 ]3 {
  27.                 '由用户在命令行输入属性值字符串, b( Q/ K2 L, I; x: W7 j' ?
  28.                 '第一个参数为True时返回的字符串可以包含空格,只能以回车键为结束。6 x, G/ C# U$ K% |5 c
  29.                 '当第一个参数为False时返回的字符串不许包含空格,可以以回车键或空格结束。
    : K2 R7 J- l2 u9 O" k& h
  30.                 '第二个参数(命令提示)中使用了块属性对象的"标记"属性
      N3 k( x+ f: g+ }  r2 t
  31.                 S = .Utility.GetString(True, "输入" & Att.TagString & "的值:")4 s! d( m9 x7 ]$ x
  32.                
    4 _# ~* ^$ t  {& _( @
  33.                 '把用户输入的字符串赋值给块属性- X+ t" G! L0 g' [, h9 w+ Q0 y' S7 }
  34.                 Att.TextString = S" J" \# ^! O1 u" e  S
  35.             Next
    ! w% i  K6 e4 v( Z
  36.         Next
    8 f  S3 }: @5 u
  37.     End With
      D4 G# ?8 V; H4 y% m; M
  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 )

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