# Set and Get System Files Example (VBA)

This example shows how to set and get the paths and file names of DraftSight system files.

    '--------------------------------------------------------------
    'Preconditions:
    ' 1. Create a VBA macro in a software product in which VBA is
    '    embedded.
    ' 2. Copy and paste this example into the Visual Basic IDE.
    ' 3. Add a reference to the DraftSight type library,
    '    install_dir\bin\dsAutomation.dll.
    ' 4. Start DraftSight.
    ' 5  Open the Immediate window.
    ' 6. Run the macro.
    '
    ' Postconditions:
    ' 1. The paths to the DraftSight font and support files are set.
    ' 2. The paths and names of the DraftSight system files are printed
    '    to the Immediate window.
    '----------------------------------------------------------------

    Option Explicit

    Sub main()

        Dim dsApp As DraftSight.Application
        Dim dsSystemFiles As DraftSight.SystemFiles
        Dim setFontPaths(1) As String
        Dim setSupportPaths(2) As String
        Dim getFontPaths As Variant
        Dim getSupportPaths As Variant
        Dim i As Long
        Dim arraySizeFonts As Long
        Dim arraySizeSupport As Long

        'Connect to DraftSight
        Set dsApp = GetObject(, "DraftSight.Application")

        'Abort any command currently running in DraftSight
        'to avoid nested commands
        dsApp.AbortRunningCommand

        'Get system files interface
        Set dsSystemFiles = dsApp.GetSystemFiles

        'Set system files paths
        setFontPaths(0) = "C:\Dassault Systemes\ProgramData\DraftSight\TextFonts"
        setFontPaths(1) = "C:\Dassault Systemes\ProgramData\DraftSight\TablesFonts"
        arraySizeFonts = UBound(setFontPaths)
        dsSystemFiles.FontsPaths = setFontPaths

        setSupportPaths(0) = "C:\Dassault Systemes\ProgramData\DraftSight\SupportPathAddins"
        setSupportPaths(1) = "C:\Dassault Systemes\ProgramData\DraftSight\SupportPathCustomFiles"
        setSupportPaths(2) = "C:\Dassault Systemes\ProgramData\DraftSight\DrawingFiles"
        arraySizeSupport = UBound(setSupportPaths)
        dsSystemFiles.supportPaths = setSupportPaths

        'Get system file paths and file names
        Debug.Print "System files:"
        Debug.Print "  Help file:                            " & dsSystemFiles.HelpFile
        Debug.Print "  Logfile path:                         " & dsSystemFiles.LogFilePath
        Debug.Print "  Dictionary file for SpellCheck:       " & dsSystemFiles.MainDictionaryFile
        Debug.Print "  Custom dictionary file:               " & dsSystemFiles.CustomDictionaryFile
        Debug.Print "  Location for temporary drawing files: " & dsSystemFiles.TempPath

        getFontPaths = dsSystemFiles.FontsPaths
        Debug.Print "  Font paths: "
        For i = 0 To arraySizeFonts
            Debug.Print ("                                        " & getFontPaths(i))
        Next i

        getSupportPaths = dsSystemFiles.supportPaths
        Debug.Print "  Support paths: "
        For i = 0 To arraySizeSupport
            Debug.Print ("                                        " & getSupportPaths(i))
        Next i

    End Sub