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
- Load the routine with
APPLOAD, or put it on your support file search path. - Type
FACEHOLE. - Pick the 3D face to cut.
- 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
| Name | FaceHole — cut a rectangular opening through a 3D face |
| Download | FaceHole.lsp — 8.8 KB, plain AutoLISP source. Downloads directly; no zip to unpack. |
| Type | AutoCAD AutoLISP routine |
| Command | FACEHOLE |
| Requires | nothing beyond a CAD platform with AutoLISP. |
| Source size | 8.8 KB, 196 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
- 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