**Baby's Bottle Milk Powder Dispenser - Introduction of concept -**

1,66 year ago, I became a dad!

Among the many new stuffs I discovered there is one thing I never get used with :

Pour a 30mm diameter spoon, full of a fine milk powder, into a 34mm baby’s bottle opening !

A really difficult task for me , especially in the middle of the night!

So, I though about building this powder milk dispenser for baby's bottle.

The principle is easy:

manually dispense, in a more controlled way a defined number a measure into a baby's bottle without any loss.

The milk powder box is placer upside down on the top of the dispenser.

The milk is dispensed into the baby's bottle through a funnel

The powder flow is controlled with a rotative spoon place in the middle of the funnel which volume correspond to the measure sold with the milk (12ml). Each rotation corresponding to a the dispense of one measure.

As in my previous, and first , 3D instructable, I used OpenScad to design the object: a precise and easy to use command line editor. (Yes, "easy to use " and "command line" are compatible words! ;) ) and I print the object using 3DHubs services.

Parts and design are detailed in the following steps!

If you like My project, thanks for voting on the right corner for the 3DContest!

## Step 1: The Code...

The dispenser contains 3 parts:

- the top funnel on which the milk bottle is placed.

- The dispenser mesure that manualy rotate to dispense a defined volume of milk powder

- The dispenser tube that dispense the milk into the baby bottle

-Optional feet (not shown on image)

Find bellow the Openscad code to generate the dispenser model:

The code is oganised in 3 sections: Parameter and value, and one section per parts

You can generate the model to have a full overview, or generate only one part for printing

//PARAMETERS _____________________________

r=22; //radius sphere dispenser

epd=2;// thickness dispenser

rb=13; //radius baby's bottle openning

ep=4; //wall thickness

tol=0.5; //tolerance

h=30; //plate height

R=130/2;//Radius milk box

dm=10; //diametre manivelle

sec=4; //section fixation manivelle

lm=40; //lengh manivelle

dp=18; //diametre handle

n=1; //cavity number in dispenser

H=155; //dispenser height

DP=10; //feet diameter

res=100; //reslution

// DISPENSER MEASURE______________________________________________________

//rotate([0,90,0])

union(){ // dispenser

difference() { //sphere wall

sphere(r=r,$fn=res); // sphere ext

sphere(r=r-2,$fn=res); //sphere int

for(i=[1:n])rotate([i*360/n,0,0]) //quarter cut

translate([-r,epd,epd]){cube(size = [2*r, r, r]);}

}

difference() { //measure

difference() {

sphere(r=r,$fn=res);

for(i=[1:n])rotate([i*360/n,0,0]) // quarter cut

translate([-r,epd,epd]){cube(size = [2*r, r, r]);}

}

for(i=[1:n])rotate([i*360/n,0,0]) translate([0,r/1.4,r/1.4]) sphere(r=r,$fn=res); //measure cut

}

translate([-r+tol,0,0])rotate([0,90,180]) {cylinder(h=3*ep, d=dm,$fn=res);} //axe 1

translate([r+lm-1,0,0]){rotate([0,90,180]) {cylinder(h=lm, d=dm,$fn=res);}} //axe manivelle

rotate([0,90,0]) {translate([0,0,lm+r-1]){cylinder(h=r, d=dp,$fn=res);} } //handle

for(i=[1:10])rotate([i*360/10,0,0]) //grip

translate([r+lm-1,0,dp/2]){rotate([0,90,0]) {cylinder(h=r, d=dm,$fn=res);}

}

}

//DIPSPENSER TUBE__________________________________

union() {

difference() {

cylinder(h=r, r=r+ep,$fn=res);

sphere(r=r+tol,$fn=res);

cylinder(h=3*r, r=rb,$fn=res,center=true);

rotate([0,90,0]) {

cylinder(h=3*r, d=dm+tol, center=true,$fn=res);

}

}

translate([0,0,r]){ // funnel

difference() {

cylinder(h=r/2, r1=r+ep, r2=rb+ep,$fn=res);

cylinder(h=r, r=rb,$fn=res,center=true);

cylinder(h=0.05, r=r+tol,$fn=res, center=true); //debug hi

cylinder(h=2*r, r=rb,$fn=res); //debug lo

}

}

difference() { // fixation

union() {

translate([0,-r/2-R/2-tol-ep/2,r/2]){cube(size = [2*ep,R-r+ep,r], center=true);}

translate([0,-3*r-ep,r/2]){cube(size = [2*r,ep,r], center=true);}

}

translate([r/2,-3*r,r/1.3]){cube(size = [ep,4*ep,r/2], center=true);}

translate([-r/2,-3*r,r/1.3]){cube(size = [ep,4*ep,r/2], center=true);}

}

}

//TOP FUNEL______________________________________________

union(){

rotate([0,180,0]) {

difference() {

cylinder(h=h, r1=r+ep, r2=R+ep,$fn=res);

cylinder(h=h+tol, r1=r+tol, r2=R-ep,$fn=res);

translate([0,0,-1]) { cylinder(h=h, r=r+tol,$fn=res);}

rotate([0,270,0]) {

cylinder(h=4*r, d=dm+tol, center=true,$fn=res);

}

for(i=[1:3])rotate([0,180,-60+i*360/3]){ //hole

translate([R-ep/2,0,-h+ep]){

cylinder(h=H+h+r, d=DP,$fn=res);

}}

}

translate([0,0,h]){

difference() {

cylinder(h=ep, r=R+ep,$fn=res);

cylinder(h=2*h, r=R+tol, center=true,$fn=res);

}

}

}

}

//OPTIONAL FEET___________________________________________

*for(i=[1:3])rotate([0,0,-60+i*360/3]){

translate([R-ep/2,0,-h+ep/3]){

cylinder(h=H+h+r+r/2, d=DP);

}

}

## Step 2: From Code to Reality

I printed the parts in PETG to ensure a compatibility with food using 3DHUBs service!

I just need to find a way to have a nice glossy polish of PETG to improve cleanability and a better powder flow into the funel ... If you have any advices for polishing, I'm interested!

Thanks for your interest!