Do you have the new Rigid option turned on? With it off I find Scale1D behaves like R8 and uses the input value as the new length of the line between reference points 1 and 2. But with Rigid on, first impressions are of something which has no relation to object or input values.
I don’t get the point of Rigid in this context anyway - it just seems to be turning Scale into Move. They’ve taken something simple and reliable and made it overcomplicated and unreliable.
I’ve compared Scale1D in Rhino 8 and the current Rhino Beta side by side, running the same picks in both. The results are identical in every case I tried, including closed polylines, and the command’s source code is the same in both versions. So I don’t see a change in behavior between 8 and the Beta yet.
Two things that will produce a larger-than-expected result in either version:
The base point matters. The value you type at Second reference point is the distance from the base point, not the overall size of the object. If you press Enter at the base point prompt, Rhino uses the center of the object — so on a 1000 mm square, picking an edge midpoint and typing 1500 gives you a 3000 mm object, not 1500. Pick the base point on the edge opposite the one you’re moving and 1500 gives you 1500.
Check the Rigid option every time. Once you set Rigid=Yes, it stays on for the rest of the Rhino session, even though the command doesn’t call attention to it. With a single object selected, Rigid=Yes moves the object instead of resizing it. Worth restarting Rhino, or explicitly setting Rigid=No, before testing again.
If it still misbehaves after that, could you let me know exactly where you picked the base point and the first reference point (and whether you pressed Enter at the base point prompt)? That’s the piece I need to reproduce what you’re seeing.
I don’t want to hijack @milezee 's thread, so feel free to split this off into a separate one if you wish. For me the rigid behaviour seems wrong. Here’s a test file and instructions.
But why? If rigid is about respacing, then it shouldn’t be offered for a single item, or there should be no movement. I cannot see any intuitive reason to move the box 7.5mm (but maybe (25-10) / 2 comes into it).
But lets continue…
13. Select the black box and the red box and run Scale1D.
14. Pick the top corner indicated as the base point.
15. Pick the equivalent corner of the red box as ref point 1.
16. Type in 25 for ref point 2 and hit enter.
17. You should see a new box off to the right.
The spacing has changed from 7.5 to 36.67. Seemingly even less connection to the values used.
And I can’t help wondering what will happen with a selection of boxes at uneven spacing. Intuitively respacing to a set distance should make the spacing even (although if they have different dimensions is that even gaps, even centres, or even picked points?).
This seems like it has a long way to go to be viable. And I’m not convinced that putting it into Scale1D is a good idea. Historically Scale1D is simple and does what you expect. Suddenly it is going to become complex. And open to different expectations so some people will be confused (whichever way it ends up working).
If I may be so bold, I’d suggest putting this new stuff into a separate command (_Respace maybe?) where the potential complexities can be addressed without complicated the simple and frequently used Scale1D.
Thanks for the file and the numbered steps — I can reproduce every number you report, exactly.
Here’s what Rigid actually does: it scales each object’s bounding-box centre about the base point and then moves the object rigidly, without resizing it. For your single box, the centre is 5mm from the base point and the scale is 25/10 = 2.5, so the centre goes 5 → 12.5, which is the 7.5mm move. Your (25-10)/2 hunch was the right arithmetic.
That also explains the 36.67. Your dimension measures from the base point to the second box’s picked corner, which is a fair thing to measure — with Rigid off, that corner lands exactly on the value you typed. With Rigid on it doesn’t, because the centre is what gets scaled: the red box’s centre is 12.5mm from the base, not 7.5mm, so it scales to 41.67 and pulls the corner out to 36.67. What the typed value does control is the spacing between the objects, which comes out at exactly 25mm centre to centre.
The number you type means one thing with Rigid off and a different thing with Rigid on, and nothing in the command tells you that. I’m logging it, along with your point that Rigid shouldn’t be offered when only one object is selected, and the fact that once you switch it on it stays on for the rest of the session.
On moving this into its own command — it already has one. ScalePositions does exactly this and has for years, with a Mode option for 1D, 2D or 3D. If you’d rather keep Scale1D simple, use that and leave Rigid alone.