Set Alternate Drawing Support Files Example (C#)

This example shows how to set alternate drawing support files.

//--------------------------------------------------------------
// 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.Windows.Forms.
// 5. Start DraftSight.
// 6. Press F5.
//
// Postconditions: 
// 1. Connects to DraftSight.
// 2. Gets active document.
// 3. Gets instance of drawing support files.
// 4. Displays message boxes informing you that these alternate 
//    font files were set:
//    a. Big font file. Click OK.
//    b. Shape font file. Click OK.
//    c. SHX font file. Click OK.
//    d. Drawing template file. Click OK.
// 5. Click Tools > Options > File Locations and expand Drawing Support.
//    a. Expand and examine Alternate Font File > SHX font, Big font
//       and Shape file
//    b. Expand and examine Drawing Template File Location.
// 6. Exit DraftSight.
//----------------------------------------------------------------
 
using System;
using DraftSight.Interop.dsAutomation;
using System.Runtime.InteropServices;
using System.Windows.Forms;
 
namespace DrawingSupportFilesCSharp
{
    class Program
    {
 
        public static void Main()
        {
            DraftSight.Interop.dsAutomation.Application dsApp;
 
            //Connect to DraftSight application
            dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application");
 
            if (null == dsApp)
            {
                return;
            }
 
            //Abort any command currently running in DraftSight to avoid nested commands
            dsApp.AbortRunningCommand(); 
 
 
            //Get active document
            Document dsDoc = dsApp.GetActiveDocument();
            if (null == dsDoc)
            {
                MessageBox.Show("There are no open documents in DraftSight.");
                return;
            }
 
            //Get drawing support files
            DrawingSupportFiles dsDrawingSupportFiles = dsApp.GetDrawingSupportFiles();
            if (null == dsDrawingSupportFiles)
            {
                MessageBox.Show("There are no valid drawing support files.");
                return;
            }
 
            SystemFiles dsSysFile = dsApp.GetSystemFiles();
            object[] FontsPathObj = (object[])dsSysFile.FontsPaths;
            string fontPath = "";
            if (FontsPathObj.Length > 0)
                fontPath = FontsPathObj[0].ToString();
 
            //Set alternate big font file
            string fontFileName = System.IO.Path.Combine(fontPath, "ARAGDTM.ttf");
            dsDrawingSupportFiles.AlternateBigFontFile = fontFileName;
            MessageBox.Show("Alternate big font file: " + dsDrawingSupportFiles.AlternateBigFontFile);
 
            //Set alternate shape font file
            string shapeFileName = System.IO.Path.Combine(fontPath, "LTypeShp.shx");
            dsDrawingSupportFiles.AlternateShapeFile = shapeFileName;
            MessageBox.Show("Alternate shape font file: " + dsDrawingSupportFiles.AlternateShapeFile);
 
            //Set alternate SHX font file
            string ShxFontFileName = System.IO.Path.Combine(fontPath, "LTypeShp.shx");
            dsDrawingSupportFiles.AlternateShxFontFile = ShxFontFileName;
            MessageBox.Show("Alternate SHX font file: " + dsDrawingSupportFiles.AlternateShxFontFile);
 
            //Set alternate drawing template file
            string TemplateFilePath = System.IO.Path.Combine(dsApp.GetSystemFiles().GetUserDataPath(), "Template");
 
            string drawingTemplateFile = System.IO.Path.Combine(TemplateFilePath, "standard.dwt");
            dsDrawingSupportFiles.DrawingTemplateFilesPath = drawingTemplateFile;
            MessageBox.Show("Alternate drawing template file: " + dsDrawingSupportFiles.DrawingTemplateFilesPath);
 
        }
 
    }
 
}