diff --git a/shelf.scad b/shelf.scad index c748f7f..46a788f 100644 --- a/shelf.scad +++ b/shelf.scad @@ -1,5 +1,7 @@ include +$fn = $preview ? 30 : 60; + module jar() { cylinder(100, 40, 40); } @@ -13,27 +15,47 @@ module arm() { cube([80, 400, 200]); } -color("#999999") -arm(); - -module shelf() { +module base() { translate([0, 0, -6]) linear_extrude(15) { polygon(polyRound([ - [-90, -40, 10], - [ 90, -40, 10], - [ 90, 40, 10], - [-90, 40, 10], + [-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() { - shelf(); + base(); cylinder(100, 35, 35); } + + grip(30); + + rotate([0, 0, 180]) + grip(60); + if($preview) + color("#999999") { + arm(); + } + + if($preview) color("#7777ff") { *jar(); cup();