Undo Feature and Fire Undo Post-Notify Event (VB.NET)
This example demonstrates firing an undo post-notification event.
' ******************************************************************************
'
' Preconditions:
' (1)
Open <SOLIDWORKS_install_dir>\samples\tutorial\api\cstick.sldprt.
' (2)
Run the macro.
'
' 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
' ******************************************************************************
Imports SolidWorks.Interop.sldworks
Imports SolidWorks.Interop.swconst
Imports System
Imports System.Collections
Partial Class SolidWorksMacro
Public
WithEvents swPart As PartDoc
Public
Sub Main()
Dim
swModel As ModelDoc2
Dim
swModelDocExt As ModelDocExtension
Dim
swSketchManager As SketchManager
Dim
swSketchSegment As SketchSegment
Dim
swFeatureManager As FeatureManager
Dim
swFeature As Feature
Dim
boolstatus As Boolean
Dim
openPart As Hashtable
swModel
= swApp.ActiveDoc
'
Set up event notification
swPart
= swModel
openPart
= New Hashtable
AttachEventHandlers()
'
Create a cut-extrude feature on the
'
top face of the candlestick
swModelDocExt
= swModel.Extension
boolstatus
= swModelDocExt.SelectByID2("",
"FACE", 0.00140404215739, 0.2199999999999, 0.001897848026772,
False, 0, Nothing, 0)
swSketchManager
= swModel.SketchManager
swSketchSegment
= swSketchManager.CreateCircle(0.0#,
0.0#, 0.0#, 0.01296, -0.006347, 0.0#)
swModel.ClearSelection2(True)
boolstatus
= swModelDocExt.SelectByID2("Arc1",
"SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
swFeatureManager
= swModel.FeatureManager
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)
'
Event fired
'
Select the circle and delete it
boolstatus
= swModelDocExt.SelectByID2("Arc1",
"SKETCHSEGMENT", 0, 0, 0, False, 0, Nothing, 0)
boolstatus
= swModelDocExt.DeleteSelection2(swDeleteSelectionOptions_e.swDelete_Absorbed)
swModel.ForceRebuild3(True)
End
Sub
Sub
AttachEventHandlers()
AttachSWEvents()
End
Sub
Sub
AttachSWEvents()
AddHandler
swPart.UndoPostNotify, AddressOf Me.swPart_UndoPostNotify
End
Sub
Function
swPart_UndoPostNotify() As Integer
'Show
message after an undo action occurs
'
Display message after Undo
'
NOTE: Because the message box may be displayed
'
behind an opened window, you might not see it.
'
If so, then check the Taskbar for it.
MsgBox("An
undo post-notification event has been fired.")
End
Function
'''
<summary>
'''
The SldWorks swApp variable is pre-assigned for you.
'''
</summary>
Public
swApp As SldWorks
End Class