add dowel

This commit is contained in:
zhao
2023-04-14 23:29:25 -04:00
parent 98d148a784
commit 8212737dd9
17 changed files with 105179 additions and 105329 deletions

View File

@ -7,9 +7,6 @@ include <../../helper/screws.scad>
translate(v=[10,20,-2 - sideWallZHingeTotalClearance])
*hingeModule();
// TODO this is pretty weak
module hingeModule() {
applyHingePole()
@ -32,19 +29,32 @@ module hingeModule() {
cube(size = [connW, connD - 12, sideWallZGapClearance]);
}
// TODO: pattern for this? beef up mirror4XY?
cVal = 0.5;
halfspace(p=[0,cVal,0], vpos=[0,1,1]);
halfspace(p=[cVal,0,0], vpos=[1,0,1]);
halfspace(p=[connW-cVal,0,0], vpos=[-1,0,1]);
halfspace(p=[0,connD-cVal,0], vpos=[0,-1,1]);
union() {
// don't bevel the part around the dowel pin hole
*cube(size = [connW, 2*(hingePoleR+radiusXYSlack) , sideWallConnLugDepression + sideWallZGapClearance]);
// TODO: pattern for this? beef up mirror4XY?
intersection() {
cVal = 0.25;
halfspace(p = [0, cVal, 0], vpos = [0, 1, 1]);
halfspace(p = [cVal, 0, 0], vpos = [1, 0, 1]);
halfspace(p = [connW-cVal, 0, 0], vpos = [-1, 0, 1]);
halfspace(p = [0, connD-cVal, 0], vpos = [0, -1, 1]);
}
}
}
}
module applyHingePole() {
apply_p() {
translate(v = [sideWallConnW/2.0, hingePoleR, sideWallConnH])
cylinder(r = hingePoleR, h = hingePoleH);
apply_n() {
union() {
translate(v = [sideWallConnW/2.0, hingePoleR + radiusXYSlack, 0])
cylinder(r = hingePoleR + radiusXYSlack, h = inf50);
translate(v = [sideWallConnW/2.0, , 0])
cube(size=[2, 5, inf50], center=true);
}
children(0);
}

View File

@ -26,7 +26,7 @@ module magnetModule() {
cube(size = [connW, connD, sideWallConnLugDepression]);
// TODO: pattern for this? beef up mirror4XY?
cVal = 0.5;
cVal = 0.25;
halfspace(p=[0,cVal,0], vpos=[0,1,1]);
halfspace(p=[cVal,0,0], vpos=[1,0,1]);
halfspace(p=[connW-cVal,0,0], vpos=[-1,0,1]);

View File

@ -54,7 +54,10 @@ module sideWallBase() {
module applyHingeConnector() {
hingeHoleShellR = hingeHoleR+1;
hingeHoleShellR = hingePoleR+1;
hingeHoleH = hingePoleH-sideWallConnLugDepression;
assert(hingeHoleH > 1);
apply_pn() {
hull() {
@ -63,11 +66,11 @@ module sideWallBase() {
}
union() {
hingeHole(extraZ=2);
hingeHole(extraZ=1);
translate(v=[0,0,sideWallZ])
mirror(v=[0,0,1])
hingeHole(extraZ=2);
hingeHole(extraZ=1);
// Trim parts of the wall for rotational clearance
halfspace(p=[0, sideWallY-2.5, 0], vpos=[-0.5,1,0]); // flat area to limit rotation against the main rail
@ -90,8 +93,8 @@ module sideWallBase() {
}
module hingeHole(extraZ) {
translate(v = [hingePoleDx , hingePoleDy, 0])
cylinder(r = hingeHoleR, h = hingePoleH+extraZ);
translate(v = [hingePoleDx, hingePoleDy, 0])
cylinder(r = hingePoleR+radiusXYSlack, h = hingeHoleH+extraZ);
}
}

View File

@ -3,6 +3,7 @@ include <../config.scad>
include <../sharedVariables.scad>
include <../../helper/magnet.scad>
include <../../helper/slack.scad>
include <../../helper/dowel.scad>
sideWallConnW = 7;
sideWallConnD = 20;
@ -17,10 +18,8 @@ magnetMountShellRadius = magnetRSlacked + 1;
innerSideWallToYBarMagnetConn = magnetFaceToSideWallConnOuterYEdge + sideWallSlotToOuterYEdge - sideWallThickness;
hingePoleR = 2;
hingePoleH = 5;
hingeHoleR = hingePoleR + radiusXYSlack;
hingePoleR = dowelPinR;
hingePoleH = dowelPinH;
sideWallZHingeSlack = 0.3;
sideWallZGapClearance = 0.5;
@ -35,4 +34,4 @@ sideWallXGapClearance = 0.2;
sideWallX = (yBarWidth-(railTotalWidth+railSlotToInnerYEdge)) - sideWallXGapClearance;
hingePoleDx = sideWallSlotToOuterYEdge + sideWallConnW/2.0;
hingePoleDy = sideWallY - (sideWallSlotToOuterXEdge + hingeHoleR);
hingePoleDy = sideWallY - (sideWallSlotToOuterXEdge + (hingePoleR+radiusXYSlack));