Historical Context & Motivation
Before computer-aided design existed, engineers and architects performed geometric transformations by hand — using T-squares, compasses, and tracing paper to reposition, duplicate, rotate, or flip drawing elements. These manual operations were tedious, error-prone, and consumed an enormous share of drafting time. The rise of interactive computer graphics in the 1960s and 1970s promised to automate these transformations by encoding them as affine transformation matrices applied to stored geometry — a concept that every CS student will recognize from linear algebra and computer graphics courses.
Why do these four commands deserve dedicated study? In any CAD workflow, the overwhelming majority of editing time is spent not in creating new geometry from scratch but in transforming existing objects — relocating a door assembly, duplicating a bolt pattern, rotating a section view, or mirroring a symmetric façade. Understanding how MOVE, COPY, ROTATE, and MIRROR operate at both the interface level and the mathematical level equips you to automate these operations via scripting (AutoLISP, .NET) and to reason about precision in large-scale drawings.
Core Principles & Definitions
Every modify command in AutoCAD operates on a selection set — one or more geometric entities chosen before or after invoking the command. The transformation is then defined by reference geometry: a base point, a displacement vector, a rotation angle, or a mirror axis. All four commands preserve the internal geometry of selected objects — line lengths, arc radii, and relative positions among grouped entities remain invariant under translation and rotation, while mirror adds a reflection that reverses handedness.
MOVE — Translation
COPY — Translation with Duplication
ROTATE — Rotation
MIRROR — Reflection
MIRRTEXT controls whether text entities are also reflected or kept readable.git mv (relocate), COPY is like duplicating a module into a new directory, ROTATE is like applying a coordinate transform to an object's frame of reference, and MIRROR is like generating the symmetric counterpart of a data structure. Just as you compose Git operations to manage a codebase, you compose these modify commands to sculpt a drawing.Visual Explanation — The Four Transforms
In the diagram above, note how MOVE and COPY both operate on a displacement vector (Δx, Δy) but differ in whether the source geometry persists. ROTATE requires a fixed point — the base point — and an angle measured counter-clockwise from the positive X-axis (assuming the default ANGDIR setting). MIRROR defines its axis with two points, and the reflected geometry is the exact bilateral symmetric image of the source. Observe that the 'L'-shaped polygon reverses its handedness after mirroring — a critical consideration when text or directional annotations are present.
Mathematical Framework — Affine Transformations
Each modify command corresponds to a well-defined affine transformation in 2D Euclidean space. For CS students, this is the same matrix algebra used in OpenGL, game engines, and SVG rendering pipelines. AutoCAD internally represents these transforms using homogeneous coordinates, enabling translation, rotation, and reflection to be expressed as matrix multiplications — and critically, to be composed via matrix chaining.
Detailed Command Syntax & Options
Each of the four commands follows a consistent interaction pattern: invoke the command, build a selection set, specify reference geometry, and confirm. However, each command exposes additional options that experienced users leverage for precision. The following diagram maps the decision flow for all four commands.
| Command | Alias | Key Prompt Sequence | Notable Options |
|---|---|---|---|
| MOVE | M | Select → Base point → Second point (or Displacement) | Displacement mode: type @Δx,Δy then Enter at 'second point' |
| COPY | CO | Select → Base point → Second point(s) → Enter to exit | Multiple mode (default since 2011); Array sub-option for linear/rectangular patterns |
| ROTATE | RO | Select → Base point → Rotation angle | Reference: specify current angle then new angle; Copy: keep original |
| MIRROR | MI | Select → 1st axis point → 2nd axis point → Delete source? [Y/N] | MIRRTEXT sysvar (0 = keep text readable, 1 = reflect text) |
Worked Example — Designing a Symmetric Bracket
Consider a common CAD task: you have drawn one half of a symmetric steel bracket (with bolt holes) and need to produce the full bracket, then position two copies of it at specific coordinates on a base plate. This exercise uses MIRROR, COPY, MOVE, and ROTATE in sequence.
MIRROR. Select all objects in the right half. Specify the first mirror-axis point as (0, 0) and the second as (0, 100) — defining the Y-axis as the mirror line. When prompted "Erase source objects? [Yes/No]", answer N to keep both halves.ROTATE. Select the entire bracket. Specify the base point at the bracket's center of gravity (0, 50). Enter rotation angle 30. All points transform according to the rotation formula: x' = 0 + (x − 0) × cos 30° − (y − 50) × sin 30°, y' = 50 + (x − 0) × sin 30° + (y − 50) × cos 30°.MOVE. Select the bracket. Pick the base point at (0, 50). Specify the second point as (200, 300) — the bracket's mounting location on the base plate. The displacement vector is (200, 250).COPY. Select the bracket at (200, 300). Pick the base point at (200, 300). Specify the second point as (500, 300) to place a duplicate 300mm to the right. Press Enter to exit the command.Strengths, Limitations & Command Comparisons
| Aspect | Strength | Limitation / Caveat |
|---|---|---|
| MOVE | Simple, universal; works on any entity type including blocks and xrefs. Supports displacement and two-point input. | Destructive — original position is lost. No undo within the command; you must use UNDO (Ctrl+Z) afterward. |
| COPY | Multiple copies in one invocation; useful for bolt patterns, furniture layouts, repeating elements. | Copied objects are independent — not linked. For parametric repetition, ARRAY is preferable. Increases file size proportionally. |
| ROTATE | Reference option allows aligning to an arbitrary existing angle without computing the delta. Copy sub-option preserves the original. | Only 2D rotation in model space (around Z-axis). For 3D rotation, use ROTATE3D or 3DROTATE. Precision depends on ANGDIR and ANGBASE settings. |
| MIRROR | Indispensable for symmetric designs — cuts drawing time nearly in half. MIRRTEXT = 0 keeps text readable. | Reverses handedness, which can corrupt directional annotations, leader lines, or hatch origins if not checked. Only mirrors about lines, not arbitrary curves. |
Connection to Advanced Editing & Automation
The four basic modify commands are the atomic building blocks upon which AutoCAD's more sophisticated editing features are constructed. Understanding them prepares you for ARRAY (which automates repeated COPY + ROTATE), ALIGN (which combines MOVE + ROTATE + SCALE in one step), and dynamic blocks (which embed parameterized move, rotate, and mirror actions inside reusable block definitions). For CS students interested in automation, these commands are directly scriptable through AutoLISP, .NET (C#/VB), and Python (via pyautocad).
| Basic Command | Advanced Equivalent | Key Difference |
|---|---|---|
| COPY (multiple) | ARRAY (Rectangular / Polar / Path) | ARRAY creates associative instances linked to the source; editing one updates all. COPY creates independent entities. |
| MOVE + ROTATE | ALIGN | ALIGN uses source/destination point pairs to compute the combined translation + rotation + optional scale in one operation. |
| MIRROR (manual) | Dynamic Block with Mirror Action | Dynamic blocks embed a flip/mirror parameter so end-users toggle symmetry via a grip, without rerunning MIRROR. |
| Individual commands | AutoLISP / .NET scripting | Scripting composes transforms as matrix multiplications, enabling batch processing of thousands of objects programmatically. |
(command "MOVE" (ssget "X" '((8 . "BOLTS"))) "" '(0 0 0) '(50 0 0)) — this is the same transformation matrix applied programmatically. Learning the command-line syntax of MOVE, COPY, ROTATE, and MIRROR is therefore a prerequisite for effective CAD automation.Practice Problems
Lesson Summary
The four basic modify commands — MOVE, COPY, ROTATE, and MIRROR — implement the fundamental affine transformations of translation, rotation, and reflection. Each operates on a selection set and is parameterized by a base point plus either a displacement vector, an angle, or a mirror axis. MOVE and COPY perform pure translations but differ in whether the source is preserved. ROTATE applies a 2D rotation matrix about a specified center, and MIRROR reflects geometry across a two-point axis with handedness reversal.
Precision input — including relative coordinates (@Δx,Δy), polar input (@dist<angle), and object snap — is essential for production-quality CAD work. These commands serve as the atomic operations from which advanced features like ARRAY, ALIGN, and dynamic blocks are composed, and they are directly scriptable through AutoLISP and .NET for batch automation — a skill set that bridges CAD proficiency with software engineering.