Imports System.Runtime.InteropServices
Public Class ExtendSurfaces
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim objApplication As SolidEdgeFramework.Application = Nothing
Dim objPartDoc As SolidEdgePart.PartDocument = Nothing
Dim objEdges As SolidEdgeGeometry.Edges
Dim objFaces(1) As Object
Dim objEdge As SolidEdgeGeometry.Edge
Dim objConstructionModel As SolidEdgePart.ConstructionModel
Dim objEdgArr(0 To 3) As Object
Dim objSurfaces As Object
Dim objSurfaces1(1) As Object
Dim kptypeArr(0 To 2) As SolidEdgeConstants.KeyPointType
Dim objConstructions As SolidEdgePart.Constructions
Dim PositionArray(8) As Double
Dim pointtypeArr(0 To 2) As SolidEdgeConstants.PointTypeConstants
Dim pointonface(0 To 2) As Double
Dim odjBodies, odjBodies1 As Object
Dim extendsurf As SolidEdgePart.ExtendSurface
Dim nValidEdges As Integer
Dim validEdges(0 To 4) As Object
Dim objTarget As SolidEdgeGeometry.Body
Dim objTarget1 As SolidEdgeGeometry.Body
Dim objType As Type = Nothing
Try
' Create/get the application with specific settings
objApplication = Marshal.GetActiveObject("SolidEdge.Application")
If objApplication Is Nothing Then
' Get the type from the Solid Edge ProgID
objType = Type.GetTypeFromProgID("SolidEdge.Application")
' Start Solid Edge
objApplication = Activator.CreateInstance(objType)
' Make Solid Edge visible
objApplication.Visible = True
End If
' Get the active document.
objPartDoc = objApplication.ActiveDocument()
If Err().Number <> 0 Or objPartDoc Is Nothing Then
MsgBox("Could not open document ")
End If
'obtain the first model and get all its edges
objSurfaces = objPartDoc.Constructions.SurfaceByBoundaries.Item(1).Faces(SolidEdgeGeometry.FeatureTopologyQueryTypeConstants.igQueryAll)
odjBodies = objPartDoc.Constructions.ExtrudedSurfaces.Item(1).Faces(SolidEdgeGeometry.FeatureTopologyQueryTypeConstants.igQueryAll)
odjBodies1 = objPartDoc.Constructions.ExtrudedSurfaces.Item(2).Faces(SolidEdgeGeometry.FeatureTopologyQueryTypeConstants.igQueryAll)
objEdges = objSurfaces.Item(1).Edges
objTarget = odjBodies.Item(1).Body
objTarget1 = odjBodies1.Item(1).Body
'obtain constrction object
objConstructions = objPartDoc.Constructions
If Err().Number <> 0 Or objConstructions Is Nothing Then
MsgBox("Could not open document ")
End If
objConstructionModel = objConstructions.Item(1)
nValidEdges = 0
For nIndex = 1 To objEdges.Count
objEdge = objEdges(nIndex)
validEdges(nValidEdges) = objEdge
nValidEdges = nValidEdges + 1
If 2 = nIndex Then
GoTo doit
End If
Next nIndex
doit:
extendsurf = objConstructionModel.ExtendSurfaces.Add1(nValidEdges, validEdges, 0, SolidEdgePart.ExtendSurfaceExtentTypeConstants.igESLinear, objTarget)
extendsurf.Target = objTarget1
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
End Class