From afaefc05651598e800d79a902e839507423fd162 Mon Sep 17 00:00:00 2001 From: Quinn Date: Sun, 9 Jan 2022 16:42:42 -0800 Subject: [PATCH] Add bottom bevel --- juqs_collar.scad | 44 ++++++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/juqs_collar.scad b/juqs_collar.scad index 67548c5..b80567a 100644 --- a/juqs_collar.scad +++ b/juqs_collar.scad @@ -5,7 +5,8 @@ include; $fn = 32; collar_r = 34.7/2; -collar_h = 8.7; // short collar: 8.7, full: 18 +short_collar = 8.7; +full_collar = 18; shaft_r = 9/2; //should roughly match shaft for best feel //inner radius at bottom of official collar is 13.2 @@ -30,10 +31,10 @@ rotate([0,0,0]){ * OCTNR corner test (seems to also match OCTN, nice!) * shaft(shaft_r, pivot_depth, [cardinal_throw+1.95,0,45]); */ - juqs(model = SQR, ver = VERSION); + juqs(model = SQR, ver = VERSION, collar_h = short_collar); } -module juqs(model, ver) { +module juqs(model, ver, collar_h = short_collar) { rotate([0,0,0]) { difference() { difference() { @@ -41,19 +42,21 @@ module juqs(model, ver) { base(); collar(collar_h); }; - translate([0,0,-pivot_depth]){ - if(model == CIR) - cir_gate(cardinal_throw, shaft_r); - if(model == SQR) - shape_gate(sqr_poly, cardinal_throw, shaft_r); - if(model == OCT) - shape_gate(oct_poly, cardinal_throw, shaft_r); - if(model == OCTR) - octr_gate(cardinal_throw, shaft_r); - if(model == OCTN) - shape_gate(octn_poly, cardinal_throw, shaft_r); - if(model == OCTNR) - octnr_gate(cardinal_throw, shaft_r); + bevels(collar_h) { + translate([0,0,-pivot_depth]){ + if(model == CIR) + cir_gate(cardinal_throw, shaft_r); + if(model == SQR) + shape_gate(sqr_poly, cardinal_throw, shaft_r); + if(model == OCT) + shape_gate(oct_poly, cardinal_throw, shaft_r); + if(model == OCTR) + octr_gate(cardinal_throw, shaft_r); + if(model == OCTN) + shape_gate(octn_poly, cardinal_throw, shaft_r); + if(model == OCTNR) + octnr_gate(cardinal_throw, shaft_r); + } } }; translate([0, -11, -0.1]) { @@ -73,6 +76,15 @@ module juqs(model, ver) { //oct_hollow(cardinal_throw, shaft_r, pivot_depth); }; +module bevels(pivot_depth, collar_height, size = 1){ + translate([0,0,-0.1]) + linear_extrude(size + 0.1) + projection(cut = true) + translate([0,0,-size]) + children(); + children(); +} + module shaft(r, depth, rotation) { translate([0,0,-pivot_depth]){ rotate(rotation)