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