Code:
Private Sub createlineonsurface(ByVal part As Part, ByVal start As Point, ByVal ende As Point)
Dim linie As NXOpen.Features.AssociativeLine = Nothing
Dim linebuilder As NXOpen.Features.AssociativeLineBuilder
linebuilder = part.BaseFeatures.CreateAssociativeLineBuilder(linie)
Dim mypoint As Point3d = Nothing
Dim surface As Face = SelectASurf("selec a surface", mypoint) ' gibt eine Fläche [FACE] zurück, die ich ausgewählt habe
start = SelectAPoint("select Point") ' gibt einen Punkt [Point] zurück, den ich ausgewählt habe
Dim origin1 As Point3d = New Point3d(0.0, 0.0, 0.0)
Dim normal1 As Vector3d = New Vector3d(0.0, 0.0, 1.0) mypoint = start.Coordinates
Dim plane1 As Plane
plane1 = part.Planes.CreatePlane(origin1, normal1, SmartObject.UpdateOption.WithinModeling)
Dim nullfeatures_Feature As Features.Feature = Nothing
Dim nullView As View = Nothing
Dim nullUnit As Unit = Nothing
Dim expression1 As Expression
expression1 = part.Expressions.CreateSystemExpressionWithUnits("0.903321406039793", nullUnit)
Dim expression2 As Expression
expression2 = part.Expressions.CreateSystemExpressionWithUnits("0.865746102332004", nullUnit)
Dim scalar4 As Scalar
scalar4 = part.Scalars.CreateScalarExpression(expression1, Scalar.DimensionalityType.None, SmartObject.UpdateOption.WithinModeling)
Dim scalar5 As Scalar
scalar5 = part.Scalars.CreateScalarExpression(expression2, Scalar.DimensionalityType.None, SmartObject.UpdateOption.WithinModeling)
Dim point2 As Point
point2 = part.Points.CreatePoint(surface, scalar4, scalar5, SmartObject.UpdateOption.WithinModeling)
Dim nXObject1 As NXObject = Nothing
Dim xform1 As Xform
xform1 = part.Xforms.CreateExtractXform(surface, SmartObject.UpdateOption.WithinModeling, False, nXObject1)
Dim point3 As Point
point3 = part.Points.CreatePoint(point2, xform1, SmartObject.UpdateOption.WithinModeling)
point3.RemoveParameters()
Dim coordinates1 As Point3d = mypoint
point3.SetCoordinates(coordinates1)
linebuilder.StartPointOptions = Features.AssociativeLineBuilder.StartOption.Point
linebuilder.StartAngle.RightHandSide = "0"
linebuilder.StartPoint.Value = point3
linebuilder.EndPointOptions = Features.AssociativeLineBuilder.EndOption.Normal
linebuilder.EndNormal.Value = surface
Dim point4 As New Point3d(mypoint.X, mypoint.Y, mypoint.Z)
linebuilder.EndNormal.SetValue(surface, nullView, point4)
linebuilder.Limits.StartLimit.LimitOption = GeometricUtilities.CurveExtendData.LimitOptions.AtPoint
linebuilder.Limits.EndLimit.LimitOption = GeometricUtilities.CurveExtendData.LimitOptions.Value
linebuilder.Limits.StartLimit.Distance.RightHandSide = "0"
linebuilder.Limits.EndLimit.Distance.RightHandSide = "20"
linebuilder.SupportPlaneData.SupportPlaneLockStatus = GeometricUtilities.SupportPlaneData.LockPlaneStatus.No
Try
linebuilder.Commit()
Catch ex As Exception
Dim str As String = ex.ToString
End Try
End Sub