From f3b5f12750474b1ae3b42a0e90394184221b800f Mon Sep 17 00:00:00 2001 From: wardwouts Date: Tue, 9 Apr 2024 20:13:09 +0200 Subject: [PATCH] initial draft --- Werkbank-balken/assembly.scad | 58 +++++++++++++++++++++++++++++++++ Werkbank-balken/connector.scad | 9 +++++ Werkbank-balken/dimensions.scad | 20 ++++++++++++ Werkbank-balken/partlist.sh | 3 ++ Werkbank-balken/parts | 10 ++++++ Werkbank-balken/stand.scad | 22 +++++++++++++ Werkbank-balken/top.scad | 16 +++++++++ 7 files changed, 138 insertions(+) create mode 100644 Werkbank-balken/assembly.scad create mode 100644 Werkbank-balken/connector.scad create mode 100644 Werkbank-balken/dimensions.scad create mode 100755 Werkbank-balken/partlist.sh create mode 100644 Werkbank-balken/parts create mode 100644 Werkbank-balken/stand.scad create mode 100644 Werkbank-balken/top.scad diff --git a/Werkbank-balken/assembly.scad b/Werkbank-balken/assembly.scad new file mode 100644 index 0000000..1760417 --- /dev/null +++ b/Werkbank-balken/assembly.scad @@ -0,0 +1,58 @@ +include + +use +use +use + +// === topbeams === +for (i=[0:topdepth/topbeamthickness-1]) { + translate([topbeamthickness*i, topsidethickness, benchheight-topheight]) { + beam(); + } +} + +// === top sides === +translate([0, 0, benchheight-topheight]){ + topside(); +} +translate([0, toplength - topsidethickness, benchheight-topheight]){ + topside(); +} + +// === stand bottom === +translate([standoffset, standsideoffset, 0]){ + standbottom(); +} +translate([standoffset, toplength-standbeamthickness-standsideoffset, 0]){ + standbottom(); +} + +// === stand top === +translate([standoffset+standvertoffset, standsideoffset, benchheight-topheight-standbeamthickness]){ + standtop(); +} +translate([standoffset+standvertoffset, toplength-standbeamthickness-standsideoffset, benchheight-topheight-standbeamthickness]){ + standtop(); +} + +// === stand verticals === +translate([standoffset+standvertoffset, standsideoffset, standbeamthickness]){ + standvertical(); +} +translate([topdepth-standoffset-standvertoffset-standbeamthickness, standsideoffset, standbeamthickness]){ + standvertical(); +} +translate([standoffset+standvertoffset, toplength-standsideoffset-standbeamthickness, standbeamthickness]){ + standvertical(); +} +translate([topdepth-standoffset-standvertoffset-standbeamthickness, toplength-standsideoffset-standbeamthickness, standbeamthickness]){ + standvertical(); +} + +// === connector beams === +translate([topdepth-standoffset-standvertoffset-standbeamthickness/2-connectorthickness/2, standsideoffset+standbeamthickness, connectorgroundoffset]){ + connector(); +} +translate([standoffset+standvertoffset+standbeamthickness/2-connectorthickness/2, standsideoffset+standbeamthickness, connectorgroundoffset]){ + connector(); +} diff --git a/Werkbank-balken/connector.scad b/Werkbank-balken/connector.scad new file mode 100644 index 0000000..284e8aa --- /dev/null +++ b/Werkbank-balken/connector.scad @@ -0,0 +1,9 @@ +include + +module connector(){ + color("pink") + cube(size=[connectorthickness, toplength - 2*standbeamthickness - 2*standsideoffset, connectorheight], center=false); + echo("#### Connector: length = ", toplength - 2*standbeamthickness - 2*standsideoffset, " height = ", connectorheight, "width = ", connectorthickness); +} + +connector(); diff --git a/Werkbank-balken/dimensions.scad b/Werkbank-balken/dimensions.scad new file mode 100644 index 0000000..7447bb0 --- /dev/null +++ b/Werkbank-balken/dimensions.scad @@ -0,0 +1,20 @@ +// details in arcs +FN=40; + +toplength = 1500; +topdepth = 630; +topheight = 50; +topbeamthickness = 45; +topsidethickness = 50; +topslitdepth = 20; + +connectorheight = 100; +connectorthickness = 30; +connectorgroundoffset= 200; + +benchheight = 960; + +standbeamthickness = 70; +standoffset = 50; +standsideoffset = 100; +standvertoffset = 50; diff --git a/Werkbank-balken/partlist.sh b/Werkbank-balken/partlist.sh new file mode 100755 index 0000000..f0a619e --- /dev/null +++ b/Werkbank-balken/partlist.sh @@ -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)}' diff --git a/Werkbank-balken/parts b/Werkbank-balken/parts new file mode 100644 index 0000000..91fdfee --- /dev/null +++ b/Werkbank-balken/parts @@ -0,0 +1,10 @@ +0 x +1 x ECHO: "#### Back: width = ", 477, " height = ", 570 +2 x ECHO: "#### Bottom length = ", 807, " width = ", 477 +1 x ECHO: "#### Divider: width = ", 441, " height = ", 570 +1 x ECHO: "#### Middle: width = ", 441, " height = ", 570 +2 x ECHO: "#### Side panel height = ", 570, " length = ", 348 +20 x ECHO: "#### Slider: thickness = ", 18, " height = ", 18, " length = ", 300 +2 x ECHO: "#### Strengthening piece width = ", 88, " length = ", 477 +2 x ECHO: "#### Strengthening piece width = ", 88, " length = ", 631 +1 x ECHO: "#### Total height: ", 697 diff --git a/Werkbank-balken/stand.scad b/Werkbank-balken/stand.scad new file mode 100644 index 0000000..e176b6d --- /dev/null +++ b/Werkbank-balken/stand.scad @@ -0,0 +1,22 @@ +include + +module standbottom(){ + cube(size=[topdepth - 2*standoffset, standbeamthickness, standbeamthickness], center=false); + echo("#### Stand bottom beam: length = ", topdepth - 2*standoffset, " height = ", standbeamthickness, "width = ", standbeamthickness); +} + +module standtop(){ + color("blue") + cube(size=[topdepth - 2*standoffset - 2*standvertoffset, standbeamthickness, standbeamthickness], center=false); + echo("#### Stand top beam: length = ", topdepth - 2*standoffset - 2*standvertoffset, " height = ", standbeamthickness, "width = ", standbeamthickness); +} + +module standvertical(){ + color("green") + cube(size=[standbeamthickness, standbeamthickness, benchheight-topheight-2*standbeamthickness], center=false); + echo("#### Stand vertical beam: length = ", benchheight-topheight-2*standbeamthickness, " height = ", standbeamthickness, "width = ", standbeamthickness); +} + +standbottom(); +standvertical(); +standtop(); diff --git a/Werkbank-balken/top.scad b/Werkbank-balken/top.scad new file mode 100644 index 0000000..32286cf --- /dev/null +++ b/Werkbank-balken/top.scad @@ -0,0 +1,16 @@ +include + +module beam(){ + cube(size=[topbeamthickness, toplength - 2 * topsidethickness, topheight], center=false); + echo("#### Top beam: length = ", toplength - 2*topsidethickness + 2*topslitdepth, " height = ", topheight, "width = ", topbeamthickness); +} + +module topside(){ + color("red") + cube(size=[topdepth, topsidethickness, topheight], center=false); + echo("#### Top side beam: length = ", topdepth, " height = ", topheight, "width = ", topbeamthickness); +} + +beam(); +topside(); +