Hello @norman.yuan
I would like to thank you for the answer and say that the proposed reasoning helped me a lot in the solution.
The only problem with using it in 100% of the cases was that in my case the polylines were 3Dpoly representing lanes on a highway and that many times they started straight, but ended up in curves which I couldn't access the angles.
Anyway, I found a solution from the development of a function in VBA that I believe is similar to the one you mentioned that exists in .NET...
I'll put it here to help other developers in the future:
Function FA_FindPointatDist (PL3D As Acad3DPolyline, ByVal DistBase As Double, FindPoint As Variant) 'Returns the exact distance point above the Polyline
Dim Coords () As Double
Dim Sum As Double, Dist As Double, i As Integer
Dim PTi (0 To 2) As Double, PTf (0 To 2) As Double, LastPT (0 To 2) As Double, Ang As Double
Sum = 0: i = 0: Coords = PL3D.Coordinates
Do While (Sum <= DistBase)
Dist = Sqr ((Coords (i + 3) - Coords (i + 0)) ^ 2 + (Coords (i + 4) - Coords (i + 1)) ^ 2 + (Coords (i + 5) - Coords ( i + 2)) ^ 2)
PTi (0) = Coords (i + 0): PTi (1) = Coords (i + 1): PTf (0) = Coords (i + 3): PTf (1) = Coords (i + 4)
Ang = ThisDrawing.Utility.AngleFromXAxis (PTf, PTi)
Sum = Sum + Dist
i = i + 3
Loop
LastPT (0) = Coords (i)
LastPT (1) = Coords (i + 1)
LastPT (2) = Coords (i + 2)
FindPoint = ThisDrawing.Utility.PolarPoint (LastPT, Ang, Sum - DistBase)
End Function
From the formula it is possible to find the coordinates of a polyline according to the distance informed by the user, I believe that the .NET function mentioned does exactly that, which solves the case.
Thank you again 🙂