mirror of
https://github.com/kennetek/gridfinity-rebuilt-openscad.git
synced 2024-12-22 14:53:25 +00:00
Merge remote-tracking branch 'origin/main' into pre-commit
Conflicts: gridfinity-rebuilt-utility.scad
This commit is contained in:
commit
86cab75c50
3 changed files with 42 additions and 5 deletions
|
@ -53,7 +53,7 @@ style_plate = 0; // [0: thin, 1:weighted, 2:skeletonized, 3: screw together, 4:
|
||||||
enable_magnet = true;
|
enable_magnet = true;
|
||||||
|
|
||||||
// hole styles
|
// hole styles
|
||||||
style_hole = 2; // [0:none, 1:contersink, 2:counterbore]
|
style_hole = 2; // [0:none, 1:countersink, 2:counterbore]
|
||||||
|
|
||||||
|
|
||||||
// ===== IMPLEMENTATION ===== //
|
// ===== IMPLEMENTATION ===== //
|
||||||
|
|
|
@ -60,7 +60,7 @@ scoop = 1; //[0:0.1:1]
|
||||||
only_corners = false;
|
only_corners = false;
|
||||||
|
|
||||||
/* [Base] */
|
/* [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)
|
// 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;
|
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)
|
// number of divisions per 1 unit of base along the Y axis. (default 1, only use integers. 0 means automatically guess the right division)
|
||||||
|
|
|
@ -119,8 +119,12 @@ module block_base(gx, gy, l, dbnx, dbny, style_hole, off) {
|
||||||
|
|
||||||
if (style_hole > 0)
|
if (style_hole > 0)
|
||||||
pattern_circular(abs(l-d_hole_from_side/2)<0.001?1:4)
|
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])
|
if (style_hole == 4)
|
||||||
block_base_hole(style_hole, off);
|
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() {
|
module profile_wall_sub_sub() {
|
||||||
polygon([
|
polygon([
|
||||||
[0,0],
|
[0,0],
|
||||||
|
@ -256,7 +293,7 @@ module block_cutter(x,y,w,h,t,s) {
|
||||||
translate([0,ylen/2,h_base+h_bot])
|
translate([0,ylen/2,h_base+h_bot])
|
||||||
rotate([90,0,-90]) {
|
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")
|
fillet_cutter(3,"bisque")
|
||||||
difference() {
|
difference() {
|
||||||
transform_tab(style, xlen, ((xcutfirst&&style==-1)||(xcutlast&&style==1))?v_cut_lip:0)
|
transform_tab(style, xlen, ((xcutfirst&&style==-1)||(xcutlast&&style==1))?v_cut_lip:0)
|
||||||
|
|
Loading…
Reference in a new issue