Edit Scale from Active Detail View Properties Panel only accepts integers in "Distance On Layout" field

Edit Scale from Active Detail View Properties Panel on accepts integers in “Distance On Layout” field.

If a fractional number is entered either in decimal or fraction form, the scale remains as it was before
editing.

Typical Scales like 1-1/2" = 1 can’t be entered by that method. Have to use Select Detail>Properties.

The problem here is that the editing sort of works. It’s easy to forget that it doesn’t and think the scale has been edited correctly if the change is minor. THings can get really screwed up.

When I switch from my other software to Rhino It always takes me a while to get detail scaling right. My other packages have drop-downs with common scales and options to create custom ones. it twitches my brain every time.

I wonder if it’s possible to script an option of for detail scales?
Pascal?

I’m not sure I am getting at the same controls but this:
image
gets me to command line input (itself a peculiar combination, IMHO, but that is a different problem) that accepts any number -

image

Am I in the right place?

-Pascal

Set scale 1.5:1
! _Detail Scale _Pause 1.5 1 _EnterEnd

-Pascal

Yes. In feet and inches it’s impossible to input 1.5" = 1’.

Ah, that is a different problem from typing integers. I’ll add the parsing of units to the pile - I have no idea what the prospects are…

https://mcneel.myjetbrains.com/youtrack/issue/RH-54747

-Pascal

I guess it’s about only being able to input whole numbers in the layout length field.

Pascal, is there the possibility that choosing scales can be scripted, or is that beyond the work-ability of a script?

e.g

  1. Detail/viewport is selected/opened.
  2. Run a script, “ScriptChooseScale”
  3. That opens a window (Similar to image) or offers a list of choices.
  4. Scale is checked/selected
  5. Enter closes and sets the detail to the scale.
    scales

Hello - that should be scriptable - if I understand things you want only one selected, so check boxes might not be the way to go, but some UI like this is perfectly possible. My pile is not tiny at the moment, so you’ll have to nudge me from time to time.

-Pascal

Do you think this something a person (like me) could use to learn scripting or would it be way beyond a beginner assuming he had the time? And this would be in Python?

@CalypsoArt
the attached script should be working correctly if your model and page are both inches. If however you are working in feet and your page is in inches, it still works but then you get a different scale of course.
So for the latter the script needs to be modified slightly. The script does not check your page and model units. I could probably program that but don’t have the time right now to dive into it.
setDetailScale.py (1.3 KB)
scale-detail

btw: I can also modify my roundDetailScales script for imperial units if someone’s interested. But then please let me know which common scales need to be added and if it needs to be for feet --> inches or inches --> inches

This is great. Thank you so much!

In my attempt to experiment a little in scripting, I added a 3/8" scale and altered the script to show the scales in inches. My changes seem to work, but don’t know yet if there is some unforeseen state that might break it.

Scale_opt_IN

I’m still looking for the syntax so the box would display 1/4"=1’-0" . So many code operators in that expression.

I like that you locked the detail after, but wondering if I could make it a user input. Lock: Y/N? I often have to center the object in the detail after setting scale. Or perhaps a “Center objects in detail? Y/N” option. At any rate, that has helped me tremendously. My edit below.

setDetailScaleIN.py (1.3 KB)

Edit: Ok. I edited the script to offer Lock? Y/N option. That said, I have no idea what I’m doing. I think in Gijs original script I was able to select several details before the scale list box appeared. That seems to be broken. If any mavens want to check/correct?
y-n

setDetailScaleINLock.py (1.5 KB)

Should this be moved to the scripting forum?

1 Like

@CalypsoArt see if the attached works.

if you want to have multiple " signs you can do this by a thing called escaping characters.

so to display " 1'-0" ", you would have to write " 1'-0\" "
The \ is the escape character in python

setDetailScale.py (1.6 KB)

Gracias.