include <../config/wall_pot.scad> module base(inside = true) { out_height = height + thickness; out_top_diameter = top_diameter + thickness * 2; out_bottom_diameter = bottom_diameter + thickness * 2; render() difference() { cylinder( d2 = out_top_diameter, d1 = out_bottom_diameter, h = out_height, center = true ); if (inside) translate([0, 0, thickness / 2]) cylinder( d2 = top_diameter, d1 = bottom_diameter, h = height, center = true ); } } module mounting() { width = top_diameter + bottom_diameter + thickness * 2; height = mount_hole + thickness * 4; depth = top_diameter / 2 + thickness; hole_position = width / 2 - thickness; size = [ width, depth, height ]; render() difference() { union() { hull() { translate([width / 2, 0, 0]) rotate([270, 0, 0]) cylinder( d = height, h = depth, center = false ); translate([-width / 2, 0, 0]) rotate([270, 0, 0]) cylinder( d = height, h = depth, center = false ); } rotate([270, 0, 0]) cylinder( d = stabilizer_diameter, h = depth, center = false ); } translate([width / 2, 0, 0]) cylinder( r = depth - thickness, h = height, center = true ); translate([-width / 2, 0, 0]) cylinder( r = depth - thickness, h = height, center = true ); translate([hole_position, depth / 2, 0]) rotate([90, 0, 0]) cylinder( d = mount_hole, h = depth, center = true ); translate([-hole_position, depth / 2, 0]) rotate([90, 0, 0]) cylinder( d = mount_hole, h = depth, center = true ); base(inside = false); } } module wall_pot() { color("#000080") render() { base(); mounting(); } } if (!$preview) { $fs = 0.5; $fa = 1; wall_pot(); } else { $fs = 2; $fa = 10; wall_pot(); }