Texts perpendicular to curve

Hi everyone

I’m trying to script text placements that are perpendicular/normal to a given curve (as in reference image).
So far I can make perpendicular lines but not the texts.
Also, while manually rotating the texts, the directions of the first two are flipped (ie: first letter not starting from the curve)
Can this be avoided?
Thanks

member_tag_normal_to_curve.py (784 Bytes)

import Rhino
from scriptcontext import doc

members = ["Dennis", "Scottie", "Michael", "Toni", "Steve", "Phil"]
crv = Rhino.Input.RhinoGet.GetOneObject("Pick a curve", False, Rhino.DocObjects.ObjectType.Curve)[1].Curve()
planes = crv.GetPerpendicularFrames(crv.DivideByCount(len(members)-1, True))
for text,plane in zip(members,planes):
    entity = Rhino.Geometry.TextEntity()
    entity.Text = text
    entity.Plane = Rhino.Geometry.Plane(plane.Origin, -plane.XAxis, -plane.ZAxis)
    entity.Justification = Rhino.Geometry.TextJustification.Left
    entity.DrawForward = False
    entity.FontIndex = doc.Fonts.FindOrCreate("Arial", False, False)
    doc.Objects.AddText(entity)
    doc.Views.Redraw()

TextsOnCurve.py (716 Bytes)

2 Likes

Thank you Mahdiyar
A lot I can learn from your help