Set Alternate Drawing Support Files Example (VB.NET)

This example shows how to set alternate drawing support files.

'--------------------------------------------------------------
' 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. 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.
'----------------------------------------------------------------

Imports System
Imports DraftSight.Interop.dsAutomation
Imports System.Runtime.InteropServices
Imports System.Windows.Forms

Module Module1

    Sub Main()
        Dim dsApp As DraftSight.Interop.dsAutomation.Application

        'Connect to DraftSight application
        dsApp = DirectCast(Marshal.GetActiveObject("DraftSight.Application"), DraftSight.Interop.dsAutomation.Application)

        If dsApp Is Nothing Then
            Return
        End If

        'Abort any command currently running in DraftSight to avoid nested commands
        dsApp.b()

        'Get active document
        Dim dsDoc As Document = dsApp.GetActiveDocument()
        If dsDoc Is Nothing Then
            MessageBox.Show("There are no open documents in DraftSight.")
            Return
        End If

        'Get drawing support files
        Dim dsDrawingSupportFiles As DrawingSupportFiles = dsApp.GetDrawingSupportFiles()
        If dsDrawingSupportFiles Is Nothing Then
            MessageBox.Show("There are no valid drawing support files.")
            Return
        End If

        Dim dsSysFile As SystemFiles = dsApp.GetSystemFiles()
        Dim FontsPathObj As Object() = DirectCast(dsSysFile.FontsPaths, Object())
        Dim fontPath As String = ""
        If FontsPathObj.Length > 0 Then
            fontPath = FontsPathObj(0).ToString()
        End If

        'Set alternate big font file
        Dim fontFileName As String = System.IO.Path.Combine(fontPath, "ARAGDTM.ttf")
        dsDrawingSupportFiles.AlternateBigFontFile = fontFileName
        MessageBox.Show("Alternate big font file: " + dsDrawingSupportFiles.AlternateBigFontFile)

        'Set alternate shape font file
        Dim shapeFileName As String = System.IO.Path.Combine(fontPath, "LTypeShp.shx")
        dsDrawingSupportFiles.AlternateShapeFile = shapeFileName
        MessageBox.Show("Alternate shape font file: " + dsDrawingSupportFiles.AlternateShapeFile)

        'Set alternate SHX font file
        Dim ShxFontFileName As String = System.IO.Path.Combine(fontPath, "LTypeShp.shx")
        dsDrawingSupportFiles.AlternateShxFontFile = ShxFontFileName
        MessageBox.Show("Alternate SHX font file: " + dsDrawingSupportFiles.AlternateShxFontFile)

        'Set alternate drawing template file
        Dim TemplateFilePath As String = System.IO.Path.Combine(dsApp.GetSystemFiles().GetUserDataPath(), "Template")

        Dim drawingTemplateFile As String = System.IO.Path.Combine(TemplateFilePath, "standard.dwt")
        dsDrawingSupportFiles.DrawingTemplateFilesPath = drawingTemplateFile
        MessageBox.Show("Alternate drawing template file: " + dsDrawingSupportFiles.DrawingTemplateFilesPath)

    End Sub

End Module