FLEXDUCT draws flexible ductwork along a route you pick — two walls at the duct width, with the corrugated coil between them that says flexible on an HVAC drawing, and a plain collar at each end where it clamps to rigid.
What FlexDuct does
It follows a run of straight legs, rounding each corner to a bend radius, so a drop from a branch to a diffuser takes a couple of picks.
Why the coil matters. Rigid duct and flexible duct are drawn the same way but for the coil, and they are costed and installed quite differently. A run drawn without it reads as rigid, and the difference shows up on site rather than on the drawing.
How to use it
- Load the routine with
APPLOAD, or put it on your support file search path. - Type
FLEXDUCT. - Give the duct width and bend radius.
- Pick the route, leg by leg.
- Press Enter to finish. Collars are added at each end.
How it works
The coil is generated along the centreline of the run, between the two walls, so it follows the route rather than being drawn straight and bent afterwards.
The collar is proportional to the duct, not a fixed number of drawing units. Two constants written straight into the code — 9 and 7, say — work at exactly one scale, and produce a collar that is either invisible or enormous at every other.
Corners are computed, not filleted. Running the FILLET command against points picked on lines just drawn works until the radius comparison gets the sense wrong on a left-hand bend — and then it works on one corner and not the next.
Notes and limits
- Give a bend radius the duct can actually make. Flexible duct has a minimum bend radius and a tight corner throttles it.
- Collars are sized from the duct width, so they hold at any scale.
- CMDECHO is restored on every path.
- One undo group covers the run.
Download and details
| Name | FlexDuct — draw a run of flexible duct along a picked route |
| Download | FlexDuct.lsp — 8.9 KB, plain AutoLISP source. Downloads directly; no zip to unpack. |
| Type | AutoCAD AutoLISP routine |
| Command | FLEXDUCT |
| Requires | the ActiveX layer (loaded automatically by the routine with vl-load-com). |
| Source size | 8.9 KB, 205 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
- TWINOFFSET LISP — offsetting a centreline to both faces
- CURVEHUG LISP — placing diffusers and fittings along the run
- More free AutoLISP routines on this site
- Wisey’s Steel Shapes — free structural steel section drawing program