mirror of
https://github.com/mon/PocketVoltex.git
synced 2026-09-28 17:58:08 +03:00
99 lines
1.9 KiB
OpenSCAD
99 lines
1.9 KiB
OpenSCAD
use <case.scad>;
|
|
|
|
$fn=128;
|
|
|
|
// to easily automate exports
|
|
produce = 0;
|
|
if(produce == 0)
|
|
render();
|
|
else if(produce == 1)
|
|
bottom_padding();
|
|
else if(produce == 2)
|
|
mainCuts();
|
|
else if(produce == 3)
|
|
padding();
|
|
|
|
knobOffset = 74;
|
|
knobY = -83;
|
|
main_thickness = 37.5;
|
|
bottom_thickness = 5;
|
|
padding_thickness = 12;
|
|
|
|
encoders = [[-64,0.4],
|
|
[ 64,0.4]];
|
|
encoderShaftHole = 5.5;
|
|
|
|
finger = 20;
|
|
fingerX = -75;
|
|
fingerY = -25;
|
|
|
|
squeeze = 0; // so things are held tight
|
|
gap = 1; // for the top cover
|
|
|
|
size = [180, 140];
|
|
|
|
module mainCuts() {
|
|
difference() {
|
|
translate([0,-30])
|
|
square(size, center = true);
|
|
|
|
offset(delta = -squeeze)
|
|
board();
|
|
|
|
translate([-knobOffset, knobY])
|
|
circle(d = 25 - squeeze);
|
|
translate([knobOffset,knobY])
|
|
circle(d = 25 - squeeze);
|
|
|
|
translate([0, 15])
|
|
square([80, 3], center = true);
|
|
|
|
translate([0, 28])
|
|
square([100, 13], center = true);
|
|
|
|
translate([fingerX,fingerY])
|
|
circle(d=finger);
|
|
translate([-fingerX,fingerY])
|
|
circle(d=finger);
|
|
}
|
|
}
|
|
|
|
module padding() {
|
|
difference() {
|
|
offset(delta = -gap)
|
|
board();
|
|
|
|
for(e = encoders) {
|
|
translate(e)
|
|
circle(d=encoderShaftHole);
|
|
}
|
|
}
|
|
}
|
|
|
|
module bottom_padding() {
|
|
square(size, center = true);
|
|
}
|
|
|
|
module render() {
|
|
full_stack(false);
|
|
|
|
color([0.3,0.3,0.3,0.9])
|
|
linear_extrude(main_thickness)
|
|
mainCuts();
|
|
|
|
color([0.3,0.3,0.3,0.9])
|
|
// extra 1 for visualisation purposes
|
|
translate([0,-30,-bottom_thickness-1])
|
|
linear_extrude(bottom_thickness)
|
|
bottom_padding();
|
|
|
|
color([0.3,0.3,0.3,0.9])
|
|
translate([0, 0, 25.5])
|
|
linear_extrude(padding_thickness)
|
|
padding();
|
|
|
|
translate([-knobOffset, knobY])
|
|
encoder_knob();
|
|
translate([knobOffset,knobY])
|
|
encoder_knob();
|
|
} |