// 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; horizontalThickness = 8.00; verticalThickness = 6.50; circleResolution=360*4; // faces per rotation union() { translate([0, 0, mountToScreenBottomHeight + horizontalThickness]) mountEnd(verticalThickness); headphoneMount(horizontalThickness, verticalThickness); //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(zThickness, yThickness) { // stock down from monitor mount to clear bottom of monitor cube([mountWidthEnd, yThickness, mountToScreenBottomHeight + zThickness]); //color("red") cube([mountWidthEnd, thickness + screenBaseThickness + mountProtrusionFromScreenBack, thickness]); // quarter circle under monitor translate ([mountWidthEnd/2, screenBaseThickness + mountProtrusionFromScreenBack, 0]) difference() { cylinder(r = screenBaseThickness + mountProtrusionFromScreenBack, h = zThickness, $fn=circleResolution); translate([0,0,-0.01]) cylinder(r = (screenBaseThickness + mountProtrusionFromScreenBack) - (mountWidthEnd), h = zThickness + 0.02, $fn=circleResolution); translate([-(screenBaseThickness + mountProtrusionFromScreenBack) - 0.01, yThickness, -0.01]) cube([(screenBaseThickness + mountProtrusionFromScreenBack) * 2.01, (screenBaseThickness + mountProtrusionFromScreenBack), zThickness + 0.02]); translate([mountWidthEnd/2, -(screenBaseThickness + mountProtrusionFromScreenBack)-0.01, -0.01]) cube([screenBaseThickness + mountProtrusionFromScreenBack, screenBaseThickness + mountProtrusionFromScreenBack + yThickness+0.02, zThickness + 0.02]); } // right angle connection reinforcement quarter circle difference() { cube([mountWidthEnd, mountWidthEnd + 0.25, mountWidthEnd + zThickness]); translate([-0.01, mountWidthEnd + yThickness, mountWidthEnd + zThickness]) rotate([0,90,0]) cylinder(r = mountWidthEnd * 1.02, h = mountWidthEnd + 0.02, $fn=circleResolution); } // headphone arm translate([-(screenBaseThickness + mountProtrusionFromScreenBack) + (mountWidthEnd / 2), (screenBaseThickness + mountProtrusionFromScreenBack + yThickness), 0]) { cube([mountWidthEnd,headphoneArmLength + yThickness,zThickness]); translate([0, headphoneArmLength + yThickness, 0]) cube([mountWidthEnd, yThickness / 2, zThickness * 2]); } }