AutoCAD • Advanced Editing and Productivity

Rotate & Copy — Rotate around base point; copy while rotating (intro)

Master the ROTATE command with copy mode to duplicate and reposition geometry around a pivot point efficiently.

A drafting compass with dimension and drawing-panel symbols.
Inside this lesson 10 sections 5 questions 8 figures

SECTION 1

Historical Context & Motivation

Before computer-aided design became ubiquitous, engineers and architects produced rotational copies of geometric features—bolt circles on flanges, radially symmetric structural elements, or repeated decorative motifs—by laboriously repositioning a protractor and tracing each instance by hand. The ROTATE command in AutoCAD, and in particular its Copy option, distills this tedious manual workflow into a single parametric operation that preserves geometric accuracy down to sub-millimeter tolerances. Understanding this command is foundational for anyone seeking to automate repetitive drafting tasks—a concern that directly parallels the DRY (Don't Repeat Yourself) principle familiar to Computer Science students.

1982 • AutoCAD 1.0 Released

Autodesk ships the first version of AutoCAD for the IBM PC, introducing basic editing commands including MOVE, COPY, and ROTATE with manual angle entry.

1988 • ROTATE Copy Mode Introduced

AutoCAD Release 10 formalizes the Copy sub-option inside the ROTATE command, allowing users to duplicate objects at a specified angular offset in a single step rather than issuing COPY and then ROTATE separately.

1997 • Reference Angle Option

AutoCAD Release 14 introduces the Reference sub-option, enabling rotation by specifying the current angle and desired angle rather than computing the delta manually—a major usability leap for alignment tasks.

2006 • Dynamic Input & Grips

AutoCAD 2007 adds grip-based rotate-copy via a context menu, reducing command-line dependence and supporting visual, on-canvas angle specification with dynamic dimension display.

2020+ • Scripting & Automation

Modern AutoCAD versions expose ROTATE and COPY functionality through AutoLISP, .NET API, and Python (via pyautocad), enabling programmatic generation of radial arrays—bringing CAD closer to a software-engineering workflow.

The central question this lesson addresses is deceptively simple: how do you rotate a copy of an object around an arbitrary base point in one atomic operation, and what geometric mathematics underpin that transformation? Mastering this single command lays the groundwork for polar arrays, parametric pattern generation, and ultimately scripting rotational patterns programmatically—skills that sit at the intersection of CAD proficiency and computational thinking.

SECTION 2

Core Principles & Definitions

The ROTATE command operates on a simple but powerful geometric premise: every planar rotation can be fully described by a center of rotation (the base point), a rotation angle, and the selection set of objects to transform. When the Copy option is activated, AutoCAD clones the selection set before applying the rotation, leaving the original geometry in place. This mirrors, conceptually, a functional-programming approach to transformation—immutable source data plus a pure transformation yields a new result without side effects.

1

Base Point (Center of Rotation)

The fixed coordinate (x, y) around which all selected objects pivot. It need not lie on any selected object; it can be any snapped or typed point in model space.
2

Rotation Angle (θ)

The angular displacement, measured in degrees counter-clockwise (CCW) by default per AutoCAD's angle base. Negative values rotate clockwise (CW). The user may type a numeric value or pick two points to define the angle graphically.
3

Copy Sub-Option

Entered by typing 'C' at the angle prompt. Instructs AutoCAD to duplicate the selection set before rotating, so the original remains at its initial position and orientation while the copy assumes the new angle.
4

Reference Angle

An alternative input mode ('R') where you specify the object's current angle and its desired new angle. AutoCAD computes θ = new − current internally—useful when the existing angle is unknown or visually determined.
5

Selection Set

The group of objects to be rotated. AutoCAD supports window, crossing, fence, lasso, and individual picks. The selection must be finalized before the base-point prompt appears.
✦

KEY TAKEAWAY

Think of the base point as the axle of a wheel and your selected objects as spokes. The ROTATE command spins the spokes around the axle by the specified angle. With the Copy option engaged, you stamp a snapshot of each spoke at the new position while leaving the originals in place—much like a git branch: the original branch (geometry) persists, and the new branch (rotated copy) diverges at the specified angular 'commit.'

SECTION 3

Visual Explanation — Anatomy of a Rotate-Copy

Rotate-Copy Operation: 45° CCWBase Point (0, 0)ORIGINALr ≈ 148θ = 45°ROTATED COPYr ≈ 148Base point (pivot)Original objectRotated copyRotation arc (θ)
The diagram shows an L-shaped object (cyan) rotated 45° counter-clockwise around the base point (pink dot). Because the Copy option was active, the original remains in place while the rotated copy (violet) appears at the new angular position. Both instances sit at the same radial distance r from the pivot.

Several details deserve attention. First, the base point need not lie on or within the selected objects; placing it at the origin, a known intersection, or the center of a bolt-hole circle is a common practice. Second, every vertex of the rotated copy is exactly the same radial distance from the base point as its corresponding vertex on the original—rotation is an isometry (distance-preserving transformation). Third, the rotation direction follows AutoCAD's angle convention: positive angles are counter-clockwise when ANGDIR is set to 0 (the default). Changing ANGDIR to 1 reverses this to clockwise-positive.

SECTION 4

Mathematical Framework — 2-D Rotation Matrix

Under the hood, every ROTATE operation in AutoCAD applies a 2-D rotation matrix to each control point of the selected entities. Because the rotation can occur around an arbitrary base point B = (bx, by), the transformation is actually a sequence of three affine steps: translate to origin, rotate, then translate back. This is identical to the composite-transformation pipeline you encounter in computer graphics courses when manipulating scene graphs.

TRANSLATE-ROTATE-TRANSLATE COMPOSITE

P′=R(θ)⋅(P−B)+BP' = R(θ) · (P − B) + B

where P = (x, y) is the original point, P' = (x', y') is the transformed point, B = (bx, by) is the base point, and R(θ) is the 2×2 rotation matrix.

2-D ROTATION MATRIX

R(θ)=[cosθ−sinθ;sinθcosθ]R(θ) = [ cos θ −sin θ ; sin θ cos θ ]

θ is measured in degrees (AutoCAD internally converts to radians). For a 45° rotation: cos 45° ≈ 0.7071, sin 45° ≈ 0.7071.

EXPANDED COMPONENT FORM

x′=(x−bx)cosθ−(y−bγ)sinθ+bxy′=(x−bx)sinθ+(y−bγ)cosθ+bγx' = (x − bₓ) cos θ − (y − bᵧ) sin θ + bₓ y' = (x − bₓ) sin θ + (y − bᵧ) cos θ + bᵧ

This is the component-wise expansion of the matrix equation above. Each coordinate of the new point is a linear combination of the translated coordinates, weighted by trigonometric functions of the rotation angle.

For Computer Science students familiar with homogeneous coordinates in OpenGL or WebGL, the same operation is expressible as a single 3×3 matrix multiplication by composing T(−B) · R(θ) · T(B) where T denotes a translation matrix. AutoCAD performs precisely this composition internally when transforming entity data in its drawing database. The Copy option simply instructs the engine to write the transformed coordinates as a new entity rather than overwriting the original entity's control-point data.

ℹ

HOMOGENEOUS FORM

In 3×3 homogeneous coordinates, the full transformation is: | cos θ -sin θ bₓ(1-cos θ)+bᵧ sin θ | | sin θ cos θ bᵧ(1-cos θ)-bₓ sin θ | | 0 0 1 | This single matrix replaces the three-step translate-rotate-translate pipeline, which is exactly how GPU shader pipelines handle arbitrary-pivot rotations.

SECTION 5

Detailed Command-Line Workflow

Understanding the exact sequence of prompts and responses is critical for efficient drafting and for scripting the ROTATE command via AutoLISP or SendCommand in .NET. The command flow follows a strict state machine: selection → base point → angle prompt (with branching options for Copy and Reference). The diagram below illustrates this state machine, and the table beneath it catalogs every prompt and its valid inputs.

ROTATE Command — State Machine FlowSTARTROTATE ↵ SELECT OBJECTSPick / Window / All BASE POINTClick or type x,y ANGLE PROMPTEnter angle / Copy (C) / Reference (R)ENDangleC ↵COPY MODE ONEnter rotation angleangleR ↵REFERENCE MODESpecify ref angle → new angleENDLegendStateTransition
The state machine shows three branches from the angle prompt: (1) directly entering an angle to rotate and finish, (2) typing C to enable copy mode before entering the angle, or (3) typing R to use reference angle mode.
PromptInputEffect
Select objects:Pick, Window, Crossing, All, etc.Defines the selection set to be rotated.
Specify base point:Click point or type coordinatesSets the center of rotation.
Specify rotation angle:Numeric angle (e.g., 45)Rotates the selection by the specified angle.
[Copy] at angle promptC then EnterPreserves the original; rotates a duplicate.
[Reference] at angle promptR then EnterSpecify current angle and desired angle; AutoCAD computes delta.

ROTATE command prompt sequence and valid inputs

💡

SCRIPTING TIP

In AutoLISP, the entire rotate-copy sequence can be invoked as: (command "ROTATE" ss "" base_pt "C" angle) where ss is a selection set variable, base_pt is a point list like '(0.0 0.0), and angle is a real number in degrees. This is invaluable for generating parametric radial patterns in a loop.

SECTION 6

Worked Example — Creating a 6-Bolt Flange Pattern

Suppose you are drafting a flange plate with six equally spaced bolt holes on a bolt circle of radius 50 mm, centered at the origin (0, 0). You have already drawn one bolt hole (a circle of radius 5 mm) at (50, 0). Your task is to use ROTATE with Copy to place the remaining five holes at 60° intervals. This is a canonical application of rotate-copy that generalizes to any n-fold radial pattern.

Placing 6 Bolt Holes at 60° Intervals via ROTATE Copy

  1. 1

    Step 1 — Compute the Angular Increment

    A full circle is 360°, and we need 6 equally spaced copies including the original. The angular increment is θ = 360° ÷ 6 = 60°. Because the original already occupies the 0° position, we need five additional copies at 60°, 120°, 180°, 240°, and 300°.
    θ = 60°
  2. 2

    Step 2 — Invoke ROTATE and Select the Bolt Hole

    Type ROTATE at the command line and press Enter. When prompted to select objects, click the circle at (50, 0) and press Enter to confirm the selection set.
  3. 3

    Step 3 — Specify the Base Point

    At the 'Specify base point:' prompt, type 0,0 and press Enter. This sets the center of the flange as the pivot for rotation.
    Base point = (0, 0)
  4. 4

    Step 4 — Activate Copy Mode

    At the 'Specify rotation angle or [Copy/Reference]:' prompt, type C and press Enter. AutoCAD echoes 'Copy mode = ON' and re-prompts for the rotation angle.
  5. 5

    Step 5 — Enter the Rotation Angle

    Type 60 and press Enter. AutoCAD places a copy of the circle at 60° CCW—i.e., at approximately (25, 43.3). The original at (50, 0) is preserved.
    Copy placed at ≈ (25.0, 43.3) — verification: 50 × cos 60° = 25, 50 × sin 60° ≈ 43.3 ✓
  6. 6

    Step 6 — Repeat for Remaining Copies

    Repeat the ROTATE command (or press Enter to re-invoke the last command) four more times, each time selecting all existing bolt holes and entering 60° with Copy. Alternatively, select only the original circle each time and enter 120°, 180°, 240°, and 300° respectively. For maximum efficiency, use the ARRAYPOLAR command, which wraps this entire workflow into a single invocation—but the manual rotate-copy method is essential knowledge for understanding what ARRAYPOLAR automates.
    Six bolt holes at 60° intervals: 0°, 60°, 120°, 180°, 240°, 300°
💡

EFFICIENCY NOTE

For patterns with many instances, ARRAYPOLAR (introduced in AutoCAD 2012) is the production-ready tool. However, ROTATE with Copy remains the fundamental building block: ARRAYPOLAR is essentially a loop of rotate-copy operations with an associative wrapper. Understanding the primitive helps you debug and script the higher-level command.

SECTION 7

Strengths, Limitations & Comparison with Alternatives

The ROTATE-with-Copy workflow is just one of several strategies for creating rotationally displaced duplicates in AutoCAD. Each alternative makes different trade-offs between interactivity, associativity, and scriptability. The table below compares the most common approaches, enabling you to choose the right tool for a given context—much as you would choose between a for-loop and a map/reduce pipeline depending on the problem's complexity and readability requirements.

MethodStrengthsLimitations
ROTATE + CopySimple, fast for one-off copies. Works on any selection set. Full control of base point. Easily scripted.Only creates one copy per invocation. Non-associative—editing the original does not update copies.
ARRAYPOLARCreates many copies in one command. Associative by default—editing the source updates all instances. Built-in item count and fill-angle options.Less transparent to beginners. Associativity can cause unexpected edits. Overkill for a single copy.
COPY + ROTATE (separate)Explicit two-step process; easy to understand. Can copy to a specific location before rotating.Two commands instead of one. Risk of mis-selecting the copy or misaligning the base point between operations.
Grip Rotate-CopyFully visual, on-canvas workflow via blue grips. Hold Ctrl during grip rotation to clone.Requires clicking on an entity grip—cannot specify an arbitrary base point easily. Not scriptable.
Dynamic Block with Rotate ActionReusable, parametric. Angle can be constrained. Ideal for repeated-use components.Significant setup overhead. Requires Block Editor knowledge. Not suitable for ad hoc geometry.

Comparison of rotational duplication methods in AutoCAD

⚖️

WHEN TO USE WHICH

Think of ROTATE + Copy as the equivalent of a manual function call—fine for a few invocations, transparent, and easy to debug. ARRAYPOLAR is the library function: more abstract, handles the loop for you, and maintains referential integrity. Use the primitive when learning or scripting bespoke patterns; use the library when you need repeatability and associativity in production drawings.

SECTION 8

Connection to Advanced Topics — Polar Arrays & Parametric Automation

The rotate-copy operation you have learned is the atomic building block for several advanced AutoCAD features and workflows. Understanding its mechanics enables you to reason about—and debug—these higher-level constructs, which abstract away the low-level geometry manipulation behind convenience interfaces.

This Lesson (ROTATE + Copy)Advanced Extension
Single copy at a specified angleARRAYPOLAR — n copies distributed over a fill angle, with optional associativity
Manual base-point selectionGeometric constraints (GCENTER) — parametrically lock the center, allowing design-intent-driven changes
Typed angle valueDimensional constraints — define angle as a parameter expression (e.g., 360/n) that auto-updates
Single command invocationAutoLISP / .NET loop — programmatic iteration with conditional logic and data-driven parameters
2-D rotation matrix3-D rotation (ROTATE3D) — rotation about an arbitrary axis in 3-D space using Rodrigues' formula or quaternions

Mapping introductory concepts to advanced extensions

From a Computer Science perspective, the progression from ROTATE+Copy to ARRAYPOLAR to AutoLISP scripting mirrors the abstraction hierarchy you encounter in software engineering: assembly → standard library → framework. The rotate-copy command is the 'instruction'; ARRAYPOLAR is the 'library call'; and a parametric AutoLISP routine that reads bolt-count from a CSV file and generates arbitrary patterns is the 'application.' Each layer hides the complexity beneath it, but understanding the lowest layer—rotation about a base point with copy semantics—gives you the power to troubleshoot and extend the higher layers when they fall short.

ℹ

LOOKING AHEAD

In the next lesson module on Polar Arrays, you will use ARRAYPOLAR to replicate geometry with associativity enabled. You will also learn to EXPLODE an associative array back into independent objects—effectively reversing the abstraction to regain fine-grained control, which is directly analogous to 'ejecting' from a framework in web development.

SECTION 9

Practice Problems

Question 1: CONCEPTUAL

Explain why the base point does not need to lie on or within the selected objects. What geometric property of rotation makes this possible, and how does it relate to the concept of an isometry?
Show answer
A rotation is defined solely by a center point and an angle; it does not require the center to coincide with the object being rotated. The transformation is an isometry—it preserves all distances and angles within the rotated geometry. Every point moves along a circular arc centered at the base point, and the radius of that arc equals the point's distance from the base point. Because the rotation matrix R(θ) operates on the vector (P − B), any base point B is valid: the vector simply defines the radial arm. This is analogous to how a function f(x − a) shifts a graph horizontally by a without requiring a to be in the function's domain.

Question 2: BASIC CALCULATION

A circle is centered at (80, 0) and you rotate-copy it around the base point (0, 0) by 90° counter-clockwise. Using the 2-D rotation equations, compute the exact coordinates of the copy's center.
Show answer
Using x' = (x − bx) cos θ − (y − by) sin θ + bx and y' = (x − bx) sin θ + (y − by) cos θ + by: x' = 80 × cos 90° − 0 × sin 90° + 0 = 80 × 0 − 0 = 0. y' = 80 × sin 90° + 0 × cos 90° + 0 = 80 × 1 = 80. The copy's center is at (0, 80). This makes geometric sense: a 90° CCW rotation moves a point on the positive x-axis to the positive y-axis, preserving its distance from the origin.

Question 3: INTERMEDIATE

You need to create a gear-tooth pattern where 18 teeth are equally spaced around a pitch circle centered at (100, 200). One tooth profile already exists at (130, 200). Describe the complete ROTATE-copy sequence (including how many times you invoke the command, what base point you use, and what angle you enter each time) to produce all 18 teeth.
Show answer
The angular spacing is 360° ÷ 18 = 20°. The base point is (100, 200)—the center of the pitch circle. The most efficient manual approach is to invoke ROTATE once, select the original tooth, set base point to 100,200, type C for Copy, and enter 20°. This creates tooth #2. Then re-invoke ROTATE, select the original tooth again, same base point, Copy, enter 40°. Continue incrementally (60°, 80°, …, 340°) for a total of 17 invocations. A far more efficient strategy is to use ARRAYPOLAR with 18 items and 360° fill angle, but if only ROTATE+Copy is available, the 17-invocation approach is necessary. Alternatively, after each copy, you could select only the most recent copy and always rotate by 20°, which avoids accumulating angle values but still requires 17 steps.

Question 4: APPLIED

You are writing an AutoLISP function to generate a parametric bolt-circle pattern. The function accepts three arguments: center point, bolt-circle radius, and number of bolts. Write pseudocode (or actual AutoLISP) for the loop that uses ROTATE with Copy to place all bolt holes, and explain how the rotation angle is computed at each iteration.
Show answer
Pseudocode: function boltCircle(center, radius, n): angle_inc = 360.0 / n // Draw first bolt hole at (center.x + radius, center.y) drawCircle(center.x + radius, center.y, boltRadius) ss = selectLast() for i from 1 to n-1: command("ROTATE", ss, "", center, "C", angle_inc * i) end The rotation angle at iteration i is angle_inc × i (i.e., 360/n × i), because each ROTATE operates on the original bolt hole (not the last copy), so the cumulative angle must be specified. If you instead select the last-created copy each time, you would always pass angle_inc as the angle. The choice parallels absolute vs. relative positioning in programming.

Question 5: CRITICAL THINKING

Consider a scenario where you rotate-copy a polyline by 30° around base point A, then rotate-copy the result by 30° around a different base point B. Is the net effect equivalent to a single 60° rotation around some third point? Justify your answer using the properties of rotation composition, and describe a real-world drafting situation where non-commutative rotations matter.
Show answer
In general, the composition of two rotations about different centers is not equivalent to a single 60° rotation about a specific point unless special geometric conditions are met. By the rotation composition theorem in Euclidean geometry, R(B, 30°) ∘ R(A, 30°) produces either a rotation about a third center C (if the total angle 60° ≠ 360°) or a pure translation (if the total angle is a multiple of 360°). The center C depends on the positions of A and B and is generally not the midpoint of A and B. Crucially, the operation is non-commutative: swapping the order of the rotations yields a rotation about a different center. A real-world drafting situation where this matters is aligning a component that must pivot about a hinge point (A) and then orbit around an assembly center (B)—such as a robotic arm link: rotating the forearm about the elbow and then the upper arm about the shoulder produces a fundamentally different end-effector position than the reverse order.

SUMMARY

Lesson Summary

Summary

The ROTATE command in AutoCAD pivots selected geometry around a user-specified base point by a given rotation angle. When the Copy sub-option (invoked by typing C at the angle prompt) is engaged, AutoCAD duplicates the selection set before applying the rotation, preserving the original geometry in place—analogous to a non-destructive transformation. The underlying mathematics is a 2-D rotation matrix applied after a translate-to-origin step, expressible as P' = R(θ) · (P − B) + B.

This fundamental operation serves as the building block for polar arrays (ARRAYPOLAR), parametric pattern scripting in AutoLISP and .NET, and more advanced 3-D rotational workflows. Key practical details include the Reference angle mode (type R) for aligning objects to a known orientation, the role of ANGDIR in determining positive-angle direction, and the grip-based rotate-copy shortcut (Ctrl + grip drag). Mastering this command equips you with the conceptual and mathematical toolkit to approach any rotational duplication task in AutoCAD, whether manual or programmatic.

Varsity Tutors • AutoCAD • Rotate & Copy — Rotate around base point; copy while rotating (intro)