Ontwerp voor efficiente opslag electro koffertjes
This commit is contained in:
parent
0e51b2ba6e
commit
fb89d5364d
11 changed files with 252 additions and 0 deletions
92
Koffertjes_opslag/assembly.scad
Normal file
92
Koffertjes_opslag/assembly.scad
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
include <dimensions.scad>
|
||||
use <case.scad>
|
||||
use <bottom.scad>
|
||||
use <slider.scad>
|
||||
use <side.scad>
|
||||
use <middle.scad>
|
||||
use <back.scad>
|
||||
use <divider.scad>
|
||||
use <bottom_strengthening.scad>
|
||||
|
||||
module case_slider(){
|
||||
angle = asin(slidelift/slidelength);
|
||||
//echo("#### ANGLE ", angle);
|
||||
translate([0, 0, caseheight-lidheight-slideheight]) {
|
||||
rotate([-angle, 0, 0]) {
|
||||
slider();
|
||||
}
|
||||
}
|
||||
|
||||
translate([slidethick + play/2, 0, 0]) {
|
||||
rotate([-angle, 0, 0]) {
|
||||
case();
|
||||
}
|
||||
}
|
||||
|
||||
translate([casewidth+slidethick+play, 0, caseheight-lidheight-slideheight]) {
|
||||
rotate([-angle, 0, 0]) {
|
||||
slider();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// bottom
|
||||
translate([0, 0, -plythick]) {
|
||||
bottom();
|
||||
}
|
||||
|
||||
// left side
|
||||
side();
|
||||
|
||||
// right side
|
||||
translate([casespace+plythick, 0, 0]) {
|
||||
side();
|
||||
}
|
||||
|
||||
// front case drawers
|
||||
for (i=[0:4]) {
|
||||
translate([plythick, casedepth, 10+110*i]) {
|
||||
case_slider();
|
||||
}
|
||||
}
|
||||
|
||||
// top
|
||||
translate([0, 0, sideheight]) {
|
||||
bottom();
|
||||
}
|
||||
|
||||
// back for front cases / middle divider
|
||||
translate([plythick, casedepth, 0]) {
|
||||
middle();
|
||||
}
|
||||
|
||||
// back for assembly
|
||||
translate([0, casedepth + plythick + casespace, 0]) {
|
||||
back();
|
||||
}
|
||||
|
||||
// back for side cases / divider
|
||||
translate([bottomwidth-fullcasedepth-plythick, casedepth+plythick, 0]) {
|
||||
divider();
|
||||
}
|
||||
|
||||
// side case drawers
|
||||
translate([bottomwidth-handledepth, casedepth+plythick, 0]) {
|
||||
rotate([0, 0, 90]) {
|
||||
for (i=[0:4]) {
|
||||
translate([0, casedepth, 10+110*i]) {
|
||||
case_slider();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// bottom strengthening for wheels
|
||||
translate([0, 0, - plythick*2]) {
|
||||
bottom_strengthening();
|
||||
}
|
||||
|
||||
//echo("#### shelf usefulness? ", bottomwidth - fullcasedepth - plythick);
|
||||
|
||||
// wielen zijn 73
|
||||
echo("#### Total height: ", sideheight + plythick*3 + 73);
|
||||
8
Koffertjes_opslag/back.scad
Normal file
8
Koffertjes_opslag/back.scad
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
include <dimensions.scad>
|
||||
|
||||
module back(){
|
||||
cube(size=[casespace+plythick*2, plythick, sideheight], center=false);
|
||||
echo("#### Back: width = ", casespace+plythick*2, " height = ", sideheight);
|
||||
}
|
||||
|
||||
back();
|
||||
10
Koffertjes_opslag/bottom.scad
Normal file
10
Koffertjes_opslag/bottom.scad
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
include <dimensions.scad>
|
||||
|
||||
module bottom(){
|
||||
// hier nog eens goed over nadenken, weet niet of dit klopt
|
||||
color("brown")
|
||||
cube(size=[bottomwidth, bottomlength, plythick], center=false);
|
||||
echo("#### Bottom length = ", bottomlength, " width = ", bottomwidth);
|
||||
}
|
||||
|
||||
bottom();
|
||||
29
Koffertjes_opslag/bottom_strengthening.scad
Normal file
29
Koffertjes_opslag/bottom_strengthening.scad
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
include <dimensions.scad>
|
||||
|
||||
module bottom_strengthening(){
|
||||
// front
|
||||
cube(size=[bottomwidth, strengthwidth, plythick], center=false);
|
||||
echo("#### Strengthening piece width = ", strengthwidth, " length = ", bottomwidth);
|
||||
|
||||
// back
|
||||
translate([0, bottomlength-strengthwidth, 0]) {
|
||||
cube(size=[bottomwidth, strengthwidth, plythick], center=false);
|
||||
echo("#### Strengthening piece width = ", strengthwidth, " length = ", bottomwidth);
|
||||
}
|
||||
|
||||
// left side
|
||||
translate([0, strengthwidth, 0]) {
|
||||
color("green")
|
||||
cube(size=[strengthwidth, bottomlength-strengthwidth*2, plythick], center=false);
|
||||
echo("#### Strengthening piece width = ", strengthwidth, " length = ", bottomwidth-strengthwidth*2);
|
||||
}
|
||||
|
||||
// right side
|
||||
translate([bottomwidth-strengthwidth, strengthwidth, 0]) {
|
||||
color("green")
|
||||
cube(size=[strengthwidth, bottomlength-strengthwidth*2, plythick], center=false);
|
||||
echo("#### Strengthening piece width = ", strengthwidth, " length = ", bottomwidth-strengthwidth*2);
|
||||
}
|
||||
}
|
||||
|
||||
bottom_strengthening();
|
||||
24
Koffertjes_opslag/case.scad
Normal file
24
Koffertjes_opslag/case.scad
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
include <dimensions.scad>
|
||||
|
||||
module case(){
|
||||
color("lightblue")
|
||||
translate([ -( lidwidth- casewidth)/2 , -casedepth, caseheight-lidheight]) {
|
||||
// draw the handle first, because of bad rendering in the difference function
|
||||
translate([(lidwidth-handlewidth)/2, -handledepth, -((102-15)/2)-handleheight/2]) {
|
||||
difference(){
|
||||
cube(size=[handlewidth, handledepth, handleheight], center=false);
|
||||
translate([gapoffset, handledepth-gapdepth, -10]) {
|
||||
cube(size=[handlewidth-(gapoffset*2), gapdepth+10, handleheight+20], center=false);
|
||||
}
|
||||
}
|
||||
}
|
||||
// now draw the lid
|
||||
cube(size=[lidwidth, casedepth, lidheight], center=false);
|
||||
// and draw the body
|
||||
translate([(lidwidth-casewidth)/2, 0, -caseheight+lidheight]) {
|
||||
cube(size=[casewidth, casedepth, caseheight-lidheight], center=false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
case();
|
||||
40
Koffertjes_opslag/dimensions.scad
Normal file
40
Koffertjes_opslag/dimensions.scad
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
// details in arcs
|
||||
FN=40;
|
||||
|
||||
// case dimensions
|
||||
lidwidth = 420;
|
||||
lidheight = 15;
|
||||
casedepth = 330;
|
||||
caseheight = 102;
|
||||
casewidth = 400;
|
||||
handlewidth=175;
|
||||
handledepth=40;
|
||||
handleheight=40;
|
||||
gapoffset=30;
|
||||
gapdepth=20;
|
||||
fullcasedepth = casedepth + handledepth;
|
||||
|
||||
// play between sliders and case
|
||||
play = 5;
|
||||
|
||||
// plywood thickness
|
||||
plythick = 18;
|
||||
|
||||
// slider dimensions
|
||||
slidethick = 18;
|
||||
slideheight = 18;
|
||||
slidelength = casedepth - 30;
|
||||
slidelift = 10;
|
||||
|
||||
// +20 , 10 for play, 10 for the angling of the slides
|
||||
sideheight = (caseheight + 8) * 5 + 20;
|
||||
|
||||
// show much space does the case including sliders and play need
|
||||
casespace = casewidth + slidethick*2 + play;
|
||||
//echo("#### Casespace width = ", casespace);
|
||||
|
||||
bottomwidth = plythick*2+casespace;
|
||||
bottomlength = casedepth + plythick + casespace + plythick;
|
||||
|
||||
// baseplate wheels is 60, plywidth for bevel, 10 against splintering
|
||||
strengthwidth = 60 + plythick + 10;
|
||||
9
Koffertjes_opslag/divider.scad
Normal file
9
Koffertjes_opslag/divider.scad
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
include <dimensions.scad>
|
||||
|
||||
module divider(){
|
||||
color("green")
|
||||
cube(size=[plythick, casespace, sideheight], center=false);
|
||||
echo("#### Divider: width = ", casespace, " height = ", sideheight);
|
||||
}
|
||||
|
||||
divider();
|
||||
8
Koffertjes_opslag/middle.scad
Normal file
8
Koffertjes_opslag/middle.scad
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
include <dimensions.scad>
|
||||
|
||||
module middle(){
|
||||
cube(size=[casespace, plythick, sideheight], center=false);
|
||||
echo("#### Middle: width = ", casespace, " height = ", sideheight);
|
||||
}
|
||||
|
||||
middle();
|
||||
3
Koffertjes_opslag/partlist.sh
Executable file
3
Koffertjes_opslag/partlist.sh
Executable file
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
|
||||
openscad -o blup.dxf assembly.scad 2>&1|grep '####'|sort|awk 'BEGIN{count=0;prevline=""}{if(prevline == $0){count += 1} else {print(count, "x ", prevline);count=1;prevline=$0; }}END{print(count, "x ", prevline)}'
|
||||
10
Koffertjes_opslag/side.scad
Normal file
10
Koffertjes_opslag/side.scad
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
include <dimensions.scad>
|
||||
|
||||
module side() {
|
||||
ytmp = casedepth + plythick;
|
||||
color("beige")
|
||||
cube(size=[plythick, ytmp, sideheight], center=false);
|
||||
echo("#### Side panel height = ", sideheight, " length = ", ytmp);
|
||||
}
|
||||
|
||||
side();
|
||||
19
Koffertjes_opslag/slider.scad
Normal file
19
Koffertjes_opslag/slider.scad
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
include <dimensions.scad>
|
||||
|
||||
module slider () {
|
||||
translate([0, - slidelength, 0]) {
|
||||
|
||||
|
||||
translate([0, slideheight/2, 0]) {
|
||||
cube(size=[slidethick, slidelength-slideheight/2, slideheight], center=false);
|
||||
translate([0, 0, slideheight/2]) {
|
||||
rotate([0, 90, 0]) {
|
||||
cylinder(h=slidethick, r=slideheight/2, $fn=FN, center=false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
echo("#### Slider: thickness = ", slidethick, " height = ", slideheight, " length = ", slidelength);
|
||||
}
|
||||
|
||||
slider();
|
||||
Loading…
Add table
Add a link
Reference in a new issue