X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=quacks-ingredients.scad;h=6925a1b8cc34ca3f4b314ad550aafe983959a689;hb=3c1da07f2c510b741d2a83025220c7c1b70aab44;hp=71a3bd60359b20b86aa9115e0be1a1c8bc11cf43;hpb=d3ba35154fff3230c0e241726183795e557673ae;p=reprap-play.git diff --git a/quacks-ingredients.scad b/quacks-ingredients.scad index 71a3bd6..6925a1b 100644 --- a/quacks-ingredients.scad +++ b/quacks-ingredients.scad @@ -1,23 +1,44 @@ // -*- C -*- -token_dia = 18; -spot_dia = 4; +// +// git clean -xdff +// ./quacks-ingredients-update-levels +// make autoincs +// +// make -j8 quacks-stls 2>&1 | tee log +// OR EG +// make -j8 quacks-ingredients-L{1,2,3,4,5},Base_Yellow.auto.stl +// +// ./quacks-ingredients-make-copy-gcodes Base_Yellow etc. +// +// Print Q-P-1 in spots, Q-P-2 in main colour, Q-P-3 in spots +// +// For colours which only have zero-spot counters, print only Q-P-2 + +token_dia = 20; +spot_dia = 4.3; spot_gap = spot_dia / 3.0; -thick = 1.5; +thick = 3.0; -multicolour_gap = 0.15; // each side +multicolour_gap = 0.075; // each side initial_layer_thick = 0.400; -//initial_layer_width = 0.750; -final_layer_thick = 0.250; - -$nspots = 3; -$spots_absent = false; -$spots_plusgap = false; +initial_layer_width = 0.750; +final_layer_thick = 0.500; +multicolour_post = 4; $fs=0.1; $fa=1; +// calculated + +token_pitch = token_dia + 3; + +// autoadjusted + +$spots_absent = false; +$spots_plusgap = false; + module Spots_Extrude_Lower(){ d = $spots_plusgap ? 1 : 0; translate([0,0,-d]) @@ -35,11 +56,9 @@ module Spots_Extrude_Upper(){ module SpotAt(condition, xy) { if (condition == !$spots_absent) { - echo(condition, $spots_absent, "Y"); translate(xy * (spot_gap + spot_dia) * sqrt(0.5)) - circle(r= spot_dia/2); - } else { - echo(condition, $spots_absent, "N"); + circle(r= spot_dia/2 + + ($spots_plusgap ? multicolour_gap : 0)); } } @@ -88,10 +107,39 @@ module Token_L5(){ Token_Spots(); } -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(); } -Demo(); +//// toplevels-from: +include + +//Demo();