Replaced platform locking with screws
This commit is contained in:
parent
5a274cdb03
commit
129f1890df
@ -1,6 +1,6 @@
|
|||||||
include <export.scad>
|
include <export.scad>
|
||||||
//export=MODEL_PLATFORM_HARNESS;
|
//export=MODEL_PLATFORM_HARNESS;
|
||||||
export=MODEL_PLATFORM_STRAP;
|
//export=MODEL_PLATFORM_STRAP;
|
||||||
|
|
||||||
// dependency: https://github.com/revarbat/BOSL
|
// dependency: https://github.com/revarbat/BOSL
|
||||||
include <BOSL/constants.scad>
|
include <BOSL/constants.scad>
|
||||||
@ -36,73 +36,6 @@ module model_prop_arm() {
|
|||||||
// <<<
|
// <<<
|
||||||
|
|
||||||
// Blocks:
|
// 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) {
|
module platform(base) {
|
||||||
size=get_platform_size();
|
size=get_platform_size();
|
||||||
base_size=size;
|
base_size=size;
|
||||||
@ -110,11 +43,29 @@ module platform(base) {
|
|||||||
top_size=get_platform_top_size();
|
top_size=get_platform_top_size();
|
||||||
top=!base;
|
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() {
|
module base_platform_cutout_for_top() {
|
||||||
base_top_diff=[base_size.x-top_size.x, base_size.y-top_size.y];
|
base_top_diff=[base_size.x-top_size.x, base_size.y-top_size.y];
|
||||||
guiding=0.4;
|
guiding=1;
|
||||||
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);
|
top_slack=[0.2, 0.2, 0];
|
||||||
lock_buttons_cutout();
|
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() {
|
||||||
module base_platform_core() {
|
module base_platform_core() {
|
||||||
@ -124,11 +75,18 @@ module platform(base) {
|
|||||||
difference() {
|
difference() {
|
||||||
base_platform_core();
|
base_platform_core();
|
||||||
base_platform_cutout_for_top();
|
base_platform_cutout_for_top();
|
||||||
|
platform_screwholes();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
module top_platform() {
|
module top_platform() {
|
||||||
up((base_size.z-top_size.z)/2)
|
difference() {
|
||||||
braced_thinning_wall(h=top_size.y, l=top_size.x, thick=top_size.z, wall=0, strut=wall/4, orient=ORIENT_X_90);
|
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() {
|
module strap_connectors() {
|
||||||
@ -144,11 +102,9 @@ module platform(base) {
|
|||||||
color(top?"Olive":"YellowGreen")
|
color(top?"Olive":"YellowGreen")
|
||||||
if (base) {
|
if (base) {
|
||||||
base_platform();
|
base_platform();
|
||||||
platform_locks_pins();
|
|
||||||
strap_connectors();
|
strap_connectors();
|
||||||
} else {
|
} else {
|
||||||
top_platform();
|
top_platform();
|
||||||
platform_locks_sockets();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,19 +17,6 @@ function get_platform_strap_connector_offset() = [
|
|||||||
get_platform_size().y/2 + 4,
|
get_platform_size().y/2 + 4,
|
||||||
-get_link_segment_size().z/2 + 0.5
|
-get_link_segment_size().z/2 + 0.5
|
||||||
];
|
];
|
||||||
|
function get_platform_screwhole_d() = 3.2;
|
||||||
function get_platform_lock_pin_size() = [20, 4, 3];
|
function get_platform_screwhole_h() = 10;
|
||||||
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
|
|
||||||
];
|
|
||||||
|
|
||||||
|
@ -1,12 +1,15 @@
|
|||||||
links_count=3; // [1..20]
|
links_count=2; // [1..20]
|
||||||
include_terminal=true; // [true,false]
|
include_terminal=true; // [true,false]
|
||||||
include_screwhole=true; // [true,false]
|
include_screwhole=true; // [true,false]
|
||||||
clip_screwhole=2;
|
clip_screwhole=2;
|
||||||
|
|
||||||
//export=302;//MODEL_CLIP_A;
|
|
||||||
//export=303;//MODEL_CLIP_B;
|
|
||||||
|
|
||||||
include <export.scad>
|
include <export.scad>
|
||||||
|
//export=MODEL_LINKS;
|
||||||
|
//export=MODEL_CLIP_A;
|
||||||
|
//export=MODEL_CLIP_B;
|
||||||
|
//export=MODEL_CLIP_RATCHETING_A;
|
||||||
|
//export=MODEL_CLIP_RATCHETING_B;
|
||||||
|
|
||||||
use <BOSL/transforms.scad>
|
use <BOSL/transforms.scad>
|
||||||
use <BOSL/shapes.scad>
|
use <BOSL/shapes.scad>
|
||||||
include <BOSL/constants.scad>
|
include <BOSL/constants.scad>
|
||||||
|
Loading…
Reference in New Issue
Block a user