From b5449207321a15e2e9e127a5ef453e44de2e92af Mon Sep 17 00:00:00 2001 From: Jose Ignacio Croce Busquets Date: Sat, 17 Feb 2018 13:17:18 +0100 Subject: [PATCH] Polyhedron syntax update --- seg_digit.scad | 588 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 298 insertions(+), 290 deletions(-) diff --git a/seg_digit.scad b/seg_digit.scad index 69ad586..90bb409 100644 --- a/seg_digit.scad +++ b/seg_digit.scad @@ -1,11 +1,16 @@ /* * seg_digit.scad : 7 segment and 16 segment digit generation library * - * Author : Jose Ignacio Croce Busquets + * Author : Jose Ignacio Croce Busquets * * Date : 15-FEB-2014 * - * Copyright 2014, 2015 Jose Ignacio Croce Busquets + * Copyright 2014, 2015, 2016, 2017, 2018 Jose Ignacio Croce Busquets + * + * Update: + * + * 17FEB2018 Jose Ignacio Croce Busquets + * New polyhedron syntax. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -66,8 +71,8 @@ function digit_height(seglen) = 2 * seglen; function segment_radius(seglen) = seglen / 10; /* Position (horiz) for next digit based on digit length */ -function digit_spacing(height) = segment_length(height) - + 6 * segment_radius(segment_length(height)); +function digit_spacing(height) = segment_length(height) + + 6 * segment_radius(segment_length(height)); /* Draws A segment (top) * size segment size @@ -75,8 +80,7 @@ function digit_spacing(height) = segment_length(height) */ module segment_a(size, on = true) { - translate(v = [ 0, digit_height(size), 0 ]) - segment(size, on = on); + translate(v = [ 0, digit_height(size), 0 ]) segment(size, on = on); } /* Draws A1 segment (top) @@ -85,8 +89,8 @@ module segment_a(size, on = true) */ module segment_a1(size, on = true) { - translate(v = [ 0, digit_height(size), 0 ]) - segment(size /2 , r = segment_radius(size), on = on); + translate(v = [ 0, digit_height(size), 0 ]) + segment(size /2 , r = segment_radius(size), on = on); } /* Draws A2 segment (top) @@ -95,8 +99,8 @@ module segment_a1(size, on = true) */ module segment_a2(size, on = true) { - translate(v = [ size / 2, digit_height(size), 0 ]) - segment(size /2 , r = segment_radius(size), on = on); + translate(v = [ size / 2, digit_height(size), 0 ]) + segment(size /2 , r = segment_radius(size), on = on); } /* Draws B segment (right top) @@ -105,8 +109,7 @@ module segment_a2(size, on = true) */ module segment_b(size, on = true) { - translate(v = [ 0, size, 0 ]) - segment_c(size, on = on); + translate(v = [ 0, size, 0 ]) segment_c(size, on = on); } /* Draws C segment (right bottom) @@ -115,9 +118,9 @@ module segment_b(size, on = true) */ module segment_c(size, on = true) { - translate(v = [ size, size, 0 ]) - rotate(a = [ 0, 0, 270 ]) - segment(size, on = on); + translate(v = [ size, size, 0 ]) + rotate(a = [ 0, 0, 270 ]) + segment(size, on = on); } /* Draws D segment (bottom) @@ -126,7 +129,7 @@ module segment_c(size, on = true) */ module segment_d(size, on = true) { - segment(size, on = on); + segment(size, on = on); } /* Draws D1 segment (top) @@ -135,7 +138,7 @@ module segment_d(size, on = true) */ module segment_d1(size, on = true) { - segment(size /2 , r = segment_radius(size), on = on); + segment(size /2 , r = segment_radius(size), on = on); } /* Draws D2 segment (top) @@ -144,8 +147,7 @@ module segment_d1(size, on = true) */ module segment_d2(size, on = true) { - translate(v = [ size / 2, 0, 0 ]) - segment(size /2 , r = segment_radius(size), on = on); + translate(v = [ size / 2, 0, 0 ]) segment(size /2 , r = segment_radius(size), on = on); } /* Draws E segment (left bottom) @@ -154,8 +156,7 @@ module segment_d2(size, on = true) */ module segment_e(size, on = true) { - rotate(a = [ 0, 0, 90 ]) - segment(size, on = on); + rotate(a = [ 0, 0, 90 ]) segment(size, on = on); } /* Draws F segment (left top) @@ -164,8 +165,7 @@ module segment_e(size, on = true) */ module segment_f(size, on = true) { - translate(v = [ 0, size, 0 ]) - segment_e(size, on = on); + translate(v = [ 0, size, 0 ]) segment_e(size, on = on); } /* Draws G segment (middle) @@ -174,8 +174,7 @@ module segment_f(size, on = true) */ module segment_g(size, on = true) { - translate(v = [ 0, size, 0 ]) - segment_d(size, on = on); + translate(v = [ 0, size, 0 ]) segment_d(size, on = on); } /* Draws G1 segment (top) @@ -184,8 +183,7 @@ module segment_g(size, on = true) */ module segment_g1(size, on = true) { - translate(v = [ 0, size, 0 ]) - segment(size /2 , r = segment_radius(size), on = on); + translate(v = [ 0, size, 0 ]) segment(size /2 , r = segment_radius(size), on = on); } /* Draws G2 segment (top) @@ -194,8 +192,7 @@ module segment_g1(size, on = true) */ module segment_g2(size, on = true) { - translate(v = [ size / 2, size, 0 ]) - segment(size /2 , r = segment_radius(size), on = on); + translate(v = [ size / 2, size, 0 ]) segment(size /2 , r = segment_radius(size), on = on); } /* Draws H segment (upper left diagonal) @@ -204,9 +201,9 @@ module segment_g2(size, on = true) */ module segment_h(size, on = true) { - translate(v = [ size / 2, size, 0 ]) - mirror([ 1, 0, 0 ]) - diag_segment(size, on = on); + translate(v = [ size / 2, size, 0 ]) + mirror([ 1, 0, 0 ]) + diag_segment(size, on = on); } /* Draws I segment (middle top) @@ -215,8 +212,7 @@ module segment_h(size, on = true) */ module segment_i(size, on = true) { - translate(v = [ -size / 2, 0, 0 ]) - segment_b(size, on = on); + translate(v = [ -size / 2, 0, 0 ]) segment_b(size, on = on); } /* Draws J segment (upper right diagonal) @@ -225,8 +221,7 @@ module segment_i(size, on = true) */ module segment_j(size, on = true) { - translate(v = [ size / 2, size, 0 ]) - diag_segment(size, on = on); + translate(v = [ size / 2, size, 0 ]) diag_segment(size, on = on); } /* Draws K segment (lower right diagonal) @@ -235,9 +230,9 @@ module segment_j(size, on = true) */ module segment_k(size, on = true) { - translate(v = [ size, 0, 0 ]) - mirror([ 1, 0, 0 ]) - diag_segment(size, on = on); + translate(v = [ size, 0, 0 ]) + mirror([ 1, 0, 0 ]) + diag_segment(size, on = on); } /* Draws L segment (middle bottom) @@ -246,8 +241,7 @@ module segment_k(size, on = true) */ module segment_l(size, on = true) { - translate(v = [ -size / 2, 0, 0 ]) - segment_c(size, on = on); + translate(v = [ -size / 2, 0, 0 ]) segment_c(size, on = on); } /* Draws M segment (lower left diagonal) @@ -256,7 +250,7 @@ module segment_l(size, on = true) */ module segment_m(size, on = true) { - diag_segment(size, on = on); + diag_segment(size, on = on); } /* @@ -266,9 +260,8 @@ module segment_m(size, on = true) */ module segment_p(size, on = true) { - radius = segment_radius(size); - translate(v = [ size + radius, 0, 0 ]) - decimal_point(size, on = on); + radius = segment_radius(size); + translate(v = [ size + radius, 0, 0 ]) decimal_point(size, on = on); } //--------------------------------------------------------------------------- @@ -282,43 +275,49 @@ module segment_p(size, on = true) */ module decimal_point(size, on = true) { - radius = segment_radius(size); - if (on) - { - translate(v = [ radius, 0, 0 ]) - polyhedron(points = [ [ -radius, -radius, 0 ] - , [ -radius, radius, 0 ] - , [ radius, radius, 0 ] - , [ radius, -radius, 0 ] - , [ 0, 0, radius ] - ] - , triangles = [ [ 0, 1, 4 ] - , [ 1, 2, 4 ] - , [ 2, 3, 4 ] - , [ 0, 4, 3 ] - , [ 0, 3, 1 ] - , [ 1, 3, 2 ] - ]); - } else { - translate(v = [ radius, 0, 0 ]) - { - polyhedron(points = [ [ -radius, -radius, 0 ] - , [ -radius, radius, 0 ] - , [ radius, radius, 0 ] - , [ radius, -radius, 0 ] - , [ 0, 0, -radius ] - ] - , triangles = [ [ 0, 4, 1 ] - , [ 1, 4, 2 ] - , [ 2, 4, 3 ] - , [ 0, 3, 4 ] - , [ 0, 1, 3 ] - , [ 1, 2, 3 ] - ]); - translate(v = [ 0, 0, radius / 2 ]) - cube(size= [ 2 * radius, 2 * radius, radius ], center = true); - } - } + radius = segment_radius(size); + if (on) + { + translate(v = [ radius, 0, 0 ]) + polyhedron( + points = [ + [ -radius, -radius, 0 ], + [ -radius, radius, 0 ], + [ radius, radius, 0 ], + [ radius, -radius, 0 ], + [ 0, 0, radius ] + ], + faces = [ + [ 0, 1, 4 ], + [ 1, 2, 4 ], + [ 2, 3, 4 ], + [ 3, 0, 4 ], + [ 0, 1, 2, 3] + ] + ); + } else { + translate(v = [ radius, 0, 0 ]) + { + polyhedron( + points = [ + [ -radius, -radius, 0 ], + [ -radius, radius, 0 ], + [ radius, radius, 0 ], + [ radius, -radius, 0 ], + [ 0, 0, -radius ] + ], + faces = [ + [ 0, 1, 4 ], + [ 1, 2, 4 ], + [ 2, 3, 4 ], + [ 3, 0, 4 ], + [ 0, 1, 2, 3 ] + ] + ); + translate(v = [ 0, 0, radius / 2 ]) + cube(size= [ 2 * radius, 2 * radius, radius ], center = true); + } + } } /* Draws a single segment @@ -328,65 +327,68 @@ module decimal_point(size, on = true) */ module segment(size, r = 0, on = true) { - radius = (r == 0) ? segment_radius(size) : r; - length = (size > 2 * radius) ? size - 2 * radius : 0; - if (on) - { - polyhedron(points = [ [ 0, 0, 0 ] - , [ radius , radius, 0 ] - , [ radius + length, radius, 0 ] - , [ 2 * radius + length, 0, 0 ] - , [ radius + length, -radius, 0 ] - , [ radius , -radius, 0 ] - , [ radius , 0, radius ] - , [ radius + length, 0, radius ] - ] - , triangles = [ [ 0, 1, 6 ] - , [ 1, 2, 6 ] - , [ 2, 7, 6 ] - , [ 2, 3, 7 ] - , [ 3, 4, 7 ] - , [ 4, 5, 7 ] - , [ 5, 6, 7 ] - , [ 0, 6, 5 ] - , [ 0, 5, 1 ] - , [ 1, 5, 4 ] - , [ 1, 4, 2 ] - , [ 2, 4, 3 ] - ]); - } else { - polyhedron(points = [ [ 0, 0, 0 ] - , [ radius , radius, 0 ] - , [ radius + length, radius, 0 ] - , [ 2 * radius + length, 0, 0 ] - , [ radius + length, -radius, 0 ] - , [ radius , -radius, 0 ] - , [ radius , 0, -radius ] - , [ radius + length, 0, -radius ] - ] - , triangles = [ [ 0, 6, 1 ] - , [ 1, 6, 2 ] - , [ 2, 6, 7 ] - , [ 2, 7, 3 ] - , [ 3, 7, 4 ] - , [ 4, 7, 5 ] - , [ 5, 7, 6 ] - , [ 0, 5, 6 ] - , [ 0, 1, 5 ] - , [ 1, 4, 5 ] - , [ 1, 2, 4 ] - , [ 2, 3, 4 ] - ]); - linear_extrude(height = radius) - polygon(points = [ [ 0 , 0] - , [ radius , radius ] - , [ radius + length, radius ] - , [ 2 * radius + length, 0 ] - , [ radius + length, -radius ] - , [ radius , -radius ] - ] - , paths = [ [ 0, 1, 2, 3, 4, 5 ] ]); - } + radius = (r == 0) ? segment_radius(size) : r; + length = (size > 2 * radius) ? size - 2 * radius : 0; + if (on) + { + polyhedron( + points = [ + [ 0, 0, 0 ], + [ radius, radius, 0 ], + [ radius + length, radius, 0 ], + [ 2 * radius + length, 0, 0 ], + [ radius + length, -radius, 0 ], + [ radius, -radius, 0 ], + [ radius, 0, radius ], + [ radius + length, 0, radius ] + ], + faces = [ + [ 0, 1, 6 ], + [ 1, 2, 7, 6 ], + [ 2, 3, 7 ], + [ 3, 4, 7 ], + [ 4, 5, 6, 7 ], + [ 5, 0, 6 ], + [ 0, 5, 4, 3, 2, 1 ] + ] + ); + } else { + polyhedron( + points = [ + [ 0, 0, 0 ], + [ radius, radius, 0 ], + [ radius + length, radius, 0 ], + [ 2 * radius + length, 0, 0 ], + [ radius + length, -radius, 0 ], + [ radius, -radius, 0 ], + [ radius, 0, -radius ], + [ radius + length, 0, -radius ] + ], + faces = [ + [ 0, 1, 2, 3, 4, 5 ], + [ 1, 0, 6 ], + [ 2, 1, 6, 7 ], + [ 2, 7, 3 ], + [ 4, 3, 7 ], + [ 5, 4, 7, 6 ], + [ 0, 5, 6 ] + ] + ); + linear_extrude(height = radius) + polygon( + points = [ + [ 0, 0 ], + [ radius, radius ], + [ radius + length, radius ], + [ 2 * radius + length, 0 ], + [ radius + length, -radius ], + [ radius, -radius ] + ], + paths = [ + [ 0, 1, 2, 3, 4, 5 ] + ] + ); + } } /* Draws a diagonal segment @@ -396,67 +398,68 @@ module segment(size, r = 0, on = true) */ module diag_segment(size, r = 0, on = true) { - radius = (r == 0) ? segment_radius(size) : r; - length = (size > 2 * radius) ? size - 2 * radius : 0; - if (on) - { - polyhedron(points = [ - [ radius, radius, 0 ] - , [ radius, 2.41 * radius, 0 ] - , [ size / 2 - 2.41 * radius, size - radius, 0 ] - , [ size / 2 - radius, size - radius, 0 ] - , [ size / 2 - radius, size - 2.41 * radius, 0 ] - , [ 2.41 * radius, radius, 0 ] - , [ 1.70 * radius, 1.70 * radius, radius ] - , [ size / 2 - 1.70 * radius, size - 1.70 * radius, radius ] - ] - , triangles = [ [ 0, 1, 6 ] - , [ 1, 2, 6 ] - , [ 2, 7, 6 ] - , [ 2, 3, 7 ] - , [ 3, 4, 7 ] - , [ 4, 5, 7 ] - , [ 5, 6, 7 ] - , [ 0, 6, 5 ] - , [ 0, 5, 1 ] - , [ 1, 5, 4 ] - , [ 1, 4, 2 ] - , [ 2, 4, 3 ] - ]); - } else { - polyhedron(points = [ - [ radius, radius, 0 ] - , [ radius, 2.41 * radius, 0 ] - , [ size / 2 - 2.41 * radius, size - radius, 0 ] - , [ size / 2 - radius, size - radius, 0 ] - , [ size / 2 - radius, size - 2.41 * radius, 0 ] - , [ 2.41 * radius, radius, 0 ] - , [ 1.70 * radius, 1.70 * radius, -radius ] - , [ size / 2 - 1.70 * radius, size - 1.70 * radius, -radius ] - ] - , triangles = [ [ 0, 1, 6 ] - , [ 1, 2, 6 ] - , [ 2, 7, 6 ] - , [ 2, 3, 7 ] - , [ 3, 4, 7 ] - , [ 4, 5, 7 ] - , [ 5, 6, 7 ] - , [ 0, 6, 5 ] - , [ 0, 5, 1 ] - , [ 1, 5, 4 ] - , [ 1, 4, 2 ] - , [ 2, 4, 3 ] - ]); - linear_extrude(height = radius) - polygon(points = [ [ radius, radius ] - , [ radius, 2.41 * radius ] - , [ size / 2 - 2.41 * radius, size - radius ] - , [ size / 2 - radius, size - radius ] - , [ size / 2 - radius, size - 2.41 * radius ] - , [ 2.41 * radius, radius ] - ] - , paths = [ [ 0, 1, 2, 3, 4, 5 ] ]); - } + radius = (r == 0) ? segment_radius(size) : r; + length = (size > 2 * radius) ? size - 2 * radius : 0; + if (on) + { + polyhedron( + points = [ + [ radius, radius, 0 ], + [ radius, 2.41 * radius, 0 ], + [ size / 2 - 2.41 * radius, size - radius, 0 ], + [ size / 2 - radius, size - radius, 0 ], + [ size / 2 - radius, size - 2.41 * radius, 0 ], + [ 2.41 * radius, radius, 0 ], + [ 1.70 * radius, 1.70 * radius, radius ], + [ size / 2 - 1.70 * radius, size - 1.70 * radius, radius ] + ], + faces = [ + [ 0, 1, 6 ], + [ 1, 2, 7, 6 ], + [ 2, 3, 7 ], + [ 3, 4, 7 ], + [ 4, 5, 6, 7 ], + [ 5, 0, 6 ], + [ 0, 1, 2, 3, 4, 5 ] + ] + ); + } else { + polyhedron( + points = [ + [ radius, radius, 0 ], + [ radius, 2.41 * radius, 0 ], + [ size / 2 - 2.41 * radius, size - radius, 0 ], + [ size / 2 - radius, size - radius, 0 ], + [ size / 2 - radius, size - 2.41 * radius, 0 ], + [ 2.41 * radius, radius, 0 ], + [ 1.70 * radius, 1.70 * radius, -radius ], + [ size / 2 - 1.70 * radius, size - 1.70 * radius, -radius ] + ], + faces = [ + [ 0, 1, 2, 3, 4, 5 ], + [ 1, 0, 6 ], + [ 2, 1, 6, 7 ], + [ 2, 7, 3 ], + [ 4, 3, 7 ], + [ 5, 4, 7, 6 ], + [ 0, 5, 6 ] + ] + ); + linear_extrude(height = radius) + polygon( + points = [ + [ radius, radius ], + [ radius, 2.41 * radius ], + [ size / 2 - 2.41 * radius, size - radius ], + [ size / 2 - radius, size - radius ], + [ size / 2 - radius, size - 2.41 * radius ], + [ 2.41 * radius, radius ] + ], + paths = [ + [ 0, 1, 2, 3, 4, 5 ] + ] + ); + } } //--------------------------------------------------------------------------- @@ -466,108 +469,113 @@ module diag_segment(size, r = 0, on = true) ex_seglen = 100; // segment length for all examples // Base for on-relief examples -translate(v = [ 0 - , -2 * digit_height(ex_seglen) - , -2 * segment_radius(digit_height(ex_seglen)) ]) - cube(size = [ 2 * digit_spacing(digit_height(ex_seglen)) - , 4 * digit_height(ex_seglen) - , 2 * segment_radius(digit_height(ex_seglen)) - ]); +translate( + v = [ 0, -2 * digit_height(ex_seglen), -2 * segment_radius(digit_height(ex_seglen)) ] +) + cube( + size = [ + 2 * digit_spacing(digit_height(ex_seglen)), + 4 * digit_height(ex_seglen), + 2 * segment_radius(digit_height(ex_seglen)) + ] + ); // On relief examples // 7 segment on-relief example -translate(v = [ digit_spacing(digit_height(ex_seglen)) / 2 - , digit_height(ex_seglen) / 2 - , 0 ]) +translate( + v = [ digit_spacing(digit_height(ex_seglen)) / 2, digit_height(ex_seglen) / 2, 0 ] +) { - segment_a(ex_seglen); - segment_b(ex_seglen); - segment_c(ex_seglen); - segment_d(ex_seglen); - segment_e(ex_seglen); - segment_f(ex_seglen); - segment_g(ex_seglen); - segment_p(ex_seglen); + segment_a(ex_seglen); + segment_b(ex_seglen); + segment_c(ex_seglen); + segment_d(ex_seglen); + segment_e(ex_seglen); + segment_f(ex_seglen); + segment_g(ex_seglen); + segment_p(ex_seglen); } // 16 segment on-relief example -translate(v = [ digit_spacing(digit_height(ex_seglen)) / 2 - , -1.5 * digit_height(ex_seglen) - , 0 ]) +translate( + v = [ digit_spacing(digit_height(ex_seglen)) / 2, -1.5 * digit_height(ex_seglen), 0 ] +) { - segment_a1(ex_seglen); - segment_a2(ex_seglen); - segment_b(ex_seglen); - segment_c(ex_seglen); - segment_d1(ex_seglen); - segment_d2(ex_seglen); - segment_e(ex_seglen); - segment_f(ex_seglen); - segment_g1(ex_seglen); - segment_g2(ex_seglen); - segment_h(ex_seglen); - segment_i(ex_seglen); - segment_j(ex_seglen); - segment_k(ex_seglen); - segment_l(ex_seglen); - segment_m(ex_seglen); - segment_p(ex_seglen); + segment_a1(ex_seglen); + segment_a2(ex_seglen); + segment_b(ex_seglen); + segment_c(ex_seglen); + segment_d1(ex_seglen); + segment_d2(ex_seglen); + segment_e(ex_seglen); + segment_f(ex_seglen); + segment_g1(ex_seglen); + segment_g2(ex_seglen); + segment_h(ex_seglen); + segment_i(ex_seglen); + segment_j(ex_seglen); + segment_k(ex_seglen); + segment_l(ex_seglen); + segment_m(ex_seglen); + segment_p(ex_seglen); } // Low relief examples // Low relief effect is performed by substracting from the base translate(v = [ 2 * digit_spacing(digit_height(ex_seglen)), 0, 0 ]) - difference() - { - // Base for low-relief examples - translate(v = [ 0 - , -2 * digit_height(ex_seglen) - , -2 * segment_radius(digit_height(ex_seglen)) ]) - cube(size = [ 2 * digit_spacing(digit_height(ex_seglen)) - , 4 * digit_height(ex_seglen) - , 2 * segment_radius(digit_height(ex_seglen)) - ]); - - // 7 segment low-relief example - translate(v = [ digit_spacing(digit_height(ex_seglen)) / 2 - , digit_height(ex_seglen) / 2 - , 0 ]) - { - segment_a(ex_seglen, on = false); - segment_b(ex_seglen, on = false); - segment_c(ex_seglen, on = false); - segment_d(ex_seglen, on = false); - segment_e(ex_seglen, on = false); - segment_f(ex_seglen, on = false); - segment_g(ex_seglen, on = false); - segment_p(ex_seglen, on = false); - } - - // 16 segment on-relief example - translate(v = [ digit_spacing(digit_height(ex_seglen)) / 2 - , -1.5 * digit_height(ex_seglen) - , 0 ]) + difference() { - segment_a1(ex_seglen, on = false); - segment_a2(ex_seglen, on = false); - segment_b(ex_seglen, on = false); - segment_c(ex_seglen, on = false); - segment_d1(ex_seglen, on = false); - segment_d2(ex_seglen, on = false); - segment_e(ex_seglen, on = false); - segment_f(ex_seglen, on = false); - segment_g1(ex_seglen, on = false); - segment_g2(ex_seglen, on = false); - segment_h(ex_seglen, on = false); - segment_i(ex_seglen, on = false); - segment_j(ex_seglen, on = false); - segment_k(ex_seglen, on = false); - segment_l(ex_seglen, on = false); - segment_m(ex_seglen, on = false); - segment_p(ex_seglen, on = false); - } - - } + // Base for low-relief examples + translate( + v = [ 0, -2 * digit_height(ex_seglen), -2 * segment_radius(digit_height(ex_seglen)) ] + ) + cube( + size = [ + 2 * digit_spacing(digit_height(ex_seglen)), + 4 * digit_height(ex_seglen), + 2 * segment_radius(digit_height(ex_seglen)) + ] + ); + + // 7 segment low-relief example + translate( + v = [ digit_spacing(digit_height(ex_seglen)) / 2, digit_height(ex_seglen) / 2, 0 ] + ) + { + segment_a(ex_seglen, on = false); + segment_b(ex_seglen, on = false); + segment_c(ex_seglen, on = false); + segment_d(ex_seglen, on = false); + segment_e(ex_seglen, on = false); + segment_f(ex_seglen, on = false); + segment_g(ex_seglen, on = false); + segment_p(ex_seglen, on = false); + } + + // 16 segment on-relief example + translate( + v = [ digit_spacing(digit_height(ex_seglen)) / 2, -1.5 * digit_height(ex_seglen), 0 ] + ) + { + segment_a1(ex_seglen, on = false); + segment_a2(ex_seglen, on = false); + segment_b(ex_seglen, on = false); + segment_c(ex_seglen, on = false); + segment_d1(ex_seglen, on = false); + segment_d2(ex_seglen, on = false); + segment_e(ex_seglen, on = false); + segment_f(ex_seglen, on = false); + segment_g1(ex_seglen, on = false); + segment_g2(ex_seglen, on = false); + segment_h(ex_seglen, on = false); + segment_i(ex_seglen, on = false); + segment_j(ex_seglen, on = false); + segment_k(ex_seglen, on = false); + segment_l(ex_seglen, on = false); + segment_m(ex_seglen, on = false); + segment_p(ex_seglen, on = false); + } +} /* EOF : seg_digit.scad */ -- 2.11.0