diff --git a/src/part/connector_peg.scad b/src/part/connector_peg.scad index 2cee3b29..124ac9ef 100644 --- a/src/part/connector_peg.scad +++ b/src/part/connector_peg.scad @@ -1,18 +1,22 @@ -module connector_peg(radius, spacing = 0.5, height = radius * 2.6, void = false, heads = false) { +module connector_peg(radius, height, spacing = 0.5, void = false, heads = false) { lip_r = radius * 1.2; r_diff = lip_r - radius; - h_unit = height / 7; - d_h_unit = h_unit * 2; + + h = radius * 2.6; + h_unit = h / 7; + h_head = h_unit * 2; half_h_unit = h_unit / 2; + + total_height = is_undef(height) ? radius * 2.5 : height; module base(radius, lip_r) { rotate_extrude() { - translate([0, -d_h_unit + height]) hull() { - square([lip_r - r_diff, d_h_unit]); + translate([0, total_height - h_head]) hull() { + square([lip_r - r_diff, h_head]); translate([0, half_h_unit]) square([lip_r, half_h_unit]); } - square([radius, height - d_h_unit]); + square([radius, total_height - h_head]); } } @@ -20,15 +24,15 @@ module connector_peg(radius, spacing = 0.5, height = radius * 2.6, void = false, difference() { base(radius, lip_r); - translate([0, 0, d_h_unit]) - linear_extrude(height - r_diff * 2) + translate([0, 0, h_head]) + linear_extrude(total_height) square([r_diff * 2, lip_r * 2], center = true); } } module peg_void() { base(radius + spacing, lip_r + spacing); - translate([0, 0, height]) + translate([0, 0, total_height]) linear_extrude(spacing) circle(lip_r); } @@ -43,7 +47,7 @@ module connector_peg(radius, spacing = 0.5, height = radius * 2.6, void = false, } if(heads) { - translate([0, 0, height]) { + translate([0, 0, h]) { head(); mirror([0, 0, 1]) head(); }