兰州人 发表于 2006-12-22 14:21:00

如何变化图块中,图元的颜色。

我编了一个小程序,可以遍历图块中每个图元。
但不能改变图块中每个图元的颜色或显示高亮。
Dim Ent As AcadEntity
Dim pblock, Obj
For Each Ent In ThisDrawing.ModelSpace
    Debug.Print Ent.Handle, Ent.ObjectName
    For Each Obj In ThisDrawing.Blocks("aa")
      Debug.Print Obj.ObjectName, Obj.Handle
'图块中的图元名和句柄号
'AcDbCircle    8E
'AcDbLine      8F
'AcDbPolyline90
'AcDbPolyline91
      Obj.Highlight True
'在运行中不变亮,也不变颜色
      Obj.color = 1
      MsgBox "Wait"
      Obj.Highlight False
    Next Obj
Next Ent
请问各位大侠,有什么办法,能让图块中的图元变颜色或变亮。

mccad 发表于 2006-12-23 14:39:00

1.图块中的图元并不能单独高亮。
2.在对话框出来前加入:ThisDrawing.Regen (acActiveViewport)
因为修改颜色后需要重新生成一次才能看到颜色。

兰州人 发表于 2006-12-24 12:03:00

改了一下程序,图块在的一个图元可以变颜色
Dim Ent As AcadEntity
Dim pblock, Obj
For Each Ent In ThisDrawing.ModelSpace
    Debug.Print Ent.Handle, Ent.ObjectName
    For Each Obj In ThisDrawing.Blocks("aa")
      Debug.Print Obj.ObjectName, Obj.Handle
      
'在运行中不变亮,也不变颜色
If Obj.Handle = "92" Then
      Obj.color = 1
      ThisDrawing.Regen (acActiveViewport)
'刷新活动窗口,图块中一个图元变颜色
      MsgBox "Wait"
End If
    Next Obj
Next Ent
页: [1]
查看完整版本: 如何变化图块中,图元的颜色。