Is There a Projection Arrow and Is It Visible Example (VBA)
This example shows how to find out if:
the selected drawing view is a projected view
a projection arrow exists in the projected view
the projected arrow is visible
'
--------------------------------------------------------------------------
' Preconditions:
' 1. Open:
' <SolidWorks_install_dir>\samples\tutorial\advdrawings\foodprocessor.slddrw
' 2. Double-click the projected view (upper-right drawing view).
' 3. In the PropertyManager page, click the Arrow
checkbox and
' type
a label for the projection arrow.
' 4. Click the green checkmark to close the PropertyManager page.
' 5. Run the macro and examine the IDE window for the results.
'
' Postconditions: A visible projection arrow was created
for Drawing View2,
' which
is a projected view.
'
' NOTE: Because
this drawing document is used in an
' online
SolidWorks tutorial, do not save the
' changes
you made to the document when closing
' the
document.
'
--------------------------------------------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swDrawing As SldWorks.DrawingDoc
Dim swView As SldWorks.View
Dim swProjectionArrow As SldWorks.ProjectionArrow
Dim typeDrawingView As Long
Dim boolstatus As Boolean
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swDrawing = swModel
Set swModelDocExt = swModel.Extension
boolstatus = swDrawing.ActivateView("Drawing
View2")
boolstatus = swModelDocExt.SelectByID2("Drawing
View2", "DRAWINGVIEW", 0.4426278247583, 0.3837831481976,
0, False, 0, Nothing, 0)
Set swView = swDrawing.ActiveDrawingView
typeDrawingView = swView.Type
If typeDrawingView = 4 Then
Debug.Print
"Type of selected drawing view is projected."
Else
Debug.Print
"Type of selected drawing view is not projected. Exiting macro."
Exit
Sub
End If
Set swProjectionArrow = swView.GetProjectionArrow
If Not swProjectionArrow Is Nothing Then
Debug.Print
"Projection arrow visible: " & swProjectionArrow.Visible
Else
Debug.Print
"No projection arrow in projected view."
End If
End Sub