# Create and Change Trace Example (VB.NET)

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

    '--------------------------------------------------------------
    ' Preconditions:
    ' 1. Create a VB.NET Windows console project.
    ' 2. Copy and paste this code into the VB.NET project.
    ' 3. Add a reference to
    '    install_dir\APISDK\tlb\DraftSight.Interop.dsAutomation.dll.
    ' 4. Add a reference to System.Windows.Forms.
    ' 5. Start DraftSight.
    ' 6. 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.
    '----------------------------------------------------------------

    Imports System
    Imports DraftSight.Interop.dsAutomation
    Imports System.Runtime.InteropServices
    Imports System.Windows.Forms

    Module Module1

        Sub Main()
            Dim dsApp As DraftSight.Interop.dsAutomation.Application

            'Connects to DraftSight application
            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 Document = dsApp.GetActiveDocument()
            If dsDoc Is Nothing Then
                MessageBox.Show("There are no open documents in DraftSight.")
                Return
            End If

            'Gets Sketch Manager
            Dim dsSketchMgr As SketchManager = dsDoc.GetModel().GetSketchManager()

            'Creates array for Trace vertex coordinates
            Dim CoordinatesArray As Double() = {0, 0, 0, 5, 5, 0, _
             -1, 10, 0, 4, 8, 0}

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

            'Sets the Trace vertex coordinates
            dsTrace.SetVertex1Coordinate(1.2, 2.0, 0.0)
            dsTrace.SetVertex2Coordinate(1.1, 2.3, 0.0)
            dsTrace.SetVertex3Coordinate(2.2, 1.0, 0.0)
            dsTrace.SetVertex4Coordinate(2.2, 3.0, 0.0)

            'Sets Trace thickness
            dsTrace.Thickness = 2.0

            'Gets Trace vertex coordinates
            Dim X As Double, Y As Double, Z As Double
            dsTrace.GetVertex1Coordinate(X, Y, Z)
            MessageBox.Show("GetVertex1Coordinate: (" + CType(X, String) + ", " + CType(Y, String) + ", " + CType(Z, String) + ")")

            dsTrace.GetVertex2Coordinate(X, Y, Z)
            MessageBox.Show("GetVertex2Coordinate: (" + CType(X, String) + ", " + CType(Y, String) + ", " + CType(Z, String) + ")")

            dsTrace.GetVertex3Coordinate(X, Y, Z)
            MessageBox.Show("GetVertex3Coordinate: (" + CType(X, String) + ", " + CType(Y, String) + ", " + CType(Z, String) + ")")

            dsTrace.GetVertex3Coordinate(X, Y, Z)
            MessageBox.Show("GetVertex4Coordinate: (" + CType(X, String) + ", " + CType(Y, String) + ", " + CType(Z, String) + ")")

            'Gets Trace thickness
            Dim traceThickness As Double = 0
            traceThickness = dsTrace.Thickness
            MessageBox.Show("Thickness: " + CType(traceThickness, String))

        End Sub

    End Module