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