New paste Repaste Download
$fa = 0.1;
$fs = 0.1;
module mirrorkeep(m) {
    children();
    mirror(m) children();
}
module outline(short=false) {
    offset(-4) offset(4) {
        offset(6) offset(-6) if (short) {
            square([54, 23], center=true);
        } else {
            translate([0, 8]) square([54, 39], center=true);
        }
        offset(2) offset(-2) translate([0, -3]) square([23, 53], center=true);
    }
}
module holes_hinge() {
    mirrorkeep([1, 0]) translate([16, 0]) {
        children();
    }
}
module holes_cupboard() {
    mirrorkeep([1, 0]) translate([16, 0]) {
        translate([0, 17]) {
            children();
        }
    }
}
module ridge_2d() {
    difference() {
        offset(1.4) offset(-4) outline(true);
        offset(1.6) offset(-8)  outline(true);
        translate([0, 39]) square(50, center=true);
        mirrorkeep([1, 0]) translate([16, 0]) {
            hull() mirrorkeep([1, 0]) translate([2, 0]) circle(d=7);
        }
    }
}
module ridge() {
    intersection() {
        scale([1, 1, 2.5]) {
            roof(convexity=10) ridge_2d();
        }
        linear_extrude(height=2.5, convexity=8) outline(false);
    }
}
module tilt() {
    translate([0, 16, 0]) rotate([-2, 0, 0]) translate([0, -16, 0]) children();
}
module fixment(thickness = 2.5) {
    intersection() {
        difference() {
            union() {
                linear_extrude(height=thickness-1, convexity=4) offset(1) outline();
                tilt() {
                    linear_extrude(height=thickness, convexity=4) difference() {
                        offset(2) outline();
                    }
                    translate([0, 0, thickness]) {
                        ridge();
                    }
                    translate([0, -11.9, 0]) cylinder(d=5.2, h=thickness + 1.5);
                }
            }
            tilt() holes_hinge() {
                cylinder(d=6.2, h=100, center=true);
                translate([0, 0, -0.5]) {
                    cylinder(d2=6.2, d1=9.5, h=1);
                    mirror([0, 0, 1]) {
                        cylinder(d=9.5, h=10);
                    }
                }
            }
            holes_cupboard() {
                hull() mirrorkeep([1, 0]) translate([1.5, 0]) cylinder(d=6, h=100, center=true);
            }
        }
        translate([0, 0, 50]) cube(100, center=true);
    }
}
module plate(thickness = 6) {
    translate([0, 0, 0]) {
        difference() {
            intersection() {
                //scale([1, 1, 2.5]) roof(convexity=4) difference() {
                linear_extrude(height=20, convexity=4) difference() {
                    offset(10) outline(false);
                    offset(1) offset(-1) offset(-1) offset(1) difference() {
                        translate([0, 0.2]) offset(0.5) outline(true);
                        mirrorkeep([1, 0]) translate([14, 23]) square(10, center=true);
                    }
                }
                linear_extrude(height=thickness, convexity=8) offset(3) outline(false);
            }
            translate([0, 28, 11.2]) cube(17.99, center=true);
            holes_cupboard() {
                hull() mirrorkeep([1, 0]) translate([1.5, 0]) cylinder(d=6, h=100, center=true);
            }
        }
    }
}
//#import("hingeplate.stl");
linear_extrude(height=2) intersection() {
projection() difference() {
    union() {
        plate(6);
        fixment(2.5);
    }
    translate([16, -14, -1]) cylinder(d=16, h=13);
}
translate([0, -50]) square(100);
}
module tool() {
    difference() {
        linear_extrude(height=14) offset(-0.25) difference() {
            outline(true);
            translate([0, 28]) square(31, center=true);
            translate([0, -28]) square(31, center=true);
            holes_hinge() circle(d=5.5);
        }
        translate([0, 0, 10]) linear_extrude(height=10) offset(0.5) ridge_2d();
        
        //translate([0, 0, 10]) linear_extrude(height=10) offset(4) offset(-3) square([48, 17], center=true);
        translate([0, 0, 8]) linear_extrude(height=10) offset(3) offset(-3) square([24, 48], center=true);
    }
}
//tool();
Filename: None. Size: 4kb. View raw, , hex, or download this file.

This paste expires on 2025-02-27 21:44:29.126876. Pasted through web.