diff --git a/gridfinity-rebuilt-baseplate.scad b/gridfinity-rebuilt-baseplate.scad index 909d116..d0a4fdf 100644 --- a/gridfinity-rebuilt-baseplate.scad +++ b/gridfinity-rebuilt-baseplate.scad @@ -224,7 +224,7 @@ module gridfinityBaseplate(grid_size_bases, length, min_size_mm, sp, hole_option if (screw_together) { translate([0, 0, additional_height/2]) - cutter_screw_together(grid_size.x, grid_size.y, length); + cutter_screw_together(grid_size, padding_mm, length); } } } @@ -392,18 +392,24 @@ module profile_skeleton(size=l_grid) { } } -module cutter_screw_together(gx, gy, size = l_grid) { +module cutter_screw_together(grid_size, padding_mm, size = l_grid) { + gx = grid_size.x > 0 ? grid_size.x : 0; + gy = grid_size.y > 0 ? grid_size.y : 0; + gh = grid_size.x == 0 ? padding_mm.x : (grid_size.y == 0 ? padding_mm.y : size); - screw(gx, gy); - rotate([0,0,90]) - screw(gy, gx); + screw(gx, gy, gh + 1); - module screw(a, b) { - copy_mirror([1,0,0]) - translate([a*size/2, 0, 0]) - pattern_linear(1, b, 1, size) - pattern_linear(1, n_screws, 1, d_screw_head + screw_spacing) - rotate([0,90,0]) - cylinder(h=size/2, d=d_screw, center = true); + module screw(a, b, h = size) { + translate([a*h/2, 0, 0]) + pattern_linear(1, b, 1, size) + pattern_linear(1, n_screws, 1, d_screw_head + screw_spacing) + rotate([0,90,0]) + cylinder(h=h, d=d_screw, center=true); + + translate([a*h/2, 0, 0]) + pattern_linear(1, b, 1, size) + pattern_linear(1, n_screws, 1, d_screw_head + screw_spacing) + rotate([0,90,0]) + cylinder(h=h, d=(style_hole == 2) ? d_screw*1.8 : d_screw, center=false); } }