AutoCAD – Drawings

The scale command in AutoCAD is uniform: scaling one direction with a block and a lisp

The scale command in AutoCAD asks for one factor only, so it always scales both directions. The one-direction route runs through a block, plus a free lisp.

  • TS. Đỗ Quốc Hoàng
  • 13 min read
The same 2000 x 1000 rectangle: SCALE with a factor of 2 gives 4000 x 2000, while STRETCH pulled by 2000 gives 4000 x 1000 Photo: AutoCAD 2027

The most searched question around the scale command in AutoCAD is not how to use it. It is how to make it stretch in one direction only. The blunt answer is that it cannot, by design.

This article sets out the route that does work — turning the geometry into a block and inserting it with two different factors — together with the Institute's SC1 lisp that does the job in one command, source code printed in full. For the full set of editing commands see our AutoCAD for Construction course.

The scale command in AutoCAD is uniform, and the prompt says so

The evidence is in the question the program asks, copied verbatim from the 2027 release:

Specify scale factor or [Copy/Reference]:

One factor. There is nowhere to declare a horizontal figure and a vertical one separately. That is why the command never distorts a shape, and why it is no help at all when you need to stretch in one direction.

Take a real shape: a 2000 × 1000 rectangle, with a factor of 2.

BeforeAfter
2000 × 10004000 × 2000

Both sides doubled. The shape keeps its proportions and simply gets bigger.

This is deliberate rather than an omission. Autodesk's SCALE page describes the command in one sentence: "Enlarges or reduces selected objects, keeping the proportions of the object the same after scaling". Keeping proportions is the command's job, so asking it to distort is asking the wrong tool.

Where to start it, and the steps on the command line

Read straight out of the acad.cuix interface file of the 2027 release.

Way inWhat to use
Full commandSCALE
AliasSC
RibbonHome → Modify → Scale
Classic menuModify → Scale
ToolbarModify → Scale

The middle column below is copied verbatim from AutoCAD 2027.

StepWhat it asksWhat you do
1Select objects:Pick the shape, then Enter
2Specify base point:Click the point that stays put
3Specify scale factor or [Copy/Reference]:Type a factor, or C, or R

Step 2 is the one people skim. The same Autodesk page puts it plainly: "The base point you specify identifies the point that remains in the same location as the selected objects change size". The base point is the point that does not move; everything else runs away from it or shrinks towards it.

The Copy option keeps the original and scales a new copy. The Reference option lets you declare real measurements instead of a factor:

Specify reference length <1.00>:
Specify new length or [Points] <1.00>:

On the 2000 × 1000 rectangle, an old length of 2000 and a new length of 3000 give 3000 × 1500. Still uniform.

Why the stretch command is not scaling one direction

A great many tutorials point at STRETCH — alias S — as the way to scale one direction. That is a mistake about what the command does.

STRETCH does not multiply by a factor. It moves the vertices inside the selection window by a fixed distance. On a rectangle the two look the same, which is why the confusion spreads. Put other object types next to it and the difference is immediate.

Four objects: a 2000 × 1000 rectangle, a circle of radius 500, a line of text 300 high, and a block reference. One pull of 2000 horizontally, with a crossing window that cuts through the rectangle only:

ObjectWidth beforeWidth afterResult
Rectangle20004000stretched by exactly 2000
Circle10001000unchanged, and it does not move
Text4264.464264.46unchanged
Block reference800800unchanged

The second case is the opposite one, and it matters as much as the first. Open the window wide enough to catch every definition point:

ObjectWidth beforeWidth afterMoved by
Rectangle200020002000
Circle100010002000
Text4264.464264.462000
Block reference8008002000

This time nothing changes size; all four simply move. The command has become a move.

Three figures settle it: the circle's radius stays at 500 in both cases, the text height stays at 300, and the block's X scale factor stays at 1. A circle stretched in one direction has to become an ellipse. It never does here, because no stretching of that kind takes place.

The short version: STRETCH is useful, but it only changes the distance between the grips the window catches. It is not scaling one direction.

The same circle and the same line of text: STRETCH leaves them alone, while a block inserted at twice the X factor turns the circle into an ellipse and doubles the width of the text Photo: Diagram by the Institute of Information Technology in Civil Engineering

Scaling one direction with a block, step by step

This is the route that works, and it uses what the program already has. The idea: a block reference takes two separate factors, one for X and one for Y.

Step 1 — gather the geometry into a block. Type B for BLOCK, give it a name, pick a base point, select the objects, click OK. Creating and editing blocks is covered in our article on blocks in AutoCAD.

Step 2 — insert it with the hyphenated command. It has to be -INSERT, with the leading hyphen. Plain INSERT opens the Blocks palette, which offers a single scale box unless you unlock the ratio. The prompts, copied verbatim from the 2027 release:

StepWhat it asks, verbatimWhat you do
1Enter block name or [?]:Type the name you just made
2Specify insertion point or [Basepoint/Scale/X/Y/Z/Rotate/Explode/REpeat]:Click a spot, or type coordinates
3Enter X scale factor, specify opposite corner, or [Corner/XYZ] <1>:Type the horizontal factor, say 2
4Enter Y scale factor <use X scale factor>:Type the vertical factor, say 1
5Specify rotation angle <0>:Enter if there is no rotation

Step 4 is the whole story. Its default is use the X factor, so almost everyone presses Enter past it and never discovers that this is where the separate vertical factor is declared.

On a block holding a 1000 × 600 rectangle, a circle of radius 200 and a line of text:

InsertionWidthHeight
Control, X = 1 and Y = 11000887.86
X = 2 and Y = 12000887.86

The width doubles exactly and the height does not move.

Step 3 — change the factor whenever you like. This is the biggest advantage of the route. Both block scale factors stay editable for the life of the reference: select it, open the Properties palette with Ctrl+1, and edit the Scale X box directly. Changing it back and forth on the same reference:

X factorWidthHeight
11000887.86
22000887.86
0.5500887.86
11000887.86

Back to the original figure exactly. Nothing is lost along the way, which is not true of exploding and fixing by hand.

Step 4 — explode it if you need ordinary geometry. Type X for EXPLODE. There is something worth knowing first, and this is the part other pages leave out. Exploding a reference whose X factor differs from its Y factor changes the object types inside:

Inside the blockExplode the X = 1, Y = 1 copyExplode the X = 2, Y = 1 copy
Circle of radius 200circle, 400 wideellipse, 800 wide
Closed polyline 1000 × 600polyline, 1000 wide4 separate lines, two of them 2000 long
Text 737.82 widetext 737.82 widetext 1475.65 wide

The circle becoming an ellipse is correct rather than a fault: a circle stretched one way really is an ellipse. The polyline breaking into four separate lines is worth knowing in advance, because it no longer reports an area. Measuring areas is covered in our article on calculating area in AutoCAD.

One more thing to weigh up: text inside the block is distorted too. A title block inserted with X different from Y comes out with thin or fat lettering. And if the text style uses an .shx font without the glyphs it needs, accented characters are drawn as question marks, and the measured width follows suit. Our article on exporting point coordinates carries a test of all 41 Unicode fonts that ship with AutoCAD.

The Institute's SC1 lisp for scaling one direction

Doing those four steps by hand is correct but slow. That is why a number of lisp files circulate for the job, usually under the command name XSC or 1SC. They all do the same thing: gather the selection into a temporary block, insert it again with two different factors, then explode it.

Reading the circulating versions carefully turns up three gaps. The most widely shared one leaves a temporary block called vkc_temp in the drawing for good. None of them warns that circles will become ellipses and polylines will break apart. And at least one page offers only a download link with no source code, so nobody can read what they are about to run.

The Institute wrote its own and publishes it with the source in full.

SC1-IIC.LSPload it with APPLOAD; the source is printed below.

Two commands once it is loaded:

CommandWhat it does
SC1scales one direction, then explodes into ordinary geometry
SC1Xscales one direction but keeps a block reference, so the factor stays editable

The working heart of it, exactly as in the download:

(setq ten (iic-ten-tam))
(command "_.-BLOCK" ten p0 ss "")
(if (= phuong "X")
  (command "_.-INSERT" ten p0 hs 1.0 0)
  (command "_.-INSERT" ten p0 1.0 hs 0))
(setq e (entlast))
(if no
  (progn (command "_.EXPLODE" e) (setq ss2 (ssget "_P")))
  (setq ss2 (ssadd e (ssadd))))
(iic-xoa-block ten)

Three things differ from the circulating versions. The temporary block takes the first free numbered name and is deleted the moment the job is done, so the drawing does not grow. The whole command sits inside one undo step, so a single U puts everything back. And when it finishes, the command prints a before-and-after count by object type, so nobody has to guess.

CIRCLE : 1 -> 0
POLYLINE : 1 -> 0
TEXT : 1 -> 1
ELLIPSE : 0 -> 1   (mới sinh ra)
LINE : 0 -> 4   (mới sinh ra)

A run on the 2027 release used a 2000 × 1000 rectangle, a circle of radius 300 and a line of text 2093.25 wide. Direction X, factor 2. The rectangle came out as four lines, 4000 long and 1000 high. The circle came out as an ellipse of 1200 × 600. The text came out 4186.49 wide, exactly double. Every horizontal figure doubled exactly and no vertical figure moved by a single unit.

Load the file with APPLOAD. If the machine shows a Security - Unsigned Executable File box, that is the SECURELOAD variable, and our article on the APPLOAD command in AutoCAD sets out what to do about it.

One last warning: keep dimensions out of the selection. Exploding breaks their association, and the figure stops updating itself.

The reference option and the align command

People asking about scaling between two points usually want to fit a shape to two existing marks rather than work out a factor.

The first route is inside SCALE itself. Choose Reference, and at Specify new length or [Points] <1.00>: type P. From there the new length is declared by clicking two points on the drawing.

The second is the align command, ALIGN, alias AL. It moves, rotates and scales in a single pass:

Specify first source point:
Specify first destination point:
Specify second source point:
Specify second destination point:
Specify third source point or <continue>:
Scale objects based on alignment points? [Yes/No] <N>:

The last question decides everything. Answer Y and the shape is scaled so the two source points land on the two destination points. The default is N, so anyone pressing Enter to hurry through sees the shape move and rotate without scaling.

To be clear: ALIGN also scales uniformly. It is not a way to stretch one direction.

Scaling for the right plot ratio

One misunderstanding is worth naming, because it wrecks a whole drawing package. Beginners scale geometry in model space to fit the title block, then plot. That falsifies every figure: dimensions no longer report real sizes.

The rule is to draw at true size in model space and set the ratio in the layout viewport. How to do it is in our article on layouts in AutoCAD.

There is exactly one case for scaling in model space: a drawing that arrives in the wrong units, for instance drawn in metres while your package is in millimetres. Scaling the whole drawing by 1000 once is right there, because you are correcting units rather than a plot ratio.

Three things people say that are not true

What people sayWhat the 2027 release actually does
The scale command takes separate X and Y factorsThe prompt reads Specify scale factor or [Copy/Reference]:, exactly one factor
Typing S for STRETCH scales one directionS is indeed STRETCH, but it only moves vertices: circles, text and block references do not change size at all
ALIGN stretches one direction because it asks for two point pairsIt scales uniformly; the two pairs only produce a single factor

Frequently asked questions

Which command scales one direction in AutoCAD?

No scale command does. The route is to make a block and insert it with -INSERT using a different X factor from the Y factor, or to use the SC1 lisp above to fold those four steps into one command.

Can the stretch command do it instead?

No. STRETCH moves the vertices inside the selection window by a fixed distance rather than multiplying by a factor. A circle stays a circle, text keeps its width, and a block reference keeps its factors.

Where does the circle go when the block is exploded?

It becomes an ellipse, and that is the correct result. To keep circles round, leave the result as a block reference by using SC1X instead of SC1.

Do dimensions update after scaling?

They do, if they are associated with the geometry and you include them in the SCALE selection. The block route is the opposite: exploding breaks the association, so keep dimensions out of the selection.

Where should the base point go?

On a point you want to stay where it is, usually a bottom-left corner or a centre. Click an empty spot at random and the shape comes out the right size but a long way from where you wanted it.

About the author

TS. Đỗ Quốc Hoàng — Vice Director of the Institute of Information Technology in Civil Engineering, Hanoi University of Civil Engineering, and a specialist in software development for construction