Run SPYGLASS and a green ring follows your cursor. Sweep it over the drawing and every object it touches reports itself in a floating label: type, layer, colour, linetype, lineweight, and whatever else is relevant — radius for a circle, length for a line, area for a closed polyline, the full attribute list for a block.
What SpyGlass does
No clicking, no dialog, no Properties palette taking up half the screen. You move the mouse and the drawing explains itself.
The second mode turns the same ring into a layer isolator. Click any object and every layer except its own is switched off, so you can see one system at a time in a crowded drawing. Shift-click puts them all back.
Controls: move the mouse to inspect, TAB switches between inspect and isolate, + and - resize the ring, Enter, Space or Escape finish.
How to use it
- Load the routine with
APPLOAD, or put it on your support file search path. - Type
SPYGLASS. - Sweep the ring over the drawing. Objects report themselves as it touches them.
- Press
TABto switch to layer isolate, then click an object to isolate its layer. - Shift-click to switch every layer back on. Press Enter or Escape to finish.
How it works
The whole command lives inside a grread loop, which reports mouse movement and keystrokes continuously without ending. Two temporary entities are created up front on a scratch layer: a circle, which is the visible ring, and an MText, which is the floating label. On every mouse move both are repositioned by editing their entity data directly with entmod and entupd — far faster than erasing and recreating them, which is what makes the display keep up with the cursor.
Detection is two-stage, and both stages are necessary. A crossing-window selection over the ring’s bounding square finds the handful of candidates cheaply. Then each candidate is tested with IntersectWith against the ring itself, so only objects the ring genuinely crosses are reported. Stage one alone would report anything in the square’s corners; stage two alone would mean testing every object in the drawing on every mouse move.
Property reporting walks a table rather than testing types. The inspector goes through a list of property names and asks each object whether it has that property. A circle answers to RADIUS and AREA but not TEXTSTRING; a line answers to LENGTH but not RADIUS. Nothing needs to know in advance what it is looking at, and an object type nobody anticipated still reports everything it can.
A few properties get special treatment because their raw values are meaningless to read: colour and lineweight are enumerations that need naming, angles need formatting to the drawing’s angular units, and justification codes need looking up.
Notes and limits
- An object entirely inside the ring is not reported, because it does not intersect it. Shrink the ring with
-and it will be picked up. - Shift detection needs Express Tools. Without it,
TABback to inspect mode and re-run, or useLAYON. - Everything is restored on exit — ring size, mode, and the layers that were on when the command started — including after an error or a cancel.
- Blocks report their effective name, insertion count, whether they are dynamic or an xref, and every attribute value.
Download and details
| Name | SpyGlass — hover over objects to inspect them, or isolate their layers |
| Download | SpyGlass.lsp — 34.6 KB, plain AutoLISP source. Downloads directly; no zip to unpack. |
| Type | AutoCAD AutoLISP routine |
| Command | SPYGLASS |
| Requires | the ActiveX layer (loaded automatically by the routine with vl-load-com). |
| Source size | 34.6 KB, 830 lines |
| Error handling | Yes — a *error* handler restores every system variable it changed, on cancel as well as on error. |
| Undo | The whole operation is wrapped in a single undo group, so one U reverses all of it. |
| Compatibility | AutoCAD (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. |
| Author | YZ, August 2026 |
| Licence | Free to use, supplied “as is” with no warranty. |
References
- XRAY LISP — the full property list of one object, in detail
- STRAYHUNT LISP — finding objects that do not belong
- LAYERHARVEST LISP — auditing layers across a whole folder
- More free AutoLISP routines on this site
- Wisey’s Steel Shapes — free structural steel section drawing program