Fire Undo and Redo Pre- and Post-notifications in Assembly Document
(VBA)
This example shows how to fire Undo and Redo pre- and post-notifications
in an assembly document.
Module
' ******************************************************************************
' Preconditions: Open:
' <SOLIDWORKS_install_dir>\samples\tutorial\smartcomponents\stepped_shaft.sldasm.
'
' The
base-plate<1> component is selected and then hidden, and
' pre-
and post-notifications are fired indicating that an
' Undo
has occurred. A Redo is performed and pre- and
' post-notifications
are fired for it. Finally another Undo
' is
performed (and pre- and post-notifications are fired)
' so
that the assembly document returns to its just-opened state.
'
' Postconditions: None
' ******************************************************************************
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swAssembly As SldWorks.AssemblyDoc
Dim boolstatus As Boolean
Dim swAssemblyEvents As Class1
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swModelDocExt = swModel.Extension
' Event notification
Set swAssembly = swModel
Set swAssemblyEvents = New Class1
Set swAssemblyEvents.swAssembly = swApp.ActiveDoc
' Select a component and hide it
boolstatus = swModelDocExt.SelectByID2("base_plate-1@stepped_shaft",
"COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
swModel.HideComponent2
swModel.ClearSelection2
True
' Undo hiding of the component
swModel.EditUndo2
1
' Redo hiding of the component
swModel.EditRedo2
1
' Undo hiding of the component
' so that model document is unchanged
swModel.EditUndo2
1
' Rebuild the model
swModel.ForceRebuild3
True
End Sub
Class
Module
Option Explicit
Public WithEvents swAssembly As SldWorks.AssemblyDoc
Private Function swAssembly_UndoPostNotify()
As Long
'Display message after an Undo
MsgBox
"An Undo post-notification event has been fired."
End Function
Private Function swAssembly_UndoPreNotify()
As Long
'Display message before an Undo
MsgBox
"An Undo pre-notification event has been fired."
End Function
Private Function swAssembly_RedoPostNotify()
As Long
'Display message after an Redo
MsgBox
"A Redo post-notification event has been fired."
End Function
Private Function swAssembly_RedoPreNotify()
As Long
'Display message before an Redo
MsgBox
"A Redo pre-notification event has been fired."
End Function