Get the Number of Lines in Flat-pattern Drawing View's Boundary-box Sketch (VBA)
This example shows how to get the number of lines in a flat-pattern drawing
view's boundary-box sketch.
'---------------------------------------------
'
' Preconditions:
' 1. In SolidWorks:
' a. Open <SolidWorks_install_dir>\samples\design portfolio\sheet_metal_bracket.sldprt.
' b. Open a new drawing document.
' c. Select sheet_metal_bracket.sldprt in the View Palette's dropdown list box.
' 2. In the IDE:
' a. Open the Immediate window.
' b. Run macro.
'
' Postconditions: The View Palette view's name, number of lines in the boundary-box
' sketch of the drawing view of the flat pattern of
' the sheet metal part are printed to the Immediate window.
'
'---------------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swDrawing As SldWorks.DrawingDoc
Dim swView As SldWorks.View
Dim swSheet As SldWorks.Sheet
Dim swDisplayData As SldWorks.DisplayData
Dim sheetProperties As Variant
Dim sheetScale As Double
Dim paperSize As swDwgPaperSizes_e
Dim width As Double
Dim height As Double
Dim numViews As Long
Dim viewName As Variant
Dim viewNames As Variant
Dim viewPaletteName As String
Dim drawingViewName As String
Dim status As Boolean
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swDrawing = swModel
' Get current sheet
Set swSheet = swDrawing.GetCurrentSheet
sheetProperties = swSheet.GetProperties
sheetScale = sheetProperties(2) / sheetProperties(3)
paperSize = swSheet.GetSize(width, height)
' Get number of views on View Palette
numViews = 0
viewNames = swDrawing.GetDrawingPaletteViewNames
' Iterate through views on View Palette
' When view name equals "Flat pattern", drop
' that view in drawing
If (Not (IsEmpty(viewNames))) Then
numViews = (UBound(viewNames) - LBound(viewNames) + 1)
For Each viewName In viewNames
viewPaletteName = viewName
If (viewPaletteName = "Flat pattern") Then
Debug.Print "Dropping View Palette view named: " & viewPaletteName
Set swView = swDrawing.DropDrawingViewFromPalette2(viewPaletteName, 0#, 0#, 0#)
drawingViewName = swView.GetName2
Debug.Print "Dropped View Palette view into drawing view named: " & drawingViewName
End If
Next viewName
End If
' Activate view and get number of lines in
' its boundary box sketch
status = swDrawing.ActivateView(drawingViewName)
Set swView = swDrawing.ActiveDrawingView
Set swDisplayData = swView.GetSMBoundaryBoxDisplayData
Debug.Print "Number of lines in boundary box of flat-pattern drawing view: " & swDisplayData.GetLineCount
End Sub