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;
|
||||
bulbsDiameter = 11.60;
|
||||
bladeWidth = 44.40 + tolerance;
|
||||
washerThickness = 2.00;
|
||||
metalWasherThickness = 3.46;
|
||||
bladeThickness = 2.24;
|
||||
washerThickness = 3.00; // 2.00;
|
||||
metalWasherThickness = 4.00; // 3.46;
|
||||
bladeThickness = 2.50; // 2.24;
|
||||
|
||||
minGuideRidgeThickness = 3.00;
|
||||
minGuideRidgeThickness = 8.00; // 3.00;
|
||||
|
||||
bladeBumpWidth = bladeWidth * 0.3333;
|
||||
bladeBumpHeight = bladeThickness;
|
||||
|
||||
innerShaftRadius = innerShaftDiameter / 2;
|
||||
bulbRadius = bulbsDiameter / 2;
|
||||
|
@ -19,6 +22,8 @@ washerLength = max(topMetalWasherLength, bladeWidth) + (minGuideRidgeThickness *
|
|||
bladeRidgeThickness = max(minGuideRidgeThickness, (washerLength - bladeWidth) / 2);
|
||||
metalWasherRidgeThickness = max(minGuideRidgeThickness, (washerLength - topMetalWasherLength) / 2);
|
||||
|
||||
bladeBumpOffsetFromCenter = washerLength * 0.375;
|
||||
|
||||
circleResolution=360*4; // faces per rotation
|
||||
zFightingOffset=0.01; // offset for shape subtraction
|
||||
|
||||
|
@ -32,6 +37,17 @@ module shaft(height) {
|
|||
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() {
|
||||
translate([-washerLength / 2, -washerLength / 2, 0]) {
|
||||
cube([washerLength, washerLength, washerThickness]);
|
||||
|
@ -42,17 +58,33 @@ difference() {
|
|||
translate([0, bladeWidth / 2,0])
|
||||
cube([washerLength, bladeRidgeThickness, bladeThickness]);
|
||||
}
|
||||
// metal washer ridges
|
||||
translate([washerLength / 2, 0, - washerThickness + zFightingOffset]) {
|
||||
// metal washer ridges (standard)
|
||||
translate([washerLength / 2, 0, - metalWasherThickness + zFightingOffset]) {
|
||||
translate([-(topMetalWasherLength / 2) - metalWasherRidgeThickness, 0,0])
|
||||
cube([metalWasherRidgeThickness, washerLength, metalWasherThickness]);
|
||||
translate([topMetalWasherLength / 2,0,0])
|
||||
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])
|
||||
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
|
||||
translate([-50, -bladeWidth/2, washerThickness])
|
||||
|
|
Binary file not shown.
|
@ -18,13 +18,14 @@ screenBaseThickness = 45.00;
|
|||
mountProtrusionFromScreenBack = 33.10;
|
||||
headphoneArmLength = 50.00;
|
||||
|
||||
miscThickness = 6.00;
|
||||
horizontalThickness = 8.00;
|
||||
verticalThickness = 6.50;
|
||||
|
||||
circleResolution=360*4; // faces per rotation
|
||||
|
||||
union() {
|
||||
translate([0, 0, mountToScreenBottomHeight + miscThickness]) mountEnd(miscThickness);
|
||||
headphoneMount(miscThickness);
|
||||
translate([0, 0, mountToScreenBottomHeight + horizontalThickness]) mountEnd(verticalThickness);
|
||||
headphoneMount(horizontalThickness, verticalThickness);
|
||||
//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
|
||||
cube([mountWidthEnd, thickness, mountToScreenBottomHeight + thickness]);
|
||||
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 = thickness, $fn=circleResolution);
|
||||
cylinder(r = screenBaseThickness + mountProtrusionFromScreenBack, h = zThickness, $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]);
|
||||
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 + thickness+0.02, thickness + 0.02]);
|
||||
cube([screenBaseThickness + mountProtrusionFromScreenBack, screenBaseThickness + mountProtrusionFromScreenBack + yThickness+0.02, zThickness + 0.02]);
|
||||
}
|
||||
// right angle connection reinforcement quarter circle
|
||||
difference() {
|
||||
cube([mountWidthEnd, mountWidthEnd + 0.25, mountWidthEnd + thickness]);
|
||||
translate([-0.01, mountWidthEnd + thickness, mountWidthEnd + thickness])
|
||||
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 + thickness), 0]) {
|
||||
cube([mountWidthEnd,headphoneArmLength + thickness,thickness]);
|
||||
translate([0, headphoneArmLength + thickness, 0])
|
||||
cube([mountWidthEnd, thickness, thickness * 2]);
|
||||
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]);
|
||||
}
|
||||
}
|
Binary file not shown.
Loading…
Reference in a new issue