diff --git a/examples/Schnittdaten-Skripte/FabLab Nürnberg/MiniFocusTest.ls b/examples/Schnittdaten-Skripte/FabLab Nürnberg/MiniFocusTest.ls new file mode 100644 index 0000000..017db83 --- /dev/null +++ b/examples/Schnittdaten-Skripte/FabLab Nürnberg/MiniFocusTest.ls @@ -0,0 +1,40 @@ +// +// MiniFocusTest.ls +// +// Draw a scale of -10..0..+10 focus lines. +// +// (c) 2016, juergen@fabmail.org +// Distribute under GPL-2.0 or ask. +// + +scale=2.0 +x_off=2.0 +y_off=2.0 + +function move_s(x, y) { move(x*scale+x_off, y*scale+y_off); } +function line_s(x, y) { line(x*scale+x_off, y*scale+y_off); } + +function set_mark() +{ + set("power", 5); + set("speed", 100); // marking text +} + +// hor. focus_test (left hand side) +for (var f = -10; f < 11; f++) +{ + set("focus", f); + var h = 0; if (f % 5) h += 3; + move_s(10+f,h); line_s(10+f,7); +} +set("focus", 0); +move_s(2.5-1, 1.5); line_s(2.5+1, 1.5); // - +move_s(2.5+1.5, 1.5); line_s(2.5,0); line_s(2.5-1.5, 1.5); + +for (var i = 1; i < 6; i++) + { + move_s(10-i, 0); line_s(10, 3); line_s(10+i, 0); // <<<< + } +move_s(17.5-1, 1.5); line_s(17.5+1, 1.5); move_s(17.5,0.5); line_s(17.5,2.5); // + +move_s(17.5+1.5, 1.5); line_s(17.5+0, 3); line_s(17.5-1.5, 1.5); + diff --git a/examples/Schnittdaten-Skripte/FabLab Nürnberg/PowerSpeedFocusTest.ls b/examples/Schnittdaten-Skripte/FabLab Nürnberg/PowerSpeedFocusTest.ls new file mode 100644 index 0000000..1571c74 --- /dev/null +++ b/examples/Schnittdaten-Skripte/FabLab Nürnberg/PowerSpeedFocusTest.ls @@ -0,0 +1,241 @@ +// +// PowerSpeedTest.ls +// +// Draw a row of rectangles, and adjacent text (from a 7 segment font) +// ramping up power from 5 to 100 %, then ramping down speed from 100 to 5% +// +// (c) 2016, juergen@fabmail.org +// Distribute under GPL-2.0 or ask. +// + +scale=1/1.5 +x_off=2.0 +y_off=2.0 + +// use twolines_break=0 to render all in one line. +twolines_break=0 // 152 +twolines_stride=28 + + // 0 1 2 3 4 5 6 + // -------------------- +s7__ = [ 0, 0, 0, 0, 0, 0, 0 ] +s7_0 = [ 1, 1, 0, 1, 1, 1, 1 ] +s7_1 = [ 0, 1, 0, 1, 0, 0, 0 ] +s7_2 = [ 1, 1, 1, 0, 1, 1, 0 ] +s7_3 = [ 1, 1, 1, 1, 1, 0, 0 ] +s7_4 = [ 0, 1, 1, 1, 0, 0, 1 ] +s7_5 = [ 1, 0, 1, 1, 1, 0, 1 ] +s7_6 = [ 0, 0, 1, 1, 1, 1, 1 ] +s7_7 = [ 1, 1, 0, 1, 0, 0, 0 ] +s7_8 = [ 1, 1, 1, 1, 1, 1, 1 ] +s7_9 = [ 1, 1, 1, 1, 0, 0, 1 ] +s7_A = [ 1, 1, 1, 1, 0, 1, 1 ] +s7_C = [ 1, 0, 0, 0, 1, 1, 1 ] +s7_E = [ 1, 0, 1, 0, 1, 1, 1 ] +s7_F = [ 1, 0, 1, 0, 0, 1, 1 ] +s7_J = [ 0, 1, 0, 1, 1, 1, 0 ] // L+J => W +s7_L = [ 0, 0, 0, 0, 1, 1, 1 ] +s7_P = [ 1, 1, 1, 0, 0, 5, 1 ] +s7_U = [ 0, 1, 0, 1, 1, 1, 1 ] +s7_D = s7_0 +s7_R = s7_A +s7_S = s7_5 +s7_O = s7_0 + +// segment order +// 0 +// 6 1 +// 2 +// 5 3 +// 4 + +pow = [ 5, 10, 15, 20, 30, 40, 50, 60, 70, 80, 90, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] +spe = [ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 90, 80, 70, 60, 50, 40, 30, 20, 15, 10, 5 ] + +pow_text = [ s7__, s7__, s7_5, s7__, + s7__, s7_1, s7_0, s7__, + s7__, s7_1, s7_5, s7__, + s7__, s7_2, s7_0, s7__, + s7__, s7_3, s7_0, s7__, + s7__, s7_4, s7_0, s7__, + s7__, s7_5, s7_0, s7__, + s7__, s7_6, s7_0, s7__, + s7__, s7_7, s7_0, s7__, + s7__, s7_8, s7_0, s7__, + s7__, s7_9, s7_0, s7__, + + s7_1, s7_0, s7_0, s7__, + + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__ ] + +spe_text = [ s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + + s7_1, s7_0, s7_0, s7__, + + s7__, s7_9, s7_0, s7__, + s7__, s7_8, s7_0, s7__, + s7__, s7_7, s7_0, s7__, + s7__, s7_6, s7_0, s7__, + s7__, s7_5, s7_0, s7__, + s7__, s7_4, s7_0, s7__, + s7__, s7_3, s7_0, s7__, + s7__, s7_2, s7_0, s7__, + s7__, s7_1, s7_5, s7__, + s7__, s7_1, s7_0, s7__, + s7__, s7__, s7_5, s7__ ] + +if (twolines_break) + { + function move_s(x, y) + { + if (x > twolines_break) + move((x-twolines_break)*scale+x_off, (y+twolines_stride)*scale+y_off); + else + move(x*scale+x_off, y*scale+y_off); + } + function line_s(x, y) + { + if (x > twolines_break) + line((x-twolines_break)*scale+x_off, (y+twolines_stride)*scale+y_off); + else + line(x*scale+x_off, y*scale+y_off); + } + } +else + { + function move_s(x, y) { move(x*scale+x_off, y*scale+y_off); } + function line_s(x, y) { line(x*scale+x_off, y*scale+y_off); } + } + +// top left corner is 0,0. +function seg7(x, y, w, h, a) +{ + if (a[0]) { move_s(x, y); line_s(x+w,y); } + if (a[1]) { move_s(x+w,y); line_s(x+w,y+0.5*h); } + if (a[2]) { move_s(x, y+0.5*h); line_s(x+w,y+0.5*h); } + if (a[3]) { move_s(x+w,y+0.5*h); line_s(x+w,y+h); } + if (a[4]) { move_s(x, y+h); line_s(x+w,y+h); } + if (a[5]) { move_s(x, y+0.5*h); line_s(x, y+h); } + if (a[6]) { move_s(x, y); line_s(x, y+0.5*h); } +} + +function rect(x, y, width, height) +{ + move_s(x, y); + line_s(x+width, y); + line_s(x+width, y+height); + line_s(x, y+height); + line_s(x, y); +} + +function set_mark() +{ + set("power", 5); + set("speed", 100); // marking text +} + +// start of code execution here. + +// the border rectangle is without prior seting of speed or power +// this makes the settings of the cut dialog effective for the border. +if (twolines_break) + { + xend = (2*x_off + 1*twolines_break + 3 ) * scale; + yend = (2*y_off + 2*twolines_stride - 2 ) * scale; + } +else + { + xend = (2*x_off + 304 + 3 ) * scale; + yend = (2*y_off + 1*twolines_stride - 2 ) * scale; + } +move(0,0); +line(xend, 0); +line(xend, yend); +line(0, yend); +line(0,0); + +set_mark(); +seg7(0,0, 3,5, s7_P); // POWER +seg7(4,0, 3,5, s7_O); +seg7(8,0, 3,5, s7_L); +seg7(11,0, 3,5, s7_J); +// seg7(15,0, 3,5, s7_E); // ugly +// seg7(19,0, 3,5, s7_R); // ugly + +seg7(0,7, 3,5, s7_S); // SPEED +seg7(4,7, 3,5, s7_P); +seg7(8,7, 3,5, s7_E); +seg7(12,7, 3,5, s7_E); +// seg7(16,7, 3,5, s7_D); // ugly + +// hor. focus_test (left hand side) +for (var f = -10; f < 11; f++) +{ + set("focus", f); + var h = 14; if (f % 5) h += 3; + move_s(10+f,h); line_s(10+f,20); +} +set("focus", 0); +move_s(2.5-1, 14+1); line_s(2.5+1, 14+1); // - +line_s(2.5, 14+2.5); line_s(2.5-1, 14+1); + +move_s(10-1, 22+0); line_s(10, 22-2); line_s(10+1, 22+0); // ^ + +move_s(17.5-1, 14+1); line_s(17.5+1, 14+1); move_s(17.5,14+0); line_s(17.5,14+2); // + +move_s(17.5+1, 14+1); line_s(17.5+0, 14-.5); line_s(17.5-1, 14+1); + +seg7( 0,21, 2,3, s7_F); +seg7( 3,21, 2,3, s7_O); +seg7( 6,21, 2,3, s7_C); +seg7(12,21, 2,3, s7_U); +seg7(15,21, 2,3, s7_S); + +// squares and percentage values +for (var i = 0; i < 23; i++) +{ + set_mark(); + for (var j = 0; j < 4; j++) + { + seg7(19+12*i+4*j, 0, 3, 5, pow_text[4*i+j]); + seg7(19+12*i+4*j, 7, 3, 5, spe_text[4*i+j]); + } + set("power", pow[i]); + set("speed", spe[i]); + rect(21+12*i, 14, 10, 10); +} + + +// vert. focus_test (right hand side) +set_mark(); +var xr = 21+23*12 +for (var f = -10; f < 11; f++) +{ + set("focus", f); + var h = xr; if (f % 5) h += 3; + move_s(h,10+f); line_s(xr+6,10+f); +} +set("focus", 0); +move_s(xr+8, 5-1); line_s(xr+8,5+1); // - +move_s(xr+9, 10-2); line_s(xr+6, 10); line_s(xr+9,10+2); // < +move_s(xr+8, 15-1); line_s(xr+8, 15+1); move_s(xr+7,15); line_s(xr+9,15); // + + diff --git a/examples/Schnittdaten-Skripte/FabLab Nürnberg/PowerSpeedFocusTest2.ls b/examples/Schnittdaten-Skripte/FabLab Nürnberg/PowerSpeedFocusTest2.ls new file mode 100644 index 0000000..ea86616 --- /dev/null +++ b/examples/Schnittdaten-Skripte/FabLab Nürnberg/PowerSpeedFocusTest2.ls @@ -0,0 +1,241 @@ +// +// PowerSpeedTest.ls +// +// Draw a row of rectangles, and adjacent text (from a 7 segment font) +// ramping up power from 5 to 100 %, then ramping down speed from 100 to 5% +// +// (c) 2016, juergen@fabmail.org +// Distribute under GPL-2.0 or ask. +// + +scale=1/1.5 +x_off=2.0 +y_off=2.0 + +// use twolines_break=0 to render all in one line. +twolines_break=152 +twolines_stride=28 + + // 0 1 2 3 4 5 6 + // -------------------- +s7__ = [ 0, 0, 0, 0, 0, 0, 0 ] +s7_0 = [ 1, 1, 0, 1, 1, 1, 1 ] +s7_1 = [ 0, 1, 0, 1, 0, 0, 0 ] +s7_2 = [ 1, 1, 1, 0, 1, 1, 0 ] +s7_3 = [ 1, 1, 1, 1, 1, 0, 0 ] +s7_4 = [ 0, 1, 1, 1, 0, 0, 1 ] +s7_5 = [ 1, 0, 1, 1, 1, 0, 1 ] +s7_6 = [ 0, 0, 1, 1, 1, 1, 1 ] +s7_7 = [ 1, 1, 0, 1, 0, 0, 0 ] +s7_8 = [ 1, 1, 1, 1, 1, 1, 1 ] +s7_9 = [ 1, 1, 1, 1, 0, 0, 1 ] +s7_A = [ 1, 1, 1, 1, 0, 1, 1 ] +s7_C = [ 1, 0, 0, 0, 1, 1, 1 ] +s7_E = [ 1, 0, 1, 0, 1, 1, 1 ] +s7_F = [ 1, 0, 1, 0, 0, 1, 1 ] +s7_J = [ 0, 1, 0, 1, 1, 1, 0 ] // L+J => W +s7_L = [ 0, 0, 0, 0, 1, 1, 1 ] +s7_P = [ 1, 1, 1, 0, 0, 5, 1 ] +s7_U = [ 0, 1, 0, 1, 1, 1, 1 ] +s7_D = s7_0 +s7_R = s7_A +s7_S = s7_5 +s7_O = s7_0 + +// segment order +// 0 +// 6 1 +// 2 +// 5 3 +// 4 + +pow = [ 5, 10, 15, 20, 30, 40, 50, 60, 70, 80, 90, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100 ] +spe = [ 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 90, 80, 70, 60, 50, 40, 30, 20, 15, 10, 5 ] + +pow_text = [ s7__, s7__, s7_5, s7__, + s7__, s7_1, s7_0, s7__, + s7__, s7_1, s7_5, s7__, + s7__, s7_2, s7_0, s7__, + s7__, s7_3, s7_0, s7__, + s7__, s7_4, s7_0, s7__, + s7__, s7_5, s7_0, s7__, + s7__, s7_6, s7_0, s7__, + s7__, s7_7, s7_0, s7__, + s7__, s7_8, s7_0, s7__, + s7__, s7_9, s7_0, s7__, + + s7_1, s7_0, s7_0, s7__, + + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__ ] + +spe_text = [ s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + s7_1, s7_0, s7_0, s7__, + + s7_1, s7_0, s7_0, s7__, + + s7__, s7_9, s7_0, s7__, + s7__, s7_8, s7_0, s7__, + s7__, s7_7, s7_0, s7__, + s7__, s7_6, s7_0, s7__, + s7__, s7_5, s7_0, s7__, + s7__, s7_4, s7_0, s7__, + s7__, s7_3, s7_0, s7__, + s7__, s7_2, s7_0, s7__, + s7__, s7_1, s7_5, s7__, + s7__, s7_1, s7_0, s7__, + s7__, s7__, s7_5, s7__ ] + +if (twolines_break) + { + function move_s(x, y) + { + if (x > twolines_break) + move((x-twolines_break)*scale+x_off, (y+twolines_stride)*scale+y_off); + else + move(x*scale+x_off, y*scale+y_off); + } + function line_s(x, y) + { + if (x > twolines_break) + line((x-twolines_break)*scale+x_off, (y+twolines_stride)*scale+y_off); + else + line(x*scale+x_off, y*scale+y_off); + } + } +else + { + function move_s(x, y) { move(x*scale+x_off, y*scale+y_off); } + function line_s(x, y) { line(x*scale+x_off, y*scale+y_off); } + } + +// top left corner is 0,0. +function seg7(x, y, w, h, a) +{ + if (a[0]) { move_s(x, y); line_s(x+w,y); } + if (a[1]) { move_s(x+w,y); line_s(x+w,y+0.5*h); } + if (a[2]) { move_s(x, y+0.5*h); line_s(x+w,y+0.5*h); } + if (a[3]) { move_s(x+w,y+0.5*h); line_s(x+w,y+h); } + if (a[4]) { move_s(x, y+h); line_s(x+w,y+h); } + if (a[5]) { move_s(x, y+0.5*h); line_s(x, y+h); } + if (a[6]) { move_s(x, y); line_s(x, y+0.5*h); } +} + +function rect(x, y, width, height) +{ + move_s(x, y); + line_s(x+width, y); + line_s(x+width, y+height); + line_s(x, y+height); + line_s(x, y); +} + +function set_mark() +{ + set("power", 5); + set("speed", 100); // marking text +} + +// start of code execution here. + +// the border rectangle is without prior seting of speed or power +// this makes the settings of the cut dialog effective for the border. +if (twolines_break) + { + xend = (2*x_off + 1*twolines_break + 3 ) * scale; + yend = (2*y_off + 2*twolines_stride - 2 ) * scale; + } +else + { + xend = (2*x_off + 304 + 3 ) * scale; + yend = (2*y_off + 1*twolines_stride - 2 ) * scale; + } +move(0,0); +line(xend, 0); +line(xend, yend); +line(0, yend); +line(0,0); + +set_mark(); +seg7(0,0, 3,5, s7_P); // POWER +seg7(4,0, 3,5, s7_O); +seg7(8,0, 3,5, s7_L); +seg7(11,0, 3,5, s7_J); +// seg7(15,0, 3,5, s7_E); // ugly +// seg7(19,0, 3,5, s7_R); // ugly + +seg7(0,7, 3,5, s7_S); // SPEED +seg7(4,7, 3,5, s7_P); +seg7(8,7, 3,5, s7_E); +seg7(12,7, 3,5, s7_E); +// seg7(16,7, 3,5, s7_D); // ugly + +// hor. focus_test (left hand side) +for (var f = -10; f < 11; f++) +{ + set("focus", f); + var h = 14; if (f % 5) h += 3; + move_s(10+f,h); line_s(10+f,20); +} +set("focus", 0); +move_s(2.5-1, 14+1); line_s(2.5+1, 14+1); // - +line_s(2.5, 14+2.5); line_s(2.5-1, 14+1); + +move_s(10-1, 22+0); line_s(10, 22-2); line_s(10+1, 22+0); // ^ + +move_s(17.5-1, 14+1); line_s(17.5+1, 14+1); move_s(17.5,14+0); line_s(17.5,14+2); // + +move_s(17.5+1, 14+1); line_s(17.5+0, 14-.5); line_s(17.5-1, 14+1); + +seg7( 0,21, 2,3, s7_F); +seg7( 3,21, 2,3, s7_O); +seg7( 6,21, 2,3, s7_C); +seg7(12,21, 2,3, s7_U); +seg7(15,21, 2,3, s7_S); + +// squares and percentage values +for (var i = 0; i < 23; i++) +{ + set_mark(); + for (var j = 0; j < 4; j++) + { + seg7(19+12*i+4*j, 0, 3, 5, pow_text[4*i+j]); + seg7(19+12*i+4*j, 7, 3, 5, spe_text[4*i+j]); + } + set("power", pow[i]); + set("speed", spe[i]); + rect(21+12*i, 14, 10, 10); +} + + +// vert. focus_test (right hand side) +set_mark(); +var xr = 21+23*12 +for (var f = -10; f < 11; f++) +{ + set("focus", f); + var h = xr; if (f % 5) h += 3; + move_s(h,10+f); line_s(xr+6,10+f); +} +set("focus", 0); +move_s(xr+8, 5-1); line_s(xr+8,5+1); // - +move_s(xr+9, 10-2); line_s(xr+6, 10); line_s(xr+9,10+2); // < +move_s(xr+8, 15-1); line_s(xr+8, 15+1); move_s(xr+7,15); line_s(xr+9,15); // + +