This commit is contained in:
zhao
2023-01-10 23:30:19 -05:00
parent 43c2aceba5
commit bb6288ee32
83 changed files with 172 additions and 172 deletions
+4818
View File
File diff suppressed because it is too large Load Diff
+79
View File
@@ -0,0 +1,79 @@
include <../../common.scad>
include <../screws.scad>
$fn=64;
module baseFrame() {
difference() {
cube(size=[200,200,4], center=true);
cube(size=[180,180,4], center=true);
}
translate(v=[80,80,0])
cube(size=[20,20, 4],center=true);
translate(v=[-80,80,0])
cube(size=[20,20, 4],center=true);
translate(v=[80,-80,0])
cube(size=[20,20, 4],center=true);
translate(v=[-80,-80,0])
cube(size=[20,20, 4],center=true);
}
module lugBottom() {
difference() {
cube(size=[9.7,9.7,6], center=true);
translate(v=[2,2,0])
cube(size=[9.1,9.1,5+1], center=true);
}
}
module base() {
difference() {
union() {
translate(v=[0,0,4/2])
baseFrame();
translate(v=[-90,-90,-6/2])
lugBottom();
mirror(v=[1,0,0])
translate(v=[-90,-90,-6/2])
lugBottom();
mirror(v=[0,1,0])
translate(v=[-90,-90,-6/2])
lugBottom();
mirror(v=[1,1,0])
translate(v=[-90,-90,-6/2])
lugBottom();
}
union() {
translate(v=[80,80,0])
cylinder(h = 100, r = m3ptr, $fn=32, center=true);
translate(v=[-80,80,0])
cylinder(h = 100, r = m3ptr, $fn=32, center=true);
translate(v=[80,-80,0])
cylinder(h = 100, r = m3ptr, $fn=32, center=true);
translate(v=[-80,-80,0])
cylinder(h = 100, r = m3ptr, $fn=32, center=true);
}
}
}
base();
+37
View File
@@ -0,0 +1,37 @@
slack = 0.5;
m3Diameter = 3.0;
m3Radius = m3Diameter/2.0;
m3ptr = m3Radius + slack;
legLength = 200;
module baseLeg(legLength) {
cube(size=[3, 15, legLength]);
}
module leg() {
difference() {
baseLeg(legLength);
union() {
for (i = [0:18]) {
translate(v=[0,10,(i+1)*10])
rotate(a=[0,90,0])
cylinder(h = 100, r = m3ptr, $fn=32, center=true);
}
translate(v=[0,10,(0+1)*10])
rotate(a=[0,90,0])
*cylinder(h = 100, r = m3ptr, $fn=32, center=true);
translate(v=[0,10,(18+1)*10])
rotate(a=[0,90,0])
*cylinder(h = 100, r = m3ptr, $fn=32, center=true);
}
}
}
leg();
+45
View File
@@ -0,0 +1,45 @@
slack = 0.5;
m3Diameter = 3.0;
m3Radius = m3Diameter/2.0;
m3ptr = m3Radius + slack;
legLength = 60;
module baseLeg(legLength) {
difference() {
cube(size=[16,16, legLength]);
translate(v=[4,4,4])
cube(size=[16, 16, legLength-2*4]);
}
}
module leg(ui) {
assert(ui > 0);
legLength = 20 + (ui-1)*10;
difference() {
baseLeg(legLength);
union() {
for (i = [0:ui-1]) {
translate(v=[0,10,(i+1)*10])
rotate(a=[0,90,0])
cylinder(h = 100, r = m3ptr, $fn=32, center=true);
translate(v=[10,0,(i+1)*10])
rotate(a=[90,0,0])
cylinder(h = 100, r = m3ptr, $fn=32, center=true);
}
translate(v=[10,10,legLength/2])
cylinder(h = legLength*2, r = m3ptr, $fn=32, center=true);
}
}
}
leg(18);
+158
View File
@@ -0,0 +1,158 @@
include <../../common.scad>
include <../screws.scad>
//slack = 0.5;
//m3Diameter = 3.0;
//m3Radius = m3Diameter/2.0;
//m3ptr = m3Radius + slack;
legWidth = 16;
legLength = 16;
legHeight = 60;
legFrontThickness = 6;
legSupportThickness = 4;
legWingThickness = 4;
legWingLength = 9;
// 9.5 to account for space for inserting hex nuts at the top
legWingWidth = 9.5+legSupportThickness;
module legWing() {
difference() {
cube(size=[legWingLength, legWingThickness, legWingWidth]);
union() {
translate(v=[4,0,10])
rotate(a=[90,0,0])
cylinder(r=m3RadiusSlacked, h=20, center=true);
translate(v=[14,0,10])
rotate(a=[90,0,0])
cylinder(r=m3RadiusSlacked, h=20, center=true);
}
}
}
module base() {
difference() {
cube(size=[25,25,legWingThickness]);
union() {
translate(v=[20,20,0])
cylinder(r=m3RadiusSlacked, h=100, center=true);
translate(v=[10,10,0])
cylinder(r=m3RadiusSlacked, h=100, center=true);
translate(v=[20,10,0])
cylinder(r=m3RadiusSlacked, h=100, center=true);
translate(v=[10,20,0])
cylinder(r=m3RadiusSlacked, h=100, center=true);
}
}
}
module baseLeg(legHeight) {
union() {
difference() {
cube(size=[16,16, legHeight]);
union() {
translate(v=[4,6,0])
cube(size=[16, 16, legHeight]);
// compensate for differences between leg/wing thickness
translate(v=[legSupportThickness,legSupportThickness,0])
cube(size=[legWidth,legWidth,legSupportThickness+10]);
translate(v=[legSupportThickness,legSupportThickness,legHeight-legWingWidth])
cube(size=[legWidth,legWidth,legSupportThickness+10]);
}
}
translate(v=[16,0,0])
legWing();
translate(v=[16,0,legHeight])
mirror(v=[0,0,1]) {
legWing();
}
mirror(v=[1,-1,0]) {
translate(v=[16,0,0])
legWing();
translate(v=[16,0,legHeight])
mirror(v=[0,0,1]) {
legWing();
}
}
}
base();
translate(v=[0,0,legHeight-legWingThickness])
base();
}
*baseLeg(180);
module leg(ui) {
assert(ui > 0);
legLength = 20 + (ui-1)*10;
difference() {
baseLeg(legLength);
union() {
intersection() {
union() {
for (i = [1:ui-2]) {
translate(v=[0,10,(i+1)*10])
rotate(a=[0,90,0])
*cylinder(h = 100, r = m3ptr, $fn=32, center=true);
translate(v=[10,3,(i+1)*10])
rotate(a=[90,-10,0])
m4HexNutPocketNegative();
}
}
translate(v=[-1,-1,legWingWidth])
cube(size=[1000,1000,legLength-2*legWingWidth]);
}
translate(v=[0,10,10])
rotate(a=[0,90,0])
cylinder(h = 100, r = m3ptr, $fn=32, center=true);
translate(v=[0,10,ui*10])
rotate(a=[0,90,0])
cylinder(h = 100, r = m3ptr, $fn=32, center=true);
translate(v=[10,0,10])
rotate(a=[90,0,0])
cylinder(h = 100, r = m3ptr, $fn=32, center=true);
translate(v=[10,0,ui*10])
rotate(a=[90,0,0])
cylinder(h = 100, r = m3ptr, $fn=32, center=true);
}
}
}
//mirror(v=[1,0,0])
leg(20);
+88
View File
@@ -0,0 +1,88 @@
include <../../../misc/magnet.scad>
include <../../../math.scad>
$fn=64;
_height = 210;
_depth = 200;
_thickness = 5;
holeOffset = 10;
module _base() {
difference() {
cube(size = [_height, _depth, _thickness], center=true);
union() {
translate(v = [0, 0, 20])
minkowski() {
sphere(r = 20);
cube(size = [_height - 34, _depth - 34, 1], center = true);
}
// handles
handleLength = 80;
translate(v=[0, _depth/2, _thickness+5.5])
minkowski() {
sphere(r=10);
cube(size=[handleLength, 10, 1], center=true);
}
translate(v=[0, -_depth/2, _thickness+5.5])
minkowski() {
sphere(r=10);
cube(size=[handleLength, 10, 1], center=true);
}
}
}
}
module magnetMount(h) {
slack = 0.2;
difference() {
cylinder(h = h, r=magnetR*2);
translate(v=[0,0,h-magnetH])
cylinder(h = magnetH, r = magnetR+slack);
}
}
module side() {
magnetMountOffsetX = 95;
magnetMountOffsetY = 90;
difference() {
union() {
// align _base to positive z plan
translate(v = [0, 0, _thickness / 2])
_base();
// magnet mounts (no holes)
for (i=mirror4XY(midpoint=[0,0,0], offsetX=magnetMountOffsetX, offsetY=magnetMountOffsetY)) {
translate(v=i)
cylinder(h=_thickness, r=2*magnetR);
}
}
// magnet mount holes
for (i=mirror4XY(midpoint=[0,0,_thickness-magnetH], offsetX=magnetMountOffsetX, offsetY=magnetMountOffsetY)) {
translate(v=i)
cylinder(h=magnetH, r=magnetR);
}
}
}
difference() {
side();
union() {
for (i=[0:7]) {
translate(v=[i*15 - 52.5,0,0])
minkowski() {
cube(size = [2, 100, 10], center = true);
sphere(r=2);
}
}
}
}
Binary file not shown.
+97
View File
@@ -0,0 +1,97 @@
include <../../common.scad>
include <../../math.scad>
include <../screws.scad>
$fn=64;
_height = 8;
_width = 210;
_depth = 200;
module _bodySilBase(width, depth, height, roundedPartHeight) {
hull() {
cube(size = [width, depth, height - roundedPartHeight]);
minkowski() {
translate(v = [roundedPartHeight, 0, height - roundedPartHeight])
cube(size = [width-2*roundedPartHeight, depth, eps]);
rotate(a = [90, 0, 0])
cylinder(r = roundedPartHeight, h = eps);
}
}
}
module _bodySil(width, depth, height, roundedPartHeight, wallThickness, topThickness) {
cornerSquareDim = 30;
difference() {
_bodySilBase(width, depth, height, roundedPartHeight);
union() {
translate(v = [wallThickness, cornerSquareDim, - topThickness])
_bodySilBase(width - 2 * wallThickness, depth - 2 * cornerSquareDim, height, roundedPartHeight);
translate(v=[cornerSquareDim, wallThickness, -topThickness])
cube(size=[width-2*cornerSquareDim, depth-2*wallThickness, height]);
}
}
}
// Negative and centered on xy. Aligned with z=0 downwards
module _lugAndMagnet() {
slack = 0.3;
vSlack = 0.1;
// lug
translate(v=[0,0,-2.5])
cube(size=[10+slack, 10+slack, 5+vSlack], center=true);
// hole for magnet, no tolerance on
translate(v=[0,0,-(5+vSlack+1.7)])
cylinder(d=6+slack, h=1.7+vSlack);
}
module baseBody() {
difference() {
_bodySil(_width, _depth, _height, 4, 5, 2);
_mid = [_width / 2, _depth / 2, _height];
union() {
for (i = mirror4XY(midpoint = _mid, offsetX = (_width / 2) - 15, offsetY = (_depth / 2) - 10)) {
translate(v = i)
_lugAndMagnet();
}
screwHolePositions = concat(
mirror4XY(midpoint = _mid, offsetX = (_width / 2) - 25, offsetY = (_depth / 2) - 20),
mirror4XY(midpoint = _mid, offsetX = (_width / 2) - 15, offsetY = (_depth / 2) - 20),
mirror4XY(midpoint = _mid, offsetX = (_width / 2) - 25, offsetY = (_depth / 2) - 10)
);
for (i = screwHolePositions) {
translate(v = i) {
cylinder(r = m3RadiusSlacked, h = inf, center = true);
}
}
}
}
}
difference() {
baseBody();
union() {
minkowski() {
translate(v = [(_width - 130) / 2, (_depth - 150) / 2, - inf / 2])
cube(size = [130, 150, inf]);
cylinder(r = 5);
}
}
}
BIN
View File
Binary file not shown.
+71
View File
@@ -0,0 +1,71 @@
include <../common.scad>
include <./screws.scad>
include <../rpi/voronoi.scad>
vU = 2;
uHeight = 10;
plateScrewDiffV = uHeight*vU;
plateScrewDiffH = 180;
plateScrewToHEdge = 4.5;
plateScrewToVEdge = 5.5;
frontPlateThickness = 2.5;
frontPlateV = plateScrewDiffV + 2*plateScrewToHEdge;
frontPlateH = plateScrewDiffH + 2*plateScrewToVEdge;
plateScrewToBoxMin = 6;
module _frontPlateBody() {
translate(v=[-plateScrewToVEdge,0,-plateScrewToHEdge])
cube(size=[frontPlateH,frontPlateThickness,frontPlateV]);
}
module _plateHole() {
rotate(a=[90,0,0])
cylinder(r=m4RadiusSlacked, h=inf, center=true);
}
module frontPlate() {
difference() {
_frontPlateBody();
union() {
// TODO: introduce helper modules for this pattern
_plateHole();
translate(v=[plateScrewDiffH,0,0])
_plateHole();
translate(v=[0,0,plateScrewDiffV])
_plateHole();
translate(v=[plateScrewDiffH,0,plateScrewDiffV])
_plateHole();
}
}
}
difference() {
difference () {
rotate(a=[-90,0,0])
frontPlate();
translate(v=[0,0,-5])
voronoi3u_N(10);
}
// lug holes
union() {
translate(v=[160,-3,-frontPlateThickness])
cube(size=[5.2, 5.2, 3]);
translate(v=[160-91.1,-3,-frontPlateThickness])
cube(size=[5.2, 5.2, 3]);
}
}
+16214
View File
File diff suppressed because it is too large Load Diff
+17642
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+54952
View File
File diff suppressed because it is too large Load Diff
+54952
View File
File diff suppressed because it is too large Load Diff
+85
View File
@@ -0,0 +1,85 @@
$fn=64;
include <./math.scad>
eps=0.1;
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();
+132
View File
@@ -0,0 +1,132 @@
include <./common.scad>
include <./rack/screws.scad>
vU = 2;
uHeight = 10;
plateScrewDiffV = uHeight*vU;
plateScrewDiffH = 180;
plateScrewToHEdge = 4.5;
plateScrewToVEdge = 5.5;
frontPlateThickness = 3;
frontPlateV = plateScrewDiffV + 2*plateScrewToHEdge;
frontPlateH = plateScrewDiffH + 2*plateScrewToVEdge;
plateScrewToBoxMin = 6;
module _frontPlateBody() {
translate(v=[-plateScrewToVEdge,0,-plateScrewToHEdge])
cube(size=[frontPlateH,frontPlateThickness,frontPlateV]);
}
module _plateHole() {
rotate(a=[90,0,0])
cylinder(r=m4RadiusSlacked, h=inf, center=true);
}
module frontPlate() {
difference() {
_frontPlateBody();
union() {
// TODO: introduce helper modules for this pattern
_plateHole();
translate(v=[plateScrewDiffH,0,0])
_plateHole();
translate(v=[0,0,plateScrewDiffV])
_plateHole();
translate(v=[plateScrewDiffH,0,plateScrewDiffV])
_plateHole();
}
}
}
// keystone stuff
// a lot of these variables are useless, after a couple of design iterations
keystoneMainBodyWidth = 15.0;
keystoneMainBodyHeight = 16.90;
keystoneMainBodyDepth = 32.90;
heightWithHookBody = 20.2;
heightWithHookCatch = 21.30;
widthWithSideLugs = 15.96;
sideLugWidth = (widthWithSideLugs - keystoneMainBodyWidth) / 2.0;
heightWithBottomLug = 17.5;
frontToHookCatch = 8.35; // not sure about this
frontToBottomLugBack = 8.23;
frontToSideLugFront = 10.63;
module keystoneSlot_N() {
// main keystone body (no hooks or lugs)
cube(size=[keystoneMainBodyWidth, keystoneMainBodyDepth, keystoneMainBodyHeight]);
// slot for top hook
translate(v=[0,frontToHookCatch,0])
cube(size=[keystoneMainBodyWidth, keystoneMainBodyDepth -frontToHookCatch, heightWithHookBody]);
cube(size=[keystoneMainBodyWidth, frontToHookCatch, heightWithHookCatch]);
// slots for side lugs
translate(v=[-sideLugWidth, frontToSideLugFront,0])
cube(size=[widthWithSideLugs, keystoneMainBodyDepth-frontToSideLugFront, keystoneMainBodyHeight]);
// slots for bottom lugs
translate(v=[0,0,-(heightWithBottomLug-keystoneMainBodyHeight)])
cube(size=[keystoneMainBodyWidth, frontToBottomLugBack, keystoneMainBodyHeight]);
}
module keystoneJack_N() {
translate(v=[0,-4,0.5])
intersection() {
translate(v=[-2.5,4,-4])
cube(size=[20,6,28]);
keystoneSlot_N();
}
}
//keystoneJack_N();
module patchPanel_P() {
frontPlate();
for (i = [0:7]) {
translate(v=[(i*20+12.5)-2.5,0,-4.5])
cube(size=[20,6,29]);
}
}
module patchPanel() {
difference() {
patchPanel_P();
for (i = [0:7]) {
translate(v=[i*18 + 12.5,0,-2])
keystoneJack_N();
}
}
}
patchPanel();
+210
View File
@@ -0,0 +1,210 @@
totalLength = 200;
totalWidth = 200;
totalHeight = 75;
innerLength = 180;
basePlateHeight = 5;
topPlateHeight = 5;
convexity = 20;
$fn=64;
cDiameter = 10;
cRadius = cDiameter/2;
cRad = cRadius;
cPos1 = [cRad, cRad, 0];
cDelta = [
// bottom
[0,0,0],
[cDiameter+innerLength, 0, 0],
[cDiameter+innerLength,cDiameter+innerLength, 0],
[0, cDiameter+innerLength, 0],
// top
[0,0,totalHeight-topPlateHeight],
[cDiameter+innerLength, 0, totalHeight-topPlateHeight],
[cDiameter+innerLength,cDiameter+innerLength, totalHeight-topPlateHeight],
[0, cDiameter+innerLength, totalHeight-topPlateHeight]
];
function cPos(idx) = cPos1 + cDelta[idx];
module cyl(idx) {
translate(v=cPos(idx)) cylinder(r=cRadius,h=idx < 4? basePlateHeight: topPlateHeight);
};
module bottomPlate() {
hull() { cyl(0); cyl(1); cyl(2); cyl(3);};
}
module topPlate() {
hull() { cyl(4); cyl(5); cyl(6); cyl(7);};
};
module frontFace() {
hull() { cyl(0); cyl(4); cyl(1); cyl(5);};
};
module backFace() {
hull() { cyl(2); cyl(6); cyl(7); cyl(3);};
};
module frame() {
bottomPlate();
//topPlate();
frontFace();
backFace();
// pillars
hull() { cyl(0); cyl(4);};
hull() { cyl(1); cyl(5);};
hull() { cyl(2); cyl(6);};
hull() { cyl(3); cyl(7);};
}
module sfxPowerSupply() {
// corsair sf450
length = 125.3;
width = 100.2;
height = 63.8;
screwD = 3.5;
eps = 0.001;
// body
color([0,1,0]) cube(size=[length, width, height]);
// main fan
color([0,1,1])
translate([62.5, 50,0])
circle(d=88);
// open faces
color([0,1,1])
translate([10,-eps, 7])
cube(size=[length-20, eps, height-7]);
// screw holes
color([1,0,1])
translate([length-6, eps, height-6])
rotate(a=[90,0,0])
circle(d=screwD);
color([1,0,1])
translate([6, eps, height-6])
rotate(a=[90,0,0])
circle(d=screwD);
color([1,0,1])
translate([6, eps, 6])
rotate(a=[90,0,0])
circle(d=screwD);
color([1,0,1])
translate([length-6, eps, 6])
rotate(a=[90,0,0])
circle(d=screwD);
color([1,0,1])
translate([6, eps, height-(6+25.5)])
rotate(a=[90,0,0])
circle(d=screwD);
color([1,0,1])
translate([length-6, eps, height-(6+25.5)])
rotate(a=[90,0,0])
circle(d=screwD);
// atx connectors - NA
}
sfxPowerSupply();
module walls() {
difference() {
union() {
difference() {
difference() {
frame();
translate([62.5+37-10, 50+10,-25])
cylinder(d=90, h=50);
};
translate([47-10, -10, -10])
cube(size=[106,20,100]);
};
translate(v=[25-10,0,-0])
cube(size=[totalLength*0.7, 10, 15]);
}
translate(v=[10,0,-0.2])
plate();
}
}
module plate() {
union() {
translate(v=[totalLength-48, -1, 15])
cube(size=[20, 8, 55]);
translate([totalLength-38, 10, 60])
rotate(a=[90,0,0])
cylinder(d=11.2, h=50);
translate([totalLength-38, 10, 42])
rotate(a=[90,0,0])
cylinder(d=11.2, h=50);
translate([totalLength-38, 10, 25])
rotate(a=[90,0,0])
cylinder(d=11.2, h=50);
};
};
module lightning() {
linear_extrude(50)
polygon(
points = [
[0,0],
[12,10],
[6,11],
[10,16],
[4,17],
[-2,8],
[4,7]
]);
}
module decal(numL, numW, sca) {
dL = sca * 16;
dW = sca * 18;
for (i=[0:numL-1]) {
for (j=[0:numW-1]) {
translate(v=[i*dL,j*dW,0])
scale(sca)
lightning();
}
}
}
difference() {
walls();
rotate(a=[90,0,180])
translate(v=[-161.5,10,180])
decal(8, 3, 1.0);
};
translate([28, 16, 6])
*sfxPowerSupply();
+52
View File
@@ -0,0 +1,52 @@
// test for screw tolerances
$fn = 128;
outerD = 4.65;
innerD = 2.95;
*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=[90,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=[90,47,195+0.01], center=true);
*cylinder(h=0.00000000001, r=5);
}
}
module caseShell() {
difference() {
caseOuter();
caseInner();
}
}
caseShell();
+330
View File
@@ -0,0 +1,330 @@
include <./sfx-psu.scad>;
$fn=64;
eps=0.1;
module gill(he, isCenter) {
minkowski() {
cylinder(h = 1, r1 = 2, r2 = 2);
cube(size=[he, 3.5, 6], center=isCenter);
}
}
module basBarInsert() {
mainLength = 10;
upperDim = 20;
innerDim = 10;
translate(v=[0,0,mainLength/2]) {
difference() {
cube(size=[upperDim, upperDim, mainLength], center=true);
translate(v=[0,0,mainLength/2 - innerDim/4])
cube(size=[innerDim, innerDim, innerDim/2], center=true);
}
}
}
module topBarInsert(slack) {
innerDim = 10+slack;
translate(v=[0,0,innerDim/4])
cube(size=[innerDim, innerDim, innerDim/2], center=true);
}
*topBarInsert(-0.6);
module base() {
translate(v=[90,90,-2.5])
basBarInsert();
translate(v=[-90,90,-2.5])
basBarInsert();
translate(v=[90,-90,-2.5])
basBarInsert();
translate(v=[-90,-90,-2.5])
basBarInsert();
difference() {
difference() {
cube(size=[200,200,5], center=true);
minkowski() {
translate(v=[17,-45,0])
cube(size=[90, 90, 6], center=true);
cylinder(h = 1, r1 = 2, r2 = 2);
}
}
union() {
for (i = [0:12] ) {
rotate(a=[0,0,90])
translate(v=[50,72.5 - i*12,0])
gill(he=65, isCenter=true);
}
for (i = [0:1] ) {
rotate(a=[0,0,90])
translate(v=[-40,72.5 - i*12,0])
gill(he=80, isCenter=true) ;
}
}
}
}
module top() {
difference() {
union() {
translate(v=[90,90,-0.2])
topBarInsert(-0.6);
translate(v=[-90,90,-0.2])
topBarInsert(-0.6);
translate(v=[90,-90,-0.2])
topBarInsert(-0.6);
translate(v=[-90,-90,-0.2])
topBarInsert(-0.6);
difference() {
translate(v=[0,0,-1.5])
cube(size=[200,200,3], center=true);
union() {
for (i = [0:12] ) {
rotate(a=[0,0,90])
translate(v=[45,72.5 - i*12,0])
gill(he=75, isCenter=true);
}
for (i = [0:12] ) {
rotate(a=[0,0,90])
translate(v=[-45,72.5 - i*12,0])
gill(he=75, isCenter=true) ;
}
}
}
}
union() {
translate(v=[90,90,-6])
topBarInsert(0.5);
translate(v=[-90,90,-6])
topBarInsert(0.5);
translate(v=[90,-90,-6])
topBarInsert(0.5);
translate(v=[-90,-90,-6])
topBarInsert(0.5);
}
}
}
base();
*top();
legInsertInnerSlack = 0.4;
module legInsert(length, railSlack) {
iS = 10-legInsertInnerSlack;
difference() {
union() {
cube(size=[20,20,length], center=true);
translate(v=[0,0,iS/2-legInsertInnerSlack/2])
cube(size=[iS, iS, length], center=true);
}
union() {
// slot
translate(v=[0,0,-length/2 ])
cube(size=[10, 10, 10], center=true);
// linear sliding joins for walls
for (i=[0:3]) {
rotate(a=[0,0,90*i])
translate(v=[10,0,-5])
cylinder(length*2,5+railSlack,5+railSlack,$fn=3, center=true);
}
rotate(a=[0,0,90])
translate(v=[10,0,-5])
cylinder(length*2,5,5,$fn=3, center=true);
rotate(a=[0,0,180])
translate(v=[10,0,-5])
cylinder(length*2,5,5,$fn=3, center=true);
rotate(a=[0,0,270])
translate(v=[10,0,-5])
cylinder(length*2,5,5,$fn=3, center=true);
}
}
}
*cylinder(20,4,5,$fn=3);
module joinTriangle(length) {
translate(v=[-10,0,0])
difference() {
translate(v=[5.5, -4.5, -length/2])
cube(size=[8,9,length]);
legInsert(length=length+eps, railSlack=-0.35);
}
}
module sidePlate() {
translate(v=[0,35,-5])
rotate(a=[0,-90,-90])
union() {
translate(v=[0,180,0])
joinTriangle(length=70);
joinTriangle(length=70);
translate(v=[2,-10,-40])
cube(size=[3,200,75]);
}
}
module frontPlateHoled() {
difference() {
sidePlate();
intersection() {
translate(v=[5,0,-25])
cube(size=[170,65,50]);
union() {
for (i=[0:11]) {
translate(v=[20+i*17, 0, 0])
rotate(a=[0,0,45])
cube(size=[8,1000,40], center=true);
}
}
}
}
}
module backPlateHoled() {
difference() {
sidePlate();
union() {
translate(v=[20,5,-25])
cube(size=[106,53,50]);
translate(v=[16,27.2,-50])
cylinder(h=100, r1=2, r2=2);
translate(v=[16,52.8,-50])
cylinder(h=100, r1=2, r2=2);
translate(v=[16,0.85,-50])
cylinder(h=100, r1=2, r2=2);
translate(v=[129.4,27.2,-50])
cylinder(h=100, r1=2, r2=2);
translate(v=[129.4,0.85,-50])
cylinder(h=100, r1=2, r2=2);
translate(v=[129.4,52.8,-50])
cylinder(h=100, r1=2, r2=2);
// power out
translate(v=[150,50,-50])
cylinder(h=100, r1=5.6, r2=5.6);
translate(v=[160,15+17.5,-50])
cylinder(h=100, r1=5.6, r2=5.6);
translate(v=[150,15,-50])
cylinder(h=100, r1=5.6, r2=5.6);
}
}
}
// messed up placement of the holes, mirroring as hack to approx solve
module mirroredBackPlateHoled() {
mirror(v=[0,0,1])
translate(v=[0,0,-10])
backPlateHoled();
}
module supportLBracket(length, h1, h2, thickness) {
numSegments = 2;
module triangleSupport() {
hull() {
translate(v=[0, h1-thickness, thickness-eps])
cube(size=[thickness, thickness, eps]);
translate(v=[0, 0, h2-eps])
cube(size=[thickness, thickness, eps]);
translate(v=[0, 0, 0])
cube(size=[thickness, thickness, eps]);
}
}
union() {
difference() {
cube(size=[length, h1, h2]);
translate(v=[-eps,thickness, thickness])
cube(size=[length+2*eps, h1+2*eps, h2+2*eps]);
}
for (i=[0:numSegments]) {
translate(v=[((length-thickness)/numSegments)*i, 0,0])
triangleSupport();
}
}
}
*supportLBracket(35, 8, 8, 1.5);
*mirroredBackPlateHoled();
translate(v=[10,-5,-1])
rotate(a=[-90,0,0])
*sfxPowerSupply();
+113
View File
@@ -0,0 +1,113 @@
/*
// from corner cube
frameExtrusions = [
0, // north
0, // east
10, // south
10, // west
0, // up
0 // down
];
unitVectors = [
[ 1, 0, 0], // north
[ 0, 1, 0], // east
[-1, 0, 0], // south
[ 0, -1, 0], // west
[ 0, 0, 1], // up
[ 0, 0, -1] // down
];
*/
cornerCubeDimensions = [10,10,10];
slack = 0.45 ;
legOuterDim = [10,10,10];
legInnerDim = [5,5,5];
$fn=128;
//
module leg() {
difference() {
cube(size=legOuterDim, center=true);
translate(v=[0,0,(legOuterDim[2]-legInnerDim[2])/2])
cube(size=[legInnerDim[0]+slack, legInnerDim[1]+slack, legInnerDim[2]+slack], center=true);
}
}
module threeJoin() {
// corner cube
difference() {
rotate(a=90, v=[0,0,1])
union() {
cube(size=cornerCubeDimensions, center=true);
translate(v=[0,0,10])
leg();
translate(v=[0,-10,0])
rotate(a=[90,0,0])
leg();
translate(v=[10,0,0])
rotate(a=[0,90,0])
leg();
}
translate(v=[10,10,-20])
rotate(a=135, v=[1,-1,0])
cube(size=[100,100,100]);
}
}
translate(v=[10,10,-20])
rotate(a=135, v=[1,-1,0])
*cube(size=[100,100,100]);
module frameBar(slack) {
cube(size=[20,20,20], center=true);
translate(v=[(20/2) + (10+slack)/2,0,0])
cube(size=[10+slack,10+slack,10+slack], center=true);
}
*frameBar(-0.6);
translate(v=[0,30,0])
*frameBar(-0.7);
translate(v=[0,60,0])
*frameBar(-0.8);
translate(v=[0,0,5])
rotate(a=45, v=[1,-1,0])
*threeJoin();
*frameBar();
oslack = 0.05;
module old() {
cube(size=[160,10,10], center=true);
translate(v=[82.5,0,0])
cube(size=[5+oslack,5+oslack,5+oslack], center=true);
translate(v=[-82.5,0,0])
cube(size=[5+oslack,5+oslack,5+oslack], center=true);
}
module baseBar() {
}
cylinder(r1=8, r2=10, h=10);
//old();
File diff suppressed because it is too large Load Diff
+58
View File
@@ -0,0 +1,58 @@
module sfxPowerSupply() {
// corsair sf450
length = 125.3;
width = 100.2;
height = 63.8;
screwD = 3.5;
eps = 0.001;
// body
color([0,1,0]) cube(size=[length, width, height]);
// main fan
translate([62.5, 50,0])
color([0,1,1])
circle(d=88);
// open faces
translate([10,-eps, 7])
color([0,1,1])
cube(size=[length-20, eps, height-7]);
// screw holes
color([1,0,1])
translate([length-6, eps, height-6])
rotate(a=[90,0,0])
circle(d=screwD);
color([1,0,1])
translate([6, eps, height-6])
rotate(a=[90,0,0])
circle(d=screwD);
color([1,0,1])
translate([6, eps, 6])
rotate(a=[90,0,0])
circle(d=screwD);
color([1,0,1])
translate([length-6, eps, 6])
rotate(a=[90,0,0])
circle(d=screwD);
color([1,0,1])
translate([6, eps, height-(6+25.5)])
rotate(a=[90,0,0])
circle(d=screwD);
color([1,0,1])
translate([length-6, eps, height-(6+25.5)])
rotate(a=[90,0,0])
circle(d=screwD);
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+590
View File
@@ -0,0 +1,590 @@
solid OpenSCAD_Model
facet normal 1 0 0
outer loop
vertex 10 10 10
vertex 10 4.7 4.7
vertex 10 10 -10
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 10 10
vertex 10 -4.7 4.7
vertex 10 4.7 4.7
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 -4.7 4.7
vertex 10 -10 10
vertex 10 -4.7 -4.7
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 10 -10 10
vertex 10 -4.7 4.7
vertex 10 10 10
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 10 4.7 -4.7
vertex 10 10 -10
vertex 10 4.7 4.7
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 10 -4.7 -4.7
vertex 10 10 -10
vertex 10 4.7 -4.7
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 -4.7 -4.7
vertex 10 -10 -10
vertex 10 10 -10
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 -10 -10
vertex 10 -4.7 -4.7
vertex 10 -10 10
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -10 10 10
vertex 10 -10 10
vertex 10 10 10
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 10 -10 10
vertex -10 10 10
vertex -10 -10 10
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -10 -10 -10
vertex 10 10 -10
vertex 10 -10 -10
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 10 10 -10
vertex -10 -10 -10
vertex -10 10 -10
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -10 -10 -10
vertex -10 10 10
vertex -10 10 -10
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -10 10 10
vertex -10 -10 -10
vertex -10 -10 10
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 10 10 -10
vertex -10 10 10
vertex 10 10 10
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -10 10 10
vertex 10 10 -10
vertex -10 10 -10
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -10 -10 -10
vertex 10 -10 10
vertex -10 -10 10
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 10 -10 10
vertex -10 -10 -10
vertex 10 -10 -10
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 19.4 -4.7 4.7
vertex 19.4 4.7 -4.7
vertex 19.4 4.7 4.7
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 19.4 4.7 -4.7
vertex 19.4 -4.7 4.7
vertex 19.4 -4.7 -4.7
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 10 4.7 4.7
vertex 19.4 -4.7 4.7
vertex 19.4 4.7 4.7
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 19.4 -4.7 4.7
vertex 10 4.7 4.7
vertex 10 -4.7 4.7
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 10 -4.7 -4.7
vertex 19.4 4.7 -4.7
vertex 19.4 -4.7 -4.7
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 19.4 4.7 -4.7
vertex 10 -4.7 -4.7
vertex 10 4.7 -4.7
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 19.4 4.7 -4.7
vertex 10 4.7 4.7
vertex 19.4 4.7 4.7
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 10 4.7 4.7
vertex 19.4 4.7 -4.7
vertex 10 4.7 -4.7
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 10 -4.7 -4.7
vertex 19.4 -4.7 4.7
vertex 10 -4.7 4.7
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 19.4 -4.7 4.7
vertex 10 -4.7 -4.7
vertex 19.4 -4.7 -4.7
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 40 10
vertex 10 34.65 4.65
vertex 10 40 -10
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 40 10
vertex 10 25.35 4.65
vertex 10 34.65 4.65
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 25.35 4.65
vertex 10 20 10
vertex 10 25.35 -4.65
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 10 20 10
vertex 10 25.35 4.65
vertex 10 40 10
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 10 34.65 -4.65
vertex 10 40 -10
vertex 10 34.65 4.65
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 10 25.35 -4.65
vertex 10 40 -10
vertex 10 34.65 -4.65
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 25.35 -4.65
vertex 10 20 -10
vertex 10 40 -10
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 20 -10
vertex 10 25.35 -4.65
vertex 10 20 10
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -10 40 10
vertex 10 20 10
vertex 10 40 10
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 10 20 10
vertex -10 40 10
vertex -10 20 10
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -10 20 -10
vertex 10 40 -10
vertex 10 20 -10
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 10 40 -10
vertex -10 20 -10
vertex -10 40 -10
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -10 20 -10
vertex -10 40 10
vertex -10 40 -10
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -10 40 10
vertex -10 20 -10
vertex -10 20 10
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 10 40 -10
vertex -10 40 10
vertex 10 40 10
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -10 40 10
vertex 10 40 -10
vertex -10 40 -10
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -10 20 -10
vertex 10 20 10
vertex -10 20 10
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 10 20 10
vertex -10 20 -10
vertex 10 20 -10
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 19.3 25.35 4.65
vertex 19.3 34.65 -4.65
vertex 19.3 34.65 4.65
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 19.3 34.65 -4.65
vertex 19.3 25.35 4.65
vertex 19.3 25.35 -4.65
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 10 34.65 4.65
vertex 19.3 25.35 4.65
vertex 19.3 34.65 4.65
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 19.3 25.35 4.65
vertex 10 34.65 4.65
vertex 10 25.35 4.65
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 10 25.35 -4.65
vertex 19.3 34.65 -4.65
vertex 19.3 25.35 -4.65
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 19.3 34.65 -4.65
vertex 10 25.35 -4.65
vertex 10 34.65 -4.65
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 19.3 34.65 -4.65
vertex 10 34.65 4.65
vertex 19.3 34.65 4.65
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 10 34.65 4.65
vertex 19.3 34.65 -4.65
vertex 10 34.65 -4.65
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 10 25.35 -4.65
vertex 19.3 25.35 4.65
vertex 10 25.35 4.65
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 19.3 25.35 4.65
vertex 10 25.35 -4.65
vertex 19.3 25.35 -4.65
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 70 10
vertex 10 64.6 4.6
vertex 10 70 -10
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 70 10
vertex 10 55.4 4.6
vertex 10 64.6 4.6
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 55.4 4.6
vertex 10 50 10
vertex 10 55.4 -4.6
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 10 50 10
vertex 10 55.4 4.6
vertex 10 70 10
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 10 64.6 -4.6
vertex 10 70 -10
vertex 10 64.6 4.6
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 10 55.4 -4.6
vertex 10 70 -10
vertex 10 64.6 -4.6
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 55.4 -4.6
vertex 10 50 -10
vertex 10 70 -10
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 50 -10
vertex 10 55.4 -4.6
vertex 10 50 10
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -10 70 10
vertex 10 50 10
vertex 10 70 10
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 10 50 10
vertex -10 70 10
vertex -10 50 10
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -10 50 -10
vertex 10 70 -10
vertex 10 50 -10
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 10 70 -10
vertex -10 50 -10
vertex -10 70 -10
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -10 50 -10
vertex -10 70 10
vertex -10 70 -10
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -10 70 10
vertex -10 50 -10
vertex -10 50 10
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 10 70 -10
vertex -10 70 10
vertex 10 70 10
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -10 70 10
vertex 10 70 -10
vertex -10 70 -10
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -10 50 -10
vertex 10 50 10
vertex -10 50 10
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 10 50 10
vertex -10 50 -10
vertex 10 50 -10
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 19.2 55.4 4.6
vertex 19.2 64.6 -4.6
vertex 19.2 64.6 4.6
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 19.2 64.6 -4.6
vertex 19.2 55.4 4.6
vertex 19.2 55.4 -4.6
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 10 64.6 4.6
vertex 19.2 55.4 4.6
vertex 19.2 64.6 4.6
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 19.2 55.4 4.6
vertex 10 64.6 4.6
vertex 10 55.4 4.6
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 10 55.4 -4.6
vertex 19.2 64.6 -4.6
vertex 19.2 55.4 -4.6
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 19.2 64.6 -4.6
vertex 10 55.4 -4.6
vertex 10 64.6 -4.6
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 19.2 64.6 -4.6
vertex 10 64.6 4.6
vertex 19.2 64.6 4.6
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 10 64.6 4.6
vertex 19.2 64.6 -4.6
vertex 10 64.6 -4.6
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 10 55.4 -4.6
vertex 19.2 55.4 4.6
vertex 10 55.4 4.6
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 19.2 55.4 4.6
vertex 10 55.4 -4.6
vertex 19.2 55.4 -4.6
endloop
endfacet
endsolid OpenSCAD_Model
+590
View File
@@ -0,0 +1,590 @@
solid OpenSCAD_Model
facet normal 1 0 0
outer loop
vertex 5 5 5
vertex 5 2.25 2.25
vertex 5 5 -5
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 5 5 5
vertex 5 -2.25 2.25
vertex 5 2.25 2.25
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 5 -2.25 2.25
vertex 5 -5 5
vertex 5 -2.25 -2.25
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 5 -5 5
vertex 5 -2.25 2.25
vertex 5 5 5
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 5 2.25 -2.25
vertex 5 5 -5
vertex 5 2.25 2.25
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 5 -2.25 -2.25
vertex 5 5 -5
vertex 5 2.25 -2.25
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 5 -2.25 -2.25
vertex 5 -5 -5
vertex 5 5 -5
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 5 -5 -5
vertex 5 -2.25 -2.25
vertex 5 -5 5
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -5 5 5
vertex 5 -5 5
vertex 5 5 5
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 5 -5 5
vertex -5 5 5
vertex -5 -5 5
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -5 -5 -5
vertex 5 5 -5
vertex 5 -5 -5
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 5 5 -5
vertex -5 -5 -5
vertex -5 5 -5
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -5 -5 -5
vertex -5 5 5
vertex -5 5 -5
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -5 5 5
vertex -5 -5 -5
vertex -5 -5 5
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 5 5 -5
vertex -5 5 5
vertex 5 5 5
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -5 5 5
vertex 5 5 -5
vertex -5 5 -5
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -5 -5 -5
vertex 5 -5 5
vertex -5 -5 5
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 5 -5 5
vertex -5 -5 -5
vertex 5 -5 -5
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 9.5 -2.25 2.25
vertex 9.5 2.25 -2.25
vertex 9.5 2.25 2.25
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 9.5 2.25 -2.25
vertex 9.5 -2.25 2.25
vertex 9.5 -2.25 -2.25
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 5 2.25 2.25
vertex 9.5 -2.25 2.25
vertex 9.5 2.25 2.25
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 9.5 -2.25 2.25
vertex 5 2.25 2.25
vertex 5 -2.25 2.25
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 5 -2.25 -2.25
vertex 9.5 2.25 -2.25
vertex 9.5 -2.25 -2.25
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 9.5 2.25 -2.25
vertex 5 -2.25 -2.25
vertex 5 2.25 -2.25
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 9.5 2.25 -2.25
vertex 5 2.25 2.25
vertex 9.5 2.25 2.25
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 5 2.25 2.25
vertex 9.5 2.25 -2.25
vertex 5 2.25 -2.25
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 5 -2.25 -2.25
vertex 9.5 -2.25 2.25
vertex 5 -2.25 2.25
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 9.5 -2.25 2.25
vertex 5 -2.25 -2.25
vertex 9.5 -2.25 -2.25
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 5 20 5
vertex 5 17.375 2.375
vertex 5 20 -5
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 5 20 5
vertex 5 12.625 2.375
vertex 5 17.375 2.375
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 5 12.625 2.375
vertex 5 10 5
vertex 5 12.625 -2.375
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 5 10 5
vertex 5 12.625 2.375
vertex 5 20 5
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 5 17.375 -2.375
vertex 5 20 -5
vertex 5 17.375 2.375
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 5 12.625 -2.375
vertex 5 20 -5
vertex 5 17.375 -2.375
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 5 12.625 -2.375
vertex 5 10 -5
vertex 5 20 -5
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 5 10 -5
vertex 5 12.625 -2.375
vertex 5 10 5
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -5 20 5
vertex 5 10 5
vertex 5 20 5
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 5 10 5
vertex -5 20 5
vertex -5 10 5
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -5 10 -5
vertex 5 20 -5
vertex 5 10 -5
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 5 20 -5
vertex -5 10 -5
vertex -5 20 -5
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -5 10 -5
vertex -5 20 5
vertex -5 20 -5
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -5 20 5
vertex -5 10 -5
vertex -5 10 5
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 5 20 -5
vertex -5 20 5
vertex 5 20 5
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -5 20 5
vertex 5 20 -5
vertex -5 20 -5
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -5 10 -5
vertex 5 10 5
vertex -5 10 5
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 5 10 5
vertex -5 10 -5
vertex 5 10 -5
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 9.75 12.625 2.375
vertex 9.75 17.375 -2.375
vertex 9.75 17.375 2.375
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 9.75 17.375 -2.375
vertex 9.75 12.625 2.375
vertex 9.75 12.625 -2.375
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 5 17.375 2.375
vertex 9.75 12.625 2.375
vertex 9.75 17.375 2.375
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 9.75 12.625 2.375
vertex 5 17.375 2.375
vertex 5 12.625 2.375
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 5 12.625 -2.375
vertex 9.75 17.375 -2.375
vertex 9.75 12.625 -2.375
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 9.75 17.375 -2.375
vertex 5 12.625 -2.375
vertex 5 17.375 -2.375
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 9.75 17.375 -2.375
vertex 5 17.375 2.375
vertex 9.75 17.375 2.375
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 5 17.375 2.375
vertex 9.75 17.375 -2.375
vertex 5 17.375 -2.375
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 5 12.625 -2.375
vertex 9.75 12.625 2.375
vertex 5 12.625 2.375
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 9.75 12.625 2.375
vertex 5 12.625 -2.375
vertex 9.75 12.625 -2.375
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 5 35 5
vertex 5 32.45 2.45
vertex 5 35 -5
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 5 35 5
vertex 5 27.55 2.45
vertex 5 32.45 2.45
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 5 27.55 2.45
vertex 5 25 5
vertex 5 27.55 -2.45
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 5 25 5
vertex 5 27.55 2.45
vertex 5 35 5
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 5 32.45 -2.45
vertex 5 35 -5
vertex 5 32.45 2.45
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 5 27.55 -2.45
vertex 5 35 -5
vertex 5 32.45 -2.45
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 5 27.55 -2.45
vertex 5 25 -5
vertex 5 35 -5
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 5 25 -5
vertex 5 27.55 -2.45
vertex 5 25 5
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -5 35 5
vertex 5 25 5
vertex 5 35 5
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 5 25 5
vertex -5 35 5
vertex -5 25 5
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -5 25 -5
vertex 5 35 -5
vertex 5 25 -5
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 5 35 -5
vertex -5 25 -5
vertex -5 35 -5
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -5 25 -5
vertex -5 35 5
vertex -5 35 -5
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -5 35 5
vertex -5 25 -5
vertex -5 25 5
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 5 35 -5
vertex -5 35 5
vertex 5 35 5
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -5 35 5
vertex 5 35 -5
vertex -5 35 -5
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -5 25 -5
vertex 5 25 5
vertex -5 25 5
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 5 25 5
vertex -5 25 -5
vertex 5 25 -5
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 9.9 27.55 2.45
vertex 9.9 32.45 -2.45
vertex 9.9 32.45 2.45
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 9.9 32.45 -2.45
vertex 9.9 27.55 2.45
vertex 9.9 27.55 -2.45
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 5 32.45 2.45
vertex 9.9 27.55 2.45
vertex 9.9 32.45 2.45
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 9.9 27.55 2.45
vertex 5 32.45 2.45
vertex 5 27.55 2.45
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 5 27.55 -2.45
vertex 9.9 32.45 -2.45
vertex 9.9 27.55 -2.45
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 9.9 32.45 -2.45
vertex 5 27.55 -2.45
vertex 5 32.45 -2.45
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 9.9 32.45 -2.45
vertex 5 32.45 2.45
vertex 9.9 32.45 2.45
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 5 32.45 2.45
vertex 9.9 32.45 -2.45
vertex 5 32.45 -2.45
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 5 27.55 -2.45
vertex 9.9 27.55 2.45
vertex 5 27.55 2.45
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 9.9 27.55 2.45
vertex 5 27.55 -2.45
vertex 9.9 27.55 -2.45
endloop
endfacet
endsolid OpenSCAD_Model
+758
View File
@@ -0,0 +1,758 @@
solid OpenSCAD_Model
facet normal 1 -0 0
outer loop
vertex 10 2.88675 35
vertex 10 10 -35
vertex 10 10 35
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 10 -35
vertex 10 2.88675 35
vertex 10 2.88675 -35
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 10 -10 35
vertex 10 -2.88675 -35
vertex 10 -2.88675 35
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 -2.88675 -35
vertex 10 -10 35
vertex 10 -10 -35
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -4.8 4.8 35
vertex -7.5 4.33013 35
vertex -4.8 -4.8 35
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -4.33013 7.5 35
vertex -7.5 4.33013 35
vertex -4.8 4.8 35
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -10 10 35
vertex -4.33013 7.5 35
vertex -2.88675 10 35
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -4.33013 7.5 35
vertex -10 10 35
vertex -7.5 4.33013 35
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -7.5 4.33013 35
vertex -10 10 35
vertex -10 2.88675 35
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 4.8 -4.8 35
vertex -4.33013 -7.5 35
vertex 4.33013 -7.5 35
endloop
endfacet
facet normal 0 -0 1
outer loop
vertex -4.33013 -7.5 35
vertex 4.8 -4.8 35
vertex -4.8 -4.8 35
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 10 10 35
vertex 7.5 4.33013 35
vertex 10 2.88675 35
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 7.5 4.33013 35
vertex 4.8 4.8 35
vertex 7.5 -4.33013 35
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 4.33013 7.5 35
vertex 7.5 4.33013 35
vertex 10 10 35
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 7.5 4.33013 35
vertex 4.33013 7.5 35
vertex 4.8 4.8 35
endloop
endfacet
facet normal 0 -0 1
outer loop
vertex 4.33013 7.5 35
vertex 10 10 35
vertex 2.88675 10 35
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 7.5 -4.33013 35
vertex 10 -10 35
vertex 10 -2.88675 35
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 4.8 -4.8 35
vertex 7.5 -4.33013 35
vertex 4.8 4.8 35
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 4.33013 -7.5 35
vertex 7.5 -4.33013 35
vertex 4.8 -4.8 35
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 7.5 -4.33013 35
vertex 4.33013 -7.5 35
vertex 10 -10 35
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 10 -10 35
vertex 4.33013 -7.5 35
vertex 2.88675 -10 35
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -4.33013 7.5 35
vertex 4.8 4.8 35
vertex 4.33013 7.5 35
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 4.8 4.8 35
vertex -4.33013 7.5 35
vertex -4.8 4.8 35
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -7.5 -4.33013 35
vertex -4.8 -4.8 35
vertex -7.5 4.33013 35
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -4.8 -4.8 35
vertex -7.5 -4.33013 35
vertex -4.33013 -7.5 35
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -10 -10 35
vertex -4.33013 -7.5 35
vertex -7.5 -4.33013 35
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -10 -10 35
vertex -7.5 -4.33013 35
vertex -10 -2.88675 35
endloop
endfacet
facet normal 0 0 1
outer loop
vertex -4.33013 -7.5 35
vertex -10 -10 35
vertex -2.88675 -10 35
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -5 -5 -35
vertex -7.5 -4.33013 -35
vertex -5 5 -35
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -4.33013 -7.5 -35
vertex -7.5 -4.33013 -35
vertex -5 -5 -35
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -10 -10 -35
vertex -4.33013 -7.5 -35
vertex -2.88675 -10 -35
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex -4.33013 -7.5 -35
vertex -10 -10 -35
vertex -7.5 -4.33013 -35
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex -7.5 -4.33013 -35
vertex -10 -10 -35
vertex -10 -2.88675 -35
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 5 5 -35
vertex -4.33013 7.5 -35
vertex 4.33013 7.5 -35
endloop
endfacet
facet normal 0 -0 -1
outer loop
vertex -4.33013 7.5 -35
vertex 5 5 -35
vertex -5 5 -35
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 10 -10 -35
vertex 7.5 -4.33013 -35
vertex 10 -2.88675 -35
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 7.5 -4.33013 -35
vertex 5 -5 -35
vertex 7.5 4.33013 -35
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 4.33013 -7.5 -35
vertex 7.5 -4.33013 -35
vertex 10 -10 -35
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 7.5 -4.33013 -35
vertex 4.33013 -7.5 -35
vertex 5 -5 -35
endloop
endfacet
facet normal 0 -0 -1
outer loop
vertex 4.33013 -7.5 -35
vertex 10 -10 -35
vertex 2.88675 -10 -35
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 7.5 4.33013 -35
vertex 10 10 -35
vertex 10 2.88675 -35
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 5 5 -35
vertex 7.5 4.33013 -35
vertex 5 -5 -35
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 4.33013 7.5 -35
vertex 7.5 4.33013 -35
vertex 5 5 -35
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 7.5 4.33013 -35
vertex 4.33013 7.5 -35
vertex 10 10 -35
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 10 10 -35
vertex 4.33013 7.5 -35
vertex 2.88675 10 -35
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -4.33013 -7.5 -35
vertex 5 -5 -35
vertex 4.33013 -7.5 -35
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 5 -5 -35
vertex -4.33013 -7.5 -35
vertex -5 -5 -35
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -7.5 4.33013 -35
vertex -5 5 -35
vertex -7.5 -4.33013 -35
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -7.5 4.33013 -35
vertex -4.33013 7.5 -35
vertex -5 5 -35
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -10 10 -35
vertex -4.33013 7.5 -35
vertex -7.5 4.33013 -35
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -10 10 -35
vertex -7.5 4.33013 -35
vertex -10 2.88675 -35
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -4.33013 7.5 -35
vertex -10 10 -35
vertex -2.88675 10 -35
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -10 2.88675 -35
vertex -10 10 35
vertex -10 10 -35
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -10 10 35
vertex -10 2.88675 -35
vertex -10 2.88675 35
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -10 -10 -35
vertex -10 -2.88675 35
vertex -10 -2.88675 -35
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -10 -2.88675 35
vertex -10 -10 -35
vertex -10 -10 35
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex -2.88675 10 -35
vertex -10 10 35
vertex -2.88675 10 35
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -10 10 35
vertex -2.88675 10 -35
vertex -10 10 -35
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 10 10 -35
vertex 2.88675 10 35
vertex 10 10 35
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 2.88675 10 35
vertex 10 10 -35
vertex 2.88675 10 -35
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -10 -10 -35
vertex -2.88675 -10 35
vertex -10 -10 35
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex -2.88675 -10 35
vertex -10 -10 -35
vertex -2.88675 -10 -35
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 2.88675 -10 -35
vertex 10 -10 35
vertex 2.88675 -10 35
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 10 -10 35
vertex 2.88675 -10 -35
vertex 10 -10 -35
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 4.8 -4.8 39.6
vertex 4.8 4.8 35
vertex 4.8 4.8 39.6
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 4.8 4.8 35
vertex 4.8 -4.8 39.6
vertex 4.8 -4.8 35
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -4.8 4.8 39.6
vertex 4.8 -4.8 39.6
vertex 4.8 4.8 39.6
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 4.8 -4.8 39.6
vertex -4.8 4.8 39.6
vertex -4.8 -4.8 39.6
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -4.8 -4.8 35
vertex -4.8 4.8 39.6
vertex -4.8 4.8 35
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -4.8 4.8 39.6
vertex -4.8 -4.8 35
vertex -4.8 -4.8 39.6
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 4.8 4.8 35
vertex -4.8 4.8 39.6
vertex 4.8 4.8 39.6
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -4.8 4.8 39.6
vertex 4.8 4.8 35
vertex -4.8 4.8 35
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -4.8 -4.8 35
vertex 4.8 -4.8 39.6
vertex -4.8 -4.8 39.6
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 4.8 -4.8 39.6
vertex -4.8 -4.8 35
vertex 4.8 -4.8 35
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 5 -5 -35
vertex 5 5 -30
vertex 5 5 -35
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex 5 5 -30
vertex 5 -5 -35
vertex 5 -5 -30
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -5 -5 -30
vertex 5 5 -30
vertex 5 -5 -30
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 5 5 -30
vertex -5 -5 -30
vertex -5 5 -30
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex -5 -5 -30
vertex -5 5 -35
vertex -5 5 -30
endloop
endfacet
facet normal 1 0 0
outer loop
vertex -5 5 -35
vertex -5 -5 -30
vertex -5 -5 -35
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -5 5 -35
vertex 5 5 -30
vertex -5 5 -30
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 5 5 -30
vertex -5 5 -35
vertex 5 5 -35
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 5 -5 -35
vertex -5 -5 -30
vertex 5 -5 -30
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -5 -5 -30
vertex 5 -5 -35
vertex -5 -5 -35
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 7.5 -4.33013 35
vertex 7.5 4.33013 -35
vertex 7.5 4.33013 35
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 7.5 4.33013 -35
vertex 7.5 -4.33013 35
vertex 7.5 -4.33013 -35
endloop
endfacet
facet normal -0.500001 -0.866025 0
outer loop
vertex 7.5 4.33013 -35
vertex 10 2.88675 35
vertex 7.5 4.33013 35
endloop
endfacet
facet normal -0.500001 -0.866025 -0
outer loop
vertex 10 2.88675 35
vertex 7.5 4.33013 -35
vertex 10 2.88675 -35
endloop
endfacet
facet normal -0.500001 0.866025 0
outer loop
vertex 10 -2.88675 -35
vertex 7.5 -4.33013 35
vertex 10 -2.88675 35
endloop
endfacet
facet normal -0.500001 0.866025 0
outer loop
vertex 7.5 -4.33013 35
vertex 10 -2.88675 -35
vertex 7.5 -4.33013 -35
endloop
endfacet
facet normal 0.866025 -0.500001 0
outer loop
vertex -4.33013 7.5 35
vertex -2.88675 10 -35
vertex -2.88675 10 35
endloop
endfacet
facet normal 0.866025 -0.500001 0
outer loop
vertex -2.88675 10 -35
vertex -4.33013 7.5 35
vertex -4.33013 7.5 -35
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 4.33013 7.5 -35
vertex -4.33013 7.5 35
vertex 4.33013 7.5 35
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -4.33013 7.5 35
vertex 4.33013 7.5 -35
vertex -4.33013 7.5 -35
endloop
endfacet
facet normal -0.866025 -0.500001 0
outer loop
vertex 4.33013 7.5 -35
vertex 2.88675 10 35
vertex 2.88675 10 -35
endloop
endfacet
facet normal -0.866025 -0.500001 0
outer loop
vertex 2.88675 10 35
vertex 4.33013 7.5 -35
vertex 4.33013 7.5 35
endloop
endfacet
facet normal 0.500001 0.866025 -0
outer loop
vertex -7.5 -4.33013 -35
vertex -10 -2.88675 35
vertex -7.5 -4.33013 35
endloop
endfacet
facet normal 0.500001 0.866025 0
outer loop
vertex -10 -2.88675 35
vertex -7.5 -4.33013 -35
vertex -10 -2.88675 -35
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -7.5 -4.33013 -35
vertex -7.5 4.33013 35
vertex -7.5 4.33013 -35
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -7.5 4.33013 35
vertex -7.5 -4.33013 -35
vertex -7.5 -4.33013 35
endloop
endfacet
facet normal 0.500001 -0.866025 0
outer loop
vertex -10 2.88675 -35
vertex -7.5 4.33013 35
vertex -10 2.88675 35
endloop
endfacet
facet normal 0.500001 -0.866025 0
outer loop
vertex -7.5 4.33013 35
vertex -10 2.88675 -35
vertex -7.5 4.33013 -35
endloop
endfacet
facet normal -0.866025 0.500001 0
outer loop
vertex 2.88675 -10 -35
vertex 4.33013 -7.5 35
vertex 4.33013 -7.5 -35
endloop
endfacet
facet normal -0.866025 0.500001 0
outer loop
vertex 4.33013 -7.5 35
vertex 2.88675 -10 -35
vertex 2.88675 -10 35
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -4.33013 -7.5 -35
vertex 4.33013 -7.5 35
vertex -4.33013 -7.5 35
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 4.33013 -7.5 35
vertex -4.33013 -7.5 -35
vertex 4.33013 -7.5 -35
endloop
endfacet
facet normal 0.866025 0.500001 0
outer loop
vertex -2.88675 -10 35
vertex -4.33013 -7.5 -35
vertex -4.33013 -7.5 35
endloop
endfacet
facet normal 0.866025 0.500001 0
outer loop
vertex -4.33013 -7.5 -35
vertex -2.88675 -10 35
vertex -2.88675 -10 -35
endloop
endfacet
endsolid OpenSCAD_Model
File diff suppressed because it is too large Load Diff
+198
View File
@@ -0,0 +1,198 @@
solid OpenSCAD_Model
facet normal -1 0 0
outer loop
vertex 10 2.71355 -10
vertex 10 4.5 10
vertex 10 4.5 -10
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex 10 4.5 10
vertex 10 2.71355 -10
vertex 10 2.71355 10
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 10 -4.5 -10
vertex 10 -2.71355 10
vertex 10 -2.71355 -10
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex 10 -2.71355 10
vertex 10 -4.5 -10
vertex 10 -4.5 10
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 7.65 4.07032 10
vertex 10 -2.71355 10
vertex 10 2.71355 10
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 10 -2.71355 10
vertex 7.65 4.07032 10
vertex 7.65 -4.07032 10
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 10 2.71355 10
vertex 14.5 4.5 10
vertex 10 4.5 10
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 14.5 4.5 10
vertex 10 2.71355 10
vertex 14.5 -4.5 10
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 10 -2.71355 10
vertex 14.5 -4.5 10
vertex 10 2.71355 10
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 14.5 -4.5 10
vertex 10 -2.71355 10
vertex 10 -4.5 10
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 7.65 -4.07032 -10
vertex 10 2.71355 -10
vertex 10 -2.71355 -10
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 10 2.71355 -10
vertex 7.65 -4.07032 -10
vertex 7.65 4.07032 -10
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 10 -2.71355 -10
vertex 14.5 -4.5 -10
vertex 10 -4.5 -10
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 14.5 -4.5 -10
vertex 10 -2.71355 -10
vertex 14.5 4.5 -10
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 10 2.71355 -10
vertex 14.5 4.5 -10
vertex 10 -2.71355 -10
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 14.5 4.5 -10
vertex 10 2.71355 -10
vertex 10 4.5 -10
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 7.65 -4.07032 -10
vertex 7.65 4.07032 10
vertex 7.65 4.07032 -10
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex 7.65 4.07032 10
vertex 7.65 -4.07032 -10
vertex 7.65 -4.07032 10
endloop
endfacet
facet normal 0.499999 0.866026 -0
outer loop
vertex 10 2.71355 -10
vertex 7.65 4.07032 10
vertex 10 2.71355 10
endloop
endfacet
facet normal 0.499999 0.866026 0
outer loop
vertex 7.65 4.07032 10
vertex 10 2.71355 -10
vertex 7.65 4.07032 -10
endloop
endfacet
facet normal 0.499999 -0.866026 0
outer loop
vertex 7.65 -4.07032 -10
vertex 10 -2.71355 10
vertex 7.65 -4.07032 10
endloop
endfacet
facet normal 0.499999 -0.866026 0
outer loop
vertex 10 -2.71355 10
vertex 7.65 -4.07032 -10
vertex 10 -2.71355 -10
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 14.5 -4.5 10
vertex 14.5 4.5 -10
vertex 14.5 4.5 10
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 14.5 4.5 -10
vertex 14.5 -4.5 10
vertex 14.5 -4.5 -10
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 14.5 4.5 -10
vertex 10 4.5 10
vertex 14.5 4.5 10
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 10 4.5 10
vertex 14.5 4.5 -10
vertex 10 4.5 -10
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 10 -4.5 -10
vertex 14.5 -4.5 10
vertex 10 -4.5 10
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 14.5 -4.5 10
vertex 10 -4.5 -10
vertex 14.5 -4.5 -10
endloop
endfacet
endsolid OpenSCAD_Model
File diff suppressed because it is too large Load Diff
+282
View File
@@ -0,0 +1,282 @@
solid OpenSCAD_Model
facet normal 1 0 0
outer loop
vertex 50 0 0
vertex 50 8 2
vertex 50 2 10
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 50 0 0
vertex 50 2 10
vertex 50 0 10
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 50 8 2
vertex 50 0 0
vertex 50 8 0
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 48 2 10
vertex 50 0 10
vertex 50 2 10
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 26 2 10
vertex 50 0 10
vertex 48 2 10
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 24 2 10
vertex 50 0 10
vertex 26 2 10
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0 0 10
vertex 24 2 10
vertex 2 2 10
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0 0 10
vertex 2 2 10
vertex 0 2 10
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 24 2 10
vertex 0 0 10
vertex 50 0 10
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 0 0 0
vertex 50 8 0
vertex 50 0 0
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 50 8 0
vertex 0 0 0
vertex 0 8 0
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 0 0 0
vertex 0 8 2
vertex 0 8 0
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex 0 8 2
vertex 0 0 0
vertex 0 2 10
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex 0 2 10
vertex 0 0 0
vertex 0 0 10
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 50 8 0
vertex 48 8 2
vertex 50 8 2
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 48 8 2
vertex 50 8 0
vertex 26 8 2
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 26 8 2
vertex 50 8 0
vertex 24 8 2
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 0 8 0
vertex 24 8 2
vertex 50 8 0
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 24 8 2
vertex 0 8 0
vertex 2 8 2
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 2 8 2
vertex 0 8 0
vertex 0 8 2
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 0 0 0
vertex 50 0 10
vertex 0 0 10
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 50 0 10
vertex 0 0 0
vertex 50 0 0
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 26 8 2
vertex 48 2 2
vertex 48 8 2
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 48 2 2
vertex 26 8 2
vertex 26 2 2
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 2 8 2
vertex 24 2 2
vertex 24 8 2
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 24 2 2
vertex 2 8 2
vertex 2 2 2
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 48 2 2
vertex 26 2 10
vertex 48 2 10
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 26 2 10
vertex 48 2 2
vertex 26 2 2
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 24 2 2
vertex 2 2 10
vertex 24 2 10
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 2 2 10
vertex 24 2 2
vertex 2 2 2
endloop
endfacet
facet normal 0 0.8 0.6
outer loop
vertex 2 8 2
vertex 0 2 10
vertex 2 2 10
endloop
endfacet
facet normal 0 0.8 0.6
outer loop
vertex 0 2 10
vertex 2 8 2
vertex 0 8 2
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 2 2 10
vertex 2 2 2
vertex 2 8 2
endloop
endfacet
facet normal 0 0.8 0.6
outer loop
vertex 26 8 2
vertex 24 2 10
vertex 26 2 10
endloop
endfacet
facet normal 0 0.8 0.6
outer loop
vertex 24 2 10
vertex 26 8 2
vertex 24 8 2
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 24 8 2
vertex 24 2 2
vertex 24 2 10
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 26 2 10
vertex 26 2 2
vertex 26 8 2
endloop
endfacet
facet normal 0 0.8 0.6
outer loop
vertex 50 8 2
vertex 48 2 10
vertex 50 2 10
endloop
endfacet
facet normal 0 0.8 0.6
outer loop
vertex 48 2 10
vertex 50 8 2
vertex 48 8 2
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 48 8 2
vertex 48 2 2
vertex 48 2 10
endloop
endfacet
endsolid OpenSCAD_Model
+282
View File
@@ -0,0 +1,282 @@
solid OpenSCAD_Model
facet normal 1 0 0
outer loop
vertex 35 0 0
vertex 35 8 1.5
vertex 35 1.5 8
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 35 0 0
vertex 35 1.5 8
vertex 35 0 8
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 35 8 1.5
vertex 35 0 0
vertex 35 8 0
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 33.5 1.5 8
vertex 35 0 8
vertex 35 1.5 8
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 18.25 1.5 8
vertex 35 0 8
vertex 33.5 1.5 8
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 16.75 1.5 8
vertex 35 0 8
vertex 18.25 1.5 8
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0 0 8
vertex 16.75 1.5 8
vertex 1.5 1.5 8
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 0 0 8
vertex 1.5 1.5 8
vertex 0 1.5 8
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 16.75 1.5 8
vertex 0 0 8
vertex 35 0 8
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 0 0 0
vertex 35 8 0
vertex 35 0 0
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 35 8 0
vertex 0 0 0
vertex 0 8 0
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 0 0 0
vertex 0 8 1.5
vertex 0 8 0
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex 0 8 1.5
vertex 0 0 0
vertex 0 1.5 8
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex 0 1.5 8
vertex 0 0 0
vertex 0 0 8
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 35 8 0
vertex 33.5 8 1.5
vertex 35 8 1.5
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 33.5 8 1.5
vertex 35 8 0
vertex 18.25 8 1.5
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 18.25 8 1.5
vertex 35 8 0
vertex 16.75 8 1.5
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 0 8 0
vertex 16.75 8 1.5
vertex 35 8 0
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 16.75 8 1.5
vertex 0 8 0
vertex 1.5 8 1.5
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 1.5 8 1.5
vertex 0 8 0
vertex 0 8 1.5
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex 0 0 0
vertex 35 0 8
vertex 0 0 8
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 35 0 8
vertex 0 0 0
vertex 35 0 0
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 18.25 8 1.5
vertex 33.5 1.5 1.5
vertex 33.5 8 1.5
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 33.5 1.5 1.5
vertex 18.25 8 1.5
vertex 18.25 1.5 1.5
endloop
endfacet
facet normal -0 0 1
outer loop
vertex 1.5 8 1.5
vertex 16.75 1.5 1.5
vertex 16.75 8 1.5
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 16.75 1.5 1.5
vertex 1.5 8 1.5
vertex 1.5 1.5 1.5
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 33.5 1.5 1.5
vertex 18.25 1.5 8
vertex 33.5 1.5 8
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 18.25 1.5 8
vertex 33.5 1.5 1.5
vertex 18.25 1.5 1.5
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 16.75 1.5 1.5
vertex 1.5 1.5 8
vertex 16.75 1.5 8
endloop
endfacet
facet normal 0 1 0
outer loop
vertex 1.5 1.5 8
vertex 16.75 1.5 1.5
vertex 1.5 1.5 1.5
endloop
endfacet
facet normal 0 0.707107 0.707107
outer loop
vertex 1.5 8 1.5
vertex 0 1.5 8
vertex 1.5 1.5 8
endloop
endfacet
facet normal 0 0.707107 0.707107
outer loop
vertex 0 1.5 8
vertex 1.5 8 1.5
vertex 0 8 1.5
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 1.5 1.5 8
vertex 1.5 1.5 1.5
vertex 1.5 8 1.5
endloop
endfacet
facet normal 0 0.707107 0.707107
outer loop
vertex 18.25 8 1.5
vertex 16.75 1.5 8
vertex 18.25 1.5 8
endloop
endfacet
facet normal 0 0.707107 0.707107
outer loop
vertex 16.75 1.5 8
vertex 18.25 8 1.5
vertex 16.75 8 1.5
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 18.25 1.5 8
vertex 18.25 1.5 1.5
vertex 18.25 8 1.5
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 16.75 8 1.5
vertex 16.75 1.5 1.5
vertex 16.75 1.5 8
endloop
endfacet
facet normal 0 0.707107 0.707107
outer loop
vertex 35 8 1.5
vertex 33.5 1.5 8
vertex 35 1.5 8
endloop
endfacet
facet normal 0 0.707107 0.707107
outer loop
vertex 33.5 1.5 8
vertex 35 8 1.5
vertex 33.5 8 1.5
endloop
endfacet
facet normal -1 0 0
outer loop
vertex 33.5 8 1.5
vertex 33.5 1.5 1.5
vertex 33.5 1.5 8
endloop
endfacet
endsolid OpenSCAD_Model
+51214
View File
File diff suppressed because it is too large Load Diff
+198
View File
@@ -0,0 +1,198 @@
solid OpenSCAD_Model
facet normal 1 -0 0
outer loop
vertex 10 -10 0
vertex 10 10 -10
vertex 10 10 0
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 10 10 -10
vertex 10 -10 0
vertex 10 -10 -10
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 10 -10 -10
vertex 4.7 -4.7 -10
vertex 10 10 -10
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 10 -10 -10
vertex -4.7 -4.7 -10
vertex 4.7 -4.7 -10
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex -4.7 -4.7 -10
vertex -10 -10 -10
vertex -4.7 4.7 -10
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -10 -10 -10
vertex -4.7 -4.7 -10
vertex 10 -10 -10
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex 4.7 4.7 -10
vertex 10 10 -10
vertex 4.7 -4.7 -10
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -4.7 4.7 -10
vertex 10 10 -10
vertex 4.7 4.7 -10
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -4.7 4.7 -10
vertex -10 10 -10
vertex 10 10 -10
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -10 10 -10
vertex -4.7 4.7 -10
vertex -10 -10 -10
endloop
endfacet
facet normal -0 0 1
outer loop
vertex -10 10 0
vertex 10 -10 0
vertex 10 10 0
endloop
endfacet
facet normal 0 0 1
outer loop
vertex 10 -10 0
vertex -10 10 0
vertex -10 -10 0
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -10 -10 -10
vertex -10 10 0
vertex -10 10 -10
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -10 10 0
vertex -10 -10 -10
vertex -10 -10 0
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -10 -10 -10
vertex 10 -10 0
vertex -10 -10 0
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 10 -10 0
vertex -10 -10 -10
vertex 10 -10 -10
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 10 10 -10
vertex -10 10 0
vertex 10 10 0
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -10 10 0
vertex 10 10 -10
vertex -10 10 -10
endloop
endfacet
facet normal 1 -0 0
outer loop
vertex 4.7 -4.7 -10
vertex 4.7 4.7 -14.7
vertex 4.7 4.7 -10
endloop
endfacet
facet normal 1 0 0
outer loop
vertex 4.7 4.7 -14.7
vertex 4.7 -4.7 -10
vertex 4.7 -4.7 -14.7
endloop
endfacet
facet normal 0 0 -1
outer loop
vertex -4.7 -4.7 -14.7
vertex 4.7 4.7 -14.7
vertex 4.7 -4.7 -14.7
endloop
endfacet
facet normal -0 0 -1
outer loop
vertex 4.7 4.7 -14.7
vertex -4.7 -4.7 -14.7
vertex -4.7 4.7 -14.7
endloop
endfacet
facet normal -1 0 0
outer loop
vertex -4.7 -4.7 -14.7
vertex -4.7 4.7 -10
vertex -4.7 4.7 -14.7
endloop
endfacet
facet normal -1 -0 0
outer loop
vertex -4.7 4.7 -10
vertex -4.7 -4.7 -14.7
vertex -4.7 -4.7 -10
endloop
endfacet
facet normal 0 -1 0
outer loop
vertex -4.7 -4.7 -14.7
vertex 4.7 -4.7 -10
vertex -4.7 -4.7 -10
endloop
endfacet
facet normal 0 -1 -0
outer loop
vertex 4.7 -4.7 -10
vertex -4.7 -4.7 -14.7
vertex 4.7 -4.7 -14.7
endloop
endfacet
facet normal 0 1 -0
outer loop
vertex 4.7 4.7 -14.7
vertex -4.7 4.7 -10
vertex 4.7 4.7 -10
endloop
endfacet
facet normal 0 1 0
outer loop
vertex -4.7 4.7 -10
vertex 4.7 4.7 -14.7
vertex -4.7 4.7 -14.7
endloop
endfacet
endsolid OpenSCAD_Model
Binary file not shown.
+91
View File
@@ -0,0 +1,91 @@
eps=0.01;
vU = 2;
uHeight = 10;
plateScrewDiffV = uHeight*vU;
plateScrewDiffH = 180;
plateScrewToHEdge = 4.5;
plateScrewToVEdge = 5.5;
frontPlateThickness = 3;
frontPlateV = plateScrewDiffV + 2*plateScrewToHEdge;
frontPlateH = plateScrewDiffH + 2*plateScrewToVEdge;
//////////////////////////////////////////////////////
trayOuterHeight = 28;
trayOuterWidth = 168;
trayOuterDepth = 130;
trayBottomThickness = 2;
traySideThickness = 3;
trayFrontThickness = 2;
trayInnerWidth = trayOuterWidth - 2*traySideThickness;
trayInnerDepth = trayOuterDepth - trayFrontThickness;
trayInnerHeight = trayOuterHeight - trayBottomThickness;
module _trayBody() {
difference() {
cube(size = [trayOuterWidth, trayOuterDepth, trayOuterHeight]);
union() {
translate(v = [traySideThickness, trayFrontThickness, trayBottomThickness])
cube(size = [trayInnerWidth + eps, trayInnerDepth + eps, trayInnerHeight + eps]);
translate(v=[0,0, trayOuterHeight])
rotate(a=[-atan(trayInnerHeight/trayOuterDepth),0,0])
cube(size=[trayOuterWidth+eps, 2*trayOuterDepth+eps, trayInnerHeight+eps]);
translate(v=[5+traySideThickness,0,trayBottomThickness])
cube(size=[trayInnerWidth-10, trayFrontThickness+eps, trayOuterHeight]);
}
}
}
// todo make a nice module for this (triangular prism)
module _sideHole_N() {
scale(v=[2,0.65,0.65])
difference () {
cube(size = [trayOuterWidth, trayOuterDepth, trayOuterHeight]);
translate(v = [0, 0, trayOuterHeight])
rotate(a = [- atan(trayInnerHeight / trayOuterDepth), 0, 0])
cube(size = [trayOuterWidth + eps, 2 * trayOuterDepth + eps, trayInnerHeight + eps]);
}
}
module trayBody() {
union() {
difference() {
_trayBody();
union() {
// bottom holes
for (i = [0:7]) {
translate(v = [35, i * 15 + 10, - eps])
*cube(size = [100, 5, 10]);
}
translate(v=[-10,5,5])
_sideHole_N();
}
}
// lugs for front
translate(v=[0,-2,0])
cube(size=[5,2,5]);
translate(v=[trayOuterWidth-5,-2,0])
cube(size=[5,2,5]);
}
}
//trayBody();
+365
View File
@@ -0,0 +1,365 @@
include <../common.scad>
include <./screws.scad>
include <../risers.scad>
// TODO currently only for rockpro64 - make generic
vU = 3;
uHeight = 10;
// Front Plate dimensions
frontPlateScrewDiffV = uHeight*vU;
frontPlateScrewDiffH = 180;
frontPlateHeightTopSpace = 0.25; // Give some space at the top for the lid
frontPlateHeightBottomSpace = 0;
frontPlateHeight = (vU+1)*uHeight - (frontPlateHeightBottomSpace+frontPlateHeightTopSpace);
frontPlateWidth = 190;
frontPlateBottomScrewToHEdge = uHeight/2 + frontPlateHeightBottomSpace;
frontPlateTopScrewToHEdge = uHeight/2 + frontPlateHeightTopSpace;
frontPlateScrewToVEdge = (frontPlateWidth - frontPlateScrewDiffH)/2;
frontPlateThickness = 2.5;
plateScrewToBoxMin = 6;
// BOX CONFIG
// box dimensions
boxDepth = 132;
boxWidth = 160;
boxBottomThickness = 2;
boxSideThickness = 2;
boxBackThickness = 2;
boxFrontThickness = 2;
boxTopSpace = 1; // meant for lids?
boxBottomSpace = 1; // meant to be used for boxes that expect support rails (edit: not using right now)
boxHeight = (vU+1) * uHeight - (boxBottomSpace+boxTopSpace);
boxInnerDepth = boxDepth - (boxBackThickness+boxFrontThickness);
boxInnerHeight = boxHeight - boxBottomThickness; // TODO support lids
boxInnerWidth = boxWidth - 2*boxSideThickness;
// all of these are defined on the xy plane with centered zLen height
// 'rise' is meant model how raised a pcb is. More specifically, the distance between the top of
// the pcb and the bottom of the inside of the case
module frontFace_N(zLen, rise) {
translate(v=[7.5,2,0])
cube(size=[boxInnerWidth - 15, boxInnerHeight-8, zLen]);
}
module backFace_N(zLen, rise) {
translate(v=[7.5,2,0])
cube(size=[boxInnerWidth - 15, boxInnerHeight-8, zLen]);
}
module leftFace_N(zLen, rise) {
translate(v=[7.5,2,0])
cube(size=[boxInnerDepth - 15, boxInnerHeight-8, zLen]);
}
module rightFace_N(zLen, rise) {
translate(v=[7.5,2,0])
cube(size=[boxInnerDepth - 15, boxInnerHeight-8, zLen]);
}
module boxBody() {
// save this transformation...
// translate(v=[(plateScrewDiffH-boxWidth)/2.0,0,boxBottomSpace -plateScrewToHEdge])
// convert to inside box space
translate(v=[-boxSideThickness, -boxFrontThickness, -boxBottomThickness])
difference() {
cube(size=[boxWidth, boxDepth, boxHeight]);
translate(v=[boxSideThickness, boxFrontThickness, boxBottomThickness])
cube(size=[boxWidth-2*boxSideThickness, boxDepth-(boxBackThickness+boxFrontThickness), inf]);
}
}
module boxBodyWithHoles() {
m_trans_back =
[ [-1, 0, 0, boxInnerWidth],
[0, -1, 0, boxInnerDepth-boxBackThickness],
[0, 0, 1, 0],
[0, 0, 0, 1]];
m_trans_left_side =
[ [cos(-90), -sin(-90), 0, 0],
[sin(-90), cos(-90), 0, boxInnerDepth],
[0, 0, 1, 0],
[0, 0, 0, 1]];
m_trans_right_side =
[ [cos(90), -sin(90), 0, boxInnerWidth],
[sin(90), cos(90), 0, 0],
[0, 0, 1, 0],
[0, 0, 0, 1]];
difference() {
boxBody();
union() {
rotate(a=[90,0,0])
frontFace_N(10, 0);
multmatrix(m_trans_back)
rotate(a=[90,0,0])
backFace_N(10, 0);
multmatrix(m_trans_left_side)
rotate(a=[90,0,0])
leftFace_N(10, 0);
multmatrix(m_trans_right_side)
rotate(a=[90,0,0])
rightFace_N(10, 0);
}
}
}
// lid + lugging
module cylinderLug_M(length, radius) {
rotate(a=[0,90,0])
cylinder(h=length, r=radius, center=true);
}
module cylinderLug(lMult=1, rMult=1) {
cylinderLug_M(6*lMult, 1*rMult);
}
function lerp(u, a, b) = (1-u)*a + u*b;
module lugLine(a,b, numLugs, lMult=1, rMult=1) {
assert(numLugs>0);
// require straight line that is level (same z values) either parallel with the x axis, or y axis
// this just avoids some math and simplifies things
assert(a[2] == b[2] && (a[0]==b[0] || a[1]==b[1]));
direction = norm(b-a);
for (i=[0:numLugs-1]) {
u = (i+1)/(numLugs+1);
if (a[1] == b[1]) {
translate(v=lerp(u,a,b))
cylinderLug(lMult, rMult);
} else if (a[0] == b[0]) {
translate(v=lerp(u,a,b))
rotate(a=[0,0,90])
cylinderLug(lMult,rMult);
}
}
}
module lugProfile(height, sideEps=0, lMult=1, rMult=1) {
points = [
[0+sideEps,0+sideEps,height],
[boxInnerWidth-sideEps,0+sideEps,height],
[boxInnerWidth-sideEps, boxInnerDepth-sideEps, height],
[0+sideEps, boxInnerDepth-sideEps, height]
];
for (i=[1:4]) {
lugLine(points[(i-1)%4], points[i%4], 3, lMult, rMult);
}
}
module lidBody() {
topLidThickness = 1;
bottomLidThickness = 4;
bottomLidWallThickness = 2;
translate(v=[-boxSideThickness, -boxFrontThickness,0])
cube(size=[boxWidth, boxDepth, topLidThickness]);
difference() {
innerWallTolerance = 0.1;
innerWallWidth = boxWidth - 2 * boxSideThickness - innerWallTolerance;
innerWallDepth = boxDepth - (boxFrontThickness + boxBackThickness) - innerWallTolerance;
translate(v = [innerWallTolerance/2, innerWallTolerance/2, topLidThickness])
cube(size = [innerWallWidth, innerWallDepth,
bottomLidThickness]);
translate(v = [bottomLidWallThickness, bottomLidWallThickness, topLidThickness])
cube(size = [boxWidth - 2*boxSideThickness - 2*bottomLidWallThickness, boxDepth - (boxFrontThickness + boxBackThickness) - 2*bottomLidWallThickness,
bottomLidThickness]);
}
}
module lid() {
difference() {
union() {
lidBody();
// todo figure out relation
lugProfile(3, sideEps = 0.25, lMult=0.95, rMult=0.95);
}
for (i=[0:7]) {
translate(v=[i*17 + 14, 15,-2])
minkowski() {
cylinder(r=1,h=1);
cube(size = [10, 20, 5]);
}
}
}
}
module case() {
difference() {
union() {
boxBodyWithHoles();
translate(v=[20,5, -1])
rockProScrewMounts();
// lugs
translate(v=[0,-(1+boxFrontThickness),0])
cube(size=[4,1,4]);
translate(v=[boxInnerWidth-4,-(1+boxFrontThickness),0])
cube(size=[4,1,4]);
}
union() {
lugProfile(boxHeight-4); // todo reliant on box bottom thickness
translate(v=[32,25,-2])
minkowski() {
cylinder(r=1,h=0.1);
cube(size = [50, 80, 5]);
}
}
}
}
/////////////////////////////////////////////////////////////////////////////////
module _frontPlateBody() {
cube(size=[frontPlateWidth,frontPlateThickness,frontPlateHeight]);
}
module _plateHole() {
rotate(a=[90,0,0])
cylinder(r=m4RadiusSlacked, h=inf, center=true);
}
module frontPlate() {
difference() {
_frontPlateBody();
translate(v=[frontPlateScrewToVEdge, 0, frontPlateBottomScrewToHEdge])
union() {
// TODO: introduce helper modules for this pattern
_plateHole();
translate(v=[frontPlateScrewDiffH,0,0])
_plateHole();
translate(v=[0,0,frontPlateScrewDiffV])
_plateHole();
translate(v=[frontPlateScrewDiffH,0,frontPlateScrewDiffV])
_plateHole();
}
}
}
module frontPlateAligned() {
difference() {
// Aligned with case
translate(v = [
-(boxSideThickness + (frontPlateWidth - boxWidth) / 2),
-(boxFrontThickness+frontPlateThickness),
-boxBottomThickness
])
frontPlate();
union() {
// lugs TODO not recessed enough!!
translate(v=[-0.05,-(1.5+boxFrontThickness),-0.05])
cube(size=[4+0.1,2,4+0.1]);
translate(v=[-0.05 + (boxInnerWidth-4),-(1.5+boxFrontThickness),-0.05])
cube(size=[4+0.1,2,4+0.1]);
}
}
}
module rockPro64FrontPlate() {
difference() {
frontPlateAligned();
union() {
translate(v=[-1,-4,22])
rotate(a=[90,0,0])
linear_extrude(10)
text("rock-2", font="Tlwg Mono:style=Bold", size=9);
minkowski() {
rotate(a=[90,0,0])
cylinder(h=1, r=1);
union() {
translate(v = [24, - 10, 7])
cube(size = [62, 10, 9]);
translate(v = [52, - 10, 7])
cube(size = [34, 10, 18]);
}
}
intersection() {
translate(v = [95, - 10, 3])
cube(size = [70, 20, 26]);
for(i=[0:9]) {
translate(v = [83 + 8*i, - 10, 0])
rotate(a=[0,30,0])
cube(size=[3, 15, 50]);
}
}
}
}
}
rockPro64FrontPlate();
//translate(v=[0,-20,0])
//frontPlateAligned();
//case();
//translate(v=[0,0,50])
//mirror(v=[0,0,1])
//lid();
BIN
View File
Binary file not shown.
+7506
View File
File diff suppressed because it is too large Load Diff
+171
View File
@@ -0,0 +1,171 @@
/* Simple configurable rack mount component to hold a box-like shell */
include <../common.scad>
include <./screws.scad>
slack = 0.4;
boxWidth = 157.67;
boxHeight = 27.0;
boxLength = 101.5+1;
topThickness = 1.0;
bottomThickness = 1.0;
faceThickness = 3.0;
sideThickness = 2.0;
sideSupportWidth = 10;
railWidth = 16.0;
totalHeight = boxHeight+topThickness+bottomThickness;
totalLength = boxLength+2*sideThickness;
railMountWidthDiff = (200.0 - (boxWidth + 2*sideThickness)) / 2.0;
totalMountLength = 200.0 + 2*faceThickness + 1;
module sideHolder() {
module frontLowerCaseSegment() {
translate(v=[0,0,0])
cube(size=[sideSupportWidth, faceThickness, bottomThickness]);
}
module frontUpperCaseSegment() {
// no room for slack? :(
translate(v=[0,0,boxHeight+bottomThickness])
cube(size=[sideSupportWidth, faceThickness, topThickness]);
}
module backLowerCaseSegment() {
translate(v=[0,boxLength+slack+sideThickness,0])
frontLowerCaseSegment();
}
module backUpperCaseSegment() {
translate(v=[0,boxLength+slack+sideThickness,0])
frontUpperCaseSegment();
}
module backLowerRailSegment() {
translate(v=[0,200.0+1,0])
cube(size=[sideSupportWidth, faceThickness, bottomThickness]);
}
module backUpperRailSegment() {
translate(v=[0,200.0+1,boxHeight+bottomThickness])
cube(size=[sideSupportWidth, faceThickness, topThickness]);
}
module frontRailMountSegment() {
// +2 is slack
translate(v=[-railMountWidthDiff+5,0,0])
// should technically use different totalHeight, as current totalHeight is for case holder
cube(size=[railWidth,faceThickness,totalHeight]);
}
module backRailMountSegment() {
translate(v=[0,200+1,0])
// should technically use different totalHeight, as current totalHeight is for case holder
frontRailMountSegment();
}
module frontFace() {
difference() {
hull() {
frontLowerCaseSegment();
frontUpperCaseSegment();
frontRailMountSegment();
}
// screw holes
translate(v=[-railMountWidthDiff + 11.5,0,5])
rotate(a=[90,0,0])
cylinder(r=m4RadiusSlacked, h=10, center=true);
translate(v=[-railMountWidthDiff + 11.5,0,25])
rotate(a=[90,0,0])
cylinder(r=m4RadiusSlacked, h=10, center=true);
}
}
module backFace() {
translate(v=[0,200.0+faceThickness+1,0])
frontFace();
}
frontFace();
backFace();
hull() {
frontLowerCaseSegment();
backLowerCaseSegment();
}
hull() {
backLowerCaseSegment();
backUpperCaseSegment();
}
hull() {
frontUpperCaseSegment();
backUpperCaseSegment();
}
hull() {
backLowerRailSegment();
backLowerCaseSegment();
}
hull() {
backUpperRailSegment();
backUpperCaseSegment();
}
// side support/hold for case
difference() {
cube(size=[sideThickness, totalLength, totalHeight]);
translate(v=[-eps/2,8,5])
cube(size=[sideThickness+eps,totalLength-17.5+eps, totalHeight-10+eps]);
}
// side support/hold for case
difference() {
translate(v=[sideSupportWidth-sideThickness,totalLength,0])
cube(size=[sideThickness, totalMountLength-totalLength, totalHeight]);
translate(v=[sideSupportWidth-sideThickness-eps/2,(200-totalLength)+20,5])
cube(size=[sideThickness+eps,(200-totalLength)-10+eps, totalHeight-10+eps]);
}
}
module sideHolderAligned() {
//translate(v=[19,0,0])
sideHolder();
}
module mSide() {
mirror(v=[1,0,0]) {
sideHolderAligned();
}
}
sideHolderAligned();
//translate(v=[42 + boxWidth,0,0])
//mSide();
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
+22
View File
@@ -0,0 +1,22 @@
include <./common.scad>
include <./rack/screws.scad>
include <./rockpro/rockpro.scad>
module screwRiser(innerD, outerD, height) {
difference() {
cylinder(d=outerD, h=height, $fn=64);
cylinder(d=innerD, h=height, $fn=64);
}
}
module rockProScrewMounts() {
for (i=[0:3]) {
p = mountPoints[i];
translate(v=[p[0], p[1], p[2]])
screwRiser(innerD=2.8, outerD=8, height=7);
}
}
//rockProScrewMounts();
File diff suppressed because it is too large Load Diff
+62
View File
@@ -0,0 +1,62 @@
/* Contains screw mounts to be used to fix risers and whatnot into plastic */
include <../common.scad>
include <./screws.scad>
// Heat set inserts:
// Useful references:
// https://hackaday.com/2019/02/28/threading-3d-printed-parts-how-to-use-heat-set-inserts/
// My knurled brass nut dimensions
m4NutDiameter = 6;
m4NutLength1 = 6;
m3NutDiameter = 4.9;
m3NutLength1 = 6;
module nut_N(diameter,length,edm,elm) {
cylinder(h=(length + length*edm), d=(diameter + diameter*edm));
}
difference() {
union() {
cube(size=[30,30,2.5]);
translate(v=[8,8,0])
cylinder(h=8,d=8);
translate(v=[22,8,0])
cylinder(h=10,d=8);
translate(v=[8,22,0])
cylinder(h=8,d=10);
translate(v=[22,22,0])
cylinder(h=10,d=10);
}
union() {
translate(v=[8,8,2])
cylinder(h=6, d=6);
translate(v=[22,8,4])
cylinder(h=6,d=6);
translate(v=[8,22,2])
cylinder(h=6,d=6);
translate(v=[22,22,3])
cylinder(h=8,d=6);
}
}
+113
View File
@@ -0,0 +1,113 @@
/* Some common screw dimensions */
inf = 400; // basically infinity
/********************************************************************************/
// M3 dimensions
m3HoleRadiusSlack = 0.15;
m3Diameter = 3.0;
m3Radius = m3Diameter/2.0;
m3RadiusSlacked = m3Radius + m3HoleRadiusSlack;
// legacy TODO: replace
m3ptr = m3RadiusSlacked;
// NUTS!
m3HexNutWidthAcrossFlats = 5.41;
m3HexNutWidthAcrossCorners = FtoG(m3HexNutWidthAcrossFlats);
m3HexNutThickness = 2.18;
module m3HexNutPocketNegative() {
hexNutPocketNegative(m3RadiusSlacked,
m3HexNutWidthAcrossCorners/2 + 0.1,
m3HexNutThickness + 0.2);
}
// TODO: remove test
*difference() {
cube(size=[8,12,5], center=true);
rotate(a=[0,0,20])
m3HexNutPocketNegative();
}
*m3HexNutPocketNegative();
/********************************************************************************/
// M4 dimensions
m4HoleRadiusSlack = 0.15;
m4Diameter = 4.0;
m4Radius = m4Diameter/2.0;
m4RadiusSlacked = m4Radius + m4HoleRadiusSlack;
m4HexNutWidthAcrossFlats = 6.89;
m4HexNutWidthAcrossCorners = FtoG(m4HexNutWidthAcrossFlats);
m4HexNutThickness = 3.07;
module m4HexNutPocketNegative() {
hexNutPocketNegative(m4RadiusSlacked,
m4HexNutWidthAcrossCorners/2 + 0.1,
m4HexNutThickness + 0.2);
}
// TODO: remove test
*difference() {
translate(v=[0,1,0])
cube(size=[10,12,6], center=true);
rotate(a=[0,0,20])
m4HexNutPocketNegative();
}
*m4HexNutPocketNegative();
/********************************************************************************/
// Convert a regular hexagon widthAcrossFlats to widthAcrossCorners
function FtoG(widthAcrossFlats) = widthAcrossFlats * (2/sqrt(3));
// Convert a regular hexagon widthAcrossCorners to widthAcrossFlats
function GtoF(widthAcrossCorners) = widthAcrossCorners * (sqrt(3)/2);
module hexNutPocketNegative(
innerRadius,
widthAcrossCorners,
thickness)
{
union() {
hull() {
// hexagonal cylinder representing where the nut should fit
cylinder(r=widthAcrossCorners, h=thickness, center=true, $fn=6);
// negative volume for sliding in the nut
translate(v=[inf,0,0])
cylinder(r=widthAcrossCorners, h=thickness, center=true, $fn=6);
}
// negative volume for screw lead
translate(v=[0,0,-10])
cylinder(r=innerRadius, h = inf, $fn=32);
hull() {
translate(v=[inf,0,0])
cylinder(r=innerRadius, h = inf, $fn=32);
cylinder(r=innerRadius, h = inf, $fn=32);
}
}
}
+1682
View File
File diff suppressed because it is too large Load Diff