Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.

This is little bit modified version of your code. It works well.

  • I don't check type of entity and I directly try to get Evaluator from sketchEntity (Using LateBinding in VB.NET).
  • I change mid point calculation.
  • I change building of final message

 

Sub Main
	Dim part As PartDocument = ThisDoc.Document
	Dim sk As PlanarSketch = part.ComponentDefinition.Sketches("Test Sketch")
	
	For Each sketchEntity As SketchEntity In sk.SketchEntities
		Dim evaluator As Curve2dEvaluator = GetEvaluator(SketchEntity)
		If evaluator Is Nothing Then Continue For

		Dim periodicity As Double() = {}
		Dim isSingular As Boolean
		Dim unboundedParameter As Boolean
		evaluator.GetParamAnomaly(periodicity, isSingular, unboundedParameter)

		Dim endPoint As Double() = {}
		Dim startPoint As Double() = {}
		evaluator.GetEndPoints(startPoint, endPoint)

		Dim minParam As Double
		Dim maxParam As Double
		Dim midParam As Double
		Dim midPoint As Double() = {}

		evaluator.GetParamExtents(minParam, maxParam)
		midParam = minParam + (maxParam - minParam) / 2
		evaluator.GetPointAtParam(New Double() {midParam }, midPoint)

		Dim msg As String = String.Format( _
"Curve Type: {0}" & vbCrLf & _
"Start Point: [{1:N3},{2:N3}]" & vbCrLf & _
"End point: [{3:N3}, {4:N3}]" & vbCrLf & _
"Mid Point: [{5:N3}, {6:N3}]" & vbCrLf & _
"Param anomaly:" & vbCrLf & _
" - periodicity: [{7:N3}, {8:N3}]" & vbCrLf & _
" - Is sinhgular: {9}" & vbCrLf & _
" - Unbounded parameter: {10}",
		SketchEntity.Type,
		startPoint(0), startPoint(1),
		endPoint(0), endPoint(1),
		midPoint(0), midPoint(1),
		periodicity(0), periodicity(1),
		isSingular,
		unboundedParameter
		)

		MsgBox(msg, Title := "Curve Info")
	Next


End Sub

Function GetEvaluator(sketchEntity As SketchEntity) As Curve2dEvaluator
	Try
		Return sketchEntity.Geometry.Evaluator
	Catch
		Return Nothing
	End Try
End Function