//Heart shape clothespin //CC by-sa //by MatthewSt 2013 //http://www.thingiverse.com/thing: //derived from http://www.thingiverse.com/thing:34027 and http://www.thingiverse.com/thing:7680 $fn= 40; union(){ translate([5.5,-37.5,9])rotate(a=[180,0,0])heart();//uncomment this line for the second half of it difference(){ linear_extrude(height=9) polygon(points=[[0,0],[0,74],[3,74],[7,71],[7,39],[3.5,0]],paths=[[0,1,2,3,4,5]]); translate([6.3,35,-2]) cylinder(h = 14, r=2.5); translate([9.3,60,0]) cylinder(h = 14, r=4.5); translate([6.8,52,0]) cylinder(h = 14, r=1.5); translate([0,52,0]) cube([1.5,4,10]); } } width= 3; height = 9; module heart(){ union(){ scale([1,2,1]){ union(){ translate([-13,0,0]){ partial_rotate_extrude(260, 10, 20) square([width,height]); } difference(){ mirror([1,0,0]){ scale([0.9,1.2,1]){ translate([-10+(width/2),0,0]){ partial_rotate_extrude(225, 8, 20) square([width,height]); } } } translate([10,-15.7,0])cube(9); } } } translate([-19.5,-44.58,0]){ scale([1.4,2,1]){ partial_rotate_extrude(75, 10, 20) square([width,height]); } } } } //taken from: http://www.thingiverse.com/thing:34027 module pie_slice(radius, angle, step) { for(theta = [0:step:angle-step]) { rotate([0,0,0]) linear_extrude(height = radius*2, center=true) polygon( points = [ [0,0], [radius * cos(theta+step) ,radius * sin(theta+step)], [radius*cos(theta),radius*sin(theta)] ] ); } } module partial_rotate_extrude(angle, radius, convex) { intersection () { rotate_extrude(convexity=convex) translate([radius,0,0]) child(0); pie_slice(radius*2, angle, angle/5); } }