diff options
-rw-r--r-- | lasttretrad.scad | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/lasttretrad.scad b/lasttretrad.scad index 6c9e2d8..f0dd6a0 100644 --- a/lasttretrad.scad +++ b/lasttretrad.scad @@ -1,16 +1,46 @@ use <wheel.scad>; +// total outer dimension of the lasttretrad +ltr_length = 3000; +ltr_width = 1000; +ltr_height = 160; + +bed_height = 18; + module frame() { - l=3000; - w=1000; - h=160; - translate([-l/2, -w/2, 0]) - cube([l, w, h]); + board_width=25; + board_height=120; + bessel=sqrt(3/2) -1; + + // translate([-l/2, -w/2, 0]) + // cube([l, w, h]); + translate([0, 0, -board_height - bed_height]) { + // front/back boards + for (pos = [-0.9, -0.4, 0, 0.4, 0.9]) + translate([pos * (ltr_length - board_width)/2 - board_width + board_width/2, -ltr_width/2, 0]) + cube([board_width, ltr_width, board_height]); + + // left/right boards + + // Positioned at the bessel points (yields minimal mean bend + // assuming equal load on the cargo bed); see + // https://de.wikipedia.org/wiki/Bessel-Punkt + for (pos = [-1,1]) + translate([-ltr_length/2, pos * (1 - 2*bessel) * (ltr_width - board_width)/2 - board_width/2, 0]) + cube([ltr_length, board_width, board_height]); + } } +// use a large plywood board +module cargo_bed() { + translate([0, 0, -bed_height/2]) + cube([ltr_length, ltr_width, bed_height], center=true); +} + + // specify (f)ront/(c)enter/(b)ack as -1/0/1 and (l)eft/(r)ight as -1/1 module wheel_position(fcb, lr) { - translate([1300 * fcb, 450 * lr, -250]) + translate([1300 * fcb, 450 * lr, -350]) children(); } @@ -28,6 +58,7 @@ module powered_wheel(lr=-1) { module lasttretrad() { frame(); + cargo_bed(); for (lr = [-1,1]) for (fb = [-1,1]) |