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