Imports System.IO
Imports System.Runtime.InteropServices
Module Example
    <STAThread()> _
    Sub Main()
        Dim objApplication As SolidEdgeFramework.Application = Nothing
        Dim objPartDocument As SolidEdgePart.PartDocument = Nothing
        Dim objModels As SolidEdgePart.Models = Nothing
        Dim objModel As SolidEdgePart.Model = Nothing
        Dim objSplits As SolidEdgePart.Splits = Nothing
        Dim objSplit As SolidEdgePart.Split = Nothing
        Dim objTargetBodySplit(5) As Object
        Dim objToolBodySplit(5) As Object
        Try
            OleMessageFilter.Register()
            objApplication = Marshal.GetActiveObject("SolidEdge.Application")
            objPartDocument = objApplication.ActiveDocument
            objModels = objPartDocument.Models
            objTargetBodySplit(0) = objModels.Item(1).Body
            objToolBodySplit(0) = objModels.Item(2).Body
            objModel = objModels.Item(1)
            objSplits = objModel.Splits
            objSplit = objSplits.Add(1, objTargetBodySplit, 1, objToolBodySplit,
                                           SolidEdgePart.SETargetDesignBodyOption.igCreateMultipleDesignBodiesOnNonManifoldOption,
                                            SolidEdgePart.SETargetConstructionBodyOption.igCreateMultipleConstructionBodiesOnNonManifoldOption)
            objModel.ExtrudedProtrusions.Item(2).RollToFeature()
            objTargetBodySplit(0) = objModels.Item(1).Body
            objToolBodySplit(0) = objModels.Item(2).Body
            objSplit.Edit(1, objTargetBodySplit, 1, objToolBodySplit,
                              SolidEdgePart.SETargetDesignBodyOption.igCreateMultipleDesignBodiesOnNonManifoldOption,
                              SolidEdgePart.SETargetConstructionBodyOption.igCreateMultipleConstructionBodiesOnNonManifoldOption)
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        Finally
            OleMessageFilter.Revoke()
        End Try
    End Sub
End Module