This example shows how to get and set command options.
//------------------------------------------------------------ // Preconditions: // 1. Create a C# Windows console project. // 2. Copy and paste this example into the C# IDE. // 3. Add a reference to: // install_dir\APISDK\tlb\DraftSight.Interop.dsAutomation.dll. // 4. Add a reference to System. // 5. Open the Immediate window. // 6. Start DraftSight and open a document. // 7. 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. //---------------------------------------------------------------- using DraftSight.Interop.dsAutomation; using System; using System.Runtime.InteropServices; using System.Diagnostics;
static class Module1 { public static void Main() { DraftSight.Interop.dsAutomation.Application dsApp; Document dsDoc = default(Document);
//Connect to DraftSight dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application"); dsApp.AbortRunningCommand(); // abort any command currently running in DraftSight to avoid nested commands
//Get active document dsDoc = dsApp.GetActiveDocument();
if ((dsDoc != null)) { bool boolCommand = false; double doubleCommand = 0; int int16Command = 0; Int32 int32Command = 0; int int8Command = 0; double xint2DCommand = 0; double yint2DCommand = 0; double xint3DCommand = 0; double yint3DCommand = 0; double zint3DCommand = 0; string valueStringCommand = ""; dsGetCommandOptionResult_e getResult = default(dsGetCommandOptionResult_e); dsSetCommandOptionResult_e setResult = default(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, out boolCommand, out getResult); Debug.Print("Get drawing boundary value: " + boolCommand); boolCommand = true; dsDoc.SetCommandOptionBool(dsCommandOptionBool_e.dsCommandOptionBool_EnblDlDm, boolCommand, out 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, out doubleCommand, out getResult); Debug.Print("Get dimension tolerance precision: " + doubleCommand); doubleCommand = 2.0; dsDoc.SetCommandOptionDouble(dsCommandOptionDouble_e.dsCommandOptionDouble_SetTDmMin, doubleCommand, out 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, out int16Command, out getResult); Debug.Print("Get units for inserting entities: " + int16Command); int16Command = 4; dsDoc.SetCommandOptionInt16(dsCommandOptionInt16_e.dsCommandOptionInt16_SetActBlkInsUnt, int16Command, out 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, out int32Command, out getResult); Debug.Print("Get elapsed time between saving and backing up documents: " + int32Command); int32Command = 15; dsDoc.SetCommandOptionInt32(dsCommandOptionInt32_e.dsCommandOptionInt32_SetSvTm, int32Command, out 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, out int8Command, out 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, out 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, out xint2DCommand, out yint2DCommand, out 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, out 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, out xint3DCommand, out yint3DCommand, out zint3DCommand, out 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, out 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, out valueStringCommand, out getResult); Debug.Print("Get project name: " + valueStringCommand); valueStringCommand = "New project name"; dsDoc.SetCommandOptionString(dsCommandOptionString_e.dsCommandOptionString_LgcyPROJECTNAME, valueStringCommand, out setResult); Debug.Print("Set project name: " + valueStringCommand); Debug.Print("Set result: " + setResult); Debug.Print(" "); } else { Debug.Print ("There are no open documents in DraftSight."); } } }