finalizing connectingBarDesign

This commit is contained in:
zhao
2023-01-07 18:16:13 -05:00
parent 4c0f713415
commit acfdae48e1
12 changed files with 53 additions and 30 deletions

8
rack2/assemble.scad Normal file
View File

@ -0,0 +1,8 @@
include <../math.scad>
include <./config.scad>
include <./mainRail.scad>
include <./connectingBar.scad>
*mainRail();
connectingBar();

View File

@ -20,7 +20,7 @@ maxUnitDepth = 200;
screwDiff = 10; screwDiff = 10;
// Number screw slots on the main rail. Affects build volume. // Number screw slots on the main rail. Affects build volume.
numRailScrews = 20; numRailScrews = 3;
// Screw type used for rackmount units. See screws.scad. // Screw type used for rackmount units. See screws.scad.
mainRailScrewType = "m4"; mainRailScrewType = "m4";

View File

@ -1,12 +1,12 @@
include <../math.scad> include <../math.scad>
include <./config.scad> include <./config.scad>
include <./screws.scad> include <./screws.scad>
include <./misc/magnet.scad>
include <./mainRail.scad> include <./mainRail.scad>
include <./helper/sphericalFilet.scad> include <./helper/sphericalFilet.scad>
include <./helper/cylindricalFilet.scad> include <./helper/cylindricalFilet.scad>
// TODO remove support requirements
// TODO add slack to top slots
// TODO clean up // TODO clean up
// TODO: How do I nicely explain this? // TODO: How do I nicely explain this?
railSlotSpacing = 3; railSlotSpacing = 3;
@ -22,6 +22,7 @@ barRoundness = 5;
echo("Bar total depth: ", barDepth); echo("Bar total depth: ", barDepth);
echo("Bar total width: ", barWidth); echo("Bar total width: ", barWidth);
module connectingBar() { module connectingBar() {
module positive() { module positive() {
@ -35,11 +36,25 @@ module connectingBar() {
} }
module stackConn_N() { module stackConn_N() {
taperH = 2;
translate(v=[0,0,0]) translate(v=[0,0,0])
cube(size = [10, 10, 5]); cube(size = [10, 10, taperH]);
hull() {
translate(v = [0, 0, taperH])
linear_extrude(height=eps)
square(size = [10, 10]);
translate(v=[5,5,5]) translate(v=[5,5,5])
cylinder(r=2, h=2); linear_extrude(height=eps)
circle(r=magnetRSlacked);
}
// -1 is for male support
translate(v=[5,5,5 - 1])
cylinder(r=magnetRSlacked, h=magnetHSlacked);
} }
// TODO move this to custom file // TODO move this to custom file
@ -60,7 +75,8 @@ module connectingBar() {
// TODO fix this up, no center=true // TODO fix this up, no center=true
translate(v=[-1, y1 + (y2 - y1)/2, 0]) translate(v=[-1, y1 + (y2 - y1)/2, 0])
cube(size=[2,10,5], center=true); rotate(a=[0,45,0])
cube(size=[3,10,6], center=true);
} }
// TODO move this in custom file, like for railFeetSlot_N // TODO move this in custom file, like for railFeetSlot_N
@ -114,5 +130,3 @@ module connectingBar() {
} }
connectingBar(); connectingBar();
} }
connectingBar();

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -29,8 +29,6 @@ frontFaceWidth = railScrewHoleToInnerEdge + railScrewHoleToOuterEdge;
railTotalWidth = frontFaceWidth; railTotalWidth = frontFaceWidth;
railTotalDepth = railFrontThickness+sideSupportDepth; railTotalDepth = railFrontThickness+sideSupportDepth;
*mainRail();
echo("Total Rail Height: ", railTotalHeight); echo("Total Rail Height: ", railTotalHeight);
module mainRail() { module mainRail() {
@ -68,21 +66,11 @@ module mainRail() {
difference() { difference() {
cube(size = [sideSupportDepth, railSideMountThickness, railTotalHeight]); cube(size = [sideSupportDepth, railSideMountThickness, railTotalHeight]);
union() {
for (i = [1:numRailScrews]) { for (i = [1:numRailScrews]) {
translate(v = [frontScrewSpacing, railFrontThickness/2, i*screwDiff+railFootThickness]) translate(v = [frontScrewSpacing, railFrontThickness/2, i*screwDiff+railFootThickness])
rotate(a = [90, 0, 0]) rotate(a = [90, 0, 0])
cylinder(r = screwRadiusSlacked(mainRailSideMountScrewType), h = inf10, $fn = 32); cylinder(r = screwRadiusSlacked(mainRailSideMountScrewType), h = inf10, $fn = 32);
} }
translate(v = [4, 0, railFootThickness + 5])
rotate(a=[90,0,0])
cylinder(r = screwRadiusSlacked(rackFrameScrewType), h = inf10, $fn = 32, center = true);
translate(v = [4, 0, railTotalHeight- (railFootThickness + 5)])
rotate(a=[90,0,0])
cylinder(r = screwRadiusSlacked(rackFrameScrewType), h = inf10, $fn = 32, center = true);
}
} }
} }
@ -98,10 +86,12 @@ module mainRail() {
module railFeetSlot_N() { module railFeetSlot_N() {
slotSlack = 0.2;
union() { union() {
cube(size = [railTotalWidth, railTotalDepth, railFootThickness]); translate(v=[-slotSlack/2, -slotSlack/2,0])
cube(size = [railTotalWidth + slotSlack, railTotalDepth + slotSlack, railFootThickness]);
translate(v = [railSideMountThickness + 5, railFrontThickness + 4, -m3HeatSetInsertSlotHeightSlacked]) translate(v = [railSideMountThickness + 5, railFrontThickness + 4 , -m3HeatSetInsertSlotHeightSlacked])
heatSetInsertSlot_N(rackFrameScrewType); heatSetInsertSlot_N(rackFrameScrewType);
} }
} }

Binary file not shown.

BIN
rack2/mainRailS.stl Normal file

Binary file not shown.

BIN
rack2/mainRailShort.stl Normal file

Binary file not shown.

11
rack2/misc/magnet.scad Normal file
View File

@ -0,0 +1,11 @@
// Dimensions for small cylindrical neodymium magnets that I bought off Amazon
magnetR = 3;
magnetH = 1.7;
magnetRSlack = 0.1;
magnetHSlack = 0.05;
magnetRSlacked = magnetR + magnetRSlack;
magnetHSlacked = magnetH + magnetHSlack;

View File

@ -5,7 +5,7 @@ include <../common.scad>
/********************************************************************************/ /********************************************************************************/
// M3 dimensions // M3 dimensions
m3HoleRadiusSlack = 0.3; m3HoleRadiusSlack = 0.4; // higher slack for not-so straight heat set inserts
m3Diameter = 3.0; m3Diameter = 3.0;
m3Radius = m3Diameter / 2.0; m3Radius = m3Diameter / 2.0;
m3RadiusSlacked = m3Radius + m3HoleRadiusSlack; m3RadiusSlacked = m3Radius + m3HoleRadiusSlack;