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 objSubtracts As SolidEdgePart.Subtracts = Nothing
Dim objSubtract As SolidEdgePart.Subtract = Nothing
Dim objTargetBodySubtract(2) As Object
Dim objToolBodySubtract(3) As Object
Dim objToolDirectionArray(3) As SolidEdgePart.SESubtractDirection
Dim objTargetBodySubtractOut(1) As Object
Dim nTargets As Long
Try
OleMessageFilter.Register()
objApplication = Marshal.GetActiveObject("SolidEdge.Application")
objPartDocument = objApplication.ActiveDocument
objModels = objPartDocument.Models
objTargetBodySubtract(0) = objModels.Item(1).Body
objToolBodySubtract(0) = objModels.Item(2).Body
objToolBodySubtract(1) = objModels.Item(3).Body
objToolDirectionArray(0) = SolidEdgePart.SESubtractDirection.igSubtractDirectionNone
objToolDirectionArray(1) = SolidEdgePart.SESubtractDirection.igSubtractDirectionNone
objModel = objModels.Item(1)
objSubtracts = objModel.Subtracts
objSubtract = objSubtracts.Add(1, objTargetBodySubtract, 2, objToolBodySubtract, objToolDirectionArray,
SolidEdgePart.SETargetDesignBodyOption.igCreateMultipleDesignBodiesOnNonManifoldOption,
SolidEdgePart.SETargetConstructionBodyOption.igCreateMultipleConstructionBodiesOnNonManifoldOption)
objModel.ExtrudedProtrusions.Item(3).RollToFeature()
objTargetBodySubtract(0) = objModels.Item(1).Body
objToolBodySubtract(0) = objModels.Item(2).Body
objToolBodySubtract(1) = objModels.Item(2).Body
objToolDirectionArray(0) = SolidEdgePart.SESubtractDirection.igSubtractDirectionNone
objToolDirectionArray(1) = SolidEdgePart.SESubtractDirection.igSubtractDirectionNone
objSubtract.Edit(1, objTargetBodySubtract, 1, objToolBodySubtract, objToolDirectionArray,
SolidEdgePart.SETargetDesignBodyOption.igCreateMultipleDesignBodiesOnNonManifoldOption,
SolidEdgePart.SETargetConstructionBodyOption.igCreateMultipleConstructionBodiesOnNonManifoldOption)
objSubtract.RollToFeature()
objSubtract.GetTargets(nTargets, objTargetBodySubtractOut)
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
OleMessageFilter.Revoke()
End Try
End Sub
End Module