diff --git a/gridfinity-rebuilt-baseplate.scad b/gridfinity-rebuilt-baseplate.scad index 099d235..50413b4 100644 --- a/gridfinity-rebuilt-baseplate.scad +++ b/gridfinity-rebuilt-baseplate.scad @@ -53,7 +53,7 @@ style_plate = 0; // [0: thin, 1:weighted, 2:skeletonized, 3: screw together, 4: enable_magnet = true; // hole styles -style_hole = 2; // [0:none, 1:contersink, 2:counterbore] +style_hole = 2; // [0:none, 1:countersink, 2:counterbore] // ===== IMPLEMENTATION ===== // diff --git a/gridfinity-rebuilt-bins.scad b/gridfinity-rebuilt-bins.scad index b5976de..d4be791 100644 --- a/gridfinity-rebuilt-bins.scad +++ b/gridfinity-rebuilt-bins.scad @@ -60,7 +60,7 @@ scoop = 1; //[0:0.1:1] only_corners = false; /* [Base] */ -style_hole = 3; // [0:no holes, 1:magnet holes only, 2: magnet and screw holes - no printable slit, 3: magnet and screw holes - printable slit] +style_hole = 4; // [0:no holes, 1:magnet holes only, 2: magnet and screw holes - no printable slit, 3: magnet and screw holes - printable slit, 4: Gridfinity Refined hole - no glue needed] // number of divisions per 1 unit of base along the X axis. (default 1, only use integers. 0 means automatically guess the right division) div_base_x = 0; // number of divisions per 1 unit of base along the Y axis. (default 1, only use integers. 0 means automatically guess the right division) diff --git a/gridfinity-rebuilt-utility.scad b/gridfinity-rebuilt-utility.scad index c330461..568752d 100644 --- a/gridfinity-rebuilt-utility.scad +++ b/gridfinity-rebuilt-utility.scad @@ -119,8 +119,12 @@ module block_base(gx, gy, l, dbnx, dbny, style_hole, off) { if (style_hole > 0) pattern_circular(abs(l-d_hole_from_side/2)<0.001?1:4) - translate([l/2-d_hole_from_side, l/2-d_hole_from_side, 0]) - block_base_hole(style_hole, off); + if (style_hole == 4) + translate([l/2-d_hole_from_side, l/2-d_hole_from_side, h_slit*2]) + refined_hole(); + else + translate([l/2-d_hole_from_side, l/2-d_hole_from_side, 0]) + block_base_hole(style_hole, off); } } @@ -161,6 +165,39 @@ module block_base_hole(style_hole, o=0) { } } + +module refined_hole() { + /** + * Refined hole based on Printables @grizzie17's Gridfinity Refined + * https://www.printables.com/model/413761-gridfinity-refined + */ + + // Meassured magnet hole diameter to be 5.86mm (meassured in fusion360 + r = r_hole2-0.32; + + // Magnet height + m = 2; + mh = m-0.1; + + // Poke through - For removing a magnet using a toothpick + ptl = h_slit*3; // Poke Through Layers + pth = mh+ptl; // Poke Through Height + ptr = 2.5; // Poke Through Radius + + union() { + hull() { + // Magnet hole - smaller than the magnet to keep it squeezed + translate([10, -r, 0]) cube([1, r*2, mh]); + cylinder(1.9, r=r); + } + hull() { + // Poke hole + translate([-9+5.60, -ptr/2, -ptl]) cube([1, ptr, pth]); + translate([-12.53+5.60, 0, -ptl]) cylinder(pth, d=ptr); + } + } +} + module profile_wall_sub_sub() { polygon([ [0,0], @@ -256,7 +293,7 @@ module block_cutter(x,y,w,h,t,s) { translate([0,ylen/2,h_base+h_bot]) rotate([90,0,-90]) { - if (!zsmall && xlen - d_tabw > 4*r_f2 && t != 0) { + if (!zsmall && xlen - d_tabw > 4*r_f2 && (t != 0 && t != 5)) { fillet_cutter(3,"bisque") difference() { transform_tab(style, xlen, ((xcutfirst&&style==-1)||(xcutlast&&style==1))?v_cut_lip:0)