Disable Selection of Faces and Edges Using a Pre-Notify Event Example
(VBA)
This example shows how to disable the interactive selection of:
using a pre-notify event.
Module
'------------------------------------
' Preconditions:
' (1)
Part, assembly, or drawing document
' is
active.
' (2)
Run this macro (press F5 and click Run).
'
' Postconditions:
' (1)
If a part or assembly document is open,
' then
you cannot interactively select faces in
' that
document.
' (2)
If a drawing document is open, then
' you
cannot interactively select edges in that
' document.
' (3)
Click the Reset button in the Microsoft Visual
' Basic
IDE to re-enable the interactive selection
' of
faces in a part or assembly document or edges
' in
a drawing document.
'----------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim partDoc As New Class1
Dim assemblyDoc As New Class2
Dim drawingDoc As New Class3
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
' Determine the document type, then
' execute its corresponding class module
If swModel.GetType
= swDocPART Then
partDoc.init
swModel
ElseIf swModel.GetType
= swDocASSEMBLY Then
assemblyDoc.init
swModel
ElseIf swModel.GetType
= swDocDRAWING Then
drawingDoc.init
swModel
End If
End Sub
Class1 module
Public WithEvents doc As partDoc
Public Function init(ByRef docIn As Object)
Set
doc = docIn
End Function
Private Function doc_UserSelectionPreNotify(ByVal
SelectionType As Long) As Long
'
Disable the selection of faces in this part
If
SelectionType = swSelFACES Then
doc_UserSelectionPreNotify
= True
End
If
End Function
Class2 module
Public WithEvents doc As assemblyDoc
Public Function init(ByRef docIn As Object)
Set
doc = docIn
End Function
Private Function doc_UserSelectionPreNotify(ByVal
SelectionType As Long) As Long
'
Disable selection of faces in this assembly
If
SelectionType = swSelFACES Then
doc_UserSelectionPreNotify
= True
End
If
End Function
Class3 module
Public WithEvents doc As drawingDoc
Public Function init(ByRef docIn As Object)
Set
doc = docIn
End Function
Private Function doc_UserSelectionPreNotify(ByVal
SelectionType As Long) As Long
'
Disable the selection of edges in drawings
If
SelectionType = swSelEDGES Then
doc_UserSelectionPreNotify
= True
End
If
End Function