Get and Set Command Options Example (VB.NET)
This example shows how to get and set command options.
'------------------------------------------------------------
' Preconditions:
' 1. Create a VB.NET Windows console project.
' 2. Copy and paste this example into the VB.NET IDE.
' 3. Add a reference to:
' install_dir\APISDK\tlb\DraftSight.Interop.dsAutomation.dll.
' 4. Open the Immediate window.
' 5. Start DraftSight and open a document.
' 6. Run the macro.
'
' Postconditions: Specified command option values are returned, set, and
' printed to the Immediate window. Results of setting specified command
' option values are also printed to the Immediate window.
'----------------------------------------------------------------
Imports DraftSight.Interop.dsAutomation
Module Module1
Sub Main()
Dim dsApp As Application
Dim dsDoc As Document
'Connect to DraftSight
dsApp = GetObject(, "DraftSight.Application")
dsApp.AbortRunningCommand() ' abort any command currently running in DraftSight to avoid nested commands
'Get active document
dsDoc = dsApp.GetActiveDocument()
If Not dsDoc Is Nothing Then
Dim boolCommand As Boolean
Dim doubleCommand As Double
Dim int16Command As Integer
Dim int32Command As Long
Dim int8Command As Long
Dim xint2DCommand As Integer
Dim yint2DCommand As Integer
Dim xint3DCommand As Integer
Dim yint3DCommand As Integer
Dim zint3DCommand As Integer
Dim valueStringCommand As String = ""
Dim getResult As dsGetCommandOptionResult_e
Dim setResult As dsSetCommandOptionResult_e
'Boolean
'Get and set whether to enable drawing boundary
'Tools > Options > Drawing Settings > Behavior > Drawing Boundary > Enable drawing boundary
dsDoc.GetCommandOptionBool(dsCommandOptionBool_e.dsCommandOptionBool_EnblDlDm, boolCommand, getResult)
Debug.Print("Get drawing boundary value: " & boolCommand)
boolCommand = True
dsDoc.SetCommandOptionBool(dsCommandOptionBool_e.dsCommandOptionBool_EnblDlDm, boolCommand, setResult)
Debug.Print("Set drawing boundary value: " & boolCommand)
Debug.Print("Set result: " & setResult)
Debug.Print(" ")
'Double
'Get and set dimension tolerance precision
'Tools > Options > Drafting Styles > Dimension > Tolerance > Tolerance settings > Precision
dsDoc.GetCommandOptionDouble(dsCommandOptionDouble_e.dsCommandOptionDouble_SetTDmMin, doubleCommand, getResult)
Debug.Print("Get dimension tolerance precision: " & doubleCommand)
doubleCommand = 2.0#
dsDoc.SetCommandOptionDouble(dsCommandOptionDouble_e.dsCommandOptionDouble_SetTDmMin, doubleCommand, setResult)
Debug.Print("Set dimension tolerance precision: " & doubleCommand)
Debug.Print("Set result: " & setResult)
Debug.Print(" ")
'Int16
'Get and set units for inserting entities
'Tools > Options > System Options > Drawing File Defaults > Block insertion units > Units for inserting entities
dsDoc.GetCommandOptionInt16(dsCommandOptionInt16_e.dsCommandOptionInt16_SetActBlkInsUnt, int16Command, getResult)
Debug.Print("Get units for inserting entities: " & int16Command)
int16Command = 4
dsDoc.SetCommandOptionInt16(dsCommandOptionInt16_e.dsCommandOptionInt16_SetActBlkInsUnt, int16Command, setResult)
Debug.Print("Set units for inserting entities: " & int16Command)
Debug.Print("Set result: " & setResult)
Debug.Print(" ")
'Int32
'Get and set the elapsed time between saving and backing up documents
'Tools > Options > System Options > Auto-save & Backup > Auto-save/backups > Save document every nn minutes
dsDoc.GetCommandOptionInt32(dsCommandOptionInt32_e.dsCommandOptionInt32_SetSvTm, int32Command, getResult)
Debug.Print("Get elapsed time between saving and backing up documents: " & int32Command)
int32Command = 15
dsDoc.SetCommandOptionInt32(dsCommandOptionInt32_e.dsCommandOptionInt32_SetSvTm, int32Command, setResult)
Debug.Print("Set elapsed time between saving and backing up documents: " & int32Command)
Debug.Print("Set result: " & setResult)
Debug.Print(" ")
'Int8
'Get and set whether dual dimensions display leading zeros, trailing zeros, 0', and 0"
'Tools > Options > Drafting Styles > Dimension > Dual Dimension > Zeroes display
dsDoc.GetCommandOptionInt8(dsCommandOptionInt8_e.dsCommandOptionInt8_SetDlDmZroDsp, int8Command, getResult)
Debug.Print("Get whether dual dimensions display leading zeros, trailing zeros, 0 feet, and 0 inches: " & int8Command)
int8Command = 0
dsDoc.SetCommandOptionInt8(dsCommandOptionInt8_e.dsCommandOptionInt8_SetDlDmZroDsp, int8Command, setResult)
Debug.Print("Set whether dual dimensions display leading zeros, trailing zeros, 0 feet, and 0 inches: " & int8Command)
Debug.Print("Set result: " & setResult)
Debug.Print(" ")
'2D Point
'Get and set horizontal and vertical snap spacing for the pointer device
'Tools > Options > User Preferences > Drafting Options > Pointer Control > Snap Settings > Spacing > Horizontal Snap spacing and Vertical Snap spacing
dsDoc.GetCommandOptionPoint2D(dsCommandOptionPoint2d_e.dsCommandOptionPoint2d_SetSnpSpc, xint2DCommand, yint2DCommand, getResult)
Debug.Print("Get pointer's horizontal and vertical snap values: " & xint2DCommand & ", " & yint2DCommand)
xint2DCommand = 15.0#
yint2DCommand = 15.0#
dsDoc.SetCommandOptionPoint2D(dsCommandOptionPoint2d_e.dsCommandOptionPoint2d_SetSnpSpc, xint2DCommand, yint2DCommand, setResult)
Debug.Print("Set pointer's horizontal and vertical snap values: " & xint2DCommand & ", " & yint2DCommand)
Debug.Print("Set result: " & setResult)
Debug.Print(" ")
'3D Point
'Get and set the base point for inserting a drawing
dsDoc.GetCommandOptionPoint3D(dsCommandOptionPoint3d_e.dsCommandOptionPoint3d_SetBase, xint3DCommand, yint3DCommand, zint3DCommand, getResult)
Debug.Print("Get base point for inserting a drawing: " & xint3DCommand & ", " & yint3DCommand & ", " & zint3DCommand)
xint3DCommand = 1.0#
yint3DCommand = 0.0#
zint3DCommand = 0.0#
dsDoc.SetCommandOptionPoint3D(dsCommandOptionPoint3d_e.dsCommandOptionPoint3d_SetBase, xint3DCommand, yint3DCommand, zint3DCommand, setResult)
Debug.Print("Set base point for inserting a drawing: " & xint3DCommand & ", " & yint3DCommand & ", " & zint3DCommand)
Debug.Print("Set result: " & setResult)
Debug.Print(" ")
'String
'Get and set name of project
dsDoc.GetCommandOptionString(dsCommandOptionString_e.dsCommandOptionString_LgcyPROJECTNAME, valueStringCommand, getResult)
Debug.Print("Get project name: " & valueStringCommand)
valueStringCommand = "New project name"
dsDoc.SetCommandOptionString(dsCommandOptionString_e.dsCommandOptionString_LgcyPROJECTNAME, valueStringCommand, setResult)
Debug.Print("Set project name: " & valueStringCommand)
Debug.Print("Set result: " & setResult)
Debug.Print(" ")
Else
Debug.Print("There are no open documents in DraftSight.")
End If
End Sub
End Module