Leader text is randomly inverting when panning/rotating view. Bug?




This does look like a buglet in the intended behavior, AFAIK. Leaders live in 2D space like other dimension objects. They are associated with a certain plane (the active CPlane when you created them). They are really designed for 2D viewing, as in drawings.

However, in order to make viewing more legible/comfortable in 3D views, they are designed to “flip” when you look at them from a “backside” viewpoint, so that the text always reads correctly…

Looks like vertically oriented leaders are not so sure which way is “front”

Maybe related to this (although this was supposed to have been fixed)…



^ I understand that, but they still “flip” even in View CPlane Top when panning in this case. You can see that at the end of my vid.

The problem is that I have a script that notates objects with leader in CPlane World Top and View World Top (always, always 2D) and its text is mirrored as if I’m looking at the back of that leader. Just like your examples show.

To fix it I have to rotate it .n degree = PITA.


Hmm, I can’t reproduce this with “handmade” leaders drawn in top view… nor with a script…

import rhinoscriptsyntax as rs

for i in range(8):
    text="This is leader number {}".format(i)


Maybe you can post the part of the script that produces the leaders that have problems…



LeadVec = Rhino.VectorCreate(REFpt1, Rhino.PointClosestObject(REFpt1, WLine)(1))
Rhino.ViewCPlane, Rhino.MovePlane(Rhino.ViewCPlane, Hole(y))
Rhino.AddLeader Array(Array(0, 0, 0), LeadVec), “WH”

The CPlane is being moved throughout the script, but always in the same plane - World Top.



Yes, but you’re not feeding AddLeader the view argument, you’ve left it out…

Rhino.AddLeader Array(Array(0, 0, 0), LeadVec),, "WH"

So, from the help:

“If a view title is not specified, arrPoints will be constrained to a plane fit through the array of points”

And, your array of points for the leader is only 2 points. 2 points do not determine one single plane… So I think it’s flipping at random.

I would try:

Rhino.AddLeader Array(Array(0, 0, 0), LeadVec),"Top", "WH"

and see if that helps.

I am much fonder of Python rhinoscriptsyntax’s implementation of AddLeader where you can actually feed it a real plane and not just a view that (you hope) contains the plane you want.