refactor
This commit is contained in:
+4818
File diff suppressed because it is too large
Load Diff
@@ -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();
|
||||
|
||||
|
||||
@@ -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();
|
||||
@@ -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);
|
||||
@@ -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);
|
||||
@@ -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.
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -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
File diff suppressed because it is too large
Load Diff
+17642
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+54952
File diff suppressed because it is too large
Load Diff
+54952
File diff suppressed because it is too large
Load Diff
@@ -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();
|
||||
|
||||
|
||||
@@ -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();
|
||||
@@ -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();
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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();
|
||||
@@ -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();
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
@@ -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
|
||||
@@ -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
@@ -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
@@ -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
|
||||
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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.
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
Binary file not shown.
+7506
File diff suppressed because it is too large
Load Diff
@@ -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.
@@ -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();
|
||||
|
||||
+14422
File diff suppressed because it is too large
Load Diff
@@ -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
@@ -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
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user