Share
 
 

HatchStyle Property (ActiveX)

Specifies the hatch style.

Supported platforms: Windows only

Signature

VBA:

object.HatchStyle
object

Type: Hatch

The object this property applies to.

Property Value

Read-only: No

Type: acHatchStyle enum

  • acHatchStyleNormal
  • acHatchStyleOuter
  • acHatchStyleIgnore

Remarks

  • acHatchStyleNormal

    Specifies standard style or normal. This option hatches inward from the outermost area boundary. If AutoCAD encounters an internal boundary, it turns off hatching until it encounters another boundary.



  • acHatchStyleOuter

    Fills the outermost areas only. This style also hatches inward from the area boundary, but it turns off hatching if it encounters an internal boundary and does not turn it back on again.



  • acHatchStyleIgnore

    Ignores internal structure. This option hatches through all internal objects.



Examples

VBA:

Sub Example_HatchStyle()
    ' This example creates an associative hatch in model space.
    ' The hatch style is then changed to demonstrate the different
    ' ways that inner loops are processed.
    
    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 the first circle as one inner loop
    Dim innerLoop1(0) As AcadEntity
    center(0) = 5: center(1) = 4.5: center(2) = 0
    radius = 1
    Set innerLoop1(0) = ThisDrawing.ModelSpace.AddCircle(center, radius)
    hatchObj.AppendInnerLoop (innerLoop1)
    
    ' Append the second circle as the other inner loop
    Dim innerLoop2(0) As AcadEntity
    radius = 0.5
    Set innerLoop2(0) = ThisDrawing.ModelSpace.AddCircle(center, radius)
    hatchObj.AppendInnerLoop (innerLoop2)
    
    ' Set the hatch style to normal
    hatchObj.hatchstyle = acHatchStyleNormal
    hatchObj.Evaluate
    ThisDrawing.Regen True
    MsgBox "The HatchStyle is set to " & Choose(hatchObj.hatchstyle + 1, "acHatchStyleNormal", "acHatchStyleOuter", "acHatchStyleIgnore"), , "HatchStyle Example"
    
    ' Set the hatch style to outer
    hatchObj.hatchstyle = acHatchStyleOuter
    hatchObj.Evaluate
    ThisDrawing.Regen True
    MsgBox "The HatchStyle is set to " & Choose(hatchObj.hatchstyle + 1, "acHatchStyleNormal", "acHatchStyleOuter", "acHatchStyleIgnore"), , "HatchStyle Example"
        
    ' Set the hatch style to ignore
    hatchObj.hatchstyle = acHatchStyleIgnore
    hatchObj.Evaluate
    ThisDrawing.Regen True
    MsgBox "The HatchStyle is set to " & Choose(hatchObj.hatchstyle + 1, "acHatchStyleNormal", "acHatchStyleOuter", "acHatchStyleIgnore"), , "HatchStyle Example"
               
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_HatchStyle()
    ;; This example creates an associative hatch in model space.
    ;; The hatch style is then changed to demonstrate the different
    ;; ways that inner loops are processed.
    (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, and display the hatch
    (vla-AppendOuterLoop hatchObj outerLoop)

    ;; Append a circle as the inner loop for the hatch.
    (setq center (vlax-3d-point 5 4.5 0))  
    (setq radius 1)
    (setq circle1 (vla-AddCircle modelSpace center radius))

    (setq innerLoop1 (vlax-make-safearray vlax-vbObject '(0 . 0)))
    (vlax-safearray-put-element innerLoop1 0 circle1)

    (vla-AppendInnerLoop hatchObj innerLoop1)
  
    ;; Append the second circle as the other inner loop
    (setq radius 0.5)
    (setq innerLoop2 (vlax-make-safearray vlax-vbObject '(0 . 0)))
    (setq circle2 (vla-AddCircle modelSpace center radius))
    (vlax-safearray-put-element innerLoop2 0 circle2)

    (vla-AppendInnerLoop hatchObj innerLoop2)
    (vla-ZoomAll acadObj)
    
    ;; Set the hatch style to normal
    (vla-put-hatchstyle hatchObj acHatchStyleNormal)
    (vla-Evaluate hatchObj)
    (vla-Regen doc :vlax-true)
    (alert (strcat "The HatchStyle is set to "
                   (cond
                     ((= (vla-get-hatchstyle hatchObj) 0) "acHatchStyleNormal")
                     ((= (vla-get-hatchstyle hatchObj) 1) "acHatchStyleOuter")
                     ((= (vla-get-hatchstyle hatchObj) 2) "acHatchStyleIgnore")
                   )))
    
    ;; Set the hatch style to outer
    (vla-put-hatchstyle hatchObj acHatchStyleOuter)
    (vla-Evaluate hatchObj)
    (vla-Regen doc :vlax-true)
    (alert (strcat "The HatchStyle is set to "
                   (cond
                     ((= (vla-get-hatchstyle hatchObj) 0) "acHatchStyleNormal")
                     ((= (vla-get-hatchstyle hatchObj) 1) "acHatchStyleOuter")
                     ((= (vla-get-hatchstyle hatchObj) 2) "acHatchStyleIgnore")
                   )))
        
    ;; Set the hatch style to ignore
    (vla-put-hatchstyle hatchObj acHatchStyleIgnore)
    (vla-Evaluate hatchObj)
    (vla-Regen doc :vlax-true)
    (alert (strcat "The HatchStyle is set to "
                   (cond
                     ((= (vla-get-hatchstyle hatchObj) 0) "acHatchStyleNormal")
                     ((= (vla-get-hatchstyle hatchObj) 1) "acHatchStyleOuter")
                     ((= (vla-get-hatchstyle hatchObj) 2) "acHatchStyleIgnore")
                   )))
)

Was this information helpful?