Undo Feature and Fire Undo Post-Notify Event Example (VBA)
This
example demonstrates firing an undo post-notification event.
Module
'
--------------------------------------------------------------------------
' Preconditions: Open:
' <SolidWorks_install_dir>\samples\tutorial\api\cstick.sldprt.
'
' A
cut-extrude feature is created on the top face of the
' candlestick.
The feature is then undone and an undo
' post-notification
event is fired. A message box is displayed
' notifying
you of the event. Click OK to
close the message box.
' The
cut-extrude feature and all absorbed features are deleted.
'
' 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 swFeatureManager As SldWorks.FeatureManager
Dim swFeature As SldWorks.Feature
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 cut-extrude feature 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#)
swModel.ClearSelection2
True
boolstatus = swModelDocExt.SelectByID2("Arc1",
"SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
Set swFeatureManager = swModel.FeatureManager
Set swFeature = swFeatureManager.FeatureCut(True,
False, False, 0, 0, 0.01, 0.01, False, False, False, False, 0.01745329251994,
0.01745329251994, False, False, False, False, False, True, True)
swModel.ClearSelection2 True
' Undo the cut-extrude feature
swModel.EditUndo2
1
'Undo event is fired
' Select the circle and delete it
boolstatus = swModelDocExt.SelectByID2("Arc1",
"SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus = swModelDocExt.DeleteSelection2(swDelete_Absorbed)
swModel.ForceRebuild3
True
End Sub
Class module
Option Explicit
Public WithEvents swPart As SldWorks.PartDoc
Private Function swPart_UndoPostNotify()
As Long
'Show
message after an undo action occurs
MsgBox
"An undo post-notification event has been fired."
End Function