// 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]); } }