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 objConstructions As SolidEdgePart.Constructions = Nothing
Dim objSurfaceByBoundaries As SolidEdgePart.SurfaceByBoundaries = Nothing
Dim objSurfaceByBoundary As SolidEdgePart.SurfaceByBoundary = Nothing
Dim objProfile As SolidEdgePart.Profile = Nothing
Dim objCurveBody As SolidEdgeGeometry.CurveBody = Nothing
Dim objCurves As SolidEdgeGeometry.Curves = Nothing
Dim objSketchs As SolidEdgePart.Sketchs = Nothing
Dim objSketch As SolidEdgePart.Sketch = Nothing
Dim arrInEdges(3) As Object
Dim arrGuideWire(1) As Object
Dim arrGuideWireNew(2) As Object
Dim arrOutGuide(0) As Object
Dim nGuideWire As Long
Dim nPatch As SolidEdgePart.SurfaceByBoundaryPatchTopology
Dim nFill As SolidEdgePart.SurfaceByBoundaryFillPreference
Dim nSmoothness As SolidEdgePart.SurfaceByBoundaryInternalSmoothness
Try
OleMessageFilter.Register()
objApplication = Marshal.GetActiveObject("SolidEdge.Application")
objPartDocument = objApplication.ActiveDocument
' get the constructions collection
objConstructions = objPartDocument.Constructions
objSurfaceByBoundaries = objConstructions.SurfaceByBoundaries
objSketchs = objPartDocument.Sketches
' input edges
objSketch = objSketchs.Item(1)
objProfile = objSketch.Profile
objCurveBody = objProfile.CurveBody
objCurves = objCurveBody.Curves
' get input edges to create bounded surface
arrInEdges(0) = objCurves.Item(1)
arrInEdges(1) = objCurves.Item(2)
arrInEdges(2) = objCurves.Item(3)
arrInEdges(3) = objCurves.Item(4)
' guide wires
arrGuideWire(0) = objPartDocument.Sketches.Item(2).Profile.CurveBody.Curves.Item(1)
arrGuideWire(1) = objPartDocument.Sketches.Item(3).Profile.CurveBody.Curves.Item(1)
' Create the SurfaceByBoundary
objSurfaceByBoundary = objSurfaceByBoundaries.AddEx(4, arrInEdges, 0, Nothing, False, 2, arrGuideWire,
SolidEdgePart.SurfaceByBoundaryPatchTopology.igSurfaceByBoundaryMultiple,
SolidEdgePart.SurfaceByBoundaryFillPreference.igSurfaceByBoundaryFillSmooth,
SolidEdgePart.SurfaceByBoundaryInternalSmoothness.igSurfaceByBoundarySharp)
objSurfaceByBoundary.get_SBBOptions(nFill, nSmoothness, nPatch, nGuideWire, arrOutGuide)
arrGuideWireNew(0) = objPartDocument.Sketches.Item(2).Profile.CurveBody.Curves.Item(1)
arrGuideWireNew(1) = objPartDocument.Sketches.Item(3).Profile.CurveBody.Curves.Item(1)
arrGuideWireNew(2) = objPartDocument.Sketches.Item(4).Profile.CurveBody.Curves.Item(1)
objSurfaceByBoundary.put_SBBOptions(Nothing, SolidEdgePart.SurfaceByBoundaryInternalSmoothness.igSurfaceByBoundarySmooth, Nothing, 3, arrGuideWireNew)
objSurfaceByBoundary.get_SBBOptions(nFill, nSmoothness, nPatch, nGuideWire, arrOutGuide)
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
OleMessageFilter.Revoke()
End Try
End Sub
End Module