-module Demo(){
- color("red") { Token_L3(); }
- color("white") { Token_L1(); Token_L5(); }
- color("black") { Token_L2(); Token_L4(); }
+module Frame(phase, base_sz) {
+ zs = [ initial_layer_thick,
+ initial_layer_thick,
+ thick,
+ thick,
+ thick ];
+
+ sz = base_sz + phase * initial_layer_width * 2 * [1,1];
+ linear_extrude(height= initial_layer_thick) {
+ difference(){
+ square(center=true, sz + initial_layer_width * 2 * [1,1]);
+ square(center=true, sz);
+ }
+ }
+ // Priming tower
+ translate([-base_sz[0]/2, (2.8-phase)*(multicolour_post*1.7)])
+ linear_extrude(height= zs[phase-1])
+ square(multicolour_post);
+}
+
+module Tests(){
+ for ($nspots = [1,2,3,4]) {
+ translate(($nspots - 2) * token_pitch * [1,0])
+ children();
+ }
+}
+
+module Tests_L() { ////toplevel
+ Frame($phase, token_dia * [ 6, 1.5 ]);
+ Tests() Token_L();