Skip to main content

Overview

A pragmatic approach to OpenSCAD design#

Built with ❤ by the CadHub team (repo)#

Round-Anything is primarily a set of OpenSCAD utilities that help with rounding parts, but it also embodies a robust approach to developing OpenSCAD parts. I built this library to solve some of my own struggles with rounding and OpenSCAD, and I've been happy to see other's are finding it useful too.

The Why#

The truth is fillets, internal fillets, in particular, can be a real pain to add in openscad. And the more you move away from shapes with 90 degree angles, the more difficult it becomes. Effectively there is a complexity ceiling on parts with fillets you can produce in OpenScad. Because of how important fillets in both making an appealing and strong part (by reducing stress concentration), a library that focuses on fillets as a core principle makes for a solid foundation for your parts. Furthermore, the heart of the library revolves around the polygon, this is because we're leveraging the battle-tested paradigm of extruding from 2d sketches of most CAD packages. I can't imagine making an OpenSCAD part without Round-Anything.

Below is an overview of the library's features, For documentation of its API click here. There's also a timelapse of a part made using the library.

A video version of this article can be found here:

Features#

polyRound#

It's like polygon, but upgraded to allow rounding of any of the points.

Live Demo

polyRoundExtrude#

Piggy backs on polyRound, Allowing fillets on the ends of polyRound extrutions. A negative vaule will flare the end out for a transition to flat, useful for creating filleted negatives for use with difference.

Live Demo

Radius Conflict resolution#

By default, fillets are automatically scaled to remove any give pair of subsequent fillets from conflicting (if they are too big and too close together). The feature can be opted out of.

Live Demo

translateRadiiPoints - Point translation helpers#

Aids in the reuse of polygon of points. To keep a single source of truth and for editing them together.

Live Demo

shell2d#

Self-explanatory, when combined with poly round, it gives a nice smooth transitioning shell.

Live Demo

beamChain#

Unlike a regular polygon, where the last point is joint to the first to complete the shape. Instead, we can treat each set of points as a beam without it wrapping at the end. We can round the transitions between the beams and combine with other points, to form more complex shapes.

An offset from the normal gives beams their thickness.

mirrorPoints#

Live Demo

For mirroring a set of points. The benefit of this over using the native OpenSCAD mirror transformation is the ability to put smooth radii along the mirrored plane.

extrudeWithRadius#

Similar to PolyRoundExtrude but is more generic. It will work with any 2d shape, though uses a more hacky and less proformant method. Use polyRoundExtrude instead if you can

Live Demo

minkowskiRound (not recommended)#

A power tool for rounding all edges of a design after the fact. Adjustable for external and internal radii.

Due to how slow Minkowski is, this helper is not recommended and may be deprecated in the future.