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 objToolBodySubtractOut(2) As Object
Dim objToolDirectionArrayOut(2) As SolidEdgePart.SESubtractDirection
Dim nTargets As Long
Dim nTools 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)
objSubtract.GetTools(nTools, objToolBodySubtractOut, objToolDirectionArrayOut)
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
OleMessageFilter.Revoke()
End Try
End Sub
End Module