Scale1d Issue

Scale1d seems to behaving in an unusual way compared to V8, especially with closed polylines.

Run Scale1d, pick a base point on object, pick an end point, set a value= unexpeteced results

It seems to be adding the value inputted onto the objects size, instead of taking that as the intended size, hope this makes sense :blush:

Rhino 9 SR0 2026-8-4 (Rhino 9 BETA, 9.0.26216.12303, Git hash:master @ 5ca1621d579933d7769ad5ce75f25b218981579e)
License type: Commercial, build 2026-08-04
License details: Cloud Zoo
Expires on: 2026-09-18

Windows 11 (10.0.26200 SR0.0) or greater (Physical RAM: 63GB)
.NET 10.0.10

Computer platform: LAPTOP  - Plugged in \[100% battery remaining\]

Hybrid graphics configuration using DirectX
Primary display: NVIDIA GeForce RTX 5090 Laptop GPU (NVidia) Memory: 24GB, Driver date: 6-11-2026 (M-D-Y).
> Integrated accelerated graphics device with 4 adapter port(s)
- Secondary monitor is laptop's integrated screen or built-in port

Secondary graphics devices.
Intel(R) Graphics (Intel) Memory: 2GB, Driver date: 2-5-2026 (M-D-Y).
> Integrated graphics device with 4 adapter port(s)
- Windows Main Display is laptop's integrated screen or built-in port

DirectX Settings
Safe mode: Off

OpenBLAS: OpenBLAS 0.3.30 DYNAMIC_ARCH NO_AFFINITY Haswell MAX_THREADS=64.

Rhino plugins that do not ship with Rhino
C:\\Users\\mdexter\\AppData\\Roaming\\McNeel\\Rhinoceros\\packages\\9.0\\BlockEditNew\\2.1.7\\blockeditnew.rhp	"BlockEditNew"	2.0.0.0

Rhino plugins that ship with Rhino
C:\\Program Files\\Rhino 9 WIP\\Plug-ins\\Commands.rhp	"Commands"	9.0.26216.12303
C:\\Program Files\\Rhino 9 WIP\\Plug-ins\\rdk.rhp	"Renderer Development Kit"	
C:\\Program Files\\Rhino 9 WIP\\Plug-ins\\RhinoScript.rhp	"RhinoScript"	
C:\\Program Files\\Rhino 9 WIP\\Plug-ins\\UpdatesAndStatistics\\UpdatesAndStatistics.rhp	"UpdatesAndStatistics"	9.0.26216.12303
C:\\Program Files\\Rhino 9 WIP\\Plug-ins\\RhinoRenderCycles.rhp	"Rhino Render"	9.0.26216.12303
C:\\Program Files\\Rhino 9 WIP\\Plug-ins\\rdk_etoui.rhp	"RDK_EtoUI"	9.0.26216.12303
C:\\Program Files\\Rhino 9 WIP\\Plug-ins\\NamedSnapshots.rhp	"Snapshots"	
C:\\Program Files\\Rhino 9 WIP\\Plug-ins\\MeshCommands.rhp	"MeshCommands"	9.0.26216.12303
C:\\Program Files\\Rhino 9 WIP\\Plug-ins\\RhinoCycles.rhp	"RhinoCycles"	9.0.26216.12303
C:\\Program Files\\Rhino 9 WIP\\Plug-ins\\3dxrhino.rhp	"3Dconnexion 3D Mouse"	
C:\\Program Files\\Rhino 9 WIP\\Plug-ins\\Displacement.rhp	"Displacement"	
C:\\Program Files\\Rhino 9 WIP\\Plug-ins\\SectionTools.rhp	"SectionTools"

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.

Regards
Jeremy

Rigid seems to be off, there’s something a miss, it’s not consistent either

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.

Not a good week for the beta…

It’s for scaling position - if you have more than one object selected, it scales the distance between them.
-Jakob

Thanks @Normand,

Maybe McNeel could consider hiding this option if you only have a single object selected.

I’d go as far as saying that the ‘Scale’ command in general is not behaving very well, I have zero confidence in using it in V9 Beta

Hi @milezee,

Per usual, a sample file and instructions on how to reproduced the differences will be required.

Thanks,

– Dale

create a rectangle say 1000mm x 1000mm, use scale1d to resize along one side to say 1500mm sorry I haven’t got time to start deep poking

Hi @milezee,

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:

  1. 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.
  2. 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.

Thanks,

– Dale

Hi @dale,

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.

  1. Select the black box and run Scale1D.
  2. Pick the top corner indicated as the base point.
  3. Turn on Copy and turn off Rigid.
  4. Pick the top corner indicated as ref point 1.
  5. Type in 25 for ref point 2 and hit Enter
  6. You should get a box matching the blue one.
  7. Select the black box again and run Scale1D.
  8. Pick the top corner indicated as the base point.
  9. Turn on Rigid.
  10. Pick the top corner indicated as ref point 1.
  11. Type in 25 for ref point 2 and hit Enter.
  12. You should get a box matching the red one.

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.

Scale1D Rigid Test.3dm (137.1 KB)

Regards
Jeremy

Hi @jeremy5,

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.

Regards,

– Dale

The Rigid option in Scale1D should be one time, not persistent.

if I have rigid on its like I’m using the Move tool :man_shrugging:t3:, its a mess, works nothing like in V8