Moineau Soap Dispenser

by emmett, published

Moineau Soap Dispenser by emmett Jan 31, 2012

Featured Thing!

17 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


Liked By

View All

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

23946Views 3773Downloads Found in Bathroom


My girlfriend challenged me to make a hand soap dispenser that is cooler than anything we could buy at Crate & Barrel (or similar stores). The result, after a number of design iterations, is this bottle which now inhabits our bathroom.

This dispenser is designed to reduce waste in a number of ways. First, it is easily refillable, and so can be used for many years. Second, as the pump is turned, liquid soap spills from the spout back into a hole in the bottle, thus recycling any drips. Third, this design makes it easy to get as much or as little soap as you want, while commercial soap pumps often dispense more soap than necessary with a single squeeze.


Print one of each part. Twist the crank onto the rotor (it's designed to be a tight fit, but if it doesn't work with your printer's calibration, you can adjust the crank tolerance parameter in the OpenSCAD file). Slide the rotor all the way down into the pump body.

To fill, simply remove the rotor, pour liquid soap into the top of the bottle, and slide the rotor back down into place. Be careful not to fill it too full, or when the rotor is inserted the soap may overflow from the vent hole.

To use, turn the crank clockwise until enough soap is pumped up that it begins to spill from the spout. Wipe your finger up the spout to get the desired amount of soap. The crank should turn easily; soap is viscous enough that a tight seal is unnecessary. This tolerance can also be adjusted in the OpenSCAD file.

The crank drives a progressing cavity*, or Moineau, pump which was invented by René Moineau in 1930 and first described in his doctoral dissertation. His idea helped him found a company that is still around today, selling these very pumps: http://www.pcm-pump.com/pump-manufacturer/history.html

More from Bathroom

view more

All Apps

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Treatstock is an online platform that offers decentralized manufacturing services such as 3D printing and CNC machining for clients all over the world. We offer free and instant access to comparati...

App Info Launch App

3D print your favourite design with NinjaPrototype, a professional 3D manufacture with consistent quality and speed.

App Info Launch App

How would I scale this down to say 90% its original size? Would I just scale it down in my slicer or do i have to mess with the OpenSCAD file? I am not familiar with OpenSCAD so if I need to change anything, I don't know what to change.

The stl file that OpenSCAD generated for the rotor was non-manifold according to slic3r. After a bit of poking around, I found the problem:
The radius of the strait cylinder at the top of the rotor, was exactly the same as the root diameter of the rotor. This caused the two to share points/edges/triangles/something and resulted in the non-manafold STL file. The solution was to subtract some trivial amount from the radius of the strait cylinder, such that the two shared no parts.

Notice the addition of "-0.01" in the line below, from near the end of the rotor function.

Great thing, I look forward to printing it in the next few days.

hello ,nice design wanna print biut need to scale down litle be. How to proper scale?

You can probably just scale down all the components by the same percentage. If that doesn't work you'll have to dive into the OpenSCAD file. This is a pretty old design, so I can't promise very clean code...

printed nicely but rotor was supertight and got stuck, om UP min btw with crystal ABS

A high res version of this would print nicer. Still got the source?

 Sure, the source is soapPump.scad. Just fiddle with $fn, $fa or $fs to change the resolution. But beware, it'll take a lot longer to render at higher res.

Printed on a Replicator 1 (ABS), .27 layer height, 10% infill, 0 extra shells @ 80mm/s.  I've spent a ton of time calibrating my machine.  But the outcome is AMAZING.  It even pumps water!!!  The rotor fit perfectly!  Soap I'm using is a little thick, so if I turn it quickly it actually misses the drain back hole - or maybe because the pump in mine is so good :)

I always have trouble printing thin-walled structures in ABS; they always want to delaminate on me. Any tips?

Level the bed, block drafts if using ABS, maybe your temp isn't high enough... Check out my temperature tester thing I made.

Excellent application.

Something that is useful, not another idiotic i-widget that is something useless to snap onto an iphone.

Good to take and adapt for so many different applications around the house

Nice one!

These "everyday application things" are my favourite to see. real world and true to the ideals of the 3D maker revolution!

I can't wait to make this! I made your original Moineau pump and while it is a bit tough to turn, once primed it works quite well!

My hats off to you my good man!

I printed this part on a commercial 3D printer and it looks beautiful.

Too bad the rotor doesn't fit in the base because there is not enough clearance.

What machine did you use? I'm surprised a commercial printer would have less dimensional tolerance than a Makerbot. Anyway, you can change the tolerance in the OpenSCAD file. You should only need to reprint the rotor.

Have you considered adding a ratcheting mechanism to make sure that it is only turned in the proper direction?

I suppose you could do that, though I like to turn it the opposite way to push out the liquid in order to remove the rotor and refill it.

Two questions, first - shells?

Second, has anyone tried to scale this? I'm thinking about a 75% size for the bathroom. See how long it takes the wife to notice ... :-D

I assume it'l scale just fine, but just thought I'd ask.

I used zero extra shells and 10% fill; the zig-zagging fill pattern made the walls completely solid. If you want to print it smaller, don't just scale it; re-render it from OpenSCAD. The reason is that the internal pump stator is designed to be exactly two threads thick so that the tolerances are correct. Make sure the "wall" parameter is 2 times your calibrated thread width, then divide it by 0.75, and then throw a scale(0.75) in front of each part.

I had already started printing a full-scale version before I got your reply (on my new 2012 ToM). I tried 1 shell (again, I hadn't seen your reply) and the pump crank wouldn't twist on the to pump rotor. I had to reprint the crank 2% larger, and even then it was tight. But with a little trimming of the bulging base layer I was able to assemble.

As for the rotor and the body, it fits inside, but it's too tight to turn without holding the base with one hand and turning the crank with the other. Not ideal for a soap dispenser. DONT_KNOW

I wish you had included your ideal settings in your original post so that I (and maybe others?) would
n't have wasted the plastic. Or maybe you did and I just didn't see it.

It is, however, a very cool example of what the printer can do, so thank you for putting it together.

Same issue with my first shot at building, the crank requires one hand holding the body and one hand to turn. I just finished recalibrating my thread width so will see if that does the trick.

In addition to complimenting emmett on the design I want to thank him for pointing out that the zigzag pattern is water tight. I didn't know that but the body of this is shipshap and hold water!

Well, if you printed it full scale with stock TOM settings, you've probably got as good a fit as mine. I find I have to hold onto the base when I crank as well, though once it's lubricated with soap it's quite easy. I think I might make some Sugru feet for it and see if that creates enough friction to keep the base from moving. I use 0.3mm layer height, 37mm/s, for a thread width of 0.42mm. You'll only have to mess with the OpenSCAD to finely adjust tolerances or if you want a different scale or thread width.

seems a bit unhygienic.

Really? It's pretty much the same as any other soap dispenser: you touch it before you wash your hands, but then you wash them. If the idea is that the soap itself somehow gets dirty, I think that would imply that soap isn't really a cleaning agent.

I find it funny their is no figures on the sealed refill containers... for all we know there was only one tested and it could have been replaced recently...

but as Emmett says it only matters whats on your hands at the end of the process.

if your the germ phobic type you can clean/disinfect/reprint it at your pleasure.

Or as the guest implies in his second post, just use antibacterial soap.

What kind of soap is not anti-bacterial? I'm pretty sure the "anti-bacterial" designation is a marketing ploy, since all soap is anti-bacterial if it is soap at all.

A clean thing is a happy thing!

I don't think soap, by definition, is antibacterial. Soap is just a surfactant that reduces surface tension of liquids, in order to make them easier to rinse off. Anti-bacterial soaps have added chemicals which kill bacteria.

Thanks for the reading. However, I must point out that's a SellSheat by a manufacturer based on an unpublished study (it says so in the fine print). What's important is not how many bacteria are in the soap (they're on your hands too, hence why you're washing them), it's how many are left on your hands after you've rinced. The whole point of soap is that bacteria stick better to it than to us, and it sticks better to water than to us, and hence goes down the drain, along with whomever it brought.

I love that it's a completely printable device, without the need for extra hardware.

I love this. It's perfect for 3D printing - it's unique and useful! I can't wait to print it.

Super impressive once again, emmett!

This is the kind of stuff that makes people realize what consumer 3D printing is all about.

I love it and maybe even more how this came out (a cool and bold challenge ^^)...

It's one of the many things here that just show how fabulous objects people can invent... and share, thanks for that :)

love it. have you noticed any evaporation issues?

No, though I imagine only the water portion of the soap would evaporate anyway. If it gets too viscous, you can always pour a little water back in.

Hope it gets featured! This is cool!

For those of you curious about the internal workings of this design, here is a cut-away animation (click for full size). I think this design helps showcase the power of 3D printers because this bottle would be nearly impossible to fabricate any other way (at least as a single piece).

Does the bottom (internal) plane have some dish to it, so that soap tends to move toward the center?

No, it's currently flat. I figured since it's refillable, it wouldn't be that important to get the last drops out.

Awesome design!