This commit is contained in:
zhao
2023-06-08 22:52:03 -04:00
parent b9da06a064
commit 25ce08053c
69 changed files with 62 additions and 315878 deletions

View File

@ -29,10 +29,10 @@ Please see [the assembly README here](./assembly)
### BOM - Single Rack: ### BOM - Single Rack:
| Item | Name | Quantity | Comment | | Item | Name | Quantity | Comment |
|------|-----------------------------|----------|---------------------------| |-----------------------------------|-----------------------------|----------|---------------------------|
| | M3x8 FHCS | 16 | Get double! | | ![M3x8](media/bom/m3_8_test.gif) | M3x8 FHCS | 16 | Get double! |
| | M3x10 FHCS | 4 | ☝️ | | ![M3x8](media/bom/m3_10_test.gif) | M3x10 FHCS | 4 | ☝️ |
| | M3x12 FHCS | 16 | ☝️ | | ![M3x8](media/bom/m3_12_test.gif) | M3x12 FHCS | 16 | ☝️ |
| | M3 hex nut | 36 | ☝️ | | | M3 hex nut | 36 | ☝️ |
| | 3x10mm steel dowel pin | 4 | 3mm diameter, 10mm height | | | 3x10mm steel dowel pin | 4 | 3mm diameter, 10mm height |
| | 6x2mm neodymium disc magnet | 8 | 6mm diameter, 2mm height | | | 6x2mm neodymium disc magnet | 8 | 6mm diameter, 2mm height |

BIN
media/bom/dowel.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

BIN
media/bom/m3_10.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 KiB

BIN
media/bom/m3_10_test.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
media/bom/m3_12.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 KiB

BIN
media/bom/m3_12_test.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
media/bom/m3_8.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

BIN
media/bom/m3_8_test.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
media/bom/m3_hex.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

BIN
media/bom/magnet.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

54
misc/bomAnimations.scad Normal file
View File

@ -0,0 +1,54 @@
include <../helper/screws.scad>
include <../helper/magnet.scad>
include <../helper/dowel.scad>
$vpr=[85,0,25];
//$vpd=40;
$vpd=25;
$vpf=20;
// m3FHCS(length=8,tilt=45,r=360*$t);
magnet(tilt=90, r=360*$t);
// hingeDowel(tilt=90,r=360*$t);
// m3Hex(tilt=90,r=360*$t);
metalColor = [0.8,0.8,0.8];
module m3FHCS(length, tilt, r) {
rotate(a=[0,0,r])
rotate(a=[tilt,0,0])
translate(v=[0,0,length/2])
color(metalColor) {
difference() {
counterSunkHead_N("m3", screwExtension = length-m3CounterSunkHeadLength, headExtension = 0.5);
cylinder($fn = 6, r = 1.2);
}
}
}
module m3Hex(tilt, r) {
rotate(a=[0,0,r])
rotate(a=[tilt,0,0])
color(metalColor)
hexNut("m3");
}
module hingeDowel(tilt, r) {
rotate(a=[0,0,r])
rotate(a=[tilt,0,0])
translate(v=[0,0,-dowelPinH/2])
color(metalColor)
cylinder(h = dowelPinH, r = dowelPinR);
}
module magnet(tilt, r) {
rotate(a=[0,0,r])
rotate(a=[tilt,0,0])
translate(v=[0,0,-magnetH/2])
color(metalColor)
cylinder(r = magnetR, h = magnetH);
}

BIN
misc/good/opt_dowel.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

BIN
misc/good/opt_m3_10.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 KiB

BIN
misc/good/opt_m3_12.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 KiB

BIN
misc/good/opt_m3_8.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

BIN
misc/good/opt_m3_hex.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 240 KiB

BIN
misc/good/opt_magnet.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 KiB

File diff suppressed because it is too large Load Diff

View File

@ -1,79 +0,0 @@
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();

View File

@ -1,37 +0,0 @@
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();

View File

@ -1,45 +0,0 @@
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);

View File

@ -1,158 +0,0 @@
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);

View File

@ -1,88 +0,0 @@
include <../../../helper/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.

View File

@ -1,97 +0,0 @@
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);
}
}
}

Binary file not shown.

View File

@ -1,71 +0,0 @@
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]);
}
}

File diff suppressed because it is too large Load Diff

17642
old/l1.stl

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,85 +0,0 @@
$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();

View File

@ -1,132 +0,0 @@
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();

View File

@ -1,210 +0,0 @@
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();

View File

@ -1,52 +0,0 @@
// 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();

View File

@ -1,330 +0,0 @@
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();

View File

@ -1,113 +0,0 @@
/*
// 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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,590 +0,0 @@
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

View File

@ -1,590 +0,0 @@
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

View File

@ -1,758 +0,0 @@
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

View File

@ -1,198 +0,0 @@
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

View File

@ -1,282 +0,0 @@
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

View File

@ -1,282 +0,0 @@
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

File diff suppressed because it is too large Load Diff

View File

@ -1,198 +0,0 @@
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.

View File

@ -1,91 +0,0 @@
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();

View File

@ -1,365 +0,0 @@
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();

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -1,171 +0,0 @@
/* 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.

View File

@ -1,22 +0,0 @@
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

View File

@ -1,62 +0,0 @@
/* 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);
}
}

View File

@ -1,113 +0,0 @@
/* 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);
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,41 +0,0 @@
include <../helper/common.scad>
include <../helper/magnet.scad>
doorPolarityReference();
module doorPolarityReference() {
thickness = 3;
union() {
difference() {
minkowski() {
cube(size = [50, 8, thickness]);
cylinder(r = 2, h = eps);
}
union() {
translate(v = [9, 0, 1.1])
linear_extrude(2)
text("D", font = "Liberation Sans:style=Bold", size = 8);
translate(v=[31, 0, 1.1])
linear_extrude(2)
text("M",font="Liberation Sans:style=Bold", size=8);
}
}
translate(v = [3.5, 4, thickness])
magnetHolder();
translate(v = [46.5, 4, thickness])
magnetHolder();
}
module magnetHolder() {
difference() {
cylinder(r = magnetRSlacked+2, h = magnetHSlacked, $fn = 64);
cylinder(r = magnetRSlacked, h = magnetHSlacked, $fn = 64);
}
}
}