include $fn = $preview ? 30 : 60; module jar() { cylinder(100, 40, 40); } module cup() { cylinder(155, 31, 42); } module arm() { translate([-40, -200, -200]) cube([80, 400, 200]); } module base() { translate([0, 0, -6]) linear_extrude(15) { polygon(polyRound([ [-55, -40, 10], [ 55, -40, 10], [ 55, 40, 10], [-55, 40, 10], ])); } } module grip(length) { translate([40, 0, 0]) rotate([-90, 0, 0]) linear_extrude(15, center=true) polygon(polyRound([ [ 0, 0, 0], [10, 0, 0], [10, length, 10], [ 0, length, 0], ])); } translate([0, 0, 6]) { difference() { base(); cylinder(100, 35, 35); } grip(30); rotate([0, 0, 180]) grip(60); if($preview) color("#999999") { arm(); } if($preview) color("#7777ff") { *jar(); cup(); } }