sccat 发表于 2004-11-19 12:33:00

[求助]怎样将Block里面的Hatch改变颜色?

主要问题是怎样能够浏览block里面的东西,然后挑选出Hatch


Public Function ChangeHatchColorInBlock(Block As AcadBlock)<BR>Dim elem As Object<BR>                                                                ?


                                                       For each elem in Block //这是会产生错误的。


                                               ?<BR>                                                                                       <BR>End Function

mccad 发表于 2004-11-19 20:48:00

If elem.ObjectName = "AcDbHatch" Then elem.Color = acRed '你所要的颜色

sccat 发表于 2004-11-20 09:28:00

这个我知道,只是不知道block这个类里面的东西怎么访问,它的层次结构是怎么样的?block里面陷套的block里面的东西又怎么访问?

mccad 发表于 2004-11-20 21:47:00

Sub ChgColor()
Dim pnt, ent As AcadEntity
       ThisDrawing.Utility.GetEntity ent, pnt
       ChangColor ent.Name
       Regen acActiveViewport
End Sub
Sub ChangeColor(BlockName As String)
       Dim ent As AcadEntity
       For Each ent In ThisDrawing.Blocks(BlockName)
               Debug.Print ent.ObjectName
               If ent.ObjectName = "AcDbHatch" Then ent.color = acRed
               If ent.ObjectName = "AcDbBlockReference" Then ChangColor ent.Name
       Next
End Sub
页: [1]
查看完整版本: [求助]怎样将Block里面的Hatch改变颜色?