明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3705|回复: 11

[求助] 如何获得属性块的属性并修改某个值?

  [复制链接]
发表于 2009-10-27 08:43:00 | 显示全部楼层 |阅读模式

Public Sub Add_Block1()

Dim dblStart(0 To 2) As Double  '插入点
Dim objBlkDef As AcadBlock
Dim objBlkRef As AcadBlockReference
Dim objBlock As AcadBlock

For Each objBlock In ThisDrawing.Blocks
    If objBlock.Name = "Block1" Then                                               '找到指定的块
        Set objBlkDef = ThisDrawing.Blocks.Item("OrderBlock")
    End If
Next

'objBlkDef 如何转换为objBlkRef呢?

Dim varAttributes As Variant
varAttributes = objBlkRef.GetAttributes
varAttributes(0).TextString = "成功了"                       '修改第一个属性值?

End Sub

发表于 2009-10-27 13:40:00 | 显示全部楼层

用选择集过滤相应块名的块参照

Blocks是块定义集合而不是块参照集合

 楼主| 发表于 2009-10-27 18:00:00 | 显示全部楼层

如何写程序呢?

刚开始学cad的vba,需要大侠帮忙

 楼主| 发表于 2009-11-3 12:08:00 | 显示全部楼层
继续等大侠帮忙。。
发表于 2009-11-3 17:13:00 | 显示全部楼层
Set objBlkRef = ThisDrawing.ModelSpace.InsertBlock(InsertionPoint, "Block1", 1, 1, 1, 0)
 楼主| 发表于 2009-11-3 18:22:00 | 显示全部楼层
这是直接引用啊,我需要或者已经存在的块的属性。。。
发表于 2009-11-6 11:53:00 | 显示全部楼层
Dim ent As AcadEntity
For Each ent In ThisDrawing.ModelSpace
    If ent.Name = "Block1" Then                                               '找到指定的块
        Set objBlkRef = ent
    End If
Next
 楼主| 发表于 2009-11-6 13:55:00 | 显示全部楼层
Set objBlkRef = ent        这句出错,   运行错误438,对象不支持该属性和方法。
 楼主| 发表于 2009-11-6 14:04:00 | 显示全部楼层
Set objBlkRef = ent   这句提示方法错
发表于 2009-11-6 15:06:00 | 显示全部楼层
我的怎么没有提示错误,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 00:23 , Processed in 0.167496 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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