Add option for fixed side modules. This simplifies assembly and removes some awkward printing topology
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
include <./common.scad>
|
||||
use <./slideHexNutsIntoYBar.scad>
|
||||
|
||||
$vpt = [21,-15,20];
|
||||
$vpr = [65,0,40];
|
||||
@ -10,8 +11,16 @@ addMagnetsToMagnetModules(at=$t);
|
||||
module addMagnetsToMagnetModules(at=0) {
|
||||
t = lerp(a=6,b=0,t=at);
|
||||
|
||||
|
||||
if (!plasticMask) {
|
||||
magnetModule();
|
||||
|
||||
if (fixedSideModules) {
|
||||
multmatrix(yBarToMagnetModuleTrans)
|
||||
slideHexNutsIntoYBar(at=1);
|
||||
}
|
||||
else {
|
||||
magnetModule();
|
||||
}
|
||||
}
|
||||
|
||||
function insertMagnetTrans(t=0) =
|
||||
@ -20,6 +29,9 @@ module addMagnetsToMagnetModules(at=0) {
|
||||
magnetModuleMagnetMountDz]) *
|
||||
rotate(a=[0,90,0]);
|
||||
|
||||
multmatrix(insertMagnetTrans(t=t))
|
||||
magnet();
|
||||
|
||||
|
||||
multmatrix(insertMagnetTrans(t=t))
|
||||
magnet();
|
||||
|
||||
}
|
||||
|
||||
@ -2,6 +2,11 @@ include <./common.scad>
|
||||
use <./screwXBarAndYBar.scad>
|
||||
use <./addMagnetsToMagnetModules.scad>
|
||||
|
||||
|
||||
/*
|
||||
NOTE You only need to do this step if the `fixedSideModules` option is set to false.
|
||||
*/
|
||||
|
||||
$vpt = [116,90,18];
|
||||
$vpr = [56,0,42];
|
||||
$vpd = 550;
|
||||
@ -10,50 +15,57 @@ $vpf = 22.50;
|
||||
attachSideConnectorModulesToYBars(at=$t);
|
||||
|
||||
module attachSideConnectorModulesToYBars(at=0) {
|
||||
elevation = lerp(a=8, b=0, t=at);
|
||||
elevation = lerp(a=8, b=0, t=at);
|
||||
|
||||
// side module to front corner ybar
|
||||
function sideModuleTrans(t=0) =
|
||||
translate(v=[sideWallConnW,0,t-sideWallConnLugDepression])
|
||||
* yBarSideModuleConnectorTrans
|
||||
* mirror(v=[1,0,0]); // mirror for magnetModule
|
||||
// side module to front corner ybar
|
||||
function sideModuleTrans(t=0) =
|
||||
translate(v=[sideWallConnW,0,t-sideWallConnLugDepression])
|
||||
* yBarSideModuleConnectorTrans
|
||||
* mirror(v=[1,0,0]); // mirror for magnetModule
|
||||
|
||||
screwXBarAndYBar(at=1);
|
||||
screwXBarAndYBar(at=1);
|
||||
|
||||
multmatrix(sideModuleTrans(elevation))
|
||||
union() {
|
||||
addMagnetsToMagnetModules(at=1);
|
||||
if (!fixedSideModules) {
|
||||
multmatrix(sideModuleTrans(elevation))
|
||||
union() {
|
||||
|
||||
translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation])
|
||||
caseScrewShort();
|
||||
|
||||
addMagnetsToMagnetModules(at=1);
|
||||
|
||||
|
||||
translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation])
|
||||
caseScrewShort();
|
||||
}
|
||||
|
||||
multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * sideModuleTrans(elevation))
|
||||
union() {
|
||||
|
||||
addMagnetsToMagnetModules(at=1);
|
||||
|
||||
|
||||
translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation])
|
||||
caseScrewShort();
|
||||
}
|
||||
|
||||
multmatrix(yBarMirrorOtherCornerTrans * sideModuleTrans(elevation))
|
||||
union() {
|
||||
|
||||
if (!plasticMask) {
|
||||
hingeModule();
|
||||
}
|
||||
|
||||
translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation])
|
||||
caseScrewShort();
|
||||
}
|
||||
|
||||
multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * yBarMirrorOtherCornerTrans * sideModuleTrans(elevation))
|
||||
union() {
|
||||
if (!plasticMask) {
|
||||
hingeModule();
|
||||
}
|
||||
|
||||
translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation])
|
||||
caseScrewShort();
|
||||
}
|
||||
}
|
||||
|
||||
multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * sideModuleTrans(elevation))
|
||||
union() {
|
||||
addMagnetsToMagnetModules(at=1);
|
||||
|
||||
translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation])
|
||||
caseScrewShort();
|
||||
}
|
||||
|
||||
multmatrix(yBarMirrorOtherCornerTrans * sideModuleTrans(elevation))
|
||||
union() {
|
||||
|
||||
if (!plasticMask) {
|
||||
hingeModule();
|
||||
}
|
||||
|
||||
translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation])
|
||||
caseScrewShort();
|
||||
}
|
||||
|
||||
multmatrix(xBarSpaceToYBarSpace * xBarMirrorOtherCornerTrans * yBarSpaceToXBarSpace * yBarMirrorOtherCornerTrans * sideModuleTrans(elevation))
|
||||
union() {
|
||||
if (!plasticMask) {
|
||||
hingeModule();
|
||||
}
|
||||
|
||||
translate(v=[yBarScrewHoleToOuterYEdge,yBarScrewHoleToFrontXEdge,sideWallConnLugDepression + 2*elevation])
|
||||
caseScrewShort();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
include <./common.scad>
|
||||
use <./slideHexNutsIntoYBar.scad>
|
||||
use <./addMagnetsToMagnetModules.scad>
|
||||
|
||||
$vpt = [116,90,18];
|
||||
$vpr = [56,0,42];
|
||||
@ -14,10 +15,22 @@ module attachXBarWithYBar(at=0) {
|
||||
|
||||
// assemble x-y bar trays
|
||||
multmatrix(translate(v = [0, 0, t]))
|
||||
slideHexNutsIntoYBar(at=1);
|
||||
|
||||
if (fixedSideModules) {
|
||||
multmatrix(inv4x4(yBarToMagnetModuleTrans))
|
||||
addMagnetsToMagnetModules(at=1); // same as slideHexNutsIntoYBar, but the magnet has already been inserted
|
||||
} else {
|
||||
slideHexNutsIntoYBar(at=1);
|
||||
}
|
||||
|
||||
|
||||
multmatrix(translate(v = [0, 0, t])*xBarSpaceToYBarSpace*xBarMirrorOtherCornerTrans*yBarSpaceToXBarSpace)
|
||||
slideHexNutsIntoYBar(at=1);
|
||||
if (fixedSideModules) {
|
||||
multmatrix(inv4x4(yBarToMagnetModuleTrans))
|
||||
addMagnetsToMagnetModules(at=1);
|
||||
} else {
|
||||
slideHexNutsIntoYBar(at=1);
|
||||
}
|
||||
|
||||
if (!plasticMask) {
|
||||
multmatrix(xBarSpaceToYBarSpace)
|
||||
|
||||
@ -33,4 +33,4 @@ module attachXYTrays(at=0,r=0) {
|
||||
}
|
||||
|
||||
propUpBottomXYTraywithSideWalls(at=1,r=r);
|
||||
}
|
||||
}
|
||||
|
||||
@ -56,6 +56,14 @@ module mirrorAllTrayCornersFromYBarSpace() {
|
||||
|
||||
secondStackTrans = upperXYTrayTrans * mirror(v=[0,0,1]);
|
||||
|
||||
|
||||
|
||||
yBarToMagnetModuleTrans =
|
||||
translate(v=[13,0,sideWallConnLugDepression]) *
|
||||
inv4x4(yBarSideModuleConnectorTrans) *
|
||||
mirror(v=[1,0,0]);
|
||||
|
||||
|
||||
module caseScrewShort() {
|
||||
if (!screwMask) {
|
||||
color([1, 1, 1]) {
|
||||
@ -117,4 +125,4 @@ module arrow(length) {
|
||||
|
||||
cylinder(r = 1, h = length-2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -32,8 +32,11 @@ module slideHexNutsIntoYBar(at=0)
|
||||
rotate(a=[0,90,0]);
|
||||
|
||||
module slideHexNutsOneCorner(t=0) {
|
||||
multmatrix(sideModuleTrans(t = t))
|
||||
hexNut(rackFrameScrewType);
|
||||
|
||||
if (!fixedSideModules) {
|
||||
multmatrix(sideModuleTrans(t = t))
|
||||
hexNut(rackFrameScrewType);
|
||||
}
|
||||
|
||||
multmatrix(mainRailTrans(t = t))
|
||||
hexNut(rackFrameScrewType);
|
||||
@ -49,4 +52,4 @@ module slideHexNutsIntoYBar(at=0)
|
||||
slideHexNutsOneCorner(t = t);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user