Dimension Wishes


#1

I wish when I made a vertical dimension to the right side the dimension text would be to the right of the arrows instead of the left. (Especially when it does not fit between them)

I wish when I made a horizontal dimension to the bottom side the dimension text would be below the arrows instead of above the arrows (Especially when it does not fit between them)


(Brian James) #2

Hi Don,

I’ll file a request for a “below dimension line” option for the text alignment settings in a dimension style. Let me know if I misunderstood.


(Brian Gillespie) #3

Yeah, I wasn’t following this request very well, either - Don - can you please add a picture of what you currently get and what you wish you could get?


(Brian James) #4

filed a request as RH-19777 and linked to this discussion.
(This isn’t publicly visible yet… but that’s planned)


#5

@Brianj See how nice the dimension on the left side and top look, can’t we push the text to the outside on the right and bottom if it doesn’t fit?


(Brian James) #6

Thanks Don, that’s exactly what I thought you meant. The text alignment option in the dimension style seems to need a ‘below dimension line’ setting but it may also require more than I know. I’m going to add more additional details to the feature request now and your screen shot will help.


(Brian Gillespie) #7

I doubt Don wants two different dim styles for the dimensions on the screen.

If it were me, I’d want one dim style to show all four properly - so rather than having the option be “above” or “below”, this looks more like “opposite dimension points”. Is that your idea, Don?


(Brian James) #8

I agree @brian and the additional details I added to the feature request reflect your thought. I’m guessing this would be a per dimension alignment option that takes into each dimensions orientation to define above or below.

@donl517 please correct me if I’m wrong and as I mentioned this thread is now attached to the actual request too so your exact wording will be captured.


#9

@Brianj It just needs some intelligence built into it, If it doesn’t fit it should be pushed to outside the lines, and @Brian is right, I don’t want to do this with two dimension styles. I think I would be fine if it was always outside the lines.


(Declan Halpin) #10

I wonder if there’s any way to have dimension text (or leader arrows, whatever) be a pixel size instead of absolute dimension? That would be so awesome…


#11

Hi Brian and BrianJ
Please do not change anything, or to satisfy one of thousands dissatisfied.

Ciao Vittorio


(Brian James) #12

Hi Vittorio,

I filed the feature request as an option but not a global change so the goal would be for this to be a style change allowing for a new ‘align text outside’ option to be set. I agree that as a global change this may not be what some users want. We try to hear all suggestions though and get them captured quickly in our system for the next time that area of Rhino gets worked on. Thanks for your feedback as well.


#13

Hi Brian.J
If is an option then it’s OK.

Ciao Vittorio


#14

Hi Don
The below PythonScript move the text of dimension:

import rhinoscriptsyntax as rs
def ddd(quota):
    rs.EnableRedraw(False)
    arrplane=rs.ViewCPlane() 
    dim_style=rs.DimensionStyle(quota)
    ht=rs.DimStyleTextHeight(dim_style)
    rs.UnselectAllObjects()
    nq=rs.CopyObject(quota)
    rs.SelectObject(nq)
    rs.Command("explode")
    ll=rs.LastCreatedObjects()
    rs.UnselectAllObjects()
    testo=""
    for l in ll:
        if rs.IsText(l):
            testo=l
        else:
            rs.DeleteObject(l)     
    rs.EnableObjectGrips(quota)
    p1=rs.ObjectGripLocation(quota, 0)
    p2=rs.ObjectGripLocation(quota,2)
    py=rs.ObjectGripLocation(quota, 1)
    vect=p2-p1
    vecty=py-p1    
    arrplane.XAxis=vect
    arrplane.YAxis=vecty
    bb=rs.BoundingBox((testo),arrplane)    
    rs.DeleteObject(testo)
    lun=rs.Distance(bb[1],bb[0])
    lun=lun+ht/3 
    point = rs.ObjectGripLocation(quota, 4)  
    lv=vect.Length
    vect=rs.VectorScale(vect,lun/lv)     
    point=point+vect     
    rs.ObjectGripLocation(quota, 4,point)
    n=rs.ObjectGripCount(quota)     
    rs.EnableObjectGrips(quota,False) 
    rs.EnableRedraw(True)
while True:
    quota=rs.GetObject("select dimension < Enter for Exit >")
    if quota==None:break
    ddd(quota)
    rs.EnableRedraw(True)

Ciao Vittorio