incremental

This commit is contained in:
jazhawang
2022-04-03 20:56:13 -04:00
parent 8a279c386b
commit d851d43c0a
27 changed files with 205504 additions and 22 deletions

197
cases/rockpro/#case.scad# Normal file
View File

@ -0,0 +1,197 @@
// test for screw tolerances
include <./rockpro.scad>;
include <../power/src/base.scad>;
$fn = 128;
outerD = 4.65;
innerD = 2.93;
module caseOuter() {
rotate(a=[90,0,0])
minkowski() {
cube(size=[80,40,195], center=true);
cylinder(h=0.00000000001, r=10);
}
}
module caseInner() {
translate(v=[0,0,2])
rotate(a=[90,0,0])
minkowski() {
cube(size=[81.5,47,195+0.01], center=true);
*cylinder(h=0.00000000001, r=5);
}
}
module hgill(i) {
minkowski() {
*sphere(r=2);
translate(v=[0,i*10,5])
rotate(a=[30,0,0])
cube(size=[200, 4, 30], center=true);
}
}
module caseShell() {
difference() {
caseOuter();
union() {
caseInner();
// side perforations
for (i=[-7:7]) {
hgill(i=i);
}
// top perforations
for (i=[-3:3]) {
translate(v=[0,i*20,50])
cube(size=[75,10,60], center=true);
}
// bottom perforations
for (i=[2:4]) {
translate(v=[0,i*20,-20])
cube(size=[60,8,50], center=true);
}
for (i=[-4:0]) {
translate(v=[0,i*20,-20])
cube(size=[60,8,50], center=true);
}
}
}
}
module faceMountDiffs() {
translate(v=[45,0,20])
rotate(a=[90,0,0])
cylinder(r=innerD/2,h=300, center=true);
translate(v=[45,0,-20])
rotate(a=[90,0,0])
cylinder(r=innerD/2,h=300, center=true);
translate(v=[-45,0,-20])
rotate(a=[90,0,0])
cylinder(r=innerD/2,h=300, center=true);
translate(v=[-45,0,20])
rotate(a=[90,0,0])
cylinder(r=innerD/2,h=300, center=true);
}
module caseWithMountHoles() {
difference() {
union() {
caseShell();
translate(v=[-35, 25,-27.5])
rotate(a=[0,0,-90])
rockProMountPoints(6, 3.8, 64, false);
}
union() {
translate(v=[-35, 25,-27.5])
rotate(a=[0,0,-90])
rockProMountPoints(6, innerD/2, 64, false);
faceMountDiffs();
}
}
}
*caseWithMountHoles();
module bottomTray() {
difference() {
union() {
intersection() {
caseWithMountHoles();
translate(v=[0,0,-115])
cube(size=[500,500,200], center=true);
}
translate(v=[-45.5,0,-15])
rotate(a=[90,90,0])
joinTriangle(185);
translate(v=[45.5,0,-15])
rotate(a=[90,90,0])
joinTriangle(185);
}
// bottom lugs
union() {
translate(v=[-40,-90,-29])
cube(size=[10.2,10.2,2.5], center=true);
translate(v=[40,-90,-29])
cube(size=[10.2,10.2,2.5],center=true);
translate(v=[40,90,-29])
cube(size=[10.2,10.2,2.5],center=true);
translate(v=[-40,90,-29])
cube(size=[10.2,10.2,2.5],center=true);
}
}
}
module topTray() {
difference () {
union() {
difference() {
caseWithMountHoles();
translate(v=[0,0,-115])
cube(size=[500,500,200], center=true);
}
}
// bottom lugs
union() {
translate(v=[-40,-90,29])
cube(size=[10.2,10.2,2.5], center=true);
translate(v=[40,-90,29])
cube(size=[10.2,10.2,2.5],center=true);
translate(v=[40,90,29])
cube(size=[10.2,10.2,2.5],center=true);
translate(v=[-40,90,29])
cube(size=[10.2,10.2,2.5],center=true);
translate(v=[-45.5,0,-15])
rotate(a=[90,90,0])
scale(v=[1,0.9,1])
joinTriangle(300);
translate(v=[45.5,0,-15])
rotate(a=[90,90,0])
scale(v=[1,0.9,1])
joinTriangle(300);
}
}
}
topTray();
// TODO make sure rail works!!!
scale(v=[1,0.9,1])
*joinTriangle(10);

1
cases/rockpro/.#case.scad Symbolic link
View File

@ -0,0 +1 @@
zhao@zhao-desktop.12910:1649003030

26574
cases/rockpro/bottom.stl Normal file

File diff suppressed because it is too large Load Diff

197
cases/rockpro/case.scad Normal file
View File

@ -0,0 +1,197 @@
// test for screw tolerances
include <./rockpro.scad>;
include <../power/src/base.scad>;
$fn = 128;
outerD = 4.65;
innerD = 2.93;
module caseOuter() {
rotate(a=[90,0,0])
minkowski() {
cube(size=[80,40,195], center=true);
cylinder(h=0.00000000001, r=10);
}
}
module caseInner() {
translate(v=[0,0,2])
rotate(a=[90,0,0])
minkowski() {
cube(size=[81.5,47,195+0.01], center=true);
*cylinder(h=0.00000000001, r=5);
}
}
module hgill(i) {
minkowski() {
*sphere(r=2);
translate(v=[0,i*10,5])
rotate(a=[30,0,0])
cube(size=[200, 4, 30], center=true);
}
}
module caseShell() {
difference() {
caseOuter();
union() {
caseInner();
// side perforations
for (i=[-7:7]) {
hgill(i=i);
}
// top perforations
for (i=[-3:3]) {
translate(v=[0,i*20,50])
cube(size=[75,10,60], center=true);
}
// bottom perforations
for (i=[2:4]) {
translate(v=[0,i*20,-20])
cube(size=[60,8,50], center=true);
}
for (i=[-4:0]) {
translate(v=[0,i*20,-20])
cube(size=[60,8,50], center=true);
}
}
}
}
module faceMountDiffs() {
translate(v=[45,0,20])
rotate(a=[90,0,0])
cylinder(r=innerD/2,h=300, center=true);
translate(v=[45,0,-20])
rotate(a=[90,0,0])
cylinder(r=innerD/2,h=300, center=true);
translate(v=[-45,0,-20])
rotate(a=[90,0,0])
cylinder(r=innerD/2,h=300, center=true);
translate(v=[-45,0,20])
rotate(a=[90,0,0])
cylinder(r=innerD/2,h=300, center=true);
}
module caseWithMountHoles() {
difference() {
union() {
caseShell();
translate(v=[-35, 25,-27.5])
rotate(a=[0,0,-90])
rockProMountPoints(6, 3.8, 64, false);
}
union() {
translate(v=[-35, 25,-27.5])
rotate(a=[0,0,-90])
rockProMountPoints(6, innerD/2, 64, false);
faceMountDiffs();
}
}
}
*caseWithMountHoles();
module bottomTray() {
difference() {
union() {
intersection() {
caseWithMountHoles();
translate(v=[0,0,-115])
cube(size=[500,500,200], center=true);
}
translate(v=[-45.5,0,-15])
rotate(a=[90,90,0])
joinTriangle(185);
translate(v=[45.5,0,-15])
rotate(a=[90,90,0])
joinTriangle(185);
}
// bottom lugs
union() {
translate(v=[-40,-90,-29])
cube(size=[10.2,10.2,2.5], center=true);
translate(v=[40,-90,-29])
cube(size=[10.2,10.2,2.5],center=true);
translate(v=[40,90,-29])
cube(size=[10.2,10.2,2.5],center=true);
translate(v=[-40,90,-29])
cube(size=[10.2,10.2,2.5],center=true);
}
}
}
module topTray() {
difference () {
union() {
difference() {
caseWithMountHoles();
translate(v=[0,0,-115])
cube(size=[500,500,200], center=true);
}
}
// bottom lugs
union() {
translate(v=[-40,-90,29])
cube(size=[10.2,10.2,2.5], center=true);
translate(v=[40,-90,29])
cube(size=[10.2,10.2,2.5],center=true);
translate(v=[40,90,29])
cube(size=[10.2,10.2,2.5],center=true);
translate(v=[-40,90,29])
cube(size=[10.2,10.2,2.5],center=true);
translate(v=[-45.5,0,-15])
rotate(a=[90,90,0])
scale(v=[1,0.9,1])
joinTriangle(300);
translate(v=[45.5,0,-15])
rotate(a=[90,90,0])
scale(v=[1,0.9,1])
joinTriangle(300);
}
}
}
topTray();
// TODO make sure rail works!!!
scale(v=[1,0.9,1])
*joinTriangle(10);

214
cases/rockpro/case.scad~ Normal file
View File

@ -0,0 +1,214 @@
// test for screw tolerances
include <./rockpro.scad>;
include <../power/src/base.scad>;
$fn = 128;
outerD = 4.65;
innerD = 2.93;
*difference() {
cube(size=[10,50,10]);
union() {
translate(v=[5,10,-1])
cylinder(h=30,r=innerD/2-0.2);
translate(v=[5,25,-1])
cylinder(h=30,r=innerD/2);
translate(v=[5,40,-1])
cylinder(h=30,r=innerD/2+0.2);
}
}
module caseOuter() {
rotate(a=[90,0,0])
minkowski() {
cube(size=[80,40,195], center=true);
cylinder(h=0.00000000001, r=10);
}
}
module caseInner() {
translate(v=[0,0,2])
rotate(a=[90,0,0])
minkowski() {
cube(size=[81.5,47,195+0.01], center=true);
*cylinder(h=0.00000000001, r=5);
}
}
module hgill(i) {
minkowski() {
*sphere(r=2);
translate(v=[0,i*10,5])
rotate(a=[30,0,0])
cube(size=[200, 4, 30], center=true);
}
}
module caseShell() {
difference() {
caseOuter();
union() {
caseInner();
// side perforations
for (i=[-7:7]) {
hgill(i=i);
}
// top perforations
for (i=[-3:3]) {
translate(v=[0,i*20,50])
cube(size=[75,10,60], center=true);
}
// bottom perforations
for (i=[2:4]) {
translate(v=[0,i*20,-20])
cube(size=[60,8,50], center=true);
}
for (i=[-4:0]) {
translate(v=[0,i*20,-20])
cube(size=[60,8,50], center=true);
}
}
}
}
module faceMountDiffs() {
translate(v=[45,0,20])
rotate(a=[90,0,0])
cylinder(r=innerD/2,h=300, center=true);
translate(v=[45,0,-20])
rotate(a=[90,0,0])
cylinder(r=innerD/2,h=300, center=true);
translate(v=[-45,0,-20])
rotate(a=[90,0,0])
cylinder(r=innerD/2,h=300, center=true);
translate(v=[-45,0,20])
rotate(a=[90,0,0])
cylinder(r=innerD/2,h=300, center=true);
}
module caseWithMountHoles() {
difference() {
union() {
caseShell();
translate(v=[-35, 25,-27.5])
rotate(a=[0,0,-90])
rockProMountPoints(6, 3.8, 64, false);
}
union() {
translate(v=[-35, 25,-27.5])
rotate(a=[0,0,-90])
rockProMountPoints(6, innerD/2, 64, false);
faceMountDiffs();
}
}
}
*caseWithMountHoles();
module bottomTray() {
difference() {
union() {
intersection() {
caseWithMountHoles();
translate(v=[0,0,-115])
cube(size=[500,500,200], center=true);
}
translate(v=[-45.5,0,-15])
rotate(a=[90,90,0])
joinTriangle(185);
translate(v=[45.5,0,-15])
rotate(a=[90,90,0])
joinTriangle(185);
}
// bottom lugs
union() {
translate(v=[-40,-90,-29])
cube(size=[10.2,10.2,2.5], center=true);
translate(v=[40,-90,-29])
cube(size=[10.2,10.2,2.5],center=true);
translate(v=[40,90,-29])
cube(size=[10.2,10.2,2.5],center=true);
translate(v=[-40,90,-29])
cube(size=[10.2,10.2,2.5],center=true);
}
}
}
module topTray() {
difference () {
union() {
difference() {
caseWithMountHoles();
translate(v=[0,0,-115])
cube(size=[500,500,200], center=true);
}
}
// bottom lugs
union() {
translate(v=[-40,-90,29])
cube(size=[10.2,10.2,2.5], center=true);
translate(v=[40,-90,29])
cube(size=[10.2,10.2,2.5],center=true);
translate(v=[40,90,29])
cube(size=[10.2,10.2,2.5],center=true);
translate(v=[-40,90,29])
cube(size=[10.2,10.2,2.5],center=true);
translate(v=[-45.5,0,-15])
rotate(a=[90,90,0])
scale(v=[1,0.9,1])
joinTriangle(300);
translate(v=[45.5,0,-15])
rotate(a=[90,90,0])
scale(v=[1,0.9,1])
joinTriangle(300);
}
}
}
topTray();
// TODO make sure rail works!!!
scale(v=[1,0.9,1])
*joinTriangle(10);

202
cases/rockpro/newcase.scad Normal file
View File

@ -0,0 +1,202 @@
include <./rockpro.scad>;
include <../power/src/base.scad>;
$fn = 128;
outerD = 4.65;
innerD = 2.93;
module caseOuter() {
rotate(a=[90,0,0])
minkowski() {
cube(size=[70,30,195], center=true);
cylinder(h=0.00000000001, r=15);
}
}
module caseInner() {
translate(v=[0,0,0])
rotate(a=[90,0,0])
minkowski() {
cube(size=[70,30,195+0.01], center=true);
cylinder(h=0.00000000001, r=12);
}
}
module hgill(i) {
minkowski() {
*sphere(r=2);
translate(v=[0,i*10,5])
rotate(a=[30,0,0])
cube(size=[200, 4, 30], center=true);
}
}
module caseShell() {
union() {
difference() {
caseOuter();
union() {
caseInner();
// side perforations
for (i=[-7:7]) {
hgill(i=i);
}
// top perforations
for (i=[-3:3]) {
translate(v=[0,i*20,50])
cube(size=[75,10,60], center=true);
}
// bottom perforations
for (i=[2:4]) {
translate(v=[0,i*18,-20])
rotate(a=[0,0,25])
*cube(size=[50,8,50], center=true);
}
for (i=[-4:3]) {
translate(v=[0,i*20 + 10,-20])
rotate(a=[0,0,25])
cube(size=[50,8,50], center=true);
}
}
}
}
}
module caseWithMountHoles() {
difference() {
union() {
caseShell();
translate(v=[-35, 25,-27.5])
rotate(a=[0,0,-90])
rockProMountPoints(7, 5.5, 2.5, 64, false);
faceMountSupports();
}
union() {
translate(v=[-35, 25,-27.5])
rotate(a=[0,0,-90])
rockProMountPoints(7, innerD/2, innerD/2, 64, false);
faceMountDiffs();
}
}
}
module guideRail(x,y,z) {
// gross
cube(size=[y,z,x]);
}
module faceMountDiffs() {
for (i = [-1,1]) {
for (j = [-1,1]) {
translate(v=[i*47,0,j*15]) {
rotate(a=[90,0,0])
translate(v=[0,0,93])
cylinder(r=innerD/2,h=12, center=true);
rotate(a=[90,0,0])
translate(v=[0,0,-93])
cylinder(r=innerD/2,h=12, center=true);
}
}
}
}
module faceMountSupports() {
intersection() {
caseOuter();
for (i = [-1,1]) {
for (j = [-1,1]) {
translate(v=[i*47,0,j*15]) {
rotate(a=[90,0,0])
translate(v=[0,0,90])
cylinder(r=innerD,h=400, center=true);
}
}
}
}
}
module bottomTray() {
difference() {
union() {
translate(v=[-48,0,-11])
cube(size=[4,195,4], center=true);
translate(v=[48,0,-11])
cube(size=[4,195,4], center=true);
intersection() {
caseWithMountHoles();
translate(v=[0,0,-110])
cube(size=[500,500,200], center=true);
}
translate(v=[-50,97.5,-10+3])
rotate(a=[90,90,0])
guideRail(195,2,2);
translate(v=[48, 97.5, -10+3])
rotate(a=[90,90,0])
guideRail(195,2,2);
}
// bottom lugs
union() {
translate(v=[-35,-90,-30])
cube(size=[10.2,10.2,2.5], center=true);
translate(v=[35,-90,-30])
cube(size=[10.2,10.2,2.5],center=true);
translate(v=[35,90,-30])
cube(size=[10.2,10.2,2.5],center=true);
translate(v=[-35,90,-30])
cube(size=[10.2,10.2,2.5],center=true);
}
}
}
bottomTray();
*caseWithMountHoles();
*caseShell();

View File

@ -0,0 +1,66 @@
include <./rockpro.scad>;
include <../power/src/base.scad>;
$fn = 128;
outerD = 4.65;
innerD = 2.93;
module caseOuter() {
rotate(a=[90,0,0])
minkowski() {
cube(size=[80,40,195], center=true);
cylinder(h=0.00000000001, r=10);
}
}
module caseInner() {
translate(v=[0,0,2])
rotate(a=[90,0,0])
minkowski() {
cube(size=[81.5,47,195+0.01], center=true);
*cylinder(h=0.00000000001, r=5);
}
}
module caseShell() {
difference() {
caseOuter();
union() {
caseInner();
// side perforations
for (i=[-7:7]) {
hgill(i=i);
}
// top perforations
for (i=[-3:3]) {
translate(v=[0,i*20,50])
cube(size=[75,10,60], center=true);
}
// bottom perforations
for (i=[2:4]) {
translate(v=[0,i*20,-20])
cube(size=[60,8,50], center=true);
}
for (i=[-4:0]) {
translate(v=[0,i*20,-20])
cube(size=[60,8,50], center=true);
}
}
}
}
caseShell();

42534
cases/rockpro/newcase.stl Normal file

File diff suppressed because it is too large Load Diff

198
cases/rockpro/railTest.stl Normal file
View File

@ -0,0 +1,198 @@
solid OpenSCAD_Model
facet normal -1 0 0
outer loop
vertex 0 2.41621 -5
vertex 0 4.05 5
vertex 0 4.05 -5
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex 0 4.05 5
vertex 0 2.41621 -5
vertex 0 2.41621 5
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 0 -4.05 -5
vertex 0 -2.41621 5
vertex 0 -2.41621 -5
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex 0 -2.41621 5
vertex 0 -4.05 -5
vertex 0 -4.05 5
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -2.325 -3.62432 -5
vertex -2.325 3.62432 5
vertex -2.325 3.62432 -5
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -2.325 3.62432 5
vertex -2.325 -3.62432 -5
vertex -2.325 -3.62432 5
endloop
endfacet
facet normal 0.461085 0.887356 -0
outer loop
vertex 0 2.41621 -5
vertex -2.325 3.62432 5
vertex 0 2.41621 5
endloop
endfacet
facet normal 0.461085 0.887356 0
outer loop
vertex -2.325 3.62432 5
vertex 0 2.41621 -5
vertex -2.325 3.62432 -5
endloop
endfacet
facet normal 0.461085 -0.887356 0
outer loop
vertex -2.325 -3.62432 -5
vertex 0 -2.41621 5
vertex -2.325 -3.62432 5
endloop
endfacet
facet normal 0.461085 -0.887356 0
outer loop
vertex 0 -2.41621 5
vertex -2.325 -3.62432 -5
vertex 0 -2.41621 -5
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 3.5 -4.05 5
vertex 3.5 4.05 -5
vertex 3.5 4.05 5
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 3.5 4.05 -5
vertex 3.5 -4.05 5
vertex 3.5 -4.05 -5
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -2.325 3.62432 5
vertex 0 -2.41621 5
vertex 0 2.41621 5
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0 -2.41621 5
vertex -2.325 3.62432 5
vertex -2.325 -3.62432 5
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0 2.41621 5
vertex 3.5 4.05 5
vertex 0 4.05 5
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 3.5 4.05 5
vertex 0 2.41621 5
vertex 3.5 -4.05 5
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 0 -2.41621 5
vertex 3.5 -4.05 5
vertex 0 2.41621 5
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 3.5 -4.05 5
vertex 0 -2.41621 5
vertex 0 -4.05 5
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -2.325 -3.62432 -5
vertex 0 2.41621 -5
vertex 0 -2.41621 -5
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 0 2.41621 -5
vertex -2.325 -3.62432 -5
vertex -2.325 3.62432 -5
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 0 -2.41621 -5
vertex 3.5 -4.05 -5
vertex 0 -4.05 -5
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 3.5 -4.05 -5
vertex 0 -2.41621 -5
vertex 3.5 4.05 -5
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 0 2.41621 -5
vertex 3.5 4.05 -5
vertex 0 -2.41621 -5
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 3.5 4.05 -5
vertex 0 2.41621 -5
vertex 0 4.05 -5
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 3.5 4.05 -5
vertex 0 4.05 5
vertex 3.5 4.05 5
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 0 4.05 5
vertex 3.5 4.05 -5
vertex 0 4.05 -5
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 0 -4.05 -5
vertex 3.5 -4.05 5
vertex 0 -4.05 5
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 3.5 -4.05 5
vertex 0 -4.05 -5
vertex 3.5 -4.05 -5
endloop
endfacet
endsolid OpenSCAD_Model

View File

@ -0,0 +1,22 @@
rockProMountDeltaXY = [[0,0,0], [116.5,0,0], [116.5,71.0,0], [0,71.0,0]];
module rockProMountPoints(cylHeight, cylRad1, cylRad2, cylFn, center) {
for (i=[0:3]) {
p = rockProMountDeltaXY[i];
translate(v=[p[0], p[1], p[2]])
cylinder(r1=cylRad1, r2=cylRad2, h=cylHeight, $fn=cylFn, center=center);
}
}
//rockProMountPoints(10,2,64, true);

View File

@ -0,0 +1,22 @@
rockProMountDeltaXY = [[0,0,0], [117.62,0,0], [117.62,71.00,0], [0,71.00,0]];
module rockProMountPoints(cylHeight, cylRad, cylFn, center) {
for (i=[0:3]) {
p = rockProMountDeltaXY[i];
translate(v=[p[0], p[1], p[2]])
cylinder(r=cylRad, h=cylHeight, $fn=cylFn, center=center);
}
}

45698
cases/rockpro/top.stl Normal file

File diff suppressed because it is too large Load Diff