Appends an inner loop to the hatch.
Supported platforms: Windows only
VBA:
object.AppendInnerLoop Loop
Type: Hatch
The object this method applies to.
Access: Input-only
Type: Variant (array of Arc, Circle, Ellipse, Line, Polyline, Region, Spline objects)
An array of objects forming a closed boundary. The array can consist of one or more objects. If more than one object is used, their endpoints must coincide for the loop to be created properly.
No return value.
After the Hatch object has been created using the AddHatch method, add the outer loop using AppendOuterLoop. The outer loop must be closed and must be created before any inner loops can be added.
VBA:
Sub Example_AppendInnerLoop()
' This example creates an associative hatch in model space, and then appends an outer loop to the hatch.
Dim hatchObj As AcadHatch
Dim patternName As String
Dim PatternType As Long
Dim bAssociativity As Boolean
' Define the hatch
patternName = "ANSI31"
PatternType = 0
bAssociativity = True
' Create the associative Hatch object
Set hatchObj = ThisDrawing.ModelSpace.AddHatch(PatternType, patternName, bAssociativity)
' Create the outer loop for the hatch.
' An arc and a line are used to create a closed loop.
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)
' Append 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)
hatchObj.AppendInnerLoop (innerLoop)
' Evaluate and display the hatch
hatchObj.Evaluate
ThisDrawing.Regen True
End Sub
Visual LISP:
(vl-load-com)
(defun c:Example_AppendInnerLoop()
;; This example creates an associative hatch in model space, and then appends an outer loop to the hatch.
(setq acadObj (vlax-get-acad-object))
(setq doc (vla-get-ActiveDocument acadObj))
;; Define the hatch
(setq patternName "ANSI31"
patternType 0
bAssociativity :vlax-true)
;; Create the associative Hatch object
(setq modelSpace (vla-get-ModelSpace doc))
(setq hatchObj (vla-AddHatch modelSpace patternType patternName bAssociativity acHatchObject))
;; Create the outer loop for the hatch.
;; An arc and a line are used to create a closed loop.
(setq center (vlax-3d-point 5 3 0)
radius 3
startAngle 0
endAngle 3.141592)
(setq arc (vla-AddArc modelSpace center radius startAngle endAngle))
(setq line (vla-AddLine modelSpace (vla-get-StartPoint arc) (vla-get-EndPoint arc)))
(setq outerLoop (vlax-make-safearray vlax-vbObject '(0 . 1)))
(vlax-safearray-put-element outerLoop 0 arc)
(vlax-safearray-put-element outerLoop 1 line)
;; Append the outer loop to the hatch object
(vla-AppendOuterLoop hatchObj outerLoop)
;; Append a circle as the inner loop for the hatch.
(setq center (vlax-3d-point 5 4.5 0)
radius 1)
(setq circle (vla-AddCircle modelSpace center radius))
(setq innerLoop (vlax-make-safearray vlax-vbObject '(0 . 0)))
(vlax-safearray-put-element innerLoop 0 circle)
(vla-AppendInnerLoop hatchObj innerLoop)
;; Evaluate and display the hatch
(vla-Evaluate hatchObj)
(vla-Regen doc :vlax-true)
)