3dprint/secret_nut.scad

67 lines
1.7 KiB
OpenSCAD

// secret nut adapter for my subaru impreza (not model, real car :))
spacing = 0.25;
hexagon_size = 19;
hexagon_height = 20;
inner_circle_dia = 15;
outer_circle_inner_dia = 22;
secret_hexagon_solid_spacing = 4;
secret_depth = 13;
module sekretka(extent) {
union() {
translate([0, 0, -3])
cylinder(r=inner_circle_dia/2+extent, h=secret_depth+3, $fn=200);
for (i = [0, 45, 90, 135, 180, 225, 292.5]) {
rotate([0, 0, i])
hull() {
translate([0, -2.5/2, 0]) cube([inner_circle_dia/2+1+extent, 2.5, secret_depth]);
translate([0, -4.5/2, 0]) cube([inner_circle_dia/2-0.5+extent, 4.5, secret_depth]);
}
}
translate([0, 0, -4])
difference() {
cylinder(r=outer_circle_inner_dia/2+2, h=secret_depth+4, $fn=200);
translate([0, 0, 4]) cylinder(r=outer_circle_inner_dia/2-extent, h=16, $fn=200);
}
}
}
/*difference() {
adapter();
//sekretka(0.25);
translate([0, -20, -1]) cube(size=[20, 40, 40]);
}*/
module adapter() {
union() {
translate([0, 0, secret_depth+secret_hexagon_solid_spacing]) cylinder(r=hexagon_size/2/sin(60), h=hexagon_height, $fn=6);
difference() {
translate([0, 0, -1]) cylinder(r=outer_circle_inner_dia/2-spacing, h=secret_depth+secret_hexagon_solid_spacing+1, $fn=200);
sekretka(spacing);
}
}
}
projection(cut = true)
translate([0, 0, -1])
adapter();
projection(cut = true)
translate([25, 0, -secret_depth-secret_hexagon_solid_spacing-1])
adapter();
projection(cut = false)
translate([50, 0, 0])
adapter();
projection(cut = false)
translate([-25, secret_depth+secret_hexagon_solid_spacing, 0])
rotate([90, 90, 0])
adapter();
projection(cut = true)
translate([-50, secret_depth+secret_hexagon_solid_spacing, 0])
rotate([90, 90, 0])
adapter();