3 // caller should define
5 // z_pause = 2; // higher than any thing in the model
6 // total_sz = [ 200, 141 ];
7 // phases=4; // how many phases
15 // Pause height z_pause value from caller
23 // when z pause occurs
24 // * set feed rate to 10% (or whatever minimum is)
25 // * press knob, printer will start
26 // * quickly, press again, select "stop"
28 // * set feed rate back to 100%
29 // * now change filament etc., start next file
33 $test_thicker = 1.0; // 2.5;
35 th_l0 = .425 * $test_thicker;
36 th_l1 = .250 * $test_thicker;
40 th_most = th_l0 + th_l1*2;
45 multicolour_gap = 0.15; // each side
47 underlayer_smaller = 0.35; // each side
49 total_sz_actual = $test ? $test : total_sz;
51 module Interlayer_Bigger(){
52 offset(r=multicolour_gap, $fn=20){
53 union(){ children(); }
57 module Interlayer_Smaller(){
58 offset(r=-multicolour_gap, $fn=20){
59 union(){ children(); }
63 module Underlayer_Smaller(){
64 offset(r=-underlayer_smaller, $fn=20){
65 union(){ children(); }
69 module FloatingPhaseFraming(phase, zmin) {
72 + noz_gap * [2,2] * (phase > 0 ? phase : 0.5);
80 + noz_gap * [1,0] * (phases - phase)
81 + -[1,0] * tower_w + 0.5 * [0,-1] * frame_w;
83 // frame for alignment
84 linear_extrude(height= th_l0)
86 square(frame_outer, center=true);
87 square(frame_inner, center=true);
90 // tower to avoid diagonal traverse to start position
91 linear_extrude(height= zmin + th_l1)
93 square([1,1] * tower_w);
95 // trick to pause rather than finishing
96 if (phase != phases-1)
97 translate([0,0, z_pause+th_l1])
100 square([1,1] * tower_w);
103 echo(str("SET PAUSE AT Z HEIGHT TO ",z_pause));