1
0
Fork 0
3d/monitor headphone mount.scad
2024-04-13 12:48:55 -04:00

79 lines
No EOL
3.8 KiB
OpenSCAD

// LG Ultrawide monitor headphone mount
// Mounted on back of monitor instead of monitor stand
// length units are millimeters
mountHeightEnd = 22.52;
mountHeightStart = 26.46;
mountWidthEnd = 15.00;
mountWidthStart = 14.52;
mountWidthScrewInset = 8.43;
screwHoleDistanceInner = 8.56;
screwHoleDistanceOuter = 14.68;
screwHoleToMountBottom = 4.27;
screwHoleToMountTop = 4.16;
screwDiameter = 4.50;
screwRadius = screwDiameter / 2;
mountToScreenBottomHeight = 30.00; //27.55;
screenBaseThickness = 45.00;
mountProtrusionFromScreenBack = 33.10;
headphoneArmLength = 50.00;
miscThickness = 6.00;
circleResolution=360*4; // faces per rotation
union() {
translate([0, 0, mountToScreenBottomHeight + miscThickness]) mountEnd(miscThickness);
headphoneMount(miscThickness);
//mountEnd(miscThickness);
}
module mountEnd(thickness) {
difference() {
cube([mountWidthEnd, thickness, mountHeightEnd]);
union() {
translate([mountWidthEnd / 2, thickness / 2, screwHoleToMountBottom + screwRadius])
rotate([-90, 0, 0])
cylinder(r = screwRadius, h = thickness + 0.02, center=true, $fn=circleResolution);
translate([mountWidthEnd / 2, thickness / 2, screwHoleToMountBottom])
rotate([-90, 0, 0])
cylinder(r = screwRadius, h = thickness + 0.02, center=true, $fn=circleResolution);
translate([mountWidthEnd / 2, thickness / 2, screwHoleToMountBottom + screwRadius/2])
rotate([-90, 0, 0])
cylinder(r = screwRadius, h = thickness + 0.02, center=true, $fn=circleResolution);
translate([mountWidthEnd / 2, thickness / 2, mountHeightEnd - (screwHoleToMountTop + screwRadius)])
rotate([-90, 0, 0])
cylinder(r = screwRadius, h = thickness + 0.02, center=true, $fn=circleResolution);
}
}
}
module headphoneMount(thickness) {
// stock down from monitor mount to clear bottom of monitor
cube([mountWidthEnd, thickness, mountToScreenBottomHeight + thickness]);
//color("red") cube([mountWidthEnd, thickness + screenBaseThickness + mountProtrusionFromScreenBack, thickness]);
// quarter circle under monitor
translate ([mountWidthEnd/2, screenBaseThickness + mountProtrusionFromScreenBack, 0]) difference() {
cylinder(r = screenBaseThickness + mountProtrusionFromScreenBack, h = thickness, $fn=circleResolution);
translate([0,0,-0.01])
cylinder(r = (screenBaseThickness + mountProtrusionFromScreenBack) - (mountWidthEnd), h = thickness + 0.02, $fn=circleResolution);
translate([-(screenBaseThickness + mountProtrusionFromScreenBack) - 0.01, thickness, -0.01])
cube([(screenBaseThickness + mountProtrusionFromScreenBack) * 2.01, (screenBaseThickness + mountProtrusionFromScreenBack), thickness + 0.02]);
translate([mountWidthEnd/2, -(screenBaseThickness + mountProtrusionFromScreenBack)-0.01, -0.01])
cube([screenBaseThickness + mountProtrusionFromScreenBack, screenBaseThickness + mountProtrusionFromScreenBack + thickness+0.02, thickness + 0.02]);
}
// right angle connection reinforcement quarter circle
difference() {
cube([mountWidthEnd, mountWidthEnd + 0.25, mountWidthEnd + thickness]);
translate([-0.01, mountWidthEnd + thickness, mountWidthEnd + thickness])
rotate([0,90,0])
cylinder(r = mountWidthEnd * 1.02, h = mountWidthEnd + 0.02, $fn=circleResolution);
}
// headphone arm
translate([-(screenBaseThickness + mountProtrusionFromScreenBack) + (mountWidthEnd / 2), (screenBaseThickness + mountProtrusionFromScreenBack + thickness), 0]) {
cube([mountWidthEnd,headphoneArmLength + thickness,thickness]);
translate([0, headphoneArmLength + thickness, 0])
cube([mountWidthEnd, thickness, thickness * 2]);
}
}