work work work work work work
This commit is contained in:
91
cases/open-frame.scad
Normal file
91
cases/open-frame.scad
Normal file
@ -0,0 +1,91 @@
|
||||
$fn=64;
|
||||
|
||||
eps=0.1;
|
||||
|
||||
|
||||
function mirror4XY(midpoint, offsetX, offsetY) =
|
||||
[[midpoint[0]+offsetX, midpoint[1]+offsetY, midpoint[2]],
|
||||
[midpoint[0]-offsetX, midpoint[1]+offsetY, midpoint[2]],
|
||||
[midpoint[0]-offsetX, midpoint[1]-offsetY, midpoint[2]],
|
||||
[midpoint[0]+offsetX, midpoint[1]-offsetY, midpoint[2]]];
|
||||
|
||||
module leg() {
|
||||
mainLength = 80;
|
||||
upperDim = 20;
|
||||
innerDim = 10;
|
||||
|
||||
translate(v=[0,0,mainLength/2]) {
|
||||
cube(size=[upperDim, upperDim, mainLength], center=true);
|
||||
|
||||
translate(v=[0,0,mainLength/2 + innerDim/8-0.3])
|
||||
cube(size=[innerDim, innerDim, innerDim/4-0.5], center=true);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
module base() {
|
||||
|
||||
difference() {
|
||||
union() {
|
||||
cube(size=[200,200,4], center=true);
|
||||
|
||||
// legs
|
||||
for (i=mirror4XY(midpoint=[0,0,-2], offsetX=90, offsetY=90)) {
|
||||
translate(v=i)
|
||||
leg();
|
||||
}
|
||||
|
||||
// base support
|
||||
translate(v=[0,0,4.5])
|
||||
cube(size=[200,5,5], center=true);
|
||||
|
||||
rotate(a=[0,0,90])
|
||||
translate(v=[0,0,4.5])
|
||||
cube(size=[200,5,5], center=true);
|
||||
|
||||
translate(v=[0,-98,4.5])
|
||||
cube(size=[200,4,5], center=true);
|
||||
|
||||
rotate(a=[0,0,90])
|
||||
translate(v=[0,-98,4.5])
|
||||
cube(size=[200,4,5], center=true);
|
||||
|
||||
rotate(a=[0,0,180])
|
||||
translate(v=[0,-98,4.5])
|
||||
cube(size=[200,4,5], center=true);
|
||||
|
||||
rotate(a=[0,0,270])
|
||||
translate(v=[0,-98,4.5])
|
||||
cube(size=[200,4,5], center=true);
|
||||
|
||||
}
|
||||
|
||||
union() {
|
||||
|
||||
|
||||
// lug holes
|
||||
for (i=mirror4XY(midpoint=[0,0,0], offsetX=50, offsetY=50)) {
|
||||
for (j=mirror4XY(midpoint=i, offsetX=40, offsetY=40)) {
|
||||
translate(v=j)
|
||||
cube(size=[10+0.3,10+0.3,140], center=true);
|
||||
}
|
||||
}
|
||||
|
||||
// decorative perforations
|
||||
for (i=mirror4XY(midpoint=[0,0,0], offsetX=50, offsetY=50)) {
|
||||
translate(v=i)
|
||||
minkowski() {
|
||||
cube(size=[30,30,50], center=true);
|
||||
cylinder(r=20, h=10);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
base();
|
||||
|
||||
|
||||
11286
cases/open-frame.stl
Normal file
11286
cases/open-frame.stl
Normal file
File diff suppressed because it is too large
Load Diff
@ -136,7 +136,7 @@ module top() {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
base();
|
||||
*top();
|
||||
|
||||
|
||||
|
||||
@ -14,7 +14,8 @@ innerD = 2.93;
|
||||
module caseOuter() {
|
||||
rotate(a=[90,0,0])
|
||||
minkowski() {
|
||||
cube(size=[70,30,195], center=true);
|
||||
//translate(v=[-35, -15, -32.5])
|
||||
cube(size=[70,30,130], center=true);
|
||||
cylinder(h=0.00000000001, r=15);
|
||||
}
|
||||
}
|
||||
@ -23,7 +24,7 @@ module caseInner() {
|
||||
translate(v=[0,0,0])
|
||||
rotate(a=[90,0,0])
|
||||
minkowski() {
|
||||
cube(size=[70,30,195+0.01], center=true);
|
||||
cube(size=[70,30,130+0.01], center=true);
|
||||
cylinder(h=0.00000000001, r=12);
|
||||
}
|
||||
}
|
||||
@ -51,28 +52,21 @@ module caseShell() {
|
||||
|
||||
// side perforations
|
||||
for (i=[-7:7]) {
|
||||
hgill(i=i);
|
||||
*hgill(i=i);
|
||||
}
|
||||
|
||||
// top perforations
|
||||
for (i=[-3:3]) {
|
||||
for (i=[-2:2]) {
|
||||
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);
|
||||
}
|
||||
|
||||
for (i=[-2:2]) {
|
||||
translate(v=[0,i*20,-20])
|
||||
rotate(a=[0,0,25])
|
||||
cube(size=[50,3,50], center=true);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -84,16 +78,16 @@ module caseWithMountHoles() {
|
||||
union() {
|
||||
caseShell();
|
||||
|
||||
translate(v=[-35, 25,-27.5])
|
||||
translate(v=[-35, 59,-28])
|
||||
rotate(a=[0,0,-90])
|
||||
rockProMountPoints(7, 5.5, 2.5, 64, false);
|
||||
rockProMountPoints(5.0, 5.5, 2.5, 64, false);
|
||||
faceMountSupports();
|
||||
}
|
||||
|
||||
union() {
|
||||
translate(v=[-35, 25,-27.5])
|
||||
translate(v=[-35, 59,-29.5])
|
||||
rotate(a=[0,0,-90])
|
||||
rockProMountPoints(7, innerD/2, innerD/2, 64, false);
|
||||
rockProMountPoints(6.5, innerD/2, innerD/2, 64, false);
|
||||
|
||||
faceMountDiffs();
|
||||
}
|
||||
@ -114,11 +108,16 @@ module faceMountDiffs() {
|
||||
|
||||
rotate(a=[90,0,0])
|
||||
translate(v=[0,0,93])
|
||||
cylinder(r=innerD/2,h=12, center=true);
|
||||
*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);
|
||||
*cylinder(r=innerD/2,h=12, center=true);
|
||||
|
||||
|
||||
rotate(a=[90,0,0])
|
||||
translate(v=[0,0,90])
|
||||
cylinder(r=innerD/2,h=400, center=true);
|
||||
}
|
||||
|
||||
}
|
||||
@ -149,10 +148,10 @@ difference() {
|
||||
|
||||
union() {
|
||||
translate(v=[-48,0,-11])
|
||||
cube(size=[4,195,4], center=true);
|
||||
cube(size=[4,130,4], center=true);
|
||||
|
||||
translate(v=[48,0,-11])
|
||||
cube(size=[4,195,4], center=true);
|
||||
cube(size=[4,130,4], center=true);
|
||||
intersection() {
|
||||
caseWithMountHoles();
|
||||
translate(v=[0,0,-110])
|
||||
@ -161,31 +160,31 @@ intersection() {
|
||||
|
||||
|
||||
|
||||
translate(v=[-50,97.5,-10+3])
|
||||
translate(v=[-50,65,-10+3])
|
||||
rotate(a=[90,90,0])
|
||||
guideRail(195,2,2);
|
||||
guideRail(130,2,2);
|
||||
|
||||
|
||||
translate(v=[48, 97.5, -10+3])
|
||||
translate(v=[48, 65, -10+3])
|
||||
rotate(a=[90,90,0])
|
||||
guideRail(195,2,2);
|
||||
guideRail(130,2,2);
|
||||
|
||||
|
||||
}
|
||||
|
||||
// bottom lugs
|
||||
union() {
|
||||
translate(v=[-35,-90,-30])
|
||||
cube(size=[10.2,10.2,2.5], center=true);
|
||||
translate(v=[-35,-56.5,-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,-56.5,-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,56.5,-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,56.5,-30])
|
||||
*cube(size=[10.2,10.2,2.5],center=true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
|
||||
|
||||
|
||||
rockProMountDeltaXY = [[0,0,0], [116.5,0,0], [116.5,71.0,0], [0,71.0,0]];
|
||||
rockProMountDeltaXY = [[0,0,0], [118,0,0], [118,71.0,0], [0,71.0,0]];
|
||||
|
||||
|
||||
module rockProMountPoints(cylHeight, cylRad1, cylRad2, cylFn, center) {
|
||||
|
||||
Reference in New Issue
Block a user