Model tweaks
This commit is contained in:
parent
00be1cf63f
commit
3ecece5910
4 changed files with 56 additions and 23 deletions
|
@ -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.
|
@ -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.
Loading…
Reference in a new issue