From 0dcc9fcb484fd988ffd4e0cd2658e9770e51cf07 Mon Sep 17 00:00:00 2001 From: zhao Date: Mon, 10 Apr 2023 13:44:39 -0400 Subject: [PATCH] add test tool --- helper/magnet.scad | 2 +- rack/config.scad | 2 +- rack/side/sideWallBase.scad | 24 ++++++++++++------ rack/side/sideWallLeft.scad | 6 ++--- rack/side/sideWallRight.scad | 6 ++--- tool/magnetPolarityReference.scad | 41 +++++++++++++++++++++++++++++++ 6 files changed, 65 insertions(+), 16 deletions(-) create mode 100644 tool/magnetPolarityReference.scad diff --git a/helper/magnet.scad b/helper/magnet.scad index 34cd5c3..d023263 100644 --- a/helper/magnet.scad +++ b/helper/magnet.scad @@ -1,4 +1,4 @@ - +include <./slack.scad> // Dimensions for small cylindrical neodymium magnets that I bought off Amazon magnetR = 3; diff --git a/rack/config.scad b/rack/config.scad index c3a235d..94bb69c 100644 --- a/rack/config.scad +++ b/rack/config.scad @@ -8,7 +8,7 @@ */ include <./profiles.scad> -profileName = "micro"; +profileName = "default"; profile = getProfile(profileName); // echo("Profile:", profile); diff --git a/rack/side/sideWallBase.scad b/rack/side/sideWallBase.scad index 826224f..f0bd3d9 100644 --- a/rack/side/sideWallBase.scad +++ b/rack/side/sideWallBase.scad @@ -32,7 +32,10 @@ module sideWallBase() { translate(v = [r, r, 0]) minkowski() { cube(size = [x-r, y-2*r, z]); - sphere(r = r); + + if (r > 0) { + sphere(r = r); + } } } @@ -40,7 +43,7 @@ module sideWallBase() { difference() { sideWallShellHelper(sideWallX, sideWallY, sideWallZ, baseRoundness); translate(v = [sideWallThickness, sideWallThickness, 0]) - sideWallShellHelper(sideWallX, sideWallY-2*sideWallThickness, sideWallZ, baseRoundness-sideWallThickness); + sideWallShellHelper(sideWallX, sideWallY-2*sideWallThickness, sideWallZ, max(0,baseRoundness-sideWallThickness)); } halfspace(vpos = [-1, 0, 0], p = [sideWallX, 0, 0]); halfspace(vpos = [0, 0, -1], p = [0, 0, sideWallZ]); @@ -133,16 +136,17 @@ module sideWallBase() { } } -module sideWallVerticalRibs(numRibs, ribZ, ribYDiff, ribR=1, ribExtrusion=1) { +module sideWallVerticalRibs(numRibs, ribZ, ribYDiff, ribExtrusion=1) { ribRampLength = 5; + ribWidth = 2; intersection() { for (i = [0:numRibs-1]) { translate(v = [sideWallThickness, i*ribYDiff, (sideWallZ-ribZ)/2]) - translate(v = [ribExtrusion-ribR, 0, 0]) - verticalRib(ribExtend=4, ribWidth=2); + translate(v = [ribExtrusion-ribWidth, 0, 0]) + verticalRib(ribExtend=4, ribWidth=ribWidth); } halfspace(vpos=[1,0,0], p=[0,0,0]); @@ -150,18 +154,22 @@ module sideWallVerticalRibs(numRibs, ribZ, ribYDiff, ribR=1, ribExtrusion=1) { module verticalRib(ribExtend, ribWidth) { + + roundness = 0.5; + minkowski() { hull() { + translate(v=[0,0,roundness]) cube(size = [eps, ribWidth, eps]); translate(v = [0, 0, ribRampLength]) - cube(size = [ribExtend, ribWidth, ribZ-2*ribRampLength]); + cube(size = [ribExtend, ribWidth, ribZ-2*(ribRampLength+roundness)]); - translate(v = [0, 0, ribZ]) + translate(v = [0, 0, ribZ-roundness]) cube(size = [eps, ribWidth, eps]); } - sphere(r=0.5); + sphere(r=roundness); } } diff --git a/rack/side/sideWallLeft.scad b/rack/side/sideWallLeft.scad index e3282be..b9fdefd 100644 --- a/rack/side/sideWallLeft.scad +++ b/rack/side/sideWallLeft.scad @@ -30,10 +30,10 @@ module sideWallLeft() { apply_p() { union() { translate(v = [0, 82, 0]) - sideWallVerticalRibs(numRibs = 2, ribZ = sideWallZ-20, ribYDiff = 8, ribR = 3, ribExtrusion = 1.5); + sideWallVerticalRibs(numRibs = 2, ribZ = sideWallZ, ribYDiff = 8, ribExtrusion = 1.5); - translate(v = [0, 12, 0]) - sideWallVerticalRibs(numRibs = 3, ribZ = sideWallZ-20, ribYDiff = 8, ribR = 3, ribExtrusion = 1.5); + translate(v = [0, 18, 0]) + sideWallVerticalRibs(numRibs = 2, ribZ = sideWallZ, ribYDiff = 8, ribExtrusion = 1.5); } children(0); } diff --git a/rack/side/sideWallRight.scad b/rack/side/sideWallRight.scad index 1c72f92..218bd65 100644 --- a/rack/side/sideWallRight.scad +++ b/rack/side/sideWallRight.scad @@ -33,10 +33,10 @@ module sideWallRight() { apply_p() { union() { translate(v = [0, 82, 0]) - sideWallVerticalRibs(numRibs = 2, ribZ = sideWallZ-20, ribYDiff = 8, ribR = 3, ribExtrusion = 1.5); + sideWallVerticalRibs(numRibs = 2, ribZ = sideWallZ, ribYDiff = 8, ribExtrusion = 1.5); - translate(v = [0, 12, 0]) - sideWallVerticalRibs(numRibs = 3, ribZ = sideWallZ-20, ribYDiff = 8, ribR = 3, ribExtrusion = 1.5); + translate(v = [0, 18, 0]) + sideWallVerticalRibs(numRibs = 2, ribZ = sideWallZ, ribYDiff = 8, ribExtrusion = 1.5); } children(0); } diff --git a/tool/magnetPolarityReference.scad b/tool/magnetPolarityReference.scad new file mode 100644 index 0000000..8f7fb34 --- /dev/null +++ b/tool/magnetPolarityReference.scad @@ -0,0 +1,41 @@ +include <../helper/common.scad> +include <../helper/magnet.scad> + + +doorPolarityReference(); + +module doorPolarityReference() { + thickness = 3; + + union() { + difference() { + minkowski() { + cube(size = [50, 8, thickness]); + cylinder(r = 2, h = eps); + } + + union() { + translate(v = [9, 0, 1.1]) + linear_extrude(2) + text("D", font = "Liberation Sans:style=Bold", size = 8); + + translate(v=[31, 0, 1.1]) + linear_extrude(2) + text("M",font="Liberation Sans:style=Bold", size=8); + + } + } + + translate(v = [3.5, 4, thickness]) + magnetHolder(); + translate(v = [46.5, 4, thickness]) + magnetHolder(); + } + + module magnetHolder() { + difference() { + cylinder(r = magnetRSlacked+2, h = magnetHSlacked, $fn = 64); + cylinder(r = magnetRSlacked, h = magnetHSlacked, $fn = 64); + } + } +} \ No newline at end of file