Minolta16 tank separated out into 4 different parts files. Funnel not included (yet).
This commit is contained in:
parent
dca2c1e98d
commit
583f3e01ba
|
@ -1,132 +1,6 @@
|
||||||
|
time = 0;
|
||||||
D = 55;
|
D = 55;
|
||||||
|
|
||||||
module equilateralTriangle (side=10, height=10, center=false){
|
|
||||||
translate(center==true ? [-side/2,-sqrt(3)*side/6,-height/2] : [0,0,0])
|
|
||||||
linear_extrude(height=height)
|
|
||||||
polygon(points=[[0,0],[side,0],[side/2,sqrt(3)*side/2]]);
|
|
||||||
}
|
|
||||||
|
|
||||||
module spiral (START_D = 10, SPACING = 5, THICKNESS = 2, H = 10, SPIRALS = 39) {
|
|
||||||
$fn = 80;
|
|
||||||
START_R = START_D / 2;
|
|
||||||
ROT = (360 / $fn);
|
|
||||||
union () {
|
|
||||||
for (i = [0 : $fn]) {
|
|
||||||
rotate ([0, 0, i * ROT]) {
|
|
||||||
for (x = [0: (SPIRALS - 1)]) {
|
|
||||||
spiral_facet(i, x, START_R, SPACING, THICKNESS, H);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module spiral_static_res (START_D = 10, SPACING = 5, THICKNESS = 2, H = 10, SPIRALS = 39) {
|
|
||||||
$fn = 80;
|
|
||||||
|
|
||||||
START_R = START_D / 2;
|
|
||||||
|
|
||||||
SPACING_MAX = ((SPIRALS - 1) * (SPACING + THICKNESS));
|
|
||||||
STEP_SIZE = ((SPACING + THICKNESS) / $fn);
|
|
||||||
STEP_OFFSET_MAX = $fn * STEP_SIZE;
|
|
||||||
|
|
||||||
MAX_R = START_R + SPACING_MAX + STEP_OFFSET_MAX;
|
|
||||||
echo(MAX_R);
|
|
||||||
|
|
||||||
ROT = (360 / $fn);
|
|
||||||
for (x = [0 : (SPIRALS - 1)]) {
|
|
||||||
|
|
||||||
for (i = [0 : $fn]) {
|
|
||||||
rotate ([0, 0, i * ROT]) spiral_facet(i, x, START_R, SPACING, THICKNESS, H);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module spiral_facet (i, x, START_R, SPACING, W, H) {
|
|
||||||
STEP_SIZE = ((SPACING + W) / $fn);
|
|
||||||
|
|
||||||
STEP_OFFSET = i * STEP_SIZE;
|
|
||||||
SPIRAL_START_OFFSET = (x * (SPACING + W));
|
|
||||||
|
|
||||||
ACTUAL_R = START_R + SPIRAL_START_OFFSET + STEP_OFFSET;
|
|
||||||
L = 2 * (ACTUAL_R * tan((360 / $fn) / 2));
|
|
||||||
ANGLE = -atan( STEP_SIZE / (L / 2) ) / 2;
|
|
||||||
OFFSET = START_R - (W / 2) + SPIRAL_START_OFFSET + STEP_OFFSET;
|
|
||||||
|
|
||||||
translate ([OFFSET, 0, - H / 2]) {
|
|
||||||
rotate ([0, 0, ANGLE]) {
|
|
||||||
cube([W, L, H], center=true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module spiral_top (START_D = 10, SPACING = 5, THICKNESS = 2, H = 10, SPIRALS = 39) {
|
|
||||||
$fn = 80;
|
|
||||||
START_R = START_D / 2;
|
|
||||||
union () {
|
|
||||||
for (i = [0 : $fn]) {
|
|
||||||
rotate ([0, 0, i * (360 / $fn)]) {
|
|
||||||
for (x = [0: (SPIRALS - 1)]) {
|
|
||||||
spiral_top_facet(i, x, START_R, SPACING, THICKNESS, H);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module spiral_top_facet (i, x, START_R, SPACING, W, H) {
|
|
||||||
STEP_SIZE = ((SPACING + W) / $fn);
|
|
||||||
|
|
||||||
STEP_OFFSET = i * STEP_SIZE;
|
|
||||||
SPIRAL_START_OFFSET = (x * (SPACING + W));
|
|
||||||
|
|
||||||
ACTUAL_R = START_R + SPIRAL_START_OFFSET + STEP_OFFSET;
|
|
||||||
L = 2 * (ACTUAL_R * tan((360 / $fn) / 2));
|
|
||||||
ANGLE = -atan( STEP_SIZE / (L / 2) ) / 2;
|
|
||||||
OFFSET = START_R - (W / 2) + SPIRAL_START_OFFSET + STEP_OFFSET;
|
|
||||||
|
|
||||||
translate ([OFFSET, 0, - H / 2]) {
|
|
||||||
rotate ([0, 0, ANGLE]) {
|
|
||||||
//cube([W, L, H], center=true);
|
|
||||||
rotate([90, 0, 0]) equilateralTriangle(side = W, height = L, center = true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//rotate([90, 0, 90]) equilateralTriangle(side = 2, height = 5, center = true);
|
|
||||||
//cube([5, 2, 2] ,center = true);
|
|
||||||
|
|
||||||
module trapshape(L = 3) {
|
|
||||||
difference () {
|
|
||||||
cube([6, L, 4], center = true);
|
|
||||||
translate([2.8, 0, 2]) rotate([0, 45, 0]) cube([5, L + 1, 4], center = true);
|
|
||||||
translate([-2.8, 0, 2]) rotate([0, -45, 0]) cube([5, L + 1, 4], center = true);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
module trapshape2 () {
|
|
||||||
difference () {
|
|
||||||
cube([5, 10, 8], center = true);
|
|
||||||
//mid
|
|
||||||
translate([0, 0, -4]) rotate([45, 0, 0]) cube([5 + 1, 7, 7], center = true);
|
|
||||||
//back (tank side)
|
|
||||||
translate([0, -5, 4]) rotate([45, 0, 0]) cube([5 + 1, 5, 5], center = true);
|
|
||||||
//front
|
|
||||||
translate([0, 5, 4]) rotate([45, 0, 0]) cube([5 + 1, 5, 5], center = true);
|
|
||||||
//top angles
|
|
||||||
translate([2.5, 0, 5]) rotate([0, 45, 0]) cube([5, 10, 5], center = true);
|
|
||||||
translate([-2.5, 0, 5]) rotate([0, 45, 0]) cube([5, 10, 5], center = true);
|
|
||||||
//front angles
|
|
||||||
translate([2.5, 0, 0]) rotate([-45, 0, 0]) translate([0, 0, 5]) rotate([0, 45, 0]) cube([5, 11, 5], center = true);
|
|
||||||
translate([-2.5, 0, 0]) rotate([-45, 0, 0]) translate([0, 0, 5]) rotate([0, 45, 0]) cube([5, 11, 5], center = true);
|
|
||||||
//back angles
|
|
||||||
translate([2.5, 0, 0]) rotate([45, 0, 0]) translate([0, 0, 5]) rotate([0, 45, 0]) cube([5, 11, 5], center = true);
|
|
||||||
translate([-2.5, 0, 0]) rotate([45, 0, 0]) translate([0, 0, 5]) rotate([0, 45, 0]) cube([5, 11, 5], center = true);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
module funnel () {
|
module funnel () {
|
||||||
$fn = 50;
|
$fn = 50;
|
||||||
difference () {
|
difference () {
|
||||||
|
@ -195,13 +69,6 @@ module barbed_fitting () {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module center_piece () {
|
|
||||||
$fn = 60;
|
|
||||||
difference () {
|
|
||||||
cylinder(r = 5, h = 16.5 + 1, center = true);
|
|
||||||
cube([.5, 20, 16.5 + 1 + 1], center = true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module bend (R = 4) {
|
module bend (R = 4) {
|
||||||
difference () {
|
difference () {
|
||||||
|
@ -213,96 +80,10 @@ module bend (R = 4) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module tank_cover (thickness, DEBUG = false) {
|
//translate([0, 0, 19]) reel();
|
||||||
$fn = 100;
|
//translate([0, 0, 25]) tank_inner();
|
||||||
//outer rim
|
|
||||||
difference () {
|
|
||||||
cylinder(r = (D / 2) + thickness + 2, h = 5, center = true);
|
|
||||||
translate([0, 0, 0]) cylinder(r = (D / 2) + thickness, h = 5 + 1, center = true);
|
|
||||||
if (DEBUG){
|
|
||||||
translate([(D + 10) / 2, 0, 0]) cube([D + 10, D + 10, D + 10], center = true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//inner rim
|
|
||||||
translate([0, 0, 0.5]) difference () {
|
|
||||||
cylinder(r = (D / 2), h = 2, center = true);
|
|
||||||
translate([0, 0, 0]) cylinder(r = (D / 2) - 2, h = 2 + 1, center = true);
|
|
||||||
if (DEBUG){
|
|
||||||
translate([(D + 10) / 2, 0, 0]) cube([D + 10, D + 10, D + 10], center = true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//connector
|
|
||||||
translate([0, 0, 2.5]) difference () {
|
|
||||||
cylinder(r = (D / 2) + thickness + 2, h = 2, center = true);
|
|
||||||
translate([0, 0, 0]) cylinder(r = (D / 2) - 2, h = 2 + 1, center = true);
|
|
||||||
if (DEBUG){
|
|
||||||
translate([(D + 10) / 2, 0, 0]) cube([D + 10, D + 10, D + 10], center = true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//main funnel
|
|
||||||
translate([0, 0, 11]) difference () {
|
|
||||||
cylinder(r1 = (D / 2) + thickness + 2, r2 = 9, h = 15, center = true);
|
|
||||||
translate([0, 0, -.6]) cylinder(r1 = (D / 2) - 2, r2 = 7 - 2, h = 14, center = true);
|
|
||||||
cylinder(r = 7 - 2, h = 20 + 1, center = true);
|
|
||||||
if (DEBUG){
|
|
||||||
translate([(D + 10) / 2, 0, 0]) cube([D + 10, D + 10, D + 10], center = true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//tube1
|
|
||||||
translate([0, 0, 13.5]) difference () {
|
|
||||||
cylinder(r = 8, h = 10, center = true);
|
|
||||||
translate([0, 0, 0]) cylinder(r = 7 - 2, h = 10 + 1, center = true);
|
|
||||||
if (DEBUG){
|
|
||||||
translate([(D + 10) / 2, 0, 0]) cube([D + 10, D + 10, D + 10], center = true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module tank_inner (DEBUG = false) {
|
rotate([0, 0, time]) tank(2);
|
||||||
$fn = 100;
|
//translate([0, 0, 39]) tank_cover(2);
|
||||||
//under lattuce
|
|
||||||
for (i = [0 : 3]) {
|
|
||||||
rotate([0, 0, i * (360 / 3)]) cube([D - 5.5, 4, 2], center = true);
|
|
||||||
}
|
|
||||||
difference () {
|
|
||||||
cylinder(r = (D / 2) - 2.5, h = 2, center = true);
|
|
||||||
translate([0, 0, 0]) cylinder(r = (D / 2) - 5, h = 2 + 1, center = true);
|
|
||||||
if (DEBUG){
|
|
||||||
translate([(D + 10) / 2, 0, 0]) cube([D + 10, D + 10, D + 10], center = true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
translate([0, 0, 4]) difference () {
|
|
||||||
cylinder(r = 11, h = 10, center = true);
|
|
||||||
translate([0, 0, 2]) cylinder(r = 11 - 2, h = 10, center = true);
|
|
||||||
if (DEBUG){
|
|
||||||
translate([(D + 10) / 2, 0, 0]) cube([D + 10, D + 10, D + 10], center = true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module bottom () {
|
|
||||||
//spiral(START_D = 12, THICKNESS = 2, SPACING = .5, SPIRALS = 8, H = 3);
|
|
||||||
spiral_static_res(START_D = 12, THICKNESS = 2, SPACING = .5, SPIRALS = 8, H = 3);
|
|
||||||
translate ([0, 0, 1.55]) {
|
|
||||||
spiral_top(START_D = 12, THICKNESS = 2, SPACING = .5, SPIRALS = 8, H = 2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module reel () {
|
|
||||||
$fn = 100;
|
|
||||||
translate([0, 0, -9]) for (i = [0 : 5]) {
|
|
||||||
rotate([0, 0, i * (360 / 5)]) cube([D - 3, 3, 2], center = true);
|
|
||||||
}
|
|
||||||
translate([0, 0, -9]) difference () {
|
|
||||||
cylinder(r = (D / 2) - 1.5, h = 2, center = true);
|
|
||||||
translate([0, 0, 0]) cylinder(r = (D / 2) - 5, h = 2 + 1, center = true);
|
|
||||||
}
|
|
||||||
translate([0, 0, -5.5]) bottom();
|
|
||||||
translate([0, 0, -1]) rotate([0, 0, 85]) center_piece(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
translate([0, 0, 19]) reel();
|
|
||||||
translate([0, 0, -1.25]) tank(2);
|
|
||||||
translate([0, 0, 39]) tank_cover(2);
|
|
||||||
translate([0, 0, 25]) tank_inner();
|
|
||||||
//rotate([180, 0, 0]) funnel();
|
//rotate([180, 0, 0]) funnel();
|
|
@ -0,0 +1,48 @@
|
||||||
|
time = 0;
|
||||||
|
D = 55;
|
||||||
|
|
||||||
|
module tank_cover (thickness, DEBUG = false) {
|
||||||
|
$fn = 100;
|
||||||
|
//outer rim
|
||||||
|
difference () {
|
||||||
|
cylinder(r = (D / 2) + thickness + 2, h = 5, center = true);
|
||||||
|
translate([0, 0, 0]) cylinder(r = (D / 2) + thickness, h = 5 + 1, center = true);
|
||||||
|
if (DEBUG){
|
||||||
|
translate([(D + 10) / 2, 0, 0]) cube([D + 10, D + 10, D + 10], center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//inner rim
|
||||||
|
translate([0, 0, 0.5]) difference () {
|
||||||
|
cylinder(r = (D / 2), h = 2, center = true);
|
||||||
|
translate([0, 0, 0]) cylinder(r = (D / 2) - 2, h = 2 + 1, center = true);
|
||||||
|
if (DEBUG){
|
||||||
|
translate([(D + 10) / 2, 0, 0]) cube([D + 10, D + 10, D + 10], center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//connector
|
||||||
|
translate([0, 0, 2.5]) difference () {
|
||||||
|
cylinder(r = (D / 2) + thickness + 2, h = 2, center = true);
|
||||||
|
translate([0, 0, 0]) cylinder(r = (D / 2) - 2, h = 2 + 1, center = true);
|
||||||
|
if (DEBUG){
|
||||||
|
translate([(D + 10) / 2, 0, 0]) cube([D + 10, D + 10, D + 10], center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//main funnel
|
||||||
|
translate([0, 0, 11]) difference () {
|
||||||
|
cylinder(r1 = (D / 2) + thickness + 2, r2 = 9, h = 15, center = true);
|
||||||
|
translate([0, 0, -.6]) cylinder(r1 = (D / 2) - 2, r2 = 7 - 2, h = 14, center = true);
|
||||||
|
cylinder(r = 7 - 2, h = 20 + 1, center = true);
|
||||||
|
if (DEBUG){
|
||||||
|
translate([(D + 10) / 2, 0, 0]) cube([D + 10, D + 10, D + 10], center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//tube1
|
||||||
|
translate([0, 0, 13.5]) difference () {
|
||||||
|
cylinder(r = 8, h = 10, center = true);
|
||||||
|
translate([0, 0, 0]) cylinder(r = 7 - 2, h = 10 + 1, center = true);
|
||||||
|
if (DEBUG){
|
||||||
|
translate([(D + 10) / 2, 0, 0]) cube([D + 10, D + 10, D + 10], center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rotate([0, 0, time]) tank_cover(2);
|
|
@ -0,0 +1,160 @@
|
||||||
|
time = 0;
|
||||||
|
D = 55;
|
||||||
|
|
||||||
|
module equilateralTriangle (side=10, height=10, center=false){
|
||||||
|
translate(center==true ? [-side/2,-sqrt(3)*side/6,-height/2] : [0,0,0])
|
||||||
|
linear_extrude(height=height)
|
||||||
|
polygon(points=[[0,0],[side,0],[side/2,sqrt(3)*side/2]]);
|
||||||
|
}
|
||||||
|
|
||||||
|
module spiral (START_D = 10, SPACING = 5, THICKNESS = 2, H = 10, SPIRALS = 39) {
|
||||||
|
$fn = 80;
|
||||||
|
START_R = START_D / 2;
|
||||||
|
ROT = (360 / $fn);
|
||||||
|
union () {
|
||||||
|
for (i = [0 : $fn]) {
|
||||||
|
rotate ([0, 0, i * ROT]) {
|
||||||
|
for (x = [0: (SPIRALS - 1)]) {
|
||||||
|
spiral_facet(i, x, START_R, SPACING, THICKNESS, H);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module spiral_static_res (START_D = 10, SPACING = 5, THICKNESS = 2, H = 10, SPIRALS = 39) {
|
||||||
|
$fn = 80;
|
||||||
|
|
||||||
|
START_R = START_D / 2;
|
||||||
|
|
||||||
|
SPACING_MAX = ((SPIRALS - 1) * (SPACING + THICKNESS));
|
||||||
|
STEP_SIZE = ((SPACING + THICKNESS) / $fn);
|
||||||
|
STEP_OFFSET_MAX = $fn * STEP_SIZE;
|
||||||
|
|
||||||
|
MAX_R = START_R + SPACING_MAX + STEP_OFFSET_MAX;
|
||||||
|
echo(MAX_R);
|
||||||
|
|
||||||
|
ROT = (360 / $fn);
|
||||||
|
for (x = [0 : (SPIRALS - 1)]) {
|
||||||
|
|
||||||
|
for (i = [0 : $fn]) {
|
||||||
|
rotate ([0, 0, i * ROT]) spiral_facet(i, x, START_R, SPACING, THICKNESS, H);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module spiral_facet (i, x, START_R, SPACING, W, H) {
|
||||||
|
STEP_SIZE = ((SPACING + W) / $fn);
|
||||||
|
|
||||||
|
STEP_OFFSET = i * STEP_SIZE;
|
||||||
|
SPIRAL_START_OFFSET = (x * (SPACING + W));
|
||||||
|
|
||||||
|
ACTUAL_R = START_R + SPIRAL_START_OFFSET + STEP_OFFSET;
|
||||||
|
L = 2 * (ACTUAL_R * tan((360 / $fn) / 2));
|
||||||
|
ANGLE = -atan( STEP_SIZE / (L / 2) ) / 2;
|
||||||
|
OFFSET = START_R - (W / 2) + SPIRAL_START_OFFSET + STEP_OFFSET;
|
||||||
|
|
||||||
|
translate ([OFFSET, 0, - H / 2]) {
|
||||||
|
rotate ([0, 0, ANGLE]) {
|
||||||
|
cube([W, L, H], center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module spiral_top (START_D = 10, SPACING = 5, THICKNESS = 2, H = 10, SPIRALS = 39) {
|
||||||
|
$fn = 80;
|
||||||
|
START_R = START_D / 2;
|
||||||
|
union () {
|
||||||
|
for (i = [0 : $fn]) {
|
||||||
|
rotate ([0, 0, i * (360 / $fn)]) {
|
||||||
|
for (x = [0: (SPIRALS - 1)]) {
|
||||||
|
spiral_top_facet(i, x, START_R, SPACING, THICKNESS, H);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module spiral_top_facet (i, x, START_R, SPACING, W, H) {
|
||||||
|
STEP_SIZE = ((SPACING + W) / $fn);
|
||||||
|
|
||||||
|
STEP_OFFSET = i * STEP_SIZE;
|
||||||
|
SPIRAL_START_OFFSET = (x * (SPACING + W));
|
||||||
|
|
||||||
|
ACTUAL_R = START_R + SPIRAL_START_OFFSET + STEP_OFFSET;
|
||||||
|
L = 2 * (ACTUAL_R * tan((360 / $fn) / 2));
|
||||||
|
ANGLE = -atan( STEP_SIZE / (L / 2) ) / 2;
|
||||||
|
OFFSET = START_R - (W / 2) + SPIRAL_START_OFFSET + STEP_OFFSET;
|
||||||
|
|
||||||
|
translate ([OFFSET, 0, - H / 2]) {
|
||||||
|
rotate ([0, 0, ANGLE]) {
|
||||||
|
//cube([W, L, H], center=true);
|
||||||
|
rotate([90, 0, 0]) equilateralTriangle(side = W, height = L, center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//rotate([90, 0, 90]) equilateralTriangle(side = 2, height = 5, center = true);
|
||||||
|
//cube([5, 2, 2] ,center = true);
|
||||||
|
|
||||||
|
module trapshape(L = 3) {
|
||||||
|
difference () {
|
||||||
|
cube([6, L, 4], center = true);
|
||||||
|
translate([2.8, 0, 2]) rotate([0, 45, 0]) cube([5, L + 1, 4], center = true);
|
||||||
|
translate([-2.8, 0, 2]) rotate([0, -45, 0]) cube([5, L + 1, 4], center = true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
module trapshape2 () {
|
||||||
|
difference () {
|
||||||
|
cube([5, 10, 8], center = true);
|
||||||
|
//mid
|
||||||
|
translate([0, 0, -4]) rotate([45, 0, 0]) cube([5 + 1, 7, 7], center = true);
|
||||||
|
//back (tank side)
|
||||||
|
translate([0, -5, 4]) rotate([45, 0, 0]) cube([5 + 1, 5, 5], center = true);
|
||||||
|
//front
|
||||||
|
translate([0, 5, 4]) rotate([45, 0, 0]) cube([5 + 1, 5, 5], center = true);
|
||||||
|
//top angles
|
||||||
|
translate([2.5, 0, 5]) rotate([0, 45, 0]) cube([5, 10, 5], center = true);
|
||||||
|
translate([-2.5, 0, 5]) rotate([0, 45, 0]) cube([5, 10, 5], center = true);
|
||||||
|
//front angles
|
||||||
|
translate([2.5, 0, 0]) rotate([-45, 0, 0]) translate([0, 0, 5]) rotate([0, 45, 0]) cube([5, 11, 5], center = true);
|
||||||
|
translate([-2.5, 0, 0]) rotate([-45, 0, 0]) translate([0, 0, 5]) rotate([0, 45, 0]) cube([5, 11, 5], center = true);
|
||||||
|
//back angles
|
||||||
|
translate([2.5, 0, 0]) rotate([45, 0, 0]) translate([0, 0, 5]) rotate([0, 45, 0]) cube([5, 11, 5], center = true);
|
||||||
|
translate([-2.5, 0, 0]) rotate([45, 0, 0]) translate([0, 0, 5]) rotate([0, 45, 0]) cube([5, 11, 5], center = true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
module center_piece () {
|
||||||
|
$fn = 60;
|
||||||
|
difference () {
|
||||||
|
cylinder(r = 5, h = 16.5 + 1, center = true);
|
||||||
|
cube([.5, 20, 16.5 + 1 + 1], center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module bottom () {
|
||||||
|
//spiral(START_D = 12, THICKNESS = 2, SPACING = .5, SPIRALS = 8, H = 3);
|
||||||
|
spiral_static_res(START_D = 12, THICKNESS = 2, SPACING = .5, SPIRALS = 8, H = 3);
|
||||||
|
translate ([0, 0, 1.55]) {
|
||||||
|
spiral_top(START_D = 12, THICKNESS = 2, SPACING = .5, SPIRALS = 8, H = 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module reel () {
|
||||||
|
$fn = 100;
|
||||||
|
translate([0, 0, -9]) for (i = [0 : 5]) {
|
||||||
|
rotate([0, 0, i * (360 / 5)]) cube([D - 3, 3, 2], center = true);
|
||||||
|
}
|
||||||
|
translate([0, 0, -9]) difference () {
|
||||||
|
cylinder(r = (D / 2) - 1.5, h = 2, center = true);
|
||||||
|
translate([0, 0, 0]) cylinder(r = (D / 2) - 5, h = 2 + 1, center = true);
|
||||||
|
}
|
||||||
|
translate([0, 0, -5.5]) bottom();
|
||||||
|
translate([0, 0, -1]) rotate([0, 0, 85]) center_piece(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
rotate([0, 0, time]) reel();
|
|
@ -0,0 +1,26 @@
|
||||||
|
time = 0;
|
||||||
|
D = 55;
|
||||||
|
|
||||||
|
module minolta16_tank_reel_top (DEBUG = false) {
|
||||||
|
$fn = 100;
|
||||||
|
//under lattuce
|
||||||
|
for (i = [0 : 3]) {
|
||||||
|
rotate([0, 0, i * (360 / 3)]) cube([D - 5.5, 4, 2], center = true);
|
||||||
|
}
|
||||||
|
difference () {
|
||||||
|
cylinder(r = (D / 2) - 2.5, h = 2, center = true);
|
||||||
|
translate([0, 0, 0]) cylinder(r = (D / 2) - 5, h = 2 + 1, center = true);
|
||||||
|
if (DEBUG){
|
||||||
|
translate([(D + 10) / 2, 0, 0]) cube([D + 10, D + 10, D + 10], center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate([0, 0, 4]) difference () {
|
||||||
|
cylinder(r = 11, h = 10, center = true);
|
||||||
|
translate([0, 0, 2]) cylinder(r = 11 - 2, h = 10, center = true);
|
||||||
|
if (DEBUG){
|
||||||
|
translate([(D + 10) / 2, 0, 0]) cube([D + 10, D + 10, D + 10], center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
rotate([0, 0, time]) minolta16_tank_reel_top();
|
Loading…
Reference in New Issue