Compare commits

..

6 Commits

Author SHA1 Message Date
d9a90190f7 Generated models for left and right hand 2025-09-12 22:12:02 +02:00
0c68eedebe Create frame 2025-09-12 21:20:15 +02:00
0ff12f7b27 Updated case with space for rubber feet 2025-09-10 18:37:04 +02:00
d43b6f746a adjusting aux clearance 2025-08-31 22:50:17 +02:00
e5f475f01d Updated stl 2025-08-31 18:55:32 +02:00
a2f4acde16 Added missing clearance on length from top to aux 2025-08-31 18:55:11 +02:00
10 changed files with 74 additions and 10 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -51,6 +51,9 @@ $pcbDampenerOffset = $pcbHeight + $dampenerHeight;
picoUsbBody = [8, 5.66, 2.65]; picoUsbBody = [8, 5.66, 2.65];
jackBody = [15,6.15,5.3]; jackBody = [15,6.15,5.3];
$footRadius = (6.4 + $clearance) /2;
$footHeight = 1.8;
module pin(){ module pin(){
cylinder(h=$holes, r=1, center=false); cylinder(h=$holes, r=1, center=false);
} }
@@ -125,16 +128,11 @@ rightTopDampener();
//leftTopDampener(); //leftTopDampener();
//} //}
} }
module case(){
// Then adjust the shim, aux and pico.
// Last add magnets, don't forget the clearance.
$baseHeight = 7.6;
module magnets(){
$magnetWidth = 4; $magnetWidth = 4;
$magnetRadius = ($magnetWidth / 2) + $clearance/2; $magnetRadius = ($magnetWidth / 2) + $clearance/2;
$magnetHeight = 2 + $clearance; $magnetHeight = 2 + $clearance;
module magnets(){
$offset = ($shellWidth / 2 / 2) -0.8 ; $offset = ($shellWidth / 2 / 2) -0.8 ;
// Set Z-origin to align with shell top // Set Z-origin to align with shell top
translate([0, 0, $shellHeight -$magnetHeight]){ translate([0, 0, $shellHeight -$magnetHeight]){
@@ -148,6 +146,7 @@ module case(){
cylinder(h=$magnetHeight, r=$magnetRadius); cylinder(h=$magnetHeight, r=$magnetRadius);
} }
} }
$baseHeight = 7.6;
module aux(){ module aux(){
$topLeftOfPcbToCenterOfAux = 15.4; $topLeftOfPcbToCenterOfAux = 15.4;
$measurementPcbPlaneToCenterOfAux = 2.8; $measurementPcbPlaneToCenterOfAux = 2.8;
@@ -156,7 +155,7 @@ module case(){
$auxHoleLength = 17 + $shellWidth/2; $auxHoleLength = 17 + $shellWidth/2;
$auxCableRadius = 4.15 + $clearance *2; $auxCableRadius = 4.15 + $clearance *2;
// Move to the position along the wall the aux will be // Move to the position along the wall the aux will be
translate([-($shellWidth/2 + $clearance),$switchDistance * $rows - $topLeftOfPcbToCenterOfAux,-$auxClearanceFromBase]) translate([-($shellWidth/2 + $clearance),$switchDistance * $rows - $topLeftOfPcbToCenterOfAux + $clearance,-$auxClearanceFromBase])
// Make cylinder perpendicular with the wall // Make cylinder perpendicular with the wall
rotate([0,90,0]){ rotate([0,90,0]){
// Aux component clearance // Aux component clearance
@@ -206,6 +205,13 @@ module case(){
]); ]);
} }
} }
module case(){
// Then adjust the shim, aux and pico.
// Last add magnets, don't forget the clearance.
module shim(){ module shim(){
$shimPoints = [ $shimPoints = [
[0 - $shellWidth / 2, - $baseHeight], [0 - $shellWidth / 2, - $baseHeight],
@@ -234,6 +240,26 @@ module case(){
} }
} }
} }
module feet(){
module foot() {
cylinder(h = $footHeight, r = $footRadius, center = true);
}
// Inner side
translate([0,0,$footHeight/2-$baseHeight]){
translate([points[0].x, points[0].y, 0])
foot();
translate([points[1].x, points[1].y, 0])
foot();
}
// Outer side
translate([0, 0, -1]){
translate([points[9].x, points[9].y, 0])
foot();
translate([points[8].x, points[8].y, 0])
foot();
}
}
difference(){ difference(){
body(); body();
@@ -241,6 +267,7 @@ module case(){
pico(); pico();
aux(); aux();
magnets(); magnets();
feet();
} }
} }
module pcb() { module pcb() {
@@ -277,7 +304,44 @@ module pcb() {
} }
module lid(){
difference(){
translate([0,0,$shellHeight]){
union(){
linear_extrude($magnetHeight+0.2){
difference(){
offset(r=$shellWidth/2 + $clearance, chamfer=true) polygon(points);
offset(r=$clearance) polygon(points);
}
}
linear_extrude(1){
difference(){
offset(r=$clearance) polygon(points);
offset(r=-1.5, chamfer=true) polygon(points);
}
}
}
}
translate([0,0,$magnetHeight-0.1])
magnets();
}
}
module botDampener(){
difference(){
topDampeners();
aux();
translate([0,0,2])
pico();
}
}
mirror([1,0,0]){
*%pcb(); *%pcb();
*%topDampeners(); *topDampeners();
case(); *botDampener();
*case();
lid();
}