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