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 objStudyOwner As SolidEdgePart.StudyOwner = Nothing
        Dim objStudy As SolidEdgePart.Study = Nothing
        Dim objConstraintOwner As SolidEdgePart.ConstraintOwner = Nothing
        Dim objConstraint As SolidEdgePart.FEAConstraint = Nothing
        Dim objModel As SolidEdgePart.Model = Nothing
        Dim objExtProt As SolidEdgePart.ExtrudedProtrusion = Nothing
        Dim objEdges As SolidEdgeGeometry.Edges = Nothing
        Dim objProxiesArray(1) As Object
        Try
            OleMessageFilter.Register()
            ' Connect to Solid Edge
            objApplication = Marshal.GetActiveObject("SolidEdge.Application")
            objPartDocument = objApplication.ActiveDocument
            objStudyOwner = objPartDocument.StudyOwner
            objStudy = objStudyOwner.Item(1)
            objStudy.GetConstraintOwner(objConstraintOwner)
            objConstraint = objConstraintOwner.Item(1)
            ' Get Model
            objModel = objPartDocument.Models.Item(1)
            ' Get Protrusion.
            objExtProt = objModel.ExtrudedProtrusions.Item(1)
            ' Get Edges Colection
            objEdges = objExtProt.Edges(SolidEdgeGeometry.FeatureTopologyQueryTypeConstants.igQueryAll)
            ' Store edge proxies in vector
            objProxiesArray(0) = objEdges.Item(3)
            objProxiesArray(1) = objEdges.Item(4)
            objConstraint.SetGeometries(objProxiesArray)
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        Finally
            OleMessageFilter.Revoke()
        End Try
    End Sub
End Module