# Create and Change Trace Example (VBA)

This example shows how to create a Trace and change its vertex coordinates and thickness.

    '--------------------------------------------------------------
    ' Preconditions:
    ' 1. Create a VBA macro in a software product in which VBA is
    '    embedded.
    ' 2. Copy and paste this code into the Visual Basic IDE.
    ' 3. Add a reference to the DraftSight type library,
    '    install_dir\bin\dsAutomation.dll.
    ' 4. Start DraftSight.
    ' 5. Press F5.
    '
    ' Postconditions:
    ' 1. Connects to DraftSight.
    ' 2. Gets the active document.
    ' 3. Creates a Trace.
    ' 4. Sets the vertex coordinates of the Trace.
    ' 5. Sets the thickness of the Trace.
    ' 6. Gets the vertex coordinates of the Trace.
    '    Click OK to close each message box.
    ' 7. Gets the thickness of the Trace.
    '    Click OK to close the message box.
    '--------------------------------------------------------------
    Option Explicit

    Sub main()

        Dim dsApp As DraftSight.Application

        'Connects to DraftSight
        Set dsApp = GetObject(, "DraftSight.Application")
        If dsApp Is Nothing Then
            Return
        End If

        'Aborts any command currently running in DraftSight
        'to avoid nested commands
        dsApp.AbortRunningCommand

        'Gets active document
        Dim dsDoc As DraftSight.Document
        Set dsDoc = dsApp.GetActiveDocument
        If dsDoc Is Nothing Then
            MsgBox "There are no open documents in DraftSight."
            Return
        End If

        'Gets Sketch Manager
        Dim dsSketchMgr As DraftSight.SketchManager
        Set dsSketchMgr = dsDoc.GetModel.GetSketchManager

        'Creates array of Trace vertex coordinates
        Dim CoordinatesArray(11) As Double
        CoordinatesArray(0) = 0
        CoordinatesArray(1) = 0
        CoordinatesArray(2) = 0
        CoordinatesArray(3) = 5
        CoordinatesArray(4) = 5
        CoordinatesArray(5) = 0
        CoordinatesArray(6) = -1
        CoordinatesArray(7) = 10
        CoordinatesArray(8) = 0
        CoordinatesArray(9) = 4
        CoordinatesArray(10) = 8
        CoordinatesArray(11) = 0

        'Creates Trace
        Dim dsTrace As DraftSight.Trace
        Set dsTrace = dsSketchMgr.InsertTrace(CoordinatesArray)

        'Sets Trace vertex coordinates
        dsTrace.SetVertex1Coordinate 1.2, 2#, 0#
        dsTrace.SetVertex2Coordinate 1.1, 2.3, 0#
        dsTrace.SetVertex3Coordinate 2.2, 1#, 0#
        dsTrace.SetVertex4Coordinate 2.2, 3#, 0#

        'Sets Trace thickness
        dsTrace.Thickness = 2#

        'Gets Trace vertex coordinates
        Dim X As Double
        Dim Y As Double
        Dim Z As Double
        dsTrace.GetVertex1Coordinate X, Y, Z
        MsgBox "GetVertex1Coordinate: (" & X & ", " & Y & ", " & Z & ")"

        dsTrace.GetVertex2Coordinate X, Y, Z
        MsgBox "GetVertex2Coordinate: (" & X & ", " & Y & ", " & Z & ")"

        dsTrace.GetVertex3Coordinate X, Y, Z
        MsgBox "GetVertex3Coordinate: (" & X & ", " & Y & ", " & Z & ")"

        dsTrace.GetVertex4Coordinate X, Y, Z
        MsgBox "GetVertex4Coordinate: (" & X & ", " & Y & ", " & Z & ")"

        'Gets Trace thickness
        MsgBox "Thickness: " & dsTrace.Thickness

    End Sub