For our OpenSCAD Project, Carissa and I decided to create a comb. We found that it was too ambitious to make it foldable because the printer isn’t capable of printing it.

For our final comb we revised a couple things. We separated the teeth to be further than a regular comb in order to print properly. We also widened the outer teeth so it would provide structure. We rounded the teeth ends as well, before they were cone-shaped, this makes it more practical. The body of the comb is longer so that it covers a larger amount of hair.

It tuned out really nice and is very usable. We printed it on the Ultimaker and it printed great. We were really excited to see it print perfectly the first time printing it after our final revised code.


Code:

// BY_CRC customizable comb

// 2013-08

//

 

frame_length = 120; // length of frame in mm

frame_width = 8; // width of frame in mm

frame_height = 15; // height of frame in mm

frame_end_tooth_radius = frame_width / 2; // radius of first and last tooth in mm

 

// tooth radius calculated later

tooth_radius = 3 ; // radius of a tooth in mm

tooth_length = 25; // length of a tooth in mm

tooth_amount = 15; // number of teeth

factor = 0.75; // tooth tip / tooth base factor

 

z = frame_height – 1;

y = tooth_radius + (frame_width – tooth_radius – tooth_radius) / 2;

// x in for loop

 

module tooth(radius, length, x, y, z){

translate ( [x, y, z] )

cylinder (h=length, r1=radius, r2=radius*factor, $fn=60);

translate ( [x, y, z+length] )

sphere (r=radius*factor, $fn=60);

}

 

module frame(length, width, height){

cube ( [length, width, height] );

}

 

union(){

frame(frame_length, frame_width, frame_height);

tooth(frame_end_tooth_radius, tooth_length+frame_height-1, 0, y, 0);

tooth(frame_end_tooth_radius, tooth_length+frame_height-1, frame_length, y, 0);

 

for (i = [0:frame_length/tooth_amount:frame_length]) {

tooth(tooth_radius,tooth_length, i, y, z );

}

}