Load and Activate LineStyles Example (VBA)

This example shows how to load and activate LineStyles.

'--------------------------------------------------------------
' 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 and open a document.
' 5. Start debugging the project.
'
' Postconditions: 
' 1. Gets the active document.
' 2. Gets the LineStyle Manager.
' 3. Loads the BATTING and ZIGAG LineStyles.
' 4. Activates and draws a Line for each LineStyle 
'    loaded in Step 3.
'----------------------------------------------------------------
Option Explicit
   Sub main()
        Dim dsApp As DraftSight.Application
        'Connect to DraftSight application
        Set dsApp = GetObject(, "DraftSight.Application")    
        'Abort any command currently running in DraftSight
        'to avoid nested commands
        dsApp.AbortRunningCommand
        If dsApp Is Nothing Then
            Return
        End If
        'Get active document
        Dim dsDoc As DraftSight.Document
        Set dsDoc = dsApp.GetActiveDocument()
        If dsDoc Is Nothing Then
            MsgBox ("There are no open documents in DraftSight.")
            Return
        End If        
        'Get LineStyle manager
        Dim dsLineStyleMgr As DraftSight.LineStyleManager
        Set dsLineStyleMgr = dsDoc.GetLineStyleManager()        
        'Load LineStyles
        Dim lineStyleFile As String
        lineStyleFile = "c:\Program Files\Dassault Systemes\DraftSight\Default Files\Linestyles\MM.LIN"       
        Dim dsLineStyle As DraftSight.LineStyle
        dsLineStyleMgr.LoadLineStyle "BATTING", lineStyleFile, dsLineStyle
        dsLineStyleMgr.LoadLineStyle "ZIGZAG", lineStyleFile, dsLineStyle        
        'Get Sketch manager
        Dim dsSketchMgr As DraftSight.SketchManager
        Set dsSketchMgr = dsDoc.GetModel().GetSketchManager()        
        'Activate BATTING LineStyle and insert Line
        Set dsLineStyle = dsLineStyleMgr.GetLineStyle("BATTING")
        dsLineStyle.Activate
        dsSketchMgr.InsertLine 0, 0, 0, 100, 100, 0
        'Activate ZIGZAG LineStyle and insert Line
        Set dsLineStyle = dsLineStyleMgr.GetLineStyle("ZIGZAG")
        dsLineStyle.Activate
        dsSketchMgr.InsertLine 100, 0, 0, 200, 100, 0
        
   End Sub