Create and Change Trace Example (C#)

This example shows how to create a Trace and change its vertex coordinates and thickness.

//--------------------------------------------------------------
// Preconditions:
// 1. Create a C# Windows console project.
// 2. Copy and paste this code into the C# project.
// 3. Add a reference to
//    install_dir\APISDK\tlb\DraftSight.Interop.dsAutomation.dll.
// 4. Add a reference to System.Windows.Forms.
// 5. Start DraftSight.
// 6. 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.
//----------------------------------------------------------------
 
using System;
using DraftSight.Interop.dsAutomation;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace TraceCSharp
{
    class Program
    {
 
        static void Main()
        {
            DraftSight.Interop.dsAutomation.Application dsApp;
 
            //Connects to DraftSight application
            dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application");
 
            if (null == dsApp)
            {
                return;
            }
 
            //Aborts any command currently running in DraftSight
            //to avoid nested commands
            dsApp.AbortRunningCommand();
 
            //Gets active document
            Document dsDoc = dsApp.GetActiveDocument();
            if (null == dsDoc)
            {
                MessageBox.Show("There are no open documents in DraftSight.");
                return;
            }
 
            //Gets Sketch Manager
            SketchManager dsSketchMgr = dsDoc.GetModel().GetSketchManager();
 
            //Creates array for Trace vertex coordinates
            double[] CoordinatesArray =
            {
                0, 0, 0,
                5, 5, 0,
                -1, 10, 0,
                4, 8, 0
            };
 
            //Creates Trace 
            Trace dsTrace = dsSketchMgr.InsertTrace(CoordinatesArray);
 
            //Sets the vertex coordinates of trace
            dsTrace.SetVertex1Coordinate(1.2, 2.0, 0.0);
            dsTrace.SetVertex2Coordinate(1.1, 2.3, 0.0);
            dsTrace.SetVertex3Coordinate(2.2, 1.0, 0.0);
            dsTrace.SetVertex4Coordinate(2.2, 3.0, 0.0);
 
            //Sets Trace thickness
            dsTrace.Thickness = 2.0;
 
            //Gets Trace vertex coordinates
            double X, Y, Z;
            dsTrace.GetVertex1Coordinate(out X, out Y, out Z);
            MessageBox.Show("GetVertex1Coordinate: (" + X + ", " + Y + ", " + Z + ")");
 
            dsTrace.GetVertex2Coordinate(out X, out Y, out Z);
            MessageBox.Show("GetVertex2Coordinate: (" + X + ", " + Y + ", " + Z + ")");
 
            dsTrace.GetVertex3Coordinate(out X, out Y, out Z);
            MessageBox.Show("GetVertex3Coordinate: (" + X + ", " + Y + ", " + Z + ")");
 
            dsTrace.GetVertex3Coordinate(out X, out Y, out  Z);
            MessageBox.Show("GetVertex4Coordinate: (" + X + ", " + Y + ", " + Z + ")");
 
            //Gets Trace thickness
            MessageBox.Show("Thickness: " + dsTrace.Thickness);
        }
    }
}