QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
9天前
查看: 2861|回复: 1
收起左侧

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

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

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

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

x
有知道cad中vba调用块怎么编程,
+ Q8 {* h" Z1 t% u例如 我定义好一个块a  并且a中有3个属性,现在我要调用这个块300次,并且每次块中的属性需要修改,不知道怎么编程。有vba的高手指点下哈!
发表于 2008-11-10 12:37:15 | 显示全部楼层 来自: 中国辽宁营口
  1. Sub IB()8 q9 [$ L* U1 h% B1 I! B1 W" T
  2.     Dim I As Integer, J As Integer, B As AcadBlockReference, Attes As Variant, Att As AcadAttributeReference, P As Variant, S As String
    : r( t* [5 u" t0 A1 \- P& n7 O7 }4 ]$ S
  3.     With ThisDrawing
    ; b; K- f% v3 |7 t0 x4 `
  4.    
    # X/ i! N. Y" i; o& C5 `7 R
  5.         '用For循环插入块参照300次
    6 D$ b* i9 K. P4 t  O, K
  6.         For I = 0 To 2993 V+ J' ?4 V) H4 Q& Z6 O: B
  7.         
    ( E" X& U2 _# R( f1 K, H
  8.              '在屏幕上指定点,也可以用其它方法指定点( f5 m. i) V8 A
  9.             P = .Utility.GetPoint(, "指定插入点:")
    3 z: z* y& x7 ^
  10.             
    ( a$ ?. n6 n9 B
  11.             '在指定点插入块参照并赋值给变量B
    , ?0 C9 n5 ~8 Y' W" H! _+ y1 g
  12.             '三维比例(在这个例程中均设为1)和旋转角(在这个例程中设为0)都可以按需要设置! h6 t) G$ W: w1 G
  13.             '还有一个可选参数"密码"在本例程中没有设置
    4 L, F8 J6 D6 Y
  14.             Set B = .ModelSpace.InsertBlock(P, "A", 1, 1, 1, 0)7 [4 a2 V' S/ c, j# D# D
  15.             1 T0 S6 w: N% q" X* u7 X, ^+ g5 O
  16.             '用变体变量获得块参照中的属性集合
    . B5 I) K) I4 v, k) f
  17.             Attes = B.GetAttributes# q7 c' E5 H( W
  18.             2 ]# f( F+ N9 d
  19.             '用For循环分别修改块参照中三个属性的值
    9 i" Z+ M+ ?5 D! G, j+ M
  20.             For J = 0 To 2! }7 `  |" l8 T# ]9 `
  21.             # r6 e8 ^0 Q1 P+ n
  22.                 '把属性集合中的第J个元素赋值给属性参照变量
    ( l3 X. u6 a- V! v5 x# u4 U
  23.                 '这不是必须的,这样做只是为了输入代码方便,因为在对象型变量后面输入"."时可以弹出可用的属性提示列表框,而变体变量没有提示7 L. a9 B+ q4 z
  24.                 '就是说下面两行代码中"Att."完全可以用"Attes(J).",但这样一来它后面的属性关键字就全靠键盘输入了,不喜欢& w) k- i# O( t1 M
  25.                 Set Att = Attes(J)
    , P! N/ o" v2 e0 {
  26.                 - a* S" G# ]9 ~) o0 d' ~
  27.                 '由用户在命令行输入属性值字符串
    ; g& H& D( ?9 C- g
  28.                 '第一个参数为True时返回的字符串可以包含空格,只能以回车键为结束。, e$ X3 [, Y" S0 X! W
  29.                 '当第一个参数为False时返回的字符串不许包含空格,可以以回车键或空格结束。
    9 o0 t$ B$ ^8 ?  L  z
  30.                 '第二个参数(命令提示)中使用了块属性对象的"标记"属性
    2 y: a& B9 M! j5 o/ S; w: d! y
  31.                 S = .Utility.GetString(True, "输入" & Att.TagString & "的值:")& \5 O  j0 h- C- Z$ t
  32.                 - s- o! E5 y0 u" [( o
  33.                 '把用户输入的字符串赋值给块属性# i( F: U! e! v6 z7 u
  34.                 Att.TextString = S+ p$ z7 e6 Y/ ~
  35.             Next, q( @8 V0 p' X3 J3 I: W  I
  36.         Next
    - E! w5 X# Z; U1 L! l
  37.     End With0 G4 D# \0 d2 H2 }# x( o
  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 )

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