QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
有知道cad中vba调用块怎么编程,
8 L" Y2 m$ @1 f* Q# B6 y7 Z; Z例如 我定义好一个块a  并且a中有3个属性,现在我要调用这个块300次,并且每次块中的属性需要修改,不知道怎么编程。有vba的高手指点下哈!
发表于 2008-11-10 12:37:15 | 显示全部楼层 来自: 中国辽宁营口
  1. Sub IB()8 I/ z0 @& P) J1 u5 E3 u
  2.     Dim I As Integer, J As Integer, B As AcadBlockReference, Attes As Variant, Att As AcadAttributeReference, P As Variant, S As String
    3 Z! S$ l0 M5 r& f. ]4 I
  3.     With ThisDrawing3 R5 {" ?3 `4 l6 r; Z
  4.    
    8 L. j, j& S) s' o
  5.         '用For循环插入块参照300次' d8 [3 \% W8 ?2 J; a8 `" g
  6.         For I = 0 To 299
      |' V8 U1 g0 M. p! B# B
  7.         
    , L* B! ?$ f4 x" _5 T2 F
  8.              '在屏幕上指定点,也可以用其它方法指定点
    ' J, e2 G! s0 |4 ?1 i; x  r( j
  9.             P = .Utility.GetPoint(, "指定插入点:")! l# d8 _: v% Z3 n4 N$ _$ h
  10.             
    - R# H% g. b* ?. n3 c2 _& z
  11.             '在指定点插入块参照并赋值给变量B
      U6 G4 _6 B6 E( R
  12.             '三维比例(在这个例程中均设为1)和旋转角(在这个例程中设为0)都可以按需要设置5 K; O" ]5 n3 \& ^; L0 z
  13.             '还有一个可选参数"密码"在本例程中没有设置
    ' `9 ]8 L* W; r
  14.             Set B = .ModelSpace.InsertBlock(P, "A", 1, 1, 1, 0)% O0 u* U  Y. [' S) b, @
  15.             9 b- G8 e# Z/ l' A- p$ K- l
  16.             '用变体变量获得块参照中的属性集合3 d3 Q  p4 F3 W1 c
  17.             Attes = B.GetAttributes
    9 S* U% W" V3 F+ p5 h
  18.             
      H8 Z2 N9 ]# Q+ W* G
  19.             '用For循环分别修改块参照中三个属性的值+ C+ g; I0 W3 B; S5 F
  20.             For J = 0 To 25 |$ Y0 j- y% g& Z. G. T4 K
  21.             
    ( i* D& w" ^2 a- Q' ]
  22.                 '把属性集合中的第J个元素赋值给属性参照变量0 E& _) a5 G+ W. w; o
  23.                 '这不是必须的,这样做只是为了输入代码方便,因为在对象型变量后面输入"."时可以弹出可用的属性提示列表框,而变体变量没有提示7 B1 R& j3 `( o+ x" _# Y2 b7 C
  24.                 '就是说下面两行代码中"Att."完全可以用"Attes(J).",但这样一来它后面的属性关键字就全靠键盘输入了,不喜欢  [) n4 d6 V9 |4 y' W* R2 h
  25.                 Set Att = Attes(J)
    & h( P: T8 n7 k8 Z$ C- G
  26.                
    ! q( \. Q+ ~3 F: G1 k! _# J4 K
  27.                 '由用户在命令行输入属性值字符串
    $ H7 K- Y1 b. L1 y' A) A1 L
  28.                 '第一个参数为True时返回的字符串可以包含空格,只能以回车键为结束。
    - q: Y/ I& K7 \' z) N$ y' G; k
  29.                 '当第一个参数为False时返回的字符串不许包含空格,可以以回车键或空格结束。
    ' G* N$ O: j" l
  30.                 '第二个参数(命令提示)中使用了块属性对象的"标记"属性
    & R* X$ R3 M0 y
  31.                 S = .Utility.GetString(True, "输入" & Att.TagString & "的值:")- C4 ~; }& ]9 x5 f( Q# X# ^
  32.                
    & s" H& v( B3 \
  33.                 '把用户输入的字符串赋值给块属性
    5 i4 f4 H4 `& R. E$ O% N( A
  34.                 Att.TextString = S
    ( {9 b% q* Z3 t" ]
  35.             Next
    3 m) W+ i1 `% U5 R5 {6 i
  36.         Next
    % D1 f& o! a* |4 U
  37.     End With" F) [, j) e( b) }, o: z0 V
  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 )

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