Parametric teardrop script

by whosawhatsis, published

Parametric teardrop script by whosawhatsis Jun 30, 2010



Parametric teardrop script by whosawhatsis is licensed under the GNU - LGPL license.

Liked By

View All
Poor man's dust mask

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

5920Views 737Downloads Found in Math


This script generates a teardrop shape at the appropriate angle to prevent overhangs greater than 45 degrees. The image shows a 45-degree rotation (no teardrop), a 60-degree rotation (shallow teardrop), and a 90-degree rotation (full 45-degree teardrop). This allows you to make holes at any angle that are as round as possible.

I actually came up with two solutions to this problem, because a bug was making my first solution take FOREVER to calculate. The second solution is still in the file, but has been commented-out.


The angle is in degrees, and is a rotation around the Y axis. You can then rotate around Z to point it in any direction. Rotation around Y or Z will cause the angle to be wrong. The module is intended to be used inside a difference statement.

More from Math

view more

All Apps

Upgrade this Thing with Thingiverse Apps

No results.

Could you license this as LGPL, so I could easily incorporate it into http://github.com/elmom/MCADhttp://github.com/elmom/MCAD

This seems extremely complicated way. I do it like this:

module teardrop()


I've done it that way too, but that will create a 45 degree angle on the top of the teardrop no matter what direction the hole actually points. A horizontal hole needs that, but a vertical hole or even one at 45 degrees doesn't need any. A hole between 45 degrees and horizontal does not need the full 45-degree teardrop, but only a shallow one like the middle example in the attached picture. The point of doing it this way is to only create as much of a teardrop shape as necessary to avoid an overhang exceeding 45 degrees.

This is very useful! Smart usage of the projection feature, too.
You could further improve it so that it truncates the teardrop when the top spans only a small, configurable length. In many cases this allows you to have even more round holes (but depending on printer settings). My parametric script also uses a global overhang variable, might be an idea to keep? Though this script is nice and simple.