Polyhedron syntax update
authorJose Ignacio Croce Busquets <jose.croce@gmail.com>
Sat, 17 Feb 2018 12:17:18 +0000 (13:17 +0100)
committerJose Ignacio Croce Busquets <jose.croce@gmail.com>
Sat, 17 Feb 2018 12:17:18 +0000 (13:17 +0100)
seg_digit.scad

index 69ad586..90bb409 100644 (file)
@@ -1,11 +1,16 @@
 /*
  * seg_digit.scad : 7 segment and 16 segment digit generation library
  * 
- * Author : Jose Ignacio Croce Busquets <jose@crossforests.com>
+ * Author : Jose Ignacio Croce Busquets <jose.croce@gmail.com>
  *
  * 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 <jose.croce@gmail.com>
+ *      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 */