定义图案填充边界

AutoCAD ActiveX/VBA

 
定义图案填充边界
 
 
 

创建 Hatch 对象之后,可以添加图案填充边界。边界可以是直线、圆弧、圆、二维多段线、椭圆、样条曲线和面域的任意组合。

添加的第一个边界必须是外边界,即用于定义图案填充最外面的边界。要添加外部边界,请使用 AppendOuterLoop 方法。

定义外边界后,可以继续添加内边界。使用 AppendInnerLoop 方法来添加内部边界。

内边界定义图案填充内的孤岛。Hatch 对象处理这些孤岛的方式取决于 HatchStyle 特性的设置。HatchStyle 特性可以设置为以下状态:

图案填充样式定义

HatchStyle

状态

说明

Normal

指定标准的样式,即普通。此选项从最外面的区域边界向内进行图案填充。如果 AutoCAD 遇到内部边界,将停止填充,直到遇到另一个内部边界。这是 HatchStyle 特性的默认设置。

Outer

仅填充最外面的区域。此样式也是从最外面的区域边界向内进行图案填充,但是遇到内部边界时会关闭图案填充并且不再打开。

Ignore

忽略内部结构。此选项使图案填充通过所有的内部对象。

定义完图案填充之后,必须先对其进行计算,然后才能显示。请使用 Evaluate 方法完成此任务。

创建 Hatch 对象

本例在模型空间中创建关联的图案填充。创建图案填充后,可以修改与图案填充关联的圆的大小。图案填充将自动改变以匹配圆的当前大小。

Sub Ch4_CreateHatch()
    Dim hatchObj As AcadHatch
    Dim patternName As String
    Dim PatternType As Long
    Dim bAssociativity As Boolean
      
    ' 定义图案填充
    patternName = "ANSI31"
    PatternType = 0
    bAssociativity = True
      
    ' 创建关联的 Hatch 对象
    Set hatchObj = ThisDrawing.ModelSpace.AddHatch _
                   (PatternType, patternName, bAssociativity)
      
    ' 创建图案填充的外边界。(一个圆)
    Dim outerLoop(0 To 0) As AcadEntity
    Dim center(0 To 2) As Double
    Dim radius As Double
    center(0) = 3: center(1) = 3: center(2) = 0
    radius = 1
    Set outerLoop(0) = ThisDrawing.ModelSpace. _
                       AddCircle(center, radius)
      
    ' 向 Hatch 对象附加外边界,
    ' 并显示图案填充
    hatchObj.AppendOuterLoop (outerLoop)
    hatchObj.Evaluate
    ThisDrawing.Regen True
      
End Sub