Load and Activate LineStyles Example (C#)
This example shows how to load and activate LineStyles.
//--------------------------------------------------------------
// 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 references to System and System.Windows.Forms.
// 5. Start DraftSight and open a document.
// 6. Start debugging the project.
//
// Postconditions:
// 1. Gets the active document.
// 2. Gets the LineStyle Manager.
// 3. Loads the BATTING and ZIGAG LineStyles.
// 4. Activates and draws a Line for each LineStyle
// loaded in Step 3.
//----------------------------------------------------------------
using DraftSight.Interop.dsAutomation;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using System;
static class Program
{
public static void Main(string[] args)
{
DraftSight.Interop.dsAutomation.Application dsApp;
//Connect to DraftSight application
dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application");
// Abort any command currently running in DraftSight to avoid nested commands
dsApp.AbortRunningCommand();
if (null == dsApp)
{
return;
}
//Get active document
Document dsDoc = dsApp.GetActiveDocument();
if (null == dsDoc)
{
MessageBox.Show("There are no open documents in DraftSight.");
return;
}
//Get LineStyle manager
LineStyleManager dsLineStyleMgr = dsDoc.GetLineStyleManager();
//Load LineStyles
string lineStyleFilePath = System.IO.Path.Combine(
dsApp.GetSystemFiles().GetUserDataPath(),
"Linestyles");
string lineStyleFile = System.IO.Path.Combine(lineStyleFilePath, "MM.LIN");
LineStyle dsLineStyle = null;
dsLineStyleMgr.LoadLineStyle("BATTING", lineStyleFile, out dsLineStyle);
dsLineStyleMgr.LoadLineStyle("ZIGZAG", lineStyleFile, out dsLineStyle);
//Get Sketch manager
SketchManager dsSketchMgr = dsDoc.GetModel().GetSketchManager();
//Activate BATTING LineStyle and insert Line
dsLineStyle = dsLineStyleMgr.GetLineStyle("BATTING");
dsLineStyle.Activate();
dsSketchMgr.InsertLine(0, 0, 0, 100, 100, 0);
//Activate ZIGZAG LineStyle and insert Line
dsLineStyle = dsLineStyleMgr.GetLineStyle("ZIGZAG");
dsLineStyle.Activate();
dsSketchMgr.InsertLine(100, 0, 0, 200, 100, 0);
}
}