1
0
Fork 0

Model tweaks

This commit is contained in:
NGnius (Graham) 2024-11-20 21:28:34 -05:00
parent 00be1cf63f
commit 3ecece5910
4 changed files with 56 additions and 23 deletions

View file

@ -7,11 +7,14 @@ innerShaftDiameter = 22.30;
bulbsLength = 32.40; bulbsLength = 32.40;
bulbsDiameter = 11.60; bulbsDiameter = 11.60;
bladeWidth = 44.40 + tolerance; bladeWidth = 44.40 + tolerance;
washerThickness = 2.00; washerThickness = 3.00; // 2.00;
metalWasherThickness = 3.46; metalWasherThickness = 4.00; // 3.46;
bladeThickness = 2.24; bladeThickness = 2.50; // 2.24;
minGuideRidgeThickness = 3.00; minGuideRidgeThickness = 8.00; // 3.00;
bladeBumpWidth = bladeWidth * 0.3333;
bladeBumpHeight = bladeThickness;
innerShaftRadius = innerShaftDiameter / 2; innerShaftRadius = innerShaftDiameter / 2;
bulbRadius = bulbsDiameter / 2; bulbRadius = bulbsDiameter / 2;
@ -19,6 +22,8 @@ washerLength = max(topMetalWasherLength, bladeWidth) + (minGuideRidgeThickness *
bladeRidgeThickness = max(minGuideRidgeThickness, (washerLength - bladeWidth) / 2); bladeRidgeThickness = max(minGuideRidgeThickness, (washerLength - bladeWidth) / 2);
metalWasherRidgeThickness = max(minGuideRidgeThickness, (washerLength - topMetalWasherLength) / 2); metalWasherRidgeThickness = max(minGuideRidgeThickness, (washerLength - topMetalWasherLength) / 2);
bladeBumpOffsetFromCenter = washerLength * 0.375;
circleResolution=360*4; // faces per rotation circleResolution=360*4; // faces per rotation
zFightingOffset=0.01; // offset for shape subtraction zFightingOffset=0.01; // offset for shape subtraction
@ -32,6 +37,17 @@ module shaft(height) {
cylinder(r=bulbRadius, h=height, $fn=circleResolution); cylinder(r=bulbRadius, h=height, $fn=circleResolution);
} }
module bump(length, width, height) {
translate([0, width/2, height])
scale([length, width / 2, height])
rotate([0, 90, 0])
cylinder(r=1, h=1, $fn=circleResolution);
translate([0, 0, height])
cube([length, width, height + zFightingOffset]);
}
//bump(washerLength, bladeBumpWidth + zFightingOffset, washerThickness);
difference() { difference() {
translate([-washerLength / 2, -washerLength / 2, 0]) { translate([-washerLength / 2, -washerLength / 2, 0]) {
cube([washerLength, washerLength, washerThickness]); cube([washerLength, washerLength, washerThickness]);
@ -42,17 +58,33 @@ difference() {
translate([0, bladeWidth / 2,0]) translate([0, bladeWidth / 2,0])
cube([washerLength, bladeRidgeThickness, bladeThickness]); cube([washerLength, bladeRidgeThickness, bladeThickness]);
} }
// metal washer ridges // metal washer ridges (standard)
translate([washerLength / 2, 0, - washerThickness + zFightingOffset]) { translate([washerLength / 2, 0, - metalWasherThickness + zFightingOffset]) {
translate([-(topMetalWasherLength / 2) - metalWasherRidgeThickness, 0,0]) translate([-(topMetalWasherLength / 2) - metalWasherRidgeThickness, 0,0])
cube([metalWasherRidgeThickness, washerLength, metalWasherThickness]); cube([metalWasherRidgeThickness, washerLength, metalWasherThickness]);
translate([topMetalWasherLength / 2,0,0]) translate([topMetalWasherLength / 2,0,0])
cube([metalWasherRidgeThickness, washerLength, metalWasherThickness]); cube([metalWasherRidgeThickness, washerLength, metalWasherThickness]);
} }
// metal washer ridges (optional)
translate([0, washerLength / 2, - metalWasherThickness + zFightingOffset]) {
translate([0, -(topMetalWasherLength / 2) - metalWasherRidgeThickness,0])
cube([washerLength, metalWasherRidgeThickness, metalWasherThickness]);
translate([0, topMetalWasherLength / 2,0])
cube([washerLength, metalWasherRidgeThickness, metalWasherThickness]);
} }
translate([0,0,-zFightingOffset]) }
translate([0,0,-zFightingOffset]) {
// shaft
rotate([0,0,0]) rotate([0,0,0])
shaft(washerThickness + (zFightingOffset * 2)); shaft(washerThickness + (zFightingOffset * 2));
// blade shaft bumps
translate([0, -bladeBumpWidth/2, washerThickness - bladeBumpHeight]) {
translate([-(washerLength + bladeBumpOffsetFromCenter), 0, 0])
bump(washerLength, bladeBumpWidth + zFightingOffset, washerThickness);
translate([bladeBumpOffsetFromCenter, 0, 0])
bump(washerLength, bladeBumpWidth + zFightingOffset, washerThickness);
}
}
/* /*
// blade stand-in // blade stand-in
translate([-50, -bladeWidth/2, washerThickness]) translate([-50, -bladeWidth/2, washerThickness])

Binary file not shown.

View file

@ -18,13 +18,14 @@ screenBaseThickness = 45.00;
mountProtrusionFromScreenBack = 33.10; mountProtrusionFromScreenBack = 33.10;
headphoneArmLength = 50.00; headphoneArmLength = 50.00;
miscThickness = 6.00; horizontalThickness = 8.00;
verticalThickness = 6.50;
circleResolution=360*4; // faces per rotation circleResolution=360*4; // faces per rotation
union() { union() {
translate([0, 0, mountToScreenBottomHeight + miscThickness]) mountEnd(miscThickness); translate([0, 0, mountToScreenBottomHeight + horizontalThickness]) mountEnd(verticalThickness);
headphoneMount(miscThickness); headphoneMount(horizontalThickness, verticalThickness);
//mountEnd(miscThickness); //mountEnd(miscThickness);
} }
@ -49,31 +50,31 @@ module mountEnd(thickness) {
} }
} }
module headphoneMount(thickness) { module headphoneMount(zThickness, yThickness) {
// stock down from monitor mount to clear bottom of monitor // stock down from monitor mount to clear bottom of monitor
cube([mountWidthEnd, thickness, mountToScreenBottomHeight + thickness]); cube([mountWidthEnd, yThickness, mountToScreenBottomHeight + zThickness]);
//color("red") cube([mountWidthEnd, thickness + screenBaseThickness + mountProtrusionFromScreenBack, thickness]); //color("red") cube([mountWidthEnd, thickness + screenBaseThickness + mountProtrusionFromScreenBack, thickness]);
// quarter circle under monitor // quarter circle under monitor
translate ([mountWidthEnd/2, screenBaseThickness + mountProtrusionFromScreenBack, 0]) difference() { translate ([mountWidthEnd/2, screenBaseThickness + mountProtrusionFromScreenBack, 0]) difference() {
cylinder(r = screenBaseThickness + mountProtrusionFromScreenBack, h = thickness, $fn=circleResolution); cylinder(r = screenBaseThickness + mountProtrusionFromScreenBack, h = zThickness, $fn=circleResolution);
translate([0,0,-0.01]) translate([0,0,-0.01])
cylinder(r = (screenBaseThickness + mountProtrusionFromScreenBack) - (mountWidthEnd), h = thickness + 0.02, $fn=circleResolution); cylinder(r = (screenBaseThickness + mountProtrusionFromScreenBack) - (mountWidthEnd), h = zThickness + 0.02, $fn=circleResolution);
translate([-(screenBaseThickness + mountProtrusionFromScreenBack) - 0.01, thickness, -0.01]) translate([-(screenBaseThickness + mountProtrusionFromScreenBack) - 0.01, yThickness, -0.01])
cube([(screenBaseThickness + mountProtrusionFromScreenBack) * 2.01, (screenBaseThickness + mountProtrusionFromScreenBack), thickness + 0.02]); cube([(screenBaseThickness + mountProtrusionFromScreenBack) * 2.01, (screenBaseThickness + mountProtrusionFromScreenBack), zThickness + 0.02]);
translate([mountWidthEnd/2, -(screenBaseThickness + mountProtrusionFromScreenBack)-0.01, -0.01]) translate([mountWidthEnd/2, -(screenBaseThickness + mountProtrusionFromScreenBack)-0.01, -0.01])
cube([screenBaseThickness + mountProtrusionFromScreenBack, screenBaseThickness + mountProtrusionFromScreenBack + thickness+0.02, thickness + 0.02]); cube([screenBaseThickness + mountProtrusionFromScreenBack, screenBaseThickness + mountProtrusionFromScreenBack + yThickness+0.02, zThickness + 0.02]);
} }
// right angle connection reinforcement quarter circle // right angle connection reinforcement quarter circle
difference() { difference() {
cube([mountWidthEnd, mountWidthEnd + 0.25, mountWidthEnd + thickness]); cube([mountWidthEnd, mountWidthEnd + 0.25, mountWidthEnd + zThickness]);
translate([-0.01, mountWidthEnd + thickness, mountWidthEnd + thickness]) translate([-0.01, mountWidthEnd + yThickness, mountWidthEnd + zThickness])
rotate([0,90,0]) rotate([0,90,0])
cylinder(r = mountWidthEnd * 1.02, h = mountWidthEnd + 0.02, $fn=circleResolution); cylinder(r = mountWidthEnd * 1.02, h = mountWidthEnd + 0.02, $fn=circleResolution);
} }
// headphone arm // headphone arm
translate([-(screenBaseThickness + mountProtrusionFromScreenBack) + (mountWidthEnd / 2), (screenBaseThickness + mountProtrusionFromScreenBack + thickness), 0]) { translate([-(screenBaseThickness + mountProtrusionFromScreenBack) + (mountWidthEnd / 2), (screenBaseThickness + mountProtrusionFromScreenBack + yThickness), 0]) {
cube([mountWidthEnd,headphoneArmLength + thickness,thickness]); cube([mountWidthEnd,headphoneArmLength + yThickness,zThickness]);
translate([0, headphoneArmLength + thickness, 0]) translate([0, headphoneArmLength + yThickness, 0])
cube([mountWidthEnd, thickness, thickness * 2]); cube([mountWidthEnd, yThickness / 2, zThickness * 2]);
} }
} }

Binary file not shown.