You can append or insert loops into the hatch boundaries. Associative hatches are updated to match any changes made to their boundaries. Non-associative hatches are not updated.
To edit a hatch boundary, use one of the following methods:
Appends an inner loop to the hatch.
Appends an outer loop to the hatch.
Inserts a loop at a given index of a hatch.
Append an inner loop to a hatch
This example creates an associative hatch. It then creates a circle and appends the circle as an inner loop to the hatch.
Sub Ch4_AppendInnerLoopToHatch()
Dim hatchObj As AcadHatch
Dim patternName As String
Dim PatternType As Long
Dim bAssociativity As Boolean
' Define and create the hatch
patternName = "ANSI31"
PatternType = 0
bAssociativity = True
Set hatchObj = ThisDrawing.ModelSpace. _
AddHatch(PatternType, patternName, bAssociativity)
' Create the outer loop for the hatch.
Dim outerLoop(0 To 1) As AcadEntity
Dim center(0 To 2) As Double
Dim radius As Double
Dim startAngle As Double
Dim endAngle As Double
center(0) = 5: center(1) = 3: center(2) = 0
radius = 3
startAngle = 0
endAngle = 3.141592
Set outerLoop(0) = ThisDrawing.ModelSpace. _
AddArc(center, radius, startAngle, endAngle)
Set outerLoop(1) = ThisDrawing.ModelSpace. _
AddLine(outerLoop(0).startPoint, outerLoop(0).endPoint)
' Append the outer loop to the hatch object
hatchObj.AppendOuterLoop (outerLoop)
' Create a circle as the inner loop for the hatch.
Dim innerLoop(0) As AcadEntity
center(0) = 5: center(1) = 4.5: center(2) = 0
radius = 1
Set innerLoop(0) = ThisDrawing.ModelSpace. _
AddCircle(center, radius)
' Append the circle as an inner loop to the hatch
hatchObj.AppendInnerLoop (innerLoop)
' Evaluate and display the hatch
hatchObj.Evaluate
ThisDrawing.Regen True
End Sub