Imports System.Runtime.InteropServices
Public Class KeyPointCurvewithC2Continuity
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim objApplication As SolidEdgeFramework.Application = Nothing
Dim objPartDoc As SolidEdgePart.PartDocument = Nothing
Dim objEdges As SolidEdgeGeometry.Edges = Nothing
Dim objFaces(1) As Object
Dim objEdge As SolidEdgeGeometry.Edge
Dim objEndFaceForNormalOption As SolidEdgeGeometry.Face = Nothing
Dim StartEndConditionAsObject As SolidEdgeConstants.KeypointEndConditionConstants
Dim EndEndConditionAsObject As SolidEdgeConstants.KeypointEndConditionConstants
Dim objEdgArr(0 To 2) 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 objKeypointCurve As SolidEdgePart.KeyPointCurve
Dim objType As Type = Nothing
Dim strRetStatusMsg As String
strRetStatusMsg = ""
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 reference to active document
objPartDoc = objApplication.ActiveDocument()
'obtain constrction object
objConstructions = objPartDoc.Constructions
'obtain the first model and get all its edges
objEdges = objPartDoc.Models.Item(1).ExtrudedProtrusions.Item(1).Edges(SolidEdgeConstants.FeatureTopologyQueryTypeConstants.igQueryAll)
'fill the edges in array
' Get the Edges and store them in an Array
objEdgArr(0) = objEdges(1)
objEdgArr(1) = Nothing
objEdgArr(2) = objEdges(3)
'obtain the face of the edge so that we will use it for normal to face option
objEdge = objEdges.Item(3)
objEdge.GetFaces(2, objFaces)
objEndFaceForNormalOption = objFaces(1)
'fill the key point type aaray
kptypeArr(0) = SolidEdgeFramework.KeyPointType.igKeyPointStart
kptypeArr(1) = SolidEdgeFramework.KeyPointType.igKeyPointStart
kptypeArr(2) = SolidEdgeFramework.KeyPointType.igKeyPointStart
'Define an Array of Points
PositionArray(0) = 0
PositionArray(1) = 0
PositionArray(2) = 0
PositionArray(3) = 0.02
PositionArray(4) = 0.02
PositionArray(5) = 0.02
PositionArray(6) = 0
PositionArray(7) = 0
PositionArray(8) = 0
'now fill the point type array
pointtypeArr(0) = SolidEdgeConstants.PointTypeConstants.igKeyPoint
pointtypeArr(1) = SolidEdgeConstants.PointTypeConstants.igSpacePoint
pointtypeArr(2) = SolidEdgeConstants.PointTypeConstants.igKeyPoint
'now create keypoint curve
objKeypointCurve = objConstructions.KeyPointCurves.Add3(3, pointtypeArr, objEdgArr, kptypeArr, PositionArray, _
SolidEdgeConstants.KeypointEndConditionConstants.seKeypointEndConditionCurvatureContinuous, _
Nothing, _
0.01, _
SolidEdgeConstants.KeypointEndConditionConstants.seKeypointEndConditionNormalToFace, _
objEndFaceForNormalOption, _
0.01)
'get startpoint end condition
StartEndConditionAsObject = objKeypointCurve.StartpointEndCondition
'get endpoint end condition
EndEndConditionAsObject = objKeypointCurve.EndpointEndCondition
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
End Class