Fire Undo and Redo Pre- and Post-notifications in Part Document (VBA)
This example shows how to fire undo and redo pre- and post-notifications
in a part document.
Module
'
--------------------------------------------------------------------------
' Preconditions: Open:
' <SolidWorks_install_dir>\samples\tutorial\api\cstick.sldprt.
'
' A
circle is created, undone, redone, and undone again.
' A
pre and post-notification is fired and a message box is displayed
' before
and after, respectively, each Undo and Redo. Click OK
to close
' each
message box.
'
' Postconditions: None
'
--------------------------------------------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swPart As SldWorks.PartDoc
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim swSketchManager As SldWorks.SketchManager
Dim swSketchSegment As SldWorks.SketchSegment
Dim boolstatus As Boolean
Dim swPartEvents As Class1
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
' Event notification
Set swPart = swModel
Set swPartEvents = New Class1
Set swPartEvents.swPart = swApp.ActiveDoc
' Create a circle on the
' top face of the candlestick
Set swModelDocExt = swModel.Extension
boolstatus = swModelDocExt.SelectByID2("",
"FACE", 0.00140404215739, 0.2199999999999, 0.001897848026772,
False, 0, Nothing, 0)
Set swSketchManager = swModel.SketchManager
Set swSketchSegment = swSketchManager.CreateCircle(0#,
0#, 0#, 0.01296, -0.006347, 0#)
' Undo creation of circle
' and fire an undo pre - and post-
' notification
swModel.EditUndo2
1
' Redo creation of circle
' and fire a redo pre- and post-
' notification
swModel.EditRedo2
1
' Undo creation of circle again
' to leave model document unchanged
' and fire another Undo pre- and post-
' notification
swModel.EditUndo2
1
swModel.ClearSelection2
True
swModel.ForceRebuild3
True
End Sub
Class
Module
Option Explicit
Public WithEvents swPart As SldWorks.PartDoc
Private Function swPart_UndoPostNotify()
As Long
MsgBox
"An Undo post-notification event has been fired."
End Function
Private Function swPart_UndoPreNotify()
As Long
MsgBox
"An Undo pre-notification event has been fired."
End Function
Private Function swPart_RedoPostNotify()
As Long
MsgBox
"A Redo post-notification event has been fired."
End Function
Private Function swPart_RedoPreNotify()
As Long
MsgBox
"A Redo pre-notification event has been fired."
End Function