3dprint/secret_nut.scad

67 lines
1.7 KiB
OpenSCAD
Raw Permalink Normal View History

2015-05-10 23:06:57 +03:00
// secret nut adapter for my subaru impreza (not model, real car :))
2015-05-10 13:40:24 +03:00
2015-05-24 15:00:21 +03:00
spacing = 0.25;
hexagon_size = 19;
2015-05-24 18:06:03 +03:00
hexagon_height = 20;
2015-05-24 15:00:21 +03:00
inner_circle_dia = 15;
outer_circle_inner_dia = 22;
2015-05-24 18:06:03 +03:00
secret_hexagon_solid_spacing = 4;
secret_depth = 13;
2015-05-24 15:00:21 +03:00
module sekretka(extent) {
2015-05-10 13:40:24 +03:00
union() {
2015-05-24 15:00:21 +03:00
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])
2015-05-10 13:40:24 +03:00
hull() {
2015-05-24 15:00:21 +03:00
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]);
2015-05-10 13:40:24 +03:00
}
}
translate([0, 0, -4])
difference() {
2015-05-24 15:00:21 +03:00
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);
2015-05-10 13:40:24 +03:00
}
}
}
2015-05-24 15:00:21 +03:00
/*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);
}
2015-05-10 13:40:24 +03:00
}
}
2015-05-24 15:00:21 +03:00
projection(cut = true)
translate([0, 0, -1])
adapter();
projection(cut = true)
2015-05-24 18:06:03 +03:00
translate([25, 0, -secret_depth-secret_hexagon_solid_spacing-1])
2015-05-24 15:00:21 +03:00
adapter();
projection(cut = false)
2015-05-24 18:06:03 +03:00
translate([50, 0, 0])
2015-05-24 15:00:21 +03:00
adapter();
projection(cut = false)
2015-05-24 18:06:03 +03:00
translate([-25, secret_depth+secret_hexagon_solid_spacing, 0])
2015-05-24 15:00:21 +03:00
rotate([90, 90, 0])
adapter();
projection(cut = true)
2015-05-24 18:06:03 +03:00
translate([-50, secret_depth+secret_hexagon_solid_spacing, 0])
2015-05-24 15:00:21 +03:00
rotate([90, 90, 0])
adapter();