• Skip to main content
  • Skip to primary sidebar
  • Skip to footer
blog.draftsperson.net

blog.draftsperson.net

the art of technical drawing

blog.draftsperson.net

BASEPIN LISP: Move a Block’s Base Point Without Redefining

August 3, 2026

A block created with its base point at some arbitrary corner never snaps where you want it, and the usual fix is exploding and rebuilding it. BASEPIN shifts the base point instead and updates every reference in the drawing.

What BasePin does

The base point is the grip you insert and rotate a block by. Moving it properly means changing the definition and then dealing with every existing reference — which is the part that makes people explode the block instead.

There are two commands, and the difference matters.

BASEPIN keeps each reference’s insertion coordinates the same. The geometry therefore appears to move, swinging around the unchanged insertion point. Use this when the block is inserted at meaningful coordinates — a survey point, a grid intersection — and those coordinates must not change.

BASEPINHOLD keeps each reference’s visual position the same. Every reference is moved to compensate, so nothing appears to shift; the insertion coordinates change instead. Use this when the drawing already looks right and you only want a better grip point. This is usually the one you want.

How to use it

  1. Load the routine with APPLOAD, or put it on your support file search path.
  2. Decide which behaviour you need — hold the coordinates (BASEPIN) or hold the appearance (BASEPINHOLD).
  3. Type that command.
  4. Select the block.
  5. Pick the new base point.
  6. If you undo afterwards, run REGEN — see the note below.

How it works

Locked layers are handled rather than skipped. They are temporarily unlocked and relocked afterwards, so references sitting on a locked layer are not silently left behind at the old base point — which would leave the drawing in a worse state than before, and quietly.

Attributed blocks get an ATTSYNC afterwards, which repositions their attributes relative to the new base point. Without it the attributes stay where they were and drift away from the block that owns them.

Rotated, scaled and mirrored references all work. The shift is transformed through each reference’s own placement rather than being applied as a flat displacement, so a block inserted at 30° and scaled 2× moves by the right amount in the right direction.

Notes and limits

  • After an undo, run REGEN. The change to the block definition is undone correctly, but the display does not refresh on its own, so the drawing looks unchanged until you regenerate. This is the one surprise in the routine and it is worth knowing before you need it.
  • Choose the right command. BASEPIN preserves coordinates and moves the geometry; BASEPINHOLD preserves the appearance and moves the coordinates.
  • It changes the block definition, so every reference in the drawing is affected, not just the one you selected.
  • Dynamic blocks with position-dependent parameters should be checked afterwards — their parameters are measured from the definition’s origin.

Download and details

NameBasePin — move a block definition’s base point without redefining it
DownloadBasePin.lsp — 13.9 KB, plain AutoLISP source. Downloads directly; no zip to unpack.
TypeAutoCAD AutoLISP routine
CommandsBASEPIN, BASEPINHOLD
Requiresthe ActiveX layer (loaded automatically by the routine with vl-load-com).
Source size13.9 KB, 342 lines
Error handlingYes — a *error* handler restores every system variable it changed, on cancel as well as on error.
UndoThe whole operation is wrapped in a single undo group, so one U reverses all of it.
CompatibilityAutoCAD (any release with AutoLISP), BricsCAD, ZWCAD, GstarCAD, ProgeCAD and other IntelliCAD-based platforms. AutoCAD LT needs a LISP enabler. No .NET, no ObjectARX, no installer.
AuthorYZ, August 2026
LicenceFree to use, supplied “as is” with no warranty.

References

  • BSCALE LISP — scale blocks about their own insertion point
  • FixBlock LISP — reset block entities to layer 0
  • UPDBLOCK LISP — change layer or colour inside block definitions
  • More free AutoLISP routines on this site
  • Wisey’s Steel Shapes — free structural steel section drawing program

Filed Under: AutoLISP Routines

Primary Sidebar

Subscribe to our Youtube Channel

Post CAD drafting jobs on Freelancer.com. and get some free money to do this.

Categories

  • American Steel Industry (4)
  • AutoCAD Articles & Reference (30)
  • AutoCAD Bugs & Problems (19)
  • AutoCAD Tips (29)
  • AutoCAD Tutorials (54)
  • AutoLISP Routines (328)
  • AutoLISP Tutorials (15)
  • CAD Standards (7)
  • Civil 3D (7)
  • Civil Drafting (4)
  • Dimensions (2)
  • Drafting Funnies (71)
  • Drafting History (9)
  • Drafting Standards (84)
  • Electrical Drafting (2)
  • General IT reference (7)
  • Geometry (15)
  • GIS (2)
  • Hatch Patterns (12)
  • Office Life Hacks (3)
  • PT (1)
  • Revit Tutorials (54)
  • Steel Detailing (14)
  • Structural Drafting (26)
  • Technical Dictionary (61)
  • Useful Website Links (19)

Footer

Free downloads

  • Free AutoLISP routines
  • Free hatch patterns
  • SHX fonts & text styles
  • Numbering LISP collection
  • ISO 3098B font

Reference charts

  • AWS weld symbols chart
  • Steel detailing chart
  • Hole & slot sizes
  • Bolt edge distance
  • ANSI & ARCH paper sizes
  • How to fold an A1 drawing

Useful links

  • CAD blocks (DWG)
  • Revit families
  • structuraldrafter.com
  • cad-corner.com
  • About
  • Privacy policy

Provided for free with no warranty · Log in