//$fn=20; $fs=0.25; module half_s(r=10) { intersection() { sphere(r=r); translate([0,0,r])cube([2*r,2*r,2*r],center=true); } } module half_c(r=5,len=10) { intersection() { rotate([0,90,0])cylinder(r=r,h=len); translate([0,0,1.5*r])cube([3*len,3*r,3*r],center=true); } } module brush() { half_s(r=3); union() { for( fi = [0,25,50,75,120]) { rotate([0,0,fi]) { translate([8,0,0])half_s(r=1.5); half_c(r=0.8,len=8); } } } } module leg0() { union() { translate([-30,-30,0])rotate([0,0,80])half_c(r=1.5,len=10); translate([-28,-20,0])rotate([0,0,-30])half_c(r=1.5,len=11); translate([-28,-20,0])half_s(r=2); translate([-30,-30,0])mirror()rotate([0,0,-80])brush(); } } module frog() { union() { leg0(); translate([-30,0,0])mirror()leg0(); translate([-30,-30,0])rotate([0,0,180])leg0(); translate([0,-30,0])rotate([0,0,180])mirror()leg0(); translate([-15,-20,0])half_s(r=8); translate([-15,-20,0])rotate([0,0,90])half_c(r=8,len=10+2); translate([-15,-5,0])scale([1,2,1])half_s(r=8.5); translate([-15+3,0,6])scale([1,0.7,2])sphere(r=2); translate([-15-3,0,6])scale([1,0.7,2])sphere(r=2); translate([-15+3,7,4])scale([1,1,2])sphere(r=1); translate([-15-3,7,4])scale([1,1,2])sphere(r=1); } } ////////////////// module main() { rotate([180,0,0]) difference() { translate([-43,-43,0.1])cube([56,60,15]); frog(); } } // main(); //import("dummyfrog6.stl"); //frog();