Imports System.Runtime.InteropServices
Module Module1
    <STAThread()> _
    Sub Main()
        Dim objApplication As SolidEdgeFramework.Application = Nothing
        Dim objAslyDocument As SolidEdgeAssembly.AssemblyDocument = Nothing
        Dim Pipes As SolidEdgeAssembly.Pipes
        Dim Pipe As SolidEdgeAssembly.Pipe
        Dim CutLengths(10) As Double
        Dim PipeSegments(10) As Object
        Dim PipeFittings(10) As Object
        Dim PipeGeometrySegments(0) As Object
        Dim lNum As Integer
        Dim lFittingType(10) As SolidEdgeAssembly.PipeFittingTypeConstants
        Try
            ' Connect to Solid Edge
            objApplication = Marshal.GetActiveObject("SolidEdge.Application")
            objAslyDocument = objApplication.ActiveDocument
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        Finally
            Pipes = objAslyDocument.Pipes
            Pipe = Pipes.Item(1)
            'each of these PipeSegments are Assembly Occurrence objects.
            Call Pipe.GetPipeSegments(lNum, PipeSegments)
            'each of these PipeFittings are Assembly Occurrence objects.
            Call Pipe.GetPipeFittings(lNum, PipeFittings, lFittingType)
            'each of the PipeGeometrySegments are either Assembly LineSegments or Assembly ‘ArcSegments
            Call Pipe.GetPipeLengths(lNum, PipeSegments, PipeGeometrySegments, CutLengths)
        End Try
    End Sub
End Module