From 129f1890dfe136be2dd9f6fdf5ff303decb5e02c Mon Sep 17 00:00:00 2001 From: Dejvino Date: Fri, 22 Jan 2021 07:49:19 +0100 Subject: [PATCH] Replaced platform locking with screws --- src/platform.scad | 106 ++++++++++++---------------------------- src/specs_platform.scad | 17 +------ src/strap.scad | 11 +++-- 3 files changed, 40 insertions(+), 94 deletions(-) diff --git a/src/platform.scad b/src/platform.scad index b82c083..c607d46 100644 --- a/src/platform.scad +++ b/src/platform.scad @@ -1,6 +1,6 @@ include //export=MODEL_PLATFORM_HARNESS; -export=MODEL_PLATFORM_STRAP; +//export=MODEL_PLATFORM_STRAP; // dependency: https://github.com/revarbat/BOSL include @@ -36,73 +36,6 @@ module model_prop_arm() { // <<< // Blocks: -module lock_pin(groove) { - slack=groove - ?[1, 0.5, 0.3] - :[0, 0, 0]; - pin_size=get_platform_lock_pin_size(); - size=vec_sum(pin_size, slack); - down(size.z/2) - translate([slack.x/2, slack.y/2, slack.z/2]) - xrot(-4) zrot(-90) right_triangle([size.y, size.x, size.z]); -} -module lock_arm() { - size=get_platform_lock_arm_size(); - down(get_platform_top_size().z) back(size.y/2) right(size.x/2) cube(size, center=true); - joiner_size=[get_platform_lock_pin_size().x, size.y, get_platform_top_size().z]; - translate([joiner_size.x/2, joiner_size.y/2, -joiner_size.z/2 + size.z/2]) cube(joiner_size, center=true); -} -module lock_mechanism_button(groove=false) { - button_size=get_platform_lock_button_profile(groove); - size=get_platform_lock_button_size(groove); - translate(get_platform_lock_button_pos()) - left(groove?1:0) - difference() { - cube(size, center=true); - up(size.z/2 + (groove?0.5:0)) back(3) cube(size, center=true); - } -} -module lock_buttons_cutout() { - module cutout_side(groove) { - translate(get_platform_lock_pin_pos()) lock_mechanism_button(groove=true); - } - cutout_side(); - scale([1, -1, 1]) cutout_side(); -} -module lock_mechanism() { - lock_pin(groove=false); - lock_arm(); - lock_mechanism_button(); -} -module lock_socket() { - pin_size=get_platform_lock_pin_size(); - size=[pin_size.x, pin_size.y, pin_size.z]; - module socket_connector() { - conn_size=[pin_size.x+4, get_platform_wall()*3, get_platform_top_size().z]; - up(pin_size.z/2) fwd(pin_size.y+conn_size.y/2) right(pin_size.x/2) { - prismoid(size1=[conn_size.x, conn_size.y], size2=[conn_size.x, conn_size.y-2], shift=[0, -1], h=conn_size.z/2); - down(conn_size.z/4) cube([conn_size.x, conn_size.y, conn_size.z/2], center=true); - } - } - down(pin_size.z) - translate(get_platform_lock_pin_pos()) { - fwd(pin_size.y) scale([1, -1, -1]) lock_pin(); - socket_connector(); - } -} -module platform_locks_pins() { - platform_size=get_platform_size(); - lock_pin_size=get_platform_lock_pin_size(); - module lock_side(groove) { - translate(get_platform_lock_pin_pos()) lock_mechanism(); - } - lock_side(); - scale([1, -1, 1]) lock_side(); -} -module platform_locks_sockets() { - lock_socket(); - scale([1, -1, 1]) lock_socket(); -} module platform(base) { size=get_platform_size(); base_size=size; @@ -110,11 +43,29 @@ module platform(base) { top_size=get_platform_top_size(); top=!base; + module platform_screwholes() { + module screwhole_one() { + fwd(base_size.y/2) xrot(90) down(get_platform_screwhole_h()) screwhole(d=get_platform_screwhole_d(), h=get_platform_screwhole_h()); + } + module screwhole_sided() { + offset=16; + left(offset) screwhole_one(); + right(offset) screwhole_one(); + } + up(top_size.z/5) { + screwhole_sided(); + scale([1,-1,1]) screwhole_sided(); + } + } module base_platform_cutout_for_top() { base_top_diff=[base_size.x-top_size.x, base_size.y-top_size.y]; - guiding=0.4; - translate(get_platform_top_pos()) down(top_size.z/2) prismoid(size1=[top_size.x,top_size.y], size2=[top_size.x+base_top_diff.x*guiding,top_size.y+base_top_diff.y*guiding], h=top_size.z); - lock_buttons_cutout(); + guiding=1; + top_slack=[0.2, 0.2, 0]; + translate(get_platform_top_pos()) { + cube(vec_sum(top_size, top_slack), center=true); + down(top_size.z/2 - 2) + prismoid(size1=[top_size.x,top_size.y], size2=[top_size.x+base_top_diff.x*guiding,top_size.y+base_top_diff.y*guiding], h=top_size.z); + } } module base_platform() { module base_platform_core() { @@ -124,11 +75,18 @@ module platform(base) { difference() { base_platform_core(); base_platform_cutout_for_top(); + platform_screwholes(); } } module top_platform() { - up((base_size.z-top_size.z)/2) - braced_thinning_wall(h=top_size.y, l=top_size.x, thick=top_size.z, wall=0, strut=wall/4, orient=ORIENT_X_90); + difference() { + up((base_size.z-top_size.z)/2) + up(top_size.z/2) intersection() { + scale([1,1,4]) braced_thinning_wall(h=top_size.y, l=top_size.x, thick=top_size.z, wall=0, strut=wall/4, orient=ORIENT_X_90); + down(top_size.z/2) scale([2,2,1]) cube(top_size, center=true); + } + platform_screwholes(); + } } module strap_connectors() { @@ -144,11 +102,9 @@ module platform(base) { color(top?"Olive":"YellowGreen") if (base) { base_platform(); - platform_locks_pins(); strap_connectors(); } else { top_platform(); - platform_locks_sockets(); } } diff --git a/src/specs_platform.scad b/src/specs_platform.scad index b1205e8..cde0925 100644 --- a/src/specs_platform.scad +++ b/src/specs_platform.scad @@ -17,19 +17,6 @@ function get_platform_strap_connector_offset() = [ get_platform_size().y/2 + 4, -get_link_segment_size().z/2 + 0.5 ]; - -function get_platform_lock_pin_size() = [20, 4, 3]; -function get_platform_lock_arm_size() = [46, 2, 3]; -function get_platform_lock_pin_pos() = [-get_platform_lock_pin_size().x/2, -get_platform_top_size().y/2 + get_platform_wall()*4 + 1, get_platform_top_size().z/2]; -function get_platform_lock_button_profile(groove) = groove ? [10, 5] : [7, 4.5]; -function get_platform_lock_button_size(groove) = [ - get_platform_lock_button_profile(groove).x, - get_platform_size().y * 0.25 + get_platform_lock_pin_size().y + 2, - get_platform_lock_button_profile(groove).y - ]; -function get_platform_lock_button_pos() = [ - get_platform_lock_pin_size().x/2 + 5, - -get_platform_lock_button_size(false).y/2, - -get_platform_size().z/2 - ]; +function get_platform_screwhole_d() = 3.2; +function get_platform_screwhole_h() = 10; diff --git a/src/strap.scad b/src/strap.scad index 4c02fd0..0f608e6 100644 --- a/src/strap.scad +++ b/src/strap.scad @@ -1,12 +1,15 @@ -links_count=3; // [1..20] +links_count=2; // [1..20] include_terminal=true; // [true,false] include_screwhole=true; // [true,false] clip_screwhole=2; -//export=302;//MODEL_CLIP_A; -//export=303;//MODEL_CLIP_B; - include +//export=MODEL_LINKS; +//export=MODEL_CLIP_A; +//export=MODEL_CLIP_B; +//export=MODEL_CLIP_RATCHETING_A; +//export=MODEL_CLIP_RATCHETING_B; + use use include