• 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

FACEHOLE LISP: Punch an Opening Through a 3D Face

August 6, 2026

FACEHOLE cuts a window or door opening in a wall built from 3D faces. Pick the face, pick two corners for the opening, and the face is replaced by four faces that surround the hole — so the wall still reads as solid, still hides what is behind it, and still shades, but now has a hole in it.

What FaceHole does

Meant to go with HOUSESHELL, which builds the walls this cuts into.

How to use it

  1. Load the routine with APPLOAD, or put it on your support file search path.
  2. Type FACEHOLE.
  3. Pick the 3D face to cut.
  4. Pick two opposite corners of the opening.

How it works

Why four faces and not one with a hole. A 3D face is a flat triangle or quadrilateral and cannot have a hole in it. The only way to make an opening is to surround it: a face above, one below, and one each side.

The joins between those four would normally show as lines across the wall, so the edges along each join are marked invisible and the wall reads as one surface again.

Which edges those are is held in DXF group 70 as a bit per edge: 1 for the first, 2 for the second, 4 for the third, 8 for the fourth.

The original face’s own hidden edges are carried across, so a wall that has already been tidied up does not sprout lines where it used to be clean.

Notes and limits

  • Rectangular openings. A 3D face cannot describe anything else.
  • The UCS is restored with UCS Previous, so no named UCS is left behind in the drawing.
  • CMDECHO is restored to what it was, not set to 1.
  • One undo group covers the four replacement faces.

Download and details

NameFaceHole — cut a rectangular opening through a 3D face
DownloadFaceHole.lsp — 8.8 KB, plain AutoLISP source. Downloads directly; no zip to unpack.
TypeAutoCAD AutoLISP routine
CommandFACEHOLE
Requiresnothing beyond a CAD platform with AutoLISP.
Source size8.8 KB, 196 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

  • HOUSESHELL LISP — build the walls this cuts into
  • WINDOWSYMBOL LISP — the window symbol in plan
  • 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