From 773f4df35102d3a7b34bb2d9e79448e3817dfad8 Mon Sep 17 00:00:00 2001 From: David Madison Date: Wed, 16 Sep 2020 18:36:37 -0400 Subject: [PATCH 01/13] Lock flap dimensions to die-cut specs --- 3d/flap_dimensions.scad | 4 ++++ 3d/splitflap.scad | 10 ++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/3d/flap_dimensions.scad b/3d/flap_dimensions.scad index b0a9673e..3267edb9 100644 --- a/3d/flap_dimensions.scad +++ b/3d/flap_dimensions.scad @@ -19,5 +19,9 @@ flap_height = 43; flap_thickness = 30 / 1000 * 25.4; // 30 mil flap_corner_radius = 3.1; // 2.88-3.48mm (used just for display) +flap_notch_height_auto = false; +flap_notch_height_default = 15; +flap_notch_depth = 3.2; + flap_pin_width = 1.4; diff --git a/3d/splitflap.scad b/3d/splitflap.scad index c1831af9..787146a5 100644 --- a/3d/splitflap.scad +++ b/3d/splitflap.scad @@ -112,9 +112,7 @@ outer_exclusion_radius = flap_pitch_radius + flap_height + 2; front_forward_offset = flap_pitch_radius + flap_thickness/2; -flap_notch = sqrt(spool_outer_radius*spool_outer_radius - flap_pitch_radius*flap_pitch_radius); -flap_notch_depth = 3; - +flap_notch_height = (flap_notch_height_auto == true) ? sqrt(spool_outer_radius*spool_outer_radius - flap_pitch_radius*flap_pitch_radius) : flap_notch_height_default; spool_width = flap_width - flap_notch_depth*2 + flap_width_slop + thickness*2; legacyAssert(spool_width >= flap_width, "Flap is wider than spool!"); @@ -206,7 +204,7 @@ echo(front_window_height=front_window_lower+front_window_upper); echo(front_forward_offset=front_forward_offset); echo(flap_exclusion_radius=exclusion_radius); echo(flap_hole_radius=flap_hole_radius); -echo(flap_notch=flap_notch); +echo(flap_notch_height=flap_notch_height); module standard_m4_bolt(nut_distance=-1) { @@ -354,9 +352,9 @@ module flap() { } } translate([-eps, flap_pin_width]) - square([eps + flap_notch_depth, flap_notch]); + square([eps + flap_notch_depth, flap_notch_height]); translate([flap_width - flap_notch_depth, flap_pin_width]) - square([eps + flap_notch_depth, flap_notch]); + square([eps + flap_notch_depth, flap_notch_height]); } } } From e87928ce4f6b914b353393abcc5fae80c818da33 Mon Sep 17 00:00:00 2001 From: David Madison Date: Wed, 16 Sep 2020 19:39:15 -0400 Subject: [PATCH 02/13] Fix side bolt positions --- 3d/splitflap.scad | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/3d/splitflap.scad b/3d/splitflap.scad index 787146a5..c30ce9e9 100644 --- a/3d/splitflap.scad +++ b/3d/splitflap.scad @@ -763,14 +763,14 @@ module split_flap_3d(letter, include_connector) { module positioned_left_bolts() { // Top - translate([enclosure_wall_to_wall_width, front_forward_offset - side_tab_width * 2, enclosure_height_upper - enclosure_vertical_inset - thickness/2]) { + translate([enclosure_wall_to_wall_width, front_forward_offset - (thickness + 1.5 * side_tab_width), enclosure_height_upper - enclosure_vertical_inset - thickness/2]) { rotate([0, -90, 0]) { standard_m4_bolt(nut_distance=captive_nut_inset); } } // Bottom - translate([enclosure_wall_to_wall_width, front_forward_offset - side_tab_width * 2, -enclosure_height_lower + enclosure_vertical_inset + thickness/2]) { + translate([enclosure_wall_to_wall_width, front_forward_offset - (thickness + 1.5 * side_tab_width), -enclosure_height_lower + enclosure_vertical_inset + thickness/2]) { rotate([0, -90, 0]) { standard_m4_bolt(nut_distance=captive_nut_inset); } @@ -779,14 +779,14 @@ module split_flap_3d(letter, include_connector) { module positioned_right_bolts() { // Top - translate([0, front_forward_offset - side_tab_width * 2, enclosure_height_upper - enclosure_vertical_inset - thickness/2]) { + translate([0, front_forward_offset - (thickness + 1.5 * side_tab_width), enclosure_height_upper - enclosure_vertical_inset - thickness/2]) { rotate([0, 90, 0]) { standard_m4_bolt(nut_distance=captive_nut_inset); } } // Bottom - translate([0, front_forward_offset - side_tab_width * 2, -enclosure_height_lower + enclosure_vertical_inset + thickness/2]) { + translate([0, front_forward_offset - (thickness + 1.5 * side_tab_width), -enclosure_height_lower + enclosure_vertical_inset + thickness/2]) { rotate([0, 90, 0]) { standard_m4_bolt(nut_distance=captive_nut_inset); } From ee7e685266aae4dffdf88686b1cdff06c7e3fdb2 Mon Sep 17 00:00:00 2001 From: David Madison Date: Thu, 17 Sep 2020 19:35:02 -0400 Subject: [PATCH 03/13] Limit vertical inset to bolt head diameter This way the bolt heads are always contained as part of the assembly. --- 3d/splitflap.scad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3d/splitflap.scad b/3d/splitflap.scad index c30ce9e9..a56d8b5e 100644 --- a/3d/splitflap.scad +++ b/3d/splitflap.scad @@ -150,7 +150,7 @@ front_window_slop = 0; front_window_width = spool_width_slop + spool_width + front_window_slop; front_window_right_inset = thickness - front_window_slop/2; enclosure_vertical_margin = 10; // gap between top/bottom of flaps and top/bottom of enclosure -enclosure_vertical_inset = thickness*1.5; // distance from top of sides to top of the top piece +enclosure_vertical_inset = max(thickness*1.5, m4_nut_width_corners_padded/2); // distance from top of sides to top of the top piece enclosure_height_upper = exclusion_radius + enclosure_vertical_margin + thickness + enclosure_vertical_inset; enclosure_height_lower = flap_pitch_radius + flap_height + enclosure_vertical_margin + thickness + enclosure_vertical_inset; enclosure_height = enclosure_height_upper + enclosure_height_lower; From ceb3664524071effe9e4011d695a478b543d6173 Mon Sep 17 00:00:00 2001 From: David Madison Date: Wed, 16 Sep 2020 19:43:36 -0400 Subject: [PATCH 04/13] Account for flap width in spool calculations With this the enclosure and front window do not become narrower if the calculated spool width is narrow than the flap width. --- 3d/splitflap.scad | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/3d/splitflap.scad b/3d/splitflap.scad index a56d8b5e..2c40c0a5 100644 --- a/3d/splitflap.scad +++ b/3d/splitflap.scad @@ -114,8 +114,10 @@ front_forward_offset = flap_pitch_radius + flap_thickness/2; flap_notch_height = (flap_notch_height_auto == true) ? sqrt(spool_outer_radius*spool_outer_radius - flap_pitch_radius*flap_pitch_radius) : flap_notch_height_default; -spool_width = flap_width - flap_notch_depth*2 + flap_width_slop + thickness*2; -legacyAssert(spool_width >= flap_width, "Flap is wider than spool!"); +spool_width = flap_width - flap_notch_depth*2 + flap_width_slop + thickness*2; // spool width, outside face (spool to spool) +spool_width_clearance = max(spool_width, flap_width + flap_width_slop); // width clearance for the spool, either for the spool itself or the flaps + +//legacyAssert(spool_width >= flap_width, "Flap is wider than spool!"); spool_strut_tabs = 3; spool_strut_tab_width=8; spool_strut_tab_width_narrow=6; @@ -137,7 +139,7 @@ motor_slop_radius = 3; // Width measured from the outside of the walls -enclosure_wall_to_wall_width = thickness + spool_width_slop/2 + spool_width + spool_width_slop/2 + max(28byj48_mount_bracket_height + m4_button_head_length, 4 + 28byj48_mount_bracket_height - spool_width_slop/2) + thickness; +enclosure_wall_to_wall_width = thickness + spool_width_slop/2 + spool_width_clearance + spool_width_slop/2 + max(28byj48_mount_bracket_height + m4_button_head_length, 4 + 28byj48_mount_bracket_height - spool_width_slop/2) + thickness; // Width of the front panel enclosure_width = enclosure_wall_to_wall_width + 28byj48_chassis_height + 28byj48_chassis_height_slop - thickness - 28byj48_mount_bracket_height; @@ -147,7 +149,7 @@ front_window_overhang = 3; front_window_upper = front_window_upper_base - front_window_overhang; front_window_lower = sqrt(outer_exclusion_radius*outer_exclusion_radius - front_forward_offset*front_forward_offset); front_window_slop = 0; -front_window_width = spool_width_slop + spool_width + front_window_slop; +front_window_width = spool_width_slop + spool_width_clearance + front_window_slop; front_window_right_inset = thickness - front_window_slop/2; enclosure_vertical_margin = 10; // gap between top/bottom of flaps and top/bottom of enclosure enclosure_vertical_inset = max(thickness*1.5, m4_nut_width_corners_padded/2); // distance from top of sides to top of the top piece @@ -916,7 +918,8 @@ module split_flap_3d(letter, include_connector) { } } - translate([-flap_notch_depth + thickness + flap_width_slop/2, 0, 0]) { + flap_offset = thickness > flap_notch_depth ? -flap_notch_depth + thickness + flap_width_slop/2 : flap_width_slop/2; + translate([flap_offset, 0, 0]) { // Collapsed flaps on the top for (i=[0:num_flaps/2 - 1]) { if (i == 0 || render_flaps == 2) { @@ -950,7 +953,9 @@ module split_flap_3d(letter, include_connector) { } } } + } + translate([(spool_width_clearance - spool_width + spool_width_slop) / 2 + thickness, 0, 0]) { spool_struts(); // motor spool From 8172e2164884f0d5b2a55d1889a9609a28aa7596 Mon Sep 17 00:00:00 2001 From: David Madison Date: Thu, 17 Sep 2020 17:37:09 -0400 Subject: [PATCH 05/13] Reduce default thickness to 3.0 Matching Ponoko's available MDF / acrylic thickness --- 3d/splitflap.scad | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/3d/splitflap.scad b/3d/splitflap.scad index 2c40c0a5..a4f9f5dc 100644 --- a/3d/splitflap.scad +++ b/3d/splitflap.scad @@ -69,9 +69,9 @@ spool_horizontal_explosion = lookup(spool_explosion, [ // It's better to underestimate (looser fit) than overestimate (no fit) kerf_width = 0.19 - 0.02; -// MDF, .125in nominal -// http://www.ponoko.com/make-and-sell/show-material/64-mdf-natural -thickness = 3.2; +// MDF, .120in nominal +// https://www.ponoko.com/materials/mdf-fiberboard +thickness = 3.0; eps=.01; From a68fc988bc73c146c28ed1dc2c8e02c990d5ab93 Mon Sep 17 00:00:00 2001 From: David Madison Date: Fri, 18 Sep 2020 13:45:30 -0400 Subject: [PATCH 06/13] Increase flap width slop Previously the notch_depth was 3.0 with flaps that were actually 3.2, which gives an extra 0.4 mm of slop. This increases the slop by 0.4 to compensate. --- 3d/splitflap.scad | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3d/splitflap.scad b/3d/splitflap.scad index a4f9f5dc..888e8930 100644 --- a/3d/splitflap.scad +++ b/3d/splitflap.scad @@ -90,7 +90,7 @@ flap_rendered_angle = 90; letter_height = flap_height * 0.75 * 2; // Amount of slop of the flap side to side between the 2 spools -flap_width_slop = 0.1; +flap_width_slop = 0.5; // Amount of slop for the spool assembly side-to-side inside the enclosure spool_width_slop = 1; From f82e43cb88ccf3e71216c3a94b54d78bb5ab177f Mon Sep 17 00:00:00 2001 From: David Madison Date: Sun, 27 Sep 2020 01:59:06 -0400 Subject: [PATCH 07/13] Add clearance to front and side tab connections For clearance with proper kerf and thickness values. --- 3d/splitflap.scad | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/3d/splitflap.scad b/3d/splitflap.scad index 622ec01b..689a7b7d 100644 --- a/3d/splitflap.scad +++ b/3d/splitflap.scad @@ -165,6 +165,8 @@ enclosure_length = front_forward_offset + 28byj48_mount_center_offset + m4_hole_ // Enclosure tabs: front/back +enclosure_tab_clearance = 0.10; + num_front_tabs = 2; front_tab_width = (enclosure_wall_to_wall_width - 2*thickness) / (num_front_tabs*2 - 1); @@ -412,7 +414,7 @@ module motor_shaft() { module front_tabs_negative() { for (i = [0 : num_front_tabs-1]) { translate([thickness + (i*2+0.5) * front_tab_width, 0, 0]) - square([front_tab_width, thickness], center=true); + square([front_tab_width + enclosure_tab_clearance, thickness + enclosure_tab_clearance], center=true); } for (i = [0 : num_front_tabs-2]) { translate([thickness + (i*2+1.5) * front_tab_width, 0, 0]) @@ -484,8 +486,8 @@ module motor_mount() { module side_tabs_negative(hole_sizes=[], extend_last_tab=false) { for (i = [0 : len(hole_sizes)]) { length = (extend_last_tab && i == len(hole_sizes)) ? side_tab_width * side_tab_width_fraction + eps : side_tab_width * side_tab_width_fraction; - translate([-thickness / 2, thickness + (i*2) * side_tab_width + side_tab_width * (1 - side_tab_width_fraction)/2, 0]) - square([thickness, length]); + translate([0, thickness + (i*2) * side_tab_width + side_tab_width * (1 - side_tab_width_fraction)/2 + length/2, 0]) + square([thickness + enclosure_tab_clearance, length + enclosure_tab_clearance], center=true); } for (i = [0 : len(hole_sizes) - 1]) { hole_size = hole_sizes[i]; From 088bca66c0c10dc32be00e2586d43249e9882e85 Mon Sep 17 00:00:00 2001 From: David Madison Date: Mon, 5 Oct 2020 06:07:25 -0400 Subject: [PATCH 08/13] Add clearance to spool strut tabs --- 3d/splitflap.scad | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/3d/splitflap.scad b/3d/splitflap.scad index 689a7b7d..dcfa109b 100644 --- a/3d/splitflap.scad +++ b/3d/splitflap.scad @@ -94,6 +94,7 @@ flap_width_slop = 0.5; // Amount of slop for the spool assembly side-to-side inside the enclosure spool_width_slop = 1; +spool_tab_clearance = 0.10; num_flaps = 40; @@ -250,7 +251,7 @@ module m4_captive_nut(bolt_length=m4_bolt_length) { // ##### Struts for bracing spool ##### module spool_strut_tab_hole(narrow) { - square([thickness, narrow ? spool_strut_tab_width_narrow : spool_strut_tab_width], center=true); + square([thickness + spool_tab_clearance, narrow ? spool_strut_tab_width_narrow + spool_tab_clearance : spool_strut_tab_width + spool_tab_clearance], center=true); } module spool_strut_tab_holes(narrow=false) { for (i=[0:3]) { From 06f93587059bef58f8fd781a58d1bc45f7b8bf4e Mon Sep 17 00:00:00 2001 From: David Madison Date: Mon, 5 Oct 2020 06:13:03 -0400 Subject: [PATCH 09/13] Refactor spool strut tabs as strut num joints All of the other spool "tab" variables refer to the tabs at the end which attach to the circular caps. --- 3d/splitflap.scad | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/3d/splitflap.scad b/3d/splitflap.scad index dcfa109b..117876ea 100644 --- a/3d/splitflap.scad +++ b/3d/splitflap.scad @@ -121,7 +121,7 @@ spool_width = flap_width - flap_notch_depth*2 + flap_width_slop + thickness*2; spool_width_clearance = max(spool_width, flap_width + flap_width_slop); // width clearance for the spool, either for the spool itself or the flaps //legacyAssert(spool_width >= flap_width, "Flap is wider than spool!"); -spool_strut_tabs = 3; +spool_strut_num_joints = 3; spool_strut_tab_width=8; spool_strut_tab_width_narrow=6; spool_strut_tab_outset=8; @@ -262,7 +262,7 @@ module spool_strut_tab_holes(narrow=false) { } } module spool_strut() { - joint_tab_width = spool_strut_inner_length / spool_strut_tabs; + joint_tab_width = spool_strut_inner_length / spool_strut_num_joints; linear_extrude(thickness, center=true) { union() { translate([0, -spool_strut_tab_width_narrow / 2]) { @@ -275,13 +275,13 @@ module spool_strut() { difference() { square([spool_strut_inner_length, spool_strut_width]); - // subtract out tabs + // subtract out joints union() { - for (i = [0:2:spool_strut_tabs-1]) { + for (i = [0:2:spool_strut_num_joints-1]) { translate([i*joint_tab_width, -eps]) square([joint_tab_width, thickness+eps]); } - for (i = [1:2:spool_strut_tabs-1]) { + for (i = [1:2:spool_strut_num_joints-1]) { translate([i*joint_tab_width, spool_strut_width - thickness]) square([joint_tab_width, thickness+eps]); } From 57e65ff0b51f0b3923f552866325a656dd8c6675 Mon Sep 17 00:00:00 2001 From: David Madison Date: Mon, 5 Oct 2020 06:34:56 -0400 Subject: [PATCH 10/13] Add clearance to spool joints --- 3d/splitflap.scad | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/3d/splitflap.scad b/3d/splitflap.scad index 117876ea..83de247a 100644 --- a/3d/splitflap.scad +++ b/3d/splitflap.scad @@ -95,6 +95,7 @@ flap_width_slop = 0.5; // Amount of slop for the spool assembly side-to-side inside the enclosure spool_width_slop = 1; spool_tab_clearance = 0.10; +spool_joint_clearance = 0.10; num_flaps = 40; @@ -278,12 +279,12 @@ module spool_strut() { // subtract out joints union() { for (i = [0:2:spool_strut_num_joints-1]) { - translate([i*joint_tab_width, -eps]) - square([joint_tab_width, thickness+eps]); + translate([i*joint_tab_width - spool_joint_clearance/2, -eps]) + square([joint_tab_width + spool_joint_clearance, thickness + spool_joint_clearance/2 + eps]); } for (i = [1:2:spool_strut_num_joints-1]) { - translate([i*joint_tab_width, spool_strut_width - thickness]) - square([joint_tab_width, thickness+eps]); + translate([i*joint_tab_width, spool_strut_width - thickness - spool_joint_clearance/2]) + square([joint_tab_width, thickness + spool_joint_clearance + eps]); } } } From 5707087229c46a5df2d875cef6320cc418446a48 Mon Sep 17 00:00:00 2001 From: David Madison Date: Mon, 5 Oct 2020 11:21:03 -0400 Subject: [PATCH 11/13] Add clearance to connector pieces --- 3d/splitflap.scad | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/3d/splitflap.scad b/3d/splitflap.scad index 83de247a..32865b77 100644 --- a/3d/splitflap.scad +++ b/3d/splitflap.scad @@ -191,6 +191,7 @@ connector_bracket_length_inner = side_tab_width * 2 - m4_button_head_diameter/2; connector_bracket_thickness = captive_nut_inset - thickness - 0.2; connector_bracket_width = enclosure_width - enclosure_wall_to_wall_width + thickness*2 + connector_bracket_thickness*2; connector_bracket_overlap = 4; +connector_bracket_clearance = 0.10; mounting_hole_inset = m4_button_head_diameter/2 + 2; @@ -431,11 +432,11 @@ module connector_bracket() { translate([connector_bracket_thickness, -eps]) { square([connector_bracket_width - connector_bracket_thickness*2, connector_bracket_length_outer - connector_bracket_length_inner + eps]); } - translate([connector_bracket_thickness, -eps]) { - square([thickness, connector_bracket_length_outer - connector_bracket_overlap + eps]); + translate([connector_bracket_thickness - connector_bracket_clearance/2, -eps]) { + square([thickness + connector_bracket_clearance, connector_bracket_length_outer - connector_bracket_overlap + eps]); } - translate([connector_bracket_width - connector_bracket_thickness - thickness, -eps]) { - square([thickness, connector_bracket_length_outer - connector_bracket_overlap + eps]); + translate([connector_bracket_width - connector_bracket_thickness - thickness - connector_bracket_clearance/2, -eps]) { + square([thickness + connector_bracket_clearance, connector_bracket_length_outer - connector_bracket_overlap + eps]); } } } @@ -512,8 +513,8 @@ module backstop_bolt_slot(radius) { module connector_bracket_side_holes() { // overlap slot - translate([enclosure_vertical_inset - thickness, -connector_bracket_overlap]) { - square([thickness, connector_bracket_overlap + eps]); + translate([enclosure_vertical_inset - thickness - connector_bracket_clearance/2, -connector_bracket_overlap]) { + square([thickness + connector_bracket_clearance, connector_bracket_overlap + eps]); } } From 8f5534df6c825859cf544a3ad8afc7d693236148 Mon Sep 17 00:00:00 2001 From: David Madison Date: Mon, 5 Oct 2020 12:06:14 -0400 Subject: [PATCH 12/13] Update model kerf value from Ponoko Retrieved at time of commit, provided in millimeters with one significant figure. --- 3d/splitflap.scad | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/3d/splitflap.scad b/3d/splitflap.scad index 32865b77..2a77b3d0 100644 --- a/3d/splitflap.scad +++ b/3d/splitflap.scad @@ -67,9 +67,9 @@ spool_horizontal_explosion = lookup(spool_explosion, [ ]); -// Kerf based off http://blog.ponoko.com/2011/07/12/figuring-out-kerf-for-precision-parts/ -// It's better to underestimate (looser fit) than overestimate (no fit) -kerf_width = 0.19 - 0.02; +// Ponoko kerf values are 0.2 mm for MDF and acrylic (all thicknesses) +// Remember: it's better to underestimate (looser fit) than overestimate (no fit) +kerf_width = 0.2 - 0.02; // MDF, .120in nominal // https://www.ponoko.com/materials/mdf-fiberboard From 63fcb01bde1a2b5a171eae77643008015931578a Mon Sep 17 00:00:00 2001 From: David Madison Date: Wed, 7 Oct 2020 05:42:15 -0400 Subject: [PATCH 13/13] Add depth clearance to connector brackets For flush fitment of the front panel --- 3d/splitflap.scad | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/3d/splitflap.scad b/3d/splitflap.scad index 2a77b3d0..a19ca3bd 100644 --- a/3d/splitflap.scad +++ b/3d/splitflap.scad @@ -192,6 +192,7 @@ connector_bracket_thickness = captive_nut_inset - thickness - 0.2; connector_bracket_width = enclosure_width - enclosure_wall_to_wall_width + thickness*2 + connector_bracket_thickness*2; connector_bracket_overlap = 4; connector_bracket_clearance = 0.10; +connector_bracket_depth_clearance = 0.20; mounting_hole_inset = m4_button_head_diameter/2 + 2; @@ -433,10 +434,10 @@ module connector_bracket() { square([connector_bracket_width - connector_bracket_thickness*2, connector_bracket_length_outer - connector_bracket_length_inner + eps]); } translate([connector_bracket_thickness - connector_bracket_clearance/2, -eps]) { - square([thickness + connector_bracket_clearance, connector_bracket_length_outer - connector_bracket_overlap + eps]); + square([thickness + connector_bracket_clearance, connector_bracket_length_outer - connector_bracket_overlap + connector_bracket_depth_clearance + eps]); } translate([connector_bracket_width - connector_bracket_thickness - thickness - connector_bracket_clearance/2, -eps]) { - square([thickness + connector_bracket_clearance, connector_bracket_length_outer - connector_bracket_overlap + eps]); + square([thickness + connector_bracket_clearance, connector_bracket_length_outer - connector_bracket_overlap + connector_bracket_depth_clearance + eps]); } } }