明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2915|回复: 4

[VBA] 块属性定义与修改

[复制链接]
发表于 2006-7-13 16:19:00 | 显示全部楼层 |阅读模式

AutoCAD开发手册里,读取BLOCK的属性(ATTRIBUTE)的命令是GetAttributes,但没有找到修改属性的命令,哪位高手知道吗?

发表于 2006-7-14 11:23:00 | 显示全部楼层
<RE class=prog_in>    ' 获取块参照的属性</PRE><RE class=prog_in>    Dim varAttributes As Variant</PRE><RE class=prog_in>    varAttributes = blockRefObj.GetAttributes</PRE><RE class=prog_in></PRE><RE class=prog_in>    ' 将属性标记和值移至</PRE><RE class=prog_in>    ' 要在 Msgbox 中显示的字符串中</PRE><RE class=prog_in>    Dim strAttributes As String</PRE><RE class=prog_in>    strAttributes = ""</PRE><RE class=prog_in>    Dim I As Integer</PRE><RE class=prog_in>    For I = LBound(varAttributes) To UBound(varAttributes)</PRE><RE class=prog_in>        strAttributes = strAttributes + " Tag: " + _</PRE><RE class=prog_in>                    varAttributes(I).TagString + vbCrLf + _</PRE><RE class=prog_in>                    " Value: " + varAttributes(I).textString</PRE><RE class=prog_in>    Next</PRE><RE class=prog_in>    MsgBox "The attributes for blockReference " + _</PRE><RE class=prog_in>                   blockRefObj.Name &amp; " are: " &amp; vbCrLf _</PRE><RE class=prog_in>                   &amp; strAttributes</PRE><RE class=prog_in></PRE><RE class=prog_in>    ' 更改属性值</PRE><RE class=prog_in>    ' 注意:没有 SetAttributes。 一旦包含</PRE><RE class=prog_in>    ' 变量数组,就拥有了对象。</PRE><RE class=prog_in>    ' 更改这些对象就会改变图形中的对象。</PRE><RE class=prog_in>    varAttributes(0).textString = "NEW VALUE!"</PRE><RE class=prog_in></PRE><RE class=prog_in>    ' 再次获取属性</PRE><RE class=prog_in>    Dim newvarAttributes As Variant</PRE><RE class=prog_in>    newvarAttributes = blockRefObj.GetAttributes</PRE><RE class=prog_in></PRE><RE class=prog_in>    ' 再次显示标记和值</PRE><RE class=prog_in>    strAttributes = ""</PRE><RE class=prog_in>    For I = LBound(varAttributes) To UBound(varAttributes)</PRE><RE class=prog_in>        strAttributes = strAttributes + " Tag: " + _</PRE><RE class=prog_in>                    newvarAttributes(I).TagString + vbCrLf + _</PRE><RE class=prog_in>                    " Value: " + newvarAttributes(I).textString</PRE><RE class=prog_in>    Next</PRE><RE class=prog_in>    MsgBox "The attributes for blockReference " &amp; _</PRE><RE class=prog_in>                  blockRefObj.Name &amp; " are: " &amp; vbCrLf _</PRE><RE class=prog_in>                  &amp; strAttributes</PRE><RE class=prog_in> </PRE><RE class=prog_in>注意其中这句话:<RE class=prog_in>    ' 注意:没有 SetAttributes。 一旦包含</PRE><RE class=prog_in>    ' 变量数组,就拥有了对象。</PRE><RE class=prog_in>    ' 更改这些对象就会改变图形中的对象。</PRE></PRE>
 楼主| 发表于 2006-7-17 15:45:00 | 显示全部楼层
谢谢,我试试!
发表于 2006-12-22 14:01:00 | 显示全部楼层

代码好复杂,去掉显示用的那些其实很少(我可以手工查看属性是否已经改变)

不过我还是搞不定啊,没有变化啊

发表于 2007-10-16 18:07:00 | 显示全部楼层
试试先!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 12:28 , Processed in 0.158959 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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