include <../config/platform.scad> include <../config/thread.scad> include <../config/wall.scad> include module platform_support_object() { module base_shape() { move_x = platform_support_depth / 2 - platform_rounding; move_y = platform_support_height / 2 - platform_rounding; size = platform_rounding; hull() { translate([-move_x, move_y]) { square(size * 2, center = true); } translate([move_x, move_y]) { circle(r = size); } translate([-move_x, -move_y]) { circle(r = size); } } } module base_object() { thickness = platform_support_thickness; rotate([90, 0, 0]) { linear_extrude(height = thickness, center = true) { base_shape(); } } } module base_thread_object() { oversize = max( platform_support_depth, platform_support_height ); render() { thread_object(false, oversize); } } module wall_thread_object(move_y = 0, move_z = 0) { move_x = -platform_support_depth / 2 + thread_height / 2 + platform_support_screw_thickness; translate([move_x, move_y, move_z]) { rotate([0, 270, 0]) { base_thread_object(); } } } module wall_threads_object() { base_move_y = platform_support_thickness - platform_support_thickness % wall_holes_space; base_move_z = platform_support_height - platform_support_height % wall_holes_space; move_y = base_move_y / 2; move_z = base_move_z / 2; for (count_y = [-move_y : wall_holes_space : move_y]) { for (count_z = [-move_z : wall_holes_space : move_z]) { wall_thread_object(count_y, count_z); } } } difference() { base_object(); wall_threads_object(); } }