Enclosure adjustments

This commit is contained in:
Will Bradley 2024-05-01 16:22:11 -07:00
parent 5a9c3d9daf
commit 5b5cd63f99
Signed by: will
GPG Key ID: 1159B930701263F3
2 changed files with 36 additions and 34 deletions

View File

@ -4,48 +4,47 @@ $fn=40;
rotateAngle=54; rotateAngle=54;
leeway=0.5; leeway=0.7;
bodyFaceW=120; bodyFaceW=150;
bodyFaceH=100; bodyFaceH=120;
bodyBackW=30; bodyBackW=30;
bodyBackH=20; bodyBackH=20;
bodyDepth=55; bodyDepth=55;
screwHoleDia=2; screwHoleDia=2;
screwHeight=5;
screenWidth=16.5+leeway; // visible screenWidth=16.5+leeway; // visible
screenHeight=13+leeway; // visible screenHeight=13+leeway; // visible
screenY=-35; screenY=-37;
screenX=30; screenX=40;
screenCutoutWidth=19+leeway; screenCutoutWidth=19+leeway;
screenCutoutHeight=19.5+leeway; screenCutoutHeight=19.5+leeway;
screenMountWidth=21+leeway; screenMountWidth=21+leeway;
screenMountHeight=21+leeway; screenMountHeight=21+leeway;
screenScrewDia=3; screenScrewDia=4;
screenScrewHeight=3;
screenBracketHeight=7; screenBracketHeight=7;
keypadWidth=46+leeway; // visible keypadWidth=46+leeway; // visible
keypadHeight=57+leeway; // visible keypadHeight=57+leeway; // visible
keypadDepth=4; keypadDepth=4;
keypadY=10; keypadY=10;
keypadX=30; keypadX=40;
keypadMountDia=3; keypadMountDia=3;
speakerWidth=45; // visible speakerWidth=45; // visible
speakerMountWidth=50;
speakerConeWidth=60; speakerConeWidth=60;
speakerDepth=2.2; speakerDepth=2.2;
speakerY=0; speakerY=0;
speakerX=-27; speakerX=-30;
sensorWidth=4; // visible sensorWidth=4; // visible
sensorDepth=4; sensorDepth=4;
sensorY=-10; sensorY=-5;
powerWidth=8; // visible powerWidth=14; // visible
powerHeight=4; powerHeight=7;
powerDepth=10; powerDepth=10;
powerY=0; powerY=0;
@ -60,25 +59,25 @@ module speaker(){
// screen thickness cutout // screen thickness cutout
translate([screenX,-screenY,-1]) cuboid([screenCutoutWidth,screenCutoutHeight,2], anchor=TOP) translate([screenX,-screenY,-1]) cuboid([screenCutoutWidth,screenCutoutHeight,2], anchor=TOP)
tag("mount") { tag("mount") {
position(LEFT) left(4) tube(h=screenScrewHeight, od=screenScrewDia, id=screwHoleDia, anchor=TOP); position(LEFT+TOP) left(4) up(1) tube(h=screwHeight, od=screenScrewDia, id=screwHoleDia, anchor=TOP);
position(RIGHT) right(4) tube(h=screenScrewHeight, od=screenScrewDia, id=screwHoleDia, anchor=TOP); position(RIGHT+TOP) right(4) up(1) tube(h=screwHeight, od=screenScrewDia, id=screwHoleDia, anchor=TOP);
} }
// keypad // keypad
translate([keypadX,-keypadY,0.1]) cuboid([keypadWidth,keypadHeight,keypadDepth], rounding=4, edges=["Z"], anchor=TOP) translate([keypadX,-keypadY,0.1]) cuboid([keypadWidth,keypadHeight,keypadDepth], rounding=4, edges=["Z"], anchor=TOP)
tag("mount") { tag("mount") {
//TODO: actually measure these, consider screws //TODO: actually measure these, consider screws
position(FRONT+LEFT) translate([-.2,-1,0]) tube(h=1, od=keypadMountDia, id=screwHoleDia/2, anchor=TOP); position(FRONT+LEFT+TOP) translate([-.2,-1,-.1]) tube(h=screwHeight, od=keypadMountDia, id=screwHoleDia/2, anchor=TOP);
position(BACK+LEFT) translate([-.2,1,0]) tube(h=1, od=keypadMountDia, id=screwHoleDia/2, anchor=TOP); position(BACK+LEFT+TOP) translate([-.2,1,-.1]) tube(h=screwHeight, od=keypadMountDia, id=screwHoleDia/2, anchor=TOP);
position(FRONT+RIGHT) translate([.2,-1,0]) tube(h=1, od=keypadMountDia, id=screwHoleDia/2, anchor=TOP); position(FRONT+RIGHT+TOP) translate([.2,-1,-.1]) tube(h=screwHeight, od=keypadMountDia, id=screwHoleDia/2, anchor=TOP);
position(BACK+RIGHT) translate([.2,1,0]) tube(h=1, od=keypadMountDia, id=screwHoleDia/2, anchor=TOP); position(BACK+RIGHT+TOP) translate([.2,1,-.1]) tube(h=screwHeight, od=keypadMountDia, id=screwHoleDia/2, anchor=TOP);
} }
// speaker // speaker
translate([speakerX,-speakerY,0.1]) cylinder(h=speakerDepth, d1=speakerWidth, d2=speakerConeWidth, anchor=TOP) translate([speakerX,-speakerY,0.1]) cylinder(h=speakerDepth, d1=speakerWidth, d2=speakerConeWidth, anchor=TOP)
tag("mount") { tag("mount") {
zrot_copies([90, 180, 270]) left(speakerConeWidth/2) zrot_copies([0, 120, 240]) right(speakerConeWidth/2)
tube(h=4, od=4, id=screwHoleDia, anchor=TOP); tube(h=screwHeight, od=4, id=screwHoleDia, anchor=TOP);
} }
} }
attach(BACK) { attach(BACK) {
@ -86,30 +85,30 @@ module speaker(){
translate([0,-sensorY,0]) cylinder(h=sensorDepth, d=sensorWidth, center=true) translate([0,-sensorY,0]) cylinder(h=sensorDepth, d=sensorWidth, center=true)
tag("mount") { tag("mount") {
zrot_copies([0, 90, 180, 270]) translate([10,10,0]) zrot_copies([0, 90, 180, 270]) translate([10,10,0])
tube(h=5, od=4, id=screwHoleDia, anchor=TOP); tube(h=screwHeight, od=screwHoleDia+3, id=screwHoleDia, anchor=TOP);
} }
} }
attach(BOTTOM) { attach(BOTTOM) {
// power // power
translate([0,-powerY,0]) cuboid([powerWidth, powerHeight, powerDepth], rounding=1, center=true) translate([0,-powerY,0]) cuboid([powerWidth, powerHeight, powerDepth], rounding=1)
tag("mount") { tag("mount") {
zrot_copies([0, 180]) fwd(5) zrot_copies([0, 180]) fwd((powerHeight+screwHoleDia+3)/2+1)
tube(h=5, od=4, id=screwHoleDia, anchor=TOP); tube(h=screwHeight, od=screwHoleDia+3, id=screwHoleDia, anchor=TOP);
} }
} }
// clamshell posts // clamshell posts
attach(TOP) tag("mount") { attach(TOP) tag("mount") {
// post // post
zrot_copies([0, 180]) fwd(bodyFaceH/2-8) zrot_copies([0, 180]) fwd(bodyFaceH/2-9)
tube(h=5, od=4, id=screwHoleDia, anchor=TOP); tube(h=screwHeight+1, od=4, id=screwHoleDia, anchor=TOP);
// tube // tube
zrot_copies([0, 180]) fwd(bodyFaceH/2-8) down(5) { zrot_copies([0, 180]) fwd(bodyFaceH/2-9) down(screwHeight+1) {
diff("hole"){ diff("hole"){
tube(h=1, od=5+leeway, id=3+leeway, anchor=TOP); tube(h=1, od=5+leeway, id=2.5+leeway, anchor=TOP);
tube(h=8, od=6, id=5+leeway, anchor=TOP) tube(h=8, od=6, id=5+leeway, anchor=TOP)
tag("hole") position(BOTTOM) rotate([-53,0,0]) cube([20,20,5], anchor=CTR); tag("hole") position(BOTTOM) rotate([-53,0,0]) cube([20,20,5], anchor=CTR);
} }
tag("hole") down(1) cylinder(h=20, d=5+leeway, anchor=TOP); tag("hole") cylinder(h=20, d=5+leeway, anchor=TOP);
} }
} }
// hollow // hollow
@ -121,13 +120,16 @@ module speaker(){
// clamshell halves // clamshell halves
difference(){ difference(){
speaker(); speaker();
translate([0,-bodyDepth-13+6.1,0]) rotate([-rotateAngle+18,0,0]) partition_mask(l=1000, h=1000, w=0.1, gap=0, cutpath="flat"); translate([0,-bodyDepth-13+7.31,0]) rotate([-rotateAngle+18,0,0]) partition_mask(l=1000, h=1000, w=0.1, gap=0, cutpath="flat");
} }
// screen mount bracket // screen mount bracket
diff("hole") back(100) cuboid([screenCutoutWidth+16,screenBracketHeight,2], anchor=TOP) diff("hole") back(100) cuboid([screenCutoutWidth+16,screenBracketHeight,2], anchor=TOP)
tag("hole") { tag("hole") {
position(LEFT) left(-4) cylinder(h=4, d=3, anchor=CTR); position(LEFT) left(-4) cylinder(h=4, d=screwHoleDia+1, anchor=CTR);
position(RIGHT) right(-4) cylinder(h=4, d=3, anchor=CTR); position(RIGHT) right(-4) cylinder(h=4, d=screwHoleDia+1, anchor=CTR);
} }
// speaker washers
zrot_copies([15,-15]) back(50) tube(h=2, od=(speakerConeWidth-speakerWidth)/2+9, id=screwHoleDia+1);

Binary file not shown.