szuki 发表于 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

雪山飞狐_lzh 发表于 2009-10-27 13:40:00

用选择集过滤相应块名的块参照
Blocks是块定义集合而不是块参照集合

szuki 发表于 2009-10-27 18:00:00

如何写程序呢?
刚开始学cad的vba,需要大侠帮忙

szuki 发表于 2009-11-3 12:08:00

继续等大侠帮忙。。

home 发表于 2009-11-3 17:13:00

Set objBlkRef = ThisDrawing.ModelSpace.InsertBlock(InsertionPoint, "Block1", 1, 1, 1, 0)

szuki 发表于 2009-11-3 18:22:00

这是直接引用啊,我需要或者已经存在的块的属性。。。

home 发表于 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

szuki 发表于 2009-11-6 13:55:00

Set objBlkRef = ent      这句出错,   运行错误438,对象不支持该属性和方法。

szuki 发表于 2009-11-6 14:04:00

Set objBlkRef = ent   这句提示方法错

home 发表于 2009-11-6 15:06:00

我的怎么没有提示错误,
页: [1]
查看完整版本: [求助] 如何获得属性块的属性并修改某个值?