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])  | 
