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