QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
有知道cad中vba调用块怎么编程,
6 S3 x' A: S" {! X3 V  }例如 我定义好一个块a  并且a中有3个属性,现在我要调用这个块300次,并且每次块中的属性需要修改,不知道怎么编程。有vba的高手指点下哈!
发表于 2008-11-10 12:37:15 | 显示全部楼层 来自: 中国辽宁营口
  1. Sub IB()6 F# }/ y( W. R
  2.     Dim I As Integer, J As Integer, B As AcadBlockReference, Attes As Variant, Att As AcadAttributeReference, P As Variant, S As String
    3 a! P+ l/ m0 `
  3.     With ThisDrawing: E  J8 D8 C8 a1 k+ G7 A7 O  v
  4.    
    $ V! k" g, e" ~  b4 Q% m
  5.         '用For循环插入块参照300次
    ! A! ]+ F8 K1 s! f7 A9 p! y# g
  6.         For I = 0 To 299( B* T4 ?' }! Y. R
  7.         
    7 G& ^: {) W0 i6 ?; X. s8 Q, N$ M2 N# p! J
  8.              '在屏幕上指定点,也可以用其它方法指定点
    + g6 _9 b  z: f# m5 N
  9.             P = .Utility.GetPoint(, "指定插入点:")0 Z: o6 ]7 v& X* D9 K9 Z
  10.             
    5 ?5 T9 V+ ?% J( V
  11.             '在指定点插入块参照并赋值给变量B  _: C; \9 \1 c* x
  12.             '三维比例(在这个例程中均设为1)和旋转角(在这个例程中设为0)都可以按需要设置
    6 x7 ~8 O' N, Z  Q5 i
  13.             '还有一个可选参数"密码"在本例程中没有设置# P  B* D1 d6 h% \( `
  14.             Set B = .ModelSpace.InsertBlock(P, "A", 1, 1, 1, 0)+ L' z5 ]$ p( N
  15.             - R3 C( j0 Z( S) _4 Z: {# z
  16.             '用变体变量获得块参照中的属性集合
    $ O0 \% [5 Q3 T
  17.             Attes = B.GetAttributes* y( d1 W3 ?1 R
  18.             ; N+ y! Y" ]' ~% Q' B: Y7 a3 A
  19.             '用For循环分别修改块参照中三个属性的值
    . `/ F' ]3 A3 y6 A
  20.             For J = 0 To 27 l- F7 h( f1 y9 `) X
  21.             % n; G3 d7 n" S4 _9 F4 O7 z
  22.                 '把属性集合中的第J个元素赋值给属性参照变量
    . N0 g$ P0 d6 G. i; o# {- n% }' `
  23.                 '这不是必须的,这样做只是为了输入代码方便,因为在对象型变量后面输入"."时可以弹出可用的属性提示列表框,而变体变量没有提示3 L# r0 Z8 X+ x; {
  24.                 '就是说下面两行代码中"Att."完全可以用"Attes(J).",但这样一来它后面的属性关键字就全靠键盘输入了,不喜欢
    ; h) M9 q) R  D9 x( g+ v% c1 P7 d1 R) y
  25.                 Set Att = Attes(J)
    8 `# ]. @$ ?3 R& \4 i6 ^7 y
  26.                
    % h# P  Z0 |- l
  27.                 '由用户在命令行输入属性值字符串
    6 O2 L( ^& j9 S6 B
  28.                 '第一个参数为True时返回的字符串可以包含空格,只能以回车键为结束。5 T" h1 g! u4 H! O7 \0 c, O
  29.                 '当第一个参数为False时返回的字符串不许包含空格,可以以回车键或空格结束。3 n1 r) g4 V% C5 c6 A! U) a
  30.                 '第二个参数(命令提示)中使用了块属性对象的"标记"属性$ S5 q# Q3 B  l" _, G$ P* w- q
  31.                 S = .Utility.GetString(True, "输入" & Att.TagString & "的值:")0 a3 C, r7 R: H6 Y- M
  32.                
    8 l2 ?5 _9 @# g1 |7 |# `+ D
  33.                 '把用户输入的字符串赋值给块属性
    $ k4 b- S+ m1 A& U- h7 w; O3 z7 b
  34.                 Att.TextString = S
    2 p; L1 s2 F) E
  35.             Next
    + [6 \5 e) N" L
  36.         Next
    : e$ U# ~& V' p& z# y# U
  37.     End With
    1 w7 @' ]6 A2 x3 X6 E: l+ U
  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 )

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