# Insert Hatch Example (VBA)

This example shows how to insert a Hatch in a drawing document.

    '--------------------------------------------------------------
    ' Preconditions:
    ' 1. Create a VBA macro in a software product in which VBA is
    '    embedded.
    ' 2. Copy and paste this example into the Visual Basic IDE.
    ' 3. Add a reference to the DraftSight type library,
    '    install_dir\bin\dsAutomation.dll.
    ' 4. Start DraftSight and open a drawing document.
    ' 5. Run the macro.
    '
    ' Postconditions: A Hatch is inserted in the drawing document
    ' and zoomed to fit.

    '----------------------------------------------------------------
    Option Explicit

        Dim dsApp As DraftSight.Application
        Dim dsDoc As DraftSight.Document
        Dim dsModel As DraftSight.Model
        Dim dsSketchManager As DraftSight.SketchManager

        Sub main()
        'Connect to DraftSight
        Set dsApp = GetObject(, "DraftSight.Application")
        'Abort any command currently running in DraftSight
        'to avoid nested commands
        dsApp.AbortRunningCommand

        'Get active document
        Set dsDoc = dsApp.GetActiveDocument
        If dsDoc Is Nothing Then
            MsgBox ("There are no open documents in DraftSight.")
            End
        End If

        'Get model space
        Set dsModel = dsDoc.GetModel

        'Get Sketch Manager
        Set dsSketchManager = dsModel.GetSketchManager

        'Hatch parameters
        Dim boundaryPointCountArray(0) As Long
        boundaryPointCountArray(0) = 4

        Dim boundaryPoints(0 To 7) As Double
        boundaryPoints(0) = 0: boundaryPoints(1) = 0
        boundaryPoints(2) = 2: boundaryPoints(3) = 0
        boundaryPoints(4) = 2: boundaryPoints(5) = 2
        boundaryPoints(6) = 0: boundaryPoints(7) = 2

        Dim patternName As String
        patternName = "ANSI31"

        Dim patternScale As Double
        patternScale = 1#

        Dim patternAngle As Double
        patternAngle = 3.14159265358979 / 4 'In radians

        'Insert Hatch
        Dim dsHatch As DraftSight.Hatch
        Set dsHatch = dsSketchManager.InsertHatchByBoundary(boundaryPointCountArray, boundaryPoints, patternName, patternScale, patternAngle)

        If Not dsHatch Is Nothing Then
            'Change color of Hatch
            Dim dsColor As DraftSight.Color
            Set dsColor = dsHatch.Color
            dsColor.SetNamedColor dsNamedColor_Green
            dsHatch.Color = dsColor

            'Zoom to fit
            dsApp.Zoom dsZoomRange_Fit, Nothing, Nothing
        Else
            MsgBox ("Hatch entity was not added to the current drawing.")
        End If
    End Sub