86 lines
1.8 KiB
OpenSCAD
86 lines
1.8 KiB
OpenSCAD
include <../math.scad>
|
|
include <./config.scad>
|
|
include <./screws.scad>
|
|
include <./mainRail.scad>
|
|
include <./helper/sphericalFilet.scad>
|
|
include <./helper/cylindricalFilet.scad>
|
|
|
|
|
|
// TODO: How do I nicely explain this?
|
|
railSlotSpacing = 4;
|
|
sideSpacing = 12;
|
|
|
|
barDepth = maxUnitDepth + 2*railSlotSpacing;
|
|
barWidth = railSlotSpacing + railTotalWidth + sideSpacing;
|
|
barHeight = 15;
|
|
|
|
barWallThickness = 3;
|
|
barRoundness = 12;
|
|
|
|
echo("Bar total depth: ", barDepth);
|
|
echo("Bar total width: ", barWidth);
|
|
|
|
module connectingBar() {
|
|
|
|
module _positive() {
|
|
minkowski() {
|
|
difference() {
|
|
sphericalFiletEdge(barWidth, barDepth, barHeight, barRoundness);
|
|
|
|
translate(v = [barWallThickness, 40, barWallThickness])
|
|
cylindricalFiletEdge(barWidth, barDepth-80, barHeight, barRoundness);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
module _stackConn() {
|
|
translate(v=[0,0,0])
|
|
cube(size = [10, 10, 5]);
|
|
|
|
translate(v=[5,5,5])
|
|
cylinder(r=2, h=2);
|
|
}
|
|
|
|
module _sideConnector() {
|
|
//translate(v=[1.5, railTotalDepth - 4, -m3HeatSetInsertSlotHeightSlacked])
|
|
rotate(a=[0,90,0])
|
|
heatSetInsertSlot_N(rackFrameScrewType);
|
|
}
|
|
|
|
module _test() {
|
|
difference() {
|
|
_positive();
|
|
|
|
union() {
|
|
translate(v=[10,10,0])
|
|
_stackConn();
|
|
|
|
translate(v=[barWidth - (railTotalWidth + railSlotSpacing), railSlotSpacing, barHeight - railFootThickness])
|
|
railFeetSlot_N();
|
|
|
|
translate(v=[barWidth - m3HeatSetInsertSlotHeightSlacked + eps, 6, 7.5])
|
|
_sideConnector();
|
|
|
|
translate(v=[barWidth - m3HeatSetInsertSlotHeightSlacked + eps, 35, 7.5])
|
|
_sideConnector();
|
|
}
|
|
}
|
|
|
|
}
|
|
_test();
|
|
|
|
translate(v=[barWidth - m3HeatSetInsertSlotHeightSlacked + eps, 6, 7.5])
|
|
_sideConnector();
|
|
|
|
}
|
|
|
|
connectingBar();
|
|
|
|
|
|
intersection() {
|
|
connectingBar();
|
|
|
|
cube(size=[15,100,100]);
|
|
}
|