GIVI key grip updates.

This commit is contained in:
Jonathan Bernard 2024-08-05 07:50:32 -05:00
parent 7736cf18aa
commit 3fd141649f
4 changed files with 86341 additions and 16 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,41 +1,76 @@
w=24;
l=24;
d=5;
$fn=360; $fn=360;
difference() { difference() {
color("white") union() { color("white") union() {
translate([-12, 0, -2.5]) cube([24, 12, 5]); // top-half of the main body
translate([-6, -12, -2.5]) cube([12, 12, 5]); translate([-(w/2), 0, -(d/2)]) cube([w, (l/2), d]);
translate([0, 0, 1.5]) cylinder(r1=12, r2=11, h=1);
translate([0, 0, -1.501]) cylinder(r=12, h=3.002); // key tang channel
translate([0, 0, -2.5]) cylinder(r1=11, r2=12, h=1); translate([-6, -12, -(d/2)]) cube([12, 12, d]);
// bottom, rounded half of the main body
translate([0, 0, 1.5]) cylinder(r1=(w/2), r2=11, h=1);
translate([0, 0, -1.501]) cylinder(r=(w/2), h=3.002);
translate([0, 0, -(d/2)]) cylinder(r1=11, r2=(w/2), h=1);
// key-hole support at the top
translate([0, 12, 1.5]) cylinder(r1=6, r2=d, h=1);
translate([0, 12, -1.501]) cylinder(r=6,h=3.002);
translate([0, 12, -(d/2)]) cylinder(r1=d, r2=6, h=1);
} }
union() { union() {
// internal key tang supports
color("red") translate([0, -11.4, 0]) union() { color("red") translate([0, -11.4, 0]) union() {
for (i = [0:8]) { for (i = [0:8]) {
translate([-5, i*1.2, -2]) cube([10, 0.4, 4]); translate([-d, i*1.2, -2]) cube([10, 0.4, 4]);
}
} }
}
// key tang clearance
color("red") translate([0, -(l/2) + (11/2) - 0.01, 0]) cube([7, 11, 2.5], center=true);
// recessed Probatem logo
color("black") union() { color("black") union() {
translate([0, 0, 2.1]) scale([0.32, 0.32, 0.402]) translate([0, 0, 2.11]) scale([0.28, 0.28, 1])
linear_extrude(1) import("probatem-logo.svg", center=true); linear_extrude(0.4) import("probatem-logo.svg", center=true);
// translate([0, 0, -2.301]) rotate([0, 180, 0]) scale([0.32, 0.32, 0.201]) // translate([0, 0, -2.301]) rotate([0, 180, 0]) scale([0.32, 0.32, 0.201])
// linear_extrude(1) import("probatem-logo.svg", center=true); // linear_extrude(1) import("probatem-logo.svg", center=true);
} }
color("slateblue") union() { color("slateblue") union() {
translate([-12, 6.4, 2.5]) rotate([0, 45, 0]) cube([1.414, 13, 1.414], center=true); // side chamfers
translate([-12, 6.4, -2.5]) rotate([0, 45, 0]) cube([1.414, 13, 1.414], center=true); translate([-(w/2), (l/4) + 0.4, (d/2)]) rotate([0, 45, 0]) cube([1.414, (l/2) + 1, 1.414], center=true);
translate([-(w/2), (l/4) + 0.4, -(d/2)]) rotate([0, 45, 0]) cube([1.414, (l/2) + 1, 1.414], center=true);
translate([12, 6.4, 2.5]) rotate([0, 45, 0]) cube([1.414, 13, 1.414], center=true); translate([(w/2), (l/4) + 0.4, (d/2)]) rotate([0, 45, 0]) cube([1.414, (l/2)+1, 1.414], center=true);
translate([12, 6.4, -2.5]) rotate([0, 45, 0]) cube([1.414, 13, 1.414], center=true); translate([(w/2), (l/4) + 0.4, -(d/2)]) rotate([0, 45, 0]) cube([1.414, (l/2)+1, 1.414], center=true);
translate([0, 12, 2.5]) rotate([45, 0, 0]) cube([26, 1.414, 1.414], center=true); /*
translate([0, 12, -2.5]) rotate([45, 0, 0]) cube([26, 1.414, 1.414], center=true); // top chamfers (old)
translate([0, (l/2), (d/2)]) rotate([45, 0, 0]) cube([w+2, 1.414, 1.414], center=true);
translate([0, (l/2), -(d/2)]) rotate([45, 0, 0]) cube([w+2, 1.414, 1.414], center=true);
*/
// top chamfers
translate([9, (l/2), (d/2)]) rotate([45, 0, 0]) cube([6, 1.414, 1.414], center=true);
translate([9, (l/2), -(d/2)]) rotate([45, 0, 0]) cube([6, 1.414, 1.414], center=true);
translate([-9, (l/2), (d/2)]) rotate([45, 0, 0]) cube([6, 1.414, 1.414], center=true);
translate([-9, (l/2), -(d/2)]) rotate([45, 0, 0]) cube([8, 1.414, 1.414], center=true);
translate([-12, 12, 0]) rotate([0, 0, 45]) cube([1.414, 1.414, 6], center=true); // top edge chamfers
translate([12, 12, 0]) rotate([0, 0, 45]) cube([1.414, 1.414, 6], center=true); translate([-(w/2), (l/2), 0]) rotate([0, 0, 45]) cube([1.414, 1.414, 6], center=true);
translate([(w/2), (l/2), 0]) rotate([0, 0, 45]) cube([1.414, 1.414, 6], center=true);
// keyhole
translate([0, 12, 2.25]) cylinder(r1=2.4, r2=2.8, h=0.751, center=true);
translate([0, 12, 0]) cylinder(r=2.4, h=d, center=true);
translate([0, 12, -2.251]) cylinder(r2=2.4, r1=2.8, h=0.751, center=true);
//translate([8.4, 8.4, 0]) cylinder(r=2, h=1, center=true);
} }
} }
} }

Binary file not shown.

View File

@ -0,0 +1,13 @@
tw=15; // toungue width
td=7; // toungue depth
rw=1.2; // rail width
sw=((tw - (rw * 3)) / 2); // slot width
difference() {
cube([tw, td, rw]);
union() {
translate([rw, rw, -0.1]) cube([sw, 1.6, 2]);
translate([tw - sw - rw, rw, -0.1]) cube([sw, 1.6, 2]);
}
}