From 33a42a241442d734577b7497a3d1de13df69d440 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 28 Mar 2020 21:54:41 +0000 Subject: [PATCH] quacks-ingredients: Base vs Witches vs All, add them Signed-off-by: Ian Jackson --- quacks-ingredients-counts.scad | 742 +++++++++++++++++++++++++++++++ quacks-ingredients-update-levels | 4 +- 2 files changed, 745 insertions(+), 1 deletion(-) diff --git a/quacks-ingredients-counts.scad b/quacks-ingredients-counts.scad index 3b0e28f..7bd679f 100644 --- a/quacks-ingredients-counts.scad +++ b/quacks-ingredients-counts.scad @@ -623,3 +623,745 @@ module Base_Yellow(){ ////toplevel } // Base total_count=240 total_real_count=216 // Base max_rowsz=7 max_nrows=6 +module All_Black(){ ////toplevel +// All Black total=26 rowsz=6 nrows=5 + union(){ + Frame($phase, token_pitch * [ 6 + 1.00, 5 + 0.50 ]); + $nspots = 1; + translate(token_pitch * [ -2.5, -2.0 ]) Token_L(); + translate(token_pitch * [ -2.5, -1.0 ]) Token_L(); + translate(token_pitch * [ -2.5, 0.0 ]) Token_L(); + translate(token_pitch * [ -2.5, 1.0 ]) Token_L(); + translate(token_pitch * [ -2.5, 2.0 ]) Token_L(); + translate(token_pitch * [ -1.5, -2.0 ]) Token_L(); + translate(token_pitch * [ -1.5, -1.0 ]) Token_L(); + translate(token_pitch * [ -1.5, 0.0 ]) Token_L(); + translate(token_pitch * [ -1.5, 1.0 ]) Token_L(); + translate(token_pitch * [ -1.5, 2.0 ]) Token_L(); + translate(token_pitch * [ -0.5, -2.0 ]) Token_L(); + translate(token_pitch * [ -0.5, -1.0 ]) Token_L(); + translate(token_pitch * [ -0.5, 0.0 ]) Token_L(); + translate(token_pitch * [ -0.5, 1.0 ]) Token_L(); + translate(token_pitch * [ -0.5, 2.0 ]) Token_L(); + translate(token_pitch * [ 0.5, -2.0 ]) Token_L(); + translate(token_pitch * [ 0.5, -1.0 ]) Token_L(); + translate(token_pitch * [ 0.5, 0.0 ]) Token_L(); + translate(token_pitch * [ 0.5, 1.0 ]) Token_L(); + translate(token_pitch * [ 0.5, 2.0 ]) Token_L(); + translate(token_pitch * [ 1.5, -2.0 ]) Token_L(); + translate(token_pitch * [ 1.5, -1.0 ]) Token_L(); + translate(token_pitch * [ 1.5, 0.0 ]) Token_L(); + translate(token_pitch * [ 1.5, 1.0 ]) Token_L(); + translate(token_pitch * [ 1.5, 2.0 ]) Token_L(); + translate(token_pitch * [ 2.5, -2.0 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 6 + 1.00, 5 + 0.50 ]); + $nspots = 2; + }; + union(){ + Frame($phase, token_pitch * [ 6 + 1.00, 5 + 0.50 ]); + $nspots = 3; + }; + union(){ + Frame($phase, token_pitch * [ 6 + 1.00, 5 + 0.50 ]); + $nspots = 4; + }; +} +module All_Blue(){ ////toplevel +// All Blue total=52 rowsz=8 nrows=7 + union(){ + Frame($phase, token_pitch * [ 8 + 1.00, 7 + 0.50 ]); + $nspots = 1; + translate(token_pitch * [ -3.5, -3.0 ]) Token_L(); + translate(token_pitch * [ -3.5, -2.0 ]) Token_L(); + translate(token_pitch * [ -3.5, -1.0 ]) Token_L(); + translate(token_pitch * [ -3.5, 0.0 ]) Token_L(); + translate(token_pitch * [ -3.5, 1.0 ]) Token_L(); + translate(token_pitch * [ -3.5, 2.0 ]) Token_L(); + translate(token_pitch * [ -3.5, 3.0 ]) Token_L(); + translate(token_pitch * [ -2.5, -3.0 ]) Token_L(); + translate(token_pitch * [ -2.5, -2.0 ]) Token_L(); + translate(token_pitch * [ -2.5, -1.0 ]) Token_L(); + translate(token_pitch * [ -2.5, 0.0 ]) Token_L(); + translate(token_pitch * [ -2.5, 1.0 ]) Token_L(); + translate(token_pitch * [ -2.5, 2.0 ]) Token_L(); + translate(token_pitch * [ -2.5, 3.0 ]) Token_L(); + translate(token_pitch * [ -1.5, -3.0 ]) Token_L(); + translate(token_pitch * [ -1.5, -2.0 ]) Token_L(); + translate(token_pitch * [ -1.5, -1.0 ]) Token_L(); + translate(token_pitch * [ -1.5, 0.0 ]) Token_L(); + translate(token_pitch * [ -1.5, 1.0 ]) Token_L(); + translate(token_pitch * [ -1.5, 2.0 ]) Token_L(); + translate(token_pitch * [ -1.5, 3.0 ]) Token_L(); + translate(token_pitch * [ -0.5, -3.0 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 8 + 1.00, 7 + 0.50 ]); + $nspots = 2; + translate(token_pitch * [ -0.5, -2.0 ]) Token_L(); + translate(token_pitch * [ -0.5, -1.0 ]) Token_L(); + translate(token_pitch * [ -0.5, 0.0 ]) Token_L(); + translate(token_pitch * [ -0.5, 1.0 ]) Token_L(); + translate(token_pitch * [ -0.5, 2.0 ]) Token_L(); + translate(token_pitch * [ -0.5, 3.0 ]) Token_L(); + translate(token_pitch * [ 0.5, -3.0 ]) Token_L(); + translate(token_pitch * [ 0.5, -2.0 ]) Token_L(); + translate(token_pitch * [ 0.5, -1.0 ]) Token_L(); + translate(token_pitch * [ 0.5, 0.0 ]) Token_L(); + translate(token_pitch * [ 0.5, 1.0 ]) Token_L(); + translate(token_pitch * [ 0.5, 2.0 ]) Token_L(); + translate(token_pitch * [ 0.5, 3.0 ]) Token_L(); + translate(token_pitch * [ 1.5, -3.0 ]) Token_L(); + translate(token_pitch * [ 1.5, -2.0 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 8 + 1.00, 7 + 0.50 ]); + $nspots = 3; + }; + union(){ + Frame($phase, token_pitch * [ 8 + 1.00, 7 + 0.50 ]); + $nspots = 4; + translate(token_pitch * [ 1.5, -1.0 ]) Token_L(); + translate(token_pitch * [ 1.5, 0.0 ]) Token_L(); + translate(token_pitch * [ 1.5, 1.0 ]) Token_L(); + translate(token_pitch * [ 1.5, 2.0 ]) Token_L(); + translate(token_pitch * [ 1.5, 3.0 ]) Token_L(); + translate(token_pitch * [ 2.5, -3.0 ]) Token_L(); + translate(token_pitch * [ 2.5, -2.0 ]) Token_L(); + translate(token_pitch * [ 2.5, -1.0 ]) Token_L(); + translate(token_pitch * [ 2.5, 0.0 ]) Token_L(); + translate(token_pitch * [ 2.5, 1.0 ]) Token_L(); + translate(token_pitch * [ 2.5, 2.0 ]) Token_L(); + translate(token_pitch * [ 2.5, 3.0 ]) Token_L(); + translate(token_pitch * [ 3.5, -3.0 ]) Token_L(); + translate(token_pitch * [ 3.5, -2.0 ]) Token_L(); + translate(token_pitch * [ 3.5, -1.0 ]) Token_L(); + }; +} +module All_Green(){ ////toplevel +// All Green total=58 rowsz=8 nrows=8 + union(){ + Frame($phase, token_pitch * [ 8 + 1.00, 8 + 0.50 ]); + $nspots = 1; + translate(token_pitch * [ -3.5, -3.5 ]) Token_L(); + translate(token_pitch * [ -3.5, -2.5 ]) Token_L(); + translate(token_pitch * [ -3.5, -1.5 ]) Token_L(); + translate(token_pitch * [ -3.5, -0.5 ]) Token_L(); + translate(token_pitch * [ -3.5, 0.5 ]) Token_L(); + translate(token_pitch * [ -3.5, 1.5 ]) Token_L(); + translate(token_pitch * [ -3.5, 2.5 ]) Token_L(); + translate(token_pitch * [ -3.5, 3.5 ]) Token_L(); + translate(token_pitch * [ -2.5, -3.5 ]) Token_L(); + translate(token_pitch * [ -2.5, -2.5 ]) Token_L(); + translate(token_pitch * [ -2.5, -1.5 ]) Token_L(); + translate(token_pitch * [ -2.5, -0.5 ]) Token_L(); + translate(token_pitch * [ -2.5, 0.5 ]) Token_L(); + translate(token_pitch * [ -2.5, 1.5 ]) Token_L(); + translate(token_pitch * [ -2.5, 2.5 ]) Token_L(); + translate(token_pitch * [ -2.5, 3.5 ]) Token_L(); + translate(token_pitch * [ -1.5, -3.5 ]) Token_L(); + translate(token_pitch * [ -1.5, -2.5 ]) Token_L(); + translate(token_pitch * [ -1.5, -1.5 ]) Token_L(); + translate(token_pitch * [ -1.5, -0.5 ]) Token_L(); + translate(token_pitch * [ -1.5, 0.5 ]) Token_L(); + translate(token_pitch * [ -1.5, 1.5 ]) Token_L(); + translate(token_pitch * [ -1.5, 2.5 ]) Token_L(); + translate(token_pitch * [ -1.5, 3.5 ]) Token_L(); + translate(token_pitch * [ -0.5, -3.5 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 8 + 1.00, 8 + 0.50 ]); + $nspots = 2; + translate(token_pitch * [ -0.5, -2.5 ]) Token_L(); + translate(token_pitch * [ -0.5, -1.5 ]) Token_L(); + translate(token_pitch * [ -0.5, -0.5 ]) Token_L(); + translate(token_pitch * [ -0.5, 0.5 ]) Token_L(); + translate(token_pitch * [ -0.5, 1.5 ]) Token_L(); + translate(token_pitch * [ -0.5, 2.5 ]) Token_L(); + translate(token_pitch * [ -0.5, 3.5 ]) Token_L(); + translate(token_pitch * [ 0.5, -3.5 ]) Token_L(); + translate(token_pitch * [ 0.5, -2.5 ]) Token_L(); + translate(token_pitch * [ 0.5, -1.5 ]) Token_L(); + translate(token_pitch * [ 0.5, -0.5 ]) Token_L(); + translate(token_pitch * [ 0.5, 0.5 ]) Token_L(); + translate(token_pitch * [ 0.5, 1.5 ]) Token_L(); + translate(token_pitch * [ 0.5, 2.5 ]) Token_L(); + translate(token_pitch * [ 0.5, 3.5 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 8 + 1.00, 8 + 0.50 ]); + $nspots = 3; + }; + union(){ + Frame($phase, token_pitch * [ 8 + 1.00, 8 + 0.50 ]); + $nspots = 4; + translate(token_pitch * [ 1.5, -3.5 ]) Token_L(); + translate(token_pitch * [ 1.5, -2.5 ]) Token_L(); + translate(token_pitch * [ 1.5, -1.5 ]) Token_L(); + translate(token_pitch * [ 1.5, -0.5 ]) Token_L(); + translate(token_pitch * [ 1.5, 0.5 ]) Token_L(); + translate(token_pitch * [ 1.5, 1.5 ]) Token_L(); + translate(token_pitch * [ 1.5, 2.5 ]) Token_L(); + translate(token_pitch * [ 1.5, 3.5 ]) Token_L(); + translate(token_pitch * [ 2.5, -3.5 ]) Token_L(); + translate(token_pitch * [ 2.5, -2.5 ]) Token_L(); + translate(token_pitch * [ 2.5, -1.5 ]) Token_L(); + translate(token_pitch * [ 2.5, -0.5 ]) Token_L(); + translate(token_pitch * [ 2.5, 0.5 ]) Token_L(); + translate(token_pitch * [ 2.5, 1.5 ]) Token_L(); + translate(token_pitch * [ 2.5, 2.5 ]) Token_L(); + translate(token_pitch * [ 2.5, 3.5 ]) Token_L(); + translate(token_pitch * [ 3.5, -3.5 ]) Token_L(); + translate(token_pitch * [ 3.5, -2.5 ]) Token_L(); + }; +} +module All_Orange(){ ////toplevel +// All Orange total=32 rowsz=6 nrows=6 + union(){ + Frame($phase, token_pitch * [ 6 + 1.00, 6 + 0.50 ]); + $nspots = 1; + translate(token_pitch * [ -2.5, -2.5 ]) Token_L(); + translate(token_pitch * [ -2.5, -1.5 ]) Token_L(); + translate(token_pitch * [ -2.5, -0.5 ]) Token_L(); + translate(token_pitch * [ -2.5, 0.5 ]) Token_L(); + translate(token_pitch * [ -2.5, 1.5 ]) Token_L(); + translate(token_pitch * [ -2.5, 2.5 ]) Token_L(); + translate(token_pitch * [ -1.5, -2.5 ]) Token_L(); + translate(token_pitch * [ -1.5, -1.5 ]) Token_L(); + translate(token_pitch * [ -1.5, -0.5 ]) Token_L(); + translate(token_pitch * [ -1.5, 0.5 ]) Token_L(); + translate(token_pitch * [ -1.5, 1.5 ]) Token_L(); + translate(token_pitch * [ -1.5, 2.5 ]) Token_L(); + translate(token_pitch * [ -0.5, -2.5 ]) Token_L(); + translate(token_pitch * [ -0.5, -1.5 ]) Token_L(); + translate(token_pitch * [ -0.5, -0.5 ]) Token_L(); + translate(token_pitch * [ -0.5, 0.5 ]) Token_L(); + translate(token_pitch * [ -0.5, 1.5 ]) Token_L(); + translate(token_pitch * [ -0.5, 2.5 ]) Token_L(); + translate(token_pitch * [ 0.5, -2.5 ]) Token_L(); + translate(token_pitch * [ 0.5, -1.5 ]) Token_L(); + translate(token_pitch * [ 0.5, -0.5 ]) Token_L(); + translate(token_pitch * [ 0.5, 0.5 ]) Token_L(); + translate(token_pitch * [ 0.5, 1.5 ]) Token_L(); + translate(token_pitch * [ 0.5, 2.5 ]) Token_L(); + translate(token_pitch * [ 1.5, -2.5 ]) Token_L(); + translate(token_pitch * [ 1.5, -1.5 ]) Token_L(); + translate(token_pitch * [ 1.5, -0.5 ]) Token_L(); + translate(token_pitch * [ 1.5, 0.5 ]) Token_L(); + translate(token_pitch * [ 1.5, 1.5 ]) Token_L(); + translate(token_pitch * [ 1.5, 2.5 ]) Token_L(); + translate(token_pitch * [ 2.5, -2.5 ]) Token_L(); + translate(token_pitch * [ 2.5, -1.5 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 6 + 1.00, 6 + 0.50 ]); + $nspots = 2; + }; + union(){ + Frame($phase, token_pitch * [ 6 + 1.00, 6 + 0.50 ]); + $nspots = 3; + }; + union(){ + Frame($phase, token_pitch * [ 6 + 1.00, 6 + 0.50 ]); + $nspots = 4; + }; +} +module All_Purple(){ ////toplevel +// All Purple total=23 rowsz=5 nrows=5 + union(){ + Frame($phase, token_pitch * [ 5 + 1.00, 5 + 0.50 ]); + $nspots = 1; + translate(token_pitch * [ -2.0, -2.0 ]) Token_L(); + translate(token_pitch * [ -2.0, -1.0 ]) Token_L(); + translate(token_pitch * [ -2.0, 0.0 ]) Token_L(); + translate(token_pitch * [ -2.0, 1.0 ]) Token_L(); + translate(token_pitch * [ -2.0, 2.0 ]) Token_L(); + translate(token_pitch * [ -1.0, -2.0 ]) Token_L(); + translate(token_pitch * [ -1.0, -1.0 ]) Token_L(); + translate(token_pitch * [ -1.0, 0.0 ]) Token_L(); + translate(token_pitch * [ -1.0, 1.0 ]) Token_L(); + translate(token_pitch * [ -1.0, 2.0 ]) Token_L(); + translate(token_pitch * [ 0.0, -2.0 ]) Token_L(); + translate(token_pitch * [ 0.0, -1.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 0.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 1.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 2.0 ]) Token_L(); + translate(token_pitch * [ 1.0, -2.0 ]) Token_L(); + translate(token_pitch * [ 1.0, -1.0 ]) Token_L(); + translate(token_pitch * [ 1.0, 0.0 ]) Token_L(); + translate(token_pitch * [ 1.0, 1.0 ]) Token_L(); + translate(token_pitch * [ 1.0, 2.0 ]) Token_L(); + translate(token_pitch * [ 2.0, -2.0 ]) Token_L(); + translate(token_pitch * [ 2.0, -1.0 ]) Token_L(); + translate(token_pitch * [ 2.0, 0.0 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 5 + 1.00, 5 + 0.50 ]); + $nspots = 2; + }; + union(){ + Frame($phase, token_pitch * [ 5 + 1.00, 5 + 0.50 ]); + $nspots = 3; + }; + union(){ + Frame($phase, token_pitch * [ 5 + 1.00, 5 + 0.50 ]); + $nspots = 4; + }; +} +module All_Red(){ ////toplevel +// All Red total=46 rowsz=7 nrows=7 + union(){ + Frame($phase, token_pitch * [ 7 + 1.00, 7 + 0.50 ]); + $nspots = 1; + translate(token_pitch * [ -3.0, -3.0 ]) Token_L(); + translate(token_pitch * [ -3.0, -2.0 ]) Token_L(); + translate(token_pitch * [ -3.0, -1.0 ]) Token_L(); + translate(token_pitch * [ -3.0, 0.0 ]) Token_L(); + translate(token_pitch * [ -3.0, 1.0 ]) Token_L(); + translate(token_pitch * [ -3.0, 2.0 ]) Token_L(); + translate(token_pitch * [ -3.0, 3.0 ]) Token_L(); + translate(token_pitch * [ -2.0, -3.0 ]) Token_L(); + translate(token_pitch * [ -2.0, -2.0 ]) Token_L(); + translate(token_pitch * [ -2.0, -1.0 ]) Token_L(); + translate(token_pitch * [ -2.0, 0.0 ]) Token_L(); + translate(token_pitch * [ -2.0, 1.0 ]) Token_L(); + translate(token_pitch * [ -2.0, 2.0 ]) Token_L(); + translate(token_pitch * [ -2.0, 3.0 ]) Token_L(); + translate(token_pitch * [ -1.0, -3.0 ]) Token_L(); + translate(token_pitch * [ -1.0, -2.0 ]) Token_L(); + translate(token_pitch * [ -1.0, -1.0 ]) Token_L(); + translate(token_pitch * [ -1.0, 0.0 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 7 + 1.00, 7 + 0.50 ]); + $nspots = 2; + translate(token_pitch * [ -1.0, 1.0 ]) Token_L(); + translate(token_pitch * [ -1.0, 2.0 ]) Token_L(); + translate(token_pitch * [ -1.0, 3.0 ]) Token_L(); + translate(token_pitch * [ 0.0, -3.0 ]) Token_L(); + translate(token_pitch * [ 0.0, -2.0 ]) Token_L(); + translate(token_pitch * [ 0.0, -1.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 0.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 1.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 2.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 3.0 ]) Token_L(); + translate(token_pitch * [ 1.0, -3.0 ]) Token_L(); + translate(token_pitch * [ 1.0, -2.0 ]) Token_L(); + translate(token_pitch * [ 1.0, -1.0 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 7 + 1.00, 7 + 0.50 ]); + $nspots = 3; + }; + union(){ + Frame($phase, token_pitch * [ 7 + 1.00, 7 + 0.50 ]); + $nspots = 4; + translate(token_pitch * [ 1.0, 0.0 ]) Token_L(); + translate(token_pitch * [ 1.0, 1.0 ]) Token_L(); + translate(token_pitch * [ 1.0, 2.0 ]) Token_L(); + translate(token_pitch * [ 1.0, 3.0 ]) Token_L(); + translate(token_pitch * [ 2.0, -3.0 ]) Token_L(); + translate(token_pitch * [ 2.0, -2.0 ]) Token_L(); + translate(token_pitch * [ 2.0, -1.0 ]) Token_L(); + translate(token_pitch * [ 2.0, 0.0 ]) Token_L(); + translate(token_pitch * [ 2.0, 1.0 ]) Token_L(); + translate(token_pitch * [ 2.0, 2.0 ]) Token_L(); + translate(token_pitch * [ 2.0, 3.0 ]) Token_L(); + translate(token_pitch * [ 3.0, -3.0 ]) Token_L(); + translate(token_pitch * [ 3.0, -2.0 ]) Token_L(); + translate(token_pitch * [ 3.0, -1.0 ]) Token_L(); + translate(token_pitch * [ 3.0, 0.0 ]) Token_L(); + }; +} +module All_White(){ ////toplevel +// All White total=43 rowsz=7 nrows=7 + union(){ + Frame($phase, token_pitch * [ 7 + 1.00, 7 + 0.50 ]); + $nspots = 1; + translate(token_pitch * [ -3.0, -3.0 ]) Token_L(); + translate(token_pitch * [ -3.0, -2.0 ]) Token_L(); + translate(token_pitch * [ -3.0, -1.0 ]) Token_L(); + translate(token_pitch * [ -3.0, 0.0 ]) Token_L(); + translate(token_pitch * [ -3.0, 1.0 ]) Token_L(); + translate(token_pitch * [ -3.0, 2.0 ]) Token_L(); + translate(token_pitch * [ -3.0, 3.0 ]) Token_L(); + translate(token_pitch * [ -2.0, -3.0 ]) Token_L(); + translate(token_pitch * [ -2.0, -2.0 ]) Token_L(); + translate(token_pitch * [ -2.0, -1.0 ]) Token_L(); + translate(token_pitch * [ -2.0, 0.0 ]) Token_L(); + translate(token_pitch * [ -2.0, 1.0 ]) Token_L(); + translate(token_pitch * [ -2.0, 2.0 ]) Token_L(); + translate(token_pitch * [ -2.0, 3.0 ]) Token_L(); + translate(token_pitch * [ -1.0, -3.0 ]) Token_L(); + translate(token_pitch * [ -1.0, -2.0 ]) Token_L(); + translate(token_pitch * [ -1.0, -1.0 ]) Token_L(); + translate(token_pitch * [ -1.0, 0.0 ]) Token_L(); + translate(token_pitch * [ -1.0, 1.0 ]) Token_L(); + translate(token_pitch * [ -1.0, 2.0 ]) Token_L(); + translate(token_pitch * [ -1.0, 3.0 ]) Token_L(); + translate(token_pitch * [ 0.0, -3.0 ]) Token_L(); + translate(token_pitch * [ 0.0, -2.0 ]) Token_L(); + translate(token_pitch * [ 0.0, -1.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 0.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 1.0 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 7 + 1.00, 7 + 0.50 ]); + $nspots = 2; + translate(token_pitch * [ 0.0, 2.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 3.0 ]) Token_L(); + translate(token_pitch * [ 1.0, -3.0 ]) Token_L(); + translate(token_pitch * [ 1.0, -2.0 ]) Token_L(); + translate(token_pitch * [ 1.0, -1.0 ]) Token_L(); + translate(token_pitch * [ 1.0, 0.0 ]) Token_L(); + translate(token_pitch * [ 1.0, 1.0 ]) Token_L(); + translate(token_pitch * [ 1.0, 2.0 ]) Token_L(); + translate(token_pitch * [ 1.0, 3.0 ]) Token_L(); + translate(token_pitch * [ 2.0, -3.0 ]) Token_L(); + translate(token_pitch * [ 2.0, -2.0 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 7 + 1.00, 7 + 0.50 ]); + $nspots = 3; + translate(token_pitch * [ 2.0, -1.0 ]) Token_L(); + translate(token_pitch * [ 2.0, 0.0 ]) Token_L(); + translate(token_pitch * [ 2.0, 1.0 ]) Token_L(); + translate(token_pitch * [ 2.0, 2.0 ]) Token_L(); + translate(token_pitch * [ 2.0, 3.0 ]) Token_L(); + translate(token_pitch * [ 3.0, -3.0 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 7 + 1.00, 7 + 0.50 ]); + $nspots = 4; + }; +} +module All_Yellow(){ ////toplevel +// All Yellow total=45 rowsz=7 nrows=7 + union(){ + Frame($phase, token_pitch * [ 7 + 1.00, 7 + 0.50 ]); + $nspots = 1; + translate(token_pitch * [ -3.0, -3.0 ]) Token_L(); + translate(token_pitch * [ -3.0, -2.0 ]) Token_L(); + translate(token_pitch * [ -3.0, -1.0 ]) Token_L(); + translate(token_pitch * [ -3.0, 0.0 ]) Token_L(); + translate(token_pitch * [ -3.0, 1.0 ]) Token_L(); + translate(token_pitch * [ -3.0, 2.0 ]) Token_L(); + translate(token_pitch * [ -3.0, 3.0 ]) Token_L(); + translate(token_pitch * [ -2.0, -3.0 ]) Token_L(); + translate(token_pitch * [ -2.0, -2.0 ]) Token_L(); + translate(token_pitch * [ -2.0, -1.0 ]) Token_L(); + translate(token_pitch * [ -2.0, 0.0 ]) Token_L(); + translate(token_pitch * [ -2.0, 1.0 ]) Token_L(); + translate(token_pitch * [ -2.0, 2.0 ]) Token_L(); + translate(token_pitch * [ -2.0, 3.0 ]) Token_L(); + translate(token_pitch * [ -1.0, -3.0 ]) Token_L(); + translate(token_pitch * [ -1.0, -2.0 ]) Token_L(); + translate(token_pitch * [ -1.0, -1.0 ]) Token_L(); + translate(token_pitch * [ -1.0, 0.0 ]) Token_L(); + translate(token_pitch * [ -1.0, 1.0 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 7 + 1.00, 7 + 0.50 ]); + $nspots = 2; + translate(token_pitch * [ -1.0, 2.0 ]) Token_L(); + translate(token_pitch * [ -1.0, 3.0 ]) Token_L(); + translate(token_pitch * [ 0.0, -3.0 ]) Token_L(); + translate(token_pitch * [ 0.0, -2.0 ]) Token_L(); + translate(token_pitch * [ 0.0, -1.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 0.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 1.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 2.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 3.0 ]) Token_L(); + translate(token_pitch * [ 1.0, -3.0 ]) Token_L(); + translate(token_pitch * [ 1.0, -2.0 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 7 + 1.00, 7 + 0.50 ]); + $nspots = 3; + }; + union(){ + Frame($phase, token_pitch * [ 7 + 1.00, 7 + 0.50 ]); + $nspots = 4; + translate(token_pitch * [ 1.0, -1.0 ]) Token_L(); + translate(token_pitch * [ 1.0, 0.0 ]) Token_L(); + translate(token_pitch * [ 1.0, 1.0 ]) Token_L(); + translate(token_pitch * [ 1.0, 2.0 ]) Token_L(); + translate(token_pitch * [ 1.0, 3.0 ]) Token_L(); + translate(token_pitch * [ 2.0, -3.0 ]) Token_L(); + translate(token_pitch * [ 2.0, -2.0 ]) Token_L(); + translate(token_pitch * [ 2.0, -1.0 ]) Token_L(); + translate(token_pitch * [ 2.0, 0.0 ]) Token_L(); + translate(token_pitch * [ 2.0, 1.0 ]) Token_L(); + translate(token_pitch * [ 2.0, 2.0 ]) Token_L(); + translate(token_pitch * [ 2.0, 3.0 ]) Token_L(); + translate(token_pitch * [ 3.0, -3.0 ]) Token_L(); + translate(token_pitch * [ 3.0, -2.0 ]) Token_L(); + translate(token_pitch * [ 3.0, -1.0 ]) Token_L(); + }; +} +// All total_count=325 total_real_count=325 +// All max_rowsz=8 max_nrows=8 +module Witches_Black(){ ////toplevel +// Witches Black total= 8 rowsz=3 nrows=3 + union(){ + Frame($phase, token_pitch * [ 3 + 1.00, 3 + 0.50 ]); + $nspots = 1; + translate(token_pitch * [ -1.0, -1.0 ]) Token_L(); + translate(token_pitch * [ -1.0, 0.0 ]) Token_L(); + translate(token_pitch * [ -1.0, 1.0 ]) Token_L(); + translate(token_pitch * [ 0.0, -1.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 0.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 1.0 ]) Token_L(); + translate(token_pitch * [ 1.0, -1.0 ]) Token_L(); + translate(token_pitch * [ 1.0, 0.0 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 3 + 1.00, 3 + 0.50 ]); + $nspots = 2; + }; + union(){ + Frame($phase, token_pitch * [ 3 + 1.00, 3 + 0.50 ]); + $nspots = 3; + }; + union(){ + Frame($phase, token_pitch * [ 3 + 1.00, 3 + 0.50 ]); + $nspots = 4; + }; +} +module Witches_Blue(){ ////toplevel +// Witches Blue total=18 rowsz=5 nrows=4 + union(){ + Frame($phase, token_pitch * [ 5 + 1.00, 4 + 0.50 ]); + $nspots = 1; + translate(token_pitch * [ -2.0, -1.5 ]) Token_L(); + translate(token_pitch * [ -2.0, -0.5 ]) Token_L(); + translate(token_pitch * [ -2.0, 0.5 ]) Token_L(); + translate(token_pitch * [ -2.0, 1.5 ]) Token_L(); + translate(token_pitch * [ -1.0, -1.5 ]) Token_L(); + translate(token_pitch * [ -1.0, -0.5 ]) Token_L(); + translate(token_pitch * [ -1.0, 0.5 ]) Token_L(); + translate(token_pitch * [ -1.0, 1.5 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 5 + 1.00, 4 + 0.50 ]); + $nspots = 2; + translate(token_pitch * [ 0.0, -1.5 ]) Token_L(); + translate(token_pitch * [ 0.0, -0.5 ]) Token_L(); + translate(token_pitch * [ 0.0, 0.5 ]) Token_L(); + translate(token_pitch * [ 0.0, 1.5 ]) Token_L(); + translate(token_pitch * [ 1.0, -1.5 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 5 + 1.00, 4 + 0.50 ]); + $nspots = 3; + }; + union(){ + Frame($phase, token_pitch * [ 5 + 1.00, 4 + 0.50 ]); + $nspots = 4; + translate(token_pitch * [ 1.0, -0.5 ]) Token_L(); + translate(token_pitch * [ 1.0, 0.5 ]) Token_L(); + translate(token_pitch * [ 1.0, 1.5 ]) Token_L(); + translate(token_pitch * [ 2.0, -1.5 ]) Token_L(); + translate(token_pitch * [ 2.0, -0.5 ]) Token_L(); + }; +} +module Witches_Green(){ ////toplevel +// Witches Green total=20 rowsz=5 nrows=4 + union(){ + Frame($phase, token_pitch * [ 5 + 1.00, 4 + 0.50 ]); + $nspots = 1; + translate(token_pitch * [ -2.0, -1.5 ]) Token_L(); + translate(token_pitch * [ -2.0, -0.5 ]) Token_L(); + translate(token_pitch * [ -2.0, 0.5 ]) Token_L(); + translate(token_pitch * [ -2.0, 1.5 ]) Token_L(); + translate(token_pitch * [ -1.0, -1.5 ]) Token_L(); + translate(token_pitch * [ -1.0, -0.5 ]) Token_L(); + translate(token_pitch * [ -1.0, 0.5 ]) Token_L(); + translate(token_pitch * [ -1.0, 1.5 ]) Token_L(); + translate(token_pitch * [ 0.0, -1.5 ]) Token_L(); + translate(token_pitch * [ 0.0, -0.5 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 5 + 1.00, 4 + 0.50 ]); + $nspots = 2; + translate(token_pitch * [ 0.0, 0.5 ]) Token_L(); + translate(token_pitch * [ 0.0, 1.5 ]) Token_L(); + translate(token_pitch * [ 1.0, -1.5 ]) Token_L(); + translate(token_pitch * [ 1.0, -0.5 ]) Token_L(); + translate(token_pitch * [ 1.0, 0.5 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 5 + 1.00, 4 + 0.50 ]); + $nspots = 3; + }; + union(){ + Frame($phase, token_pitch * [ 5 + 1.00, 4 + 0.50 ]); + $nspots = 4; + translate(token_pitch * [ 1.0, 1.5 ]) Token_L(); + translate(token_pitch * [ 2.0, -1.5 ]) Token_L(); + translate(token_pitch * [ 2.0, -0.5 ]) Token_L(); + translate(token_pitch * [ 2.0, 0.5 ]) Token_L(); + translate(token_pitch * [ 2.0, 1.5 ]) Token_L(); + }; +} +module Witches_Orange(){ ////toplevel +// Witches Orange total=12 rowsz=4 nrows=3 + union(){ + Frame($phase, token_pitch * [ 4 + 1.00, 3 + 0.50 ]); + $nspots = 1; + translate(token_pitch * [ -1.5, -1.0 ]) Token_L(); + translate(token_pitch * [ -1.5, 0.0 ]) Token_L(); + translate(token_pitch * [ -1.5, 1.0 ]) Token_L(); + translate(token_pitch * [ -0.5, -1.0 ]) Token_L(); + translate(token_pitch * [ -0.5, 0.0 ]) Token_L(); + translate(token_pitch * [ -0.5, 1.0 ]) Token_L(); + translate(token_pitch * [ 0.5, -1.0 ]) Token_L(); + translate(token_pitch * [ 0.5, 0.0 ]) Token_L(); + translate(token_pitch * [ 0.5, 1.0 ]) Token_L(); + translate(token_pitch * [ 1.5, -1.0 ]) Token_L(); + translate(token_pitch * [ 1.5, 0.0 ]) Token_L(); + translate(token_pitch * [ 1.5, 1.0 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 4 + 1.00, 3 + 0.50 ]); + $nspots = 2; + }; + union(){ + Frame($phase, token_pitch * [ 4 + 1.00, 3 + 0.50 ]); + $nspots = 3; + }; + union(){ + Frame($phase, token_pitch * [ 4 + 1.00, 3 + 0.50 ]); + $nspots = 4; + }; +} +module Witches_Purple(){ ////toplevel +// Witches Purple total= 8 rowsz=3 nrows=3 + union(){ + Frame($phase, token_pitch * [ 3 + 1.00, 3 + 0.50 ]); + $nspots = 1; + translate(token_pitch * [ -1.0, -1.0 ]) Token_L(); + translate(token_pitch * [ -1.0, 0.0 ]) Token_L(); + translate(token_pitch * [ -1.0, 1.0 ]) Token_L(); + translate(token_pitch * [ 0.0, -1.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 0.0 ]) Token_L(); + translate(token_pitch * [ 0.0, 1.0 ]) Token_L(); + translate(token_pitch * [ 1.0, -1.0 ]) Token_L(); + translate(token_pitch * [ 1.0, 0.0 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 3 + 1.00, 3 + 0.50 ]); + $nspots = 2; + }; + union(){ + Frame($phase, token_pitch * [ 3 + 1.00, 3 + 0.50 ]); + $nspots = 3; + }; + union(){ + Frame($phase, token_pitch * [ 3 + 1.00, 3 + 0.50 ]); + $nspots = 4; + }; +} +module Witches_Red(){ ////toplevel +// Witches Red total=16 rowsz=4 nrows=4 + union(){ + Frame($phase, token_pitch * [ 4 + 1.00, 4 + 0.50 ]); + $nspots = 1; + translate(token_pitch * [ -1.5, -1.5 ]) Token_L(); + translate(token_pitch * [ -1.5, -0.5 ]) Token_L(); + translate(token_pitch * [ -1.5, 0.5 ]) Token_L(); + translate(token_pitch * [ -1.5, 1.5 ]) Token_L(); + translate(token_pitch * [ -0.5, -1.5 ]) Token_L(); + translate(token_pitch * [ -0.5, -0.5 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 4 + 1.00, 4 + 0.50 ]); + $nspots = 2; + translate(token_pitch * [ -0.5, 0.5 ]) Token_L(); + translate(token_pitch * [ -0.5, 1.5 ]) Token_L(); + translate(token_pitch * [ 0.5, -1.5 ]) Token_L(); + translate(token_pitch * [ 0.5, -0.5 ]) Token_L(); + translate(token_pitch * [ 0.5, 0.5 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 4 + 1.00, 4 + 0.50 ]); + $nspots = 3; + }; + union(){ + Frame($phase, token_pitch * [ 4 + 1.00, 4 + 0.50 ]); + $nspots = 4; + translate(token_pitch * [ 0.5, 1.5 ]) Token_L(); + translate(token_pitch * [ 1.5, -1.5 ]) Token_L(); + translate(token_pitch * [ 1.5, -0.5 ]) Token_L(); + translate(token_pitch * [ 1.5, 0.5 ]) Token_L(); + translate(token_pitch * [ 1.5, 1.5 ]) Token_L(); + }; +} +module Witches_White(){ ////toplevel +// Witches White total=11 rowsz=4 nrows=3 + union(){ + Frame($phase, token_pitch * [ 4 + 1.00, 3 + 0.50 ]); + $nspots = 1; + translate(token_pitch * [ -1.5, -1.0 ]) Token_L(); + translate(token_pitch * [ -1.5, 0.0 ]) Token_L(); + translate(token_pitch * [ -1.5, 1.0 ]) Token_L(); + translate(token_pitch * [ -0.5, -1.0 ]) Token_L(); + translate(token_pitch * [ -0.5, 0.0 ]) Token_L(); + translate(token_pitch * [ -0.5, 1.0 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 4 + 1.00, 3 + 0.50 ]); + $nspots = 2; + translate(token_pitch * [ 0.5, -1.0 ]) Token_L(); + translate(token_pitch * [ 0.5, 0.0 ]) Token_L(); + translate(token_pitch * [ 0.5, 1.0 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 4 + 1.00, 3 + 0.50 ]); + $nspots = 3; + translate(token_pitch * [ 1.5, -1.0 ]) Token_L(); + translate(token_pitch * [ 1.5, 0.0 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 4 + 1.00, 3 + 0.50 ]); + $nspots = 4; + }; +} +module Witches_Yellow(){ ////toplevel +// Witches Yellow total=16 rowsz=4 nrows=4 + union(){ + Frame($phase, token_pitch * [ 4 + 1.00, 4 + 0.50 ]); + $nspots = 1; + translate(token_pitch * [ -1.5, -1.5 ]) Token_L(); + translate(token_pitch * [ -1.5, -0.5 ]) Token_L(); + translate(token_pitch * [ -1.5, 0.5 ]) Token_L(); + translate(token_pitch * [ -1.5, 1.5 ]) Token_L(); + translate(token_pitch * [ -0.5, -1.5 ]) Token_L(); + translate(token_pitch * [ -0.5, -0.5 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 4 + 1.00, 4 + 0.50 ]); + $nspots = 2; + translate(token_pitch * [ -0.5, 0.5 ]) Token_L(); + translate(token_pitch * [ -0.5, 1.5 ]) Token_L(); + translate(token_pitch * [ 0.5, -1.5 ]) Token_L(); + translate(token_pitch * [ 0.5, -0.5 ]) Token_L(); + translate(token_pitch * [ 0.5, 0.5 ]) Token_L(); + }; + union(){ + Frame($phase, token_pitch * [ 4 + 1.00, 4 + 0.50 ]); + $nspots = 3; + }; + union(){ + Frame($phase, token_pitch * [ 4 + 1.00, 4 + 0.50 ]); + $nspots = 4; + translate(token_pitch * [ 0.5, 1.5 ]) Token_L(); + translate(token_pitch * [ 1.5, -1.5 ]) Token_L(); + translate(token_pitch * [ 1.5, -0.5 ]) Token_L(); + translate(token_pitch * [ 1.5, 0.5 ]) Token_L(); + translate(token_pitch * [ 1.5, 1.5 ]) Token_L(); + }; +} +// Witches total_count=109 total_real_count=109 +// Witches max_rowsz=5 max_nrows=4 diff --git a/quacks-ingredients-update-levels b/quacks-ingredients-update-levels index 86ccfba..395770d 100755 --- a/quacks-ingredients-update-levels +++ b/quacks-ingredients-update-levels @@ -20,7 +20,9 @@ cat >$f.tmp <>$f.tmp +for which in Base All Witches; do + ./quacks-ingredients-counts $which >>$f.tmp +done mv -f $f.tmp $f egrep '^// [A-Z][a-z]* *[A-Za-z]' $f | sort -- 2.30.2