Cad exercises 04 OpenSCAD
One of the cad exercises I tried out.
Have no idea what the thing is used for.
Find more at: https://openscadsnippetpad.blogspot.com/
$fn=16; main(); module main(){ color("lightgrey") { head(); arm(); foot(); } } module head() { difference(){ union(){ translate([150,-6,38+17])mirror([1,0,1])ocorner(3);//trim translate([150, 6,38+17])mirror([1,0,1])ocorner(3);//trim translate([147,-12,38+14+3])cube([7,18+6,27]);//trim translate([147,-6,38+11])cube([7,18-6,33]);//trim difference(){ translate([150,-16,38])cube([60,32,44]); translate([150,0,38+44])mirror([0,0,0])mirror([0,-1,-1]) otrim(34);//trim } } translate([147,-12,38+11])cylinder(44,3,3);//trim translate([147,12,38+11])cylinder(44,3,3);//trim translate([147, 0,38+11]) rotate([90,0,0]) cylinder(44,3,3,center=true);//trim translate([147,-12,38+44])mirror([0,0,1]) ocorner(3);//trim translate([147, 12,38+44])mirror([0,0,1]) ocorner(3);//trim translate([175, 0,38+22])rotate([90,0,0]) cylinder(44,15,15,center=true,$fn=64);//trim translate([200, 0,38+22])rotate([0,0,0]) cylinder(45,4.5,4.5,center=true,$fn=16);//trim translate([200, 0,38+22])rotate([0,0,0]) cylinder(2,30,30,center=true,$fn=16);//trim } } module arm() { difference(){ translate([70,-9,38+14])cube([80,18,30]); //trim translate([110,-9,52])mirror([0,0,1])mirror([1,0,1])otrim(81); translate([110,9,52])mirror([0,1,-1])mirror([1,0,1])otrim(81); translate([110,-9,82])mirror([0,0,1])mirror([1,0,-1])otrim(81); translate([110,9,82])mirror([0,1,1])mirror([1,0,-1])otrim(81); } difference(){ translate([20,-9,10])cube([55,18,22]); //trim translate([20,-9,15])mirror([0,0,0])otrim(36); translate([20,9,15])mirror([0,1,0])otrim(36); translate([75,-9,15])mirror([1,0,0])otrim(36); translate([75,9,15])mirror([1,1,0])otrim(36); } intersection() { translate([20,-9,32])cube([75,18,50]); difference(){ translate([70,0,32]) rotate([90,0,0]) cylinder(18,50,50,center=true,$fn=64); translate([95,0,32]) rotate([90,0,0]) cylinder(19,20,20,center=true,$fn=64); //trim mirror([0,0,0])translate([95,9,32]) rotate([90,0,0])ocorner32(20); mirror([0,1,0])translate([95,9,32]) rotate([90,0,0])ocorner32(20); mirror([0,1,0])translate([70,9,32]) rotate([90,0,0])ocorner32(-55+5); mirror([0,0,0])translate([70,9,32]) rotate([90,0,0])ocorner32(-55+5); } } } module foot(){ difference(){ hull(){ for(i=[0:1/4:1]){ y=cos(i*90)*3; x=-3+sin(i*90)*3; translate([0,0,0]) linear_extrude(7+y) offset( x)footP(); } } translate([0,0,-0.005])linear_extrude(10.01){ circle(4); translate([75,-30])circle(4); translate([75,30]) circle(4);} } //trim translate([20+3,-9+3,10])ocorner(3); translate([20+3,9-3,10])ocorner(3); translate([75-3,-9+3,10])ocorner(3); translate([75-3,9-3,10])ocorner(3); translate([20,0,10])mirror([1,0,0])mirror([0,-1,1])otrim(12); translate([75,0,10]) mirror([0,-1,1])otrim(12); translate([20+55/2,9,10])mirror([0,0,1])mirror([1,0,1])otrim(55-6); translate([20+55/2,-9,10])mirror([0,-1,1])mirror([1,0,1])otrim(55-6);} module footP(){ hull() { circle(10); translate([75,-30])circle(10); translate([75,30])circle(10); } } module quarterround(){ difference() { translate([-1,-1]) square([4,4]); translate([3,3])circle(3,$fn=16); }} module ocorner(r) { rotate_extrude ($fn=16,convexity=20)translate([r,0])quarterround(); } module ocorner32(r) { rotate_extrude ($fn=64,convexity=20)translate([r,0])quarterround(); } module otrim(l) { linear_extrude (l,center=true,convexity=20)translate([0,0])quarterround(); }