Trying to automate Scale1D a bit more

Looking for a way to bring it from five steps to three. Currently flow is:

  1. Run Command
  2. Select the object
  3. Select Reference Point 1
  4. Select Reference Point 2
  5. Pick new length of object

I’d like to do something like:

  1. Run the command with X, Y, or Z axis preselected (i.e. Scale1DX)
  2. Select the object (the ends of the bounding box in the X direction autofill the reference points)
  3. Pick the new length of the object

Currently working on scripting it but posting here in case anyone has an easy way to do this that I’m missing…

I use the following scripts to quickly scale objects. Snapping is also supported.

Set Gumball:
set_gumball_min.py (503 Bytes)
set_gumball_max.py (503 Bytes)

32x32 pixels icon for the above scripts:
Set Gumball 32x32

You can read more about those scripts in the following topic:


I use both scripts in a combination with the following commands:

Reset Gumball 32x32

Align Gumball 32x32

Screen Shot 01-03-24 at 05.08 AM

1 Like

This is faster for sure. The process becomes:

  1. Select the Object
  2. Run the command
  3. CTRL-SHIFT Click the side
  4. Move to the new scale

I think it could be faster though. Some additional thoughts on my earlier sequence: Auto-filling the height or width means you don’t have to worry about zooming in and out to pick the correct side and can keep your eyes on the scale point, and you don’t have to CTRL+Shift click. It creates the possibility of rapidly resizing things.

As an aside, is there a place where you can get the code for existing commands to play with this a bit more without having to rewrite Scale1D?

Here’s a first pass at this. I haven’t gotten it to scale via the mouse yet, but it essentially does what I would want. You could automate the steps using a macro to shorten it.

AutoScale1D.py (1.3 KB)

Ok, here is another version. It is not super elegant but it is doing the trick for me today. Basically if you’re drawing in Top View it quickly autoscales using the object’s bounding box as a reference

AutoScale1D (v2).py (2.0 KB)

I’ve divided these into four scripts to make it easier to create the Macros and I have to say, it is really a game changer for a drafting workflow. Totally avoids the “click in the slightly wrong place and skew your object” problem and is significantly more efficient than picking reference points. If the object is already selected it brings the Scale!D process down to two steps. I have the Aliases set to SS SE SF SC (making a + sign on the keyboard)

Scale1DRight.py (1.6 KB)
Scale1DTop.py (1.5 KB)
Scale1DBottom.py (1.6 KB)
Scale1DLeft.py (1.6 KB)