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