chiark / gitweb /
commitid: Sort out sizes (mostly) (nfc)
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 5 Feb 2016 02:50:12 +0000 (02:50 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 5 Feb 2016 02:50:12 +0000 (02:50 +0000)
commitid-cube-test.scad
commitid-layering-test.scad
commitid.scad.pl

index a5251a4252e4b178ca6e7e31ceef2a8c5f00b56c..485816a8e4cdfefd2c47225745bc9092b5200210 100644 (file)
@@ -6,16 +6,14 @@ baseh= 1;
 
 sz = 20;
 
-h = 0.4;
+h = Commitid_depth();
 
 d = h;
 
 module FD () {
-  scale([2,2,1]) {
-    translate([0.5,1.5,-d])
+    translate([1, 3, -d])
     linear_extrude(height= h + d)
       Commitid_FontDemo();
-  }
 }
 
 module TC () { ////toplevel
index 1bb94853c440c9ae1b21c844a0199617b4f903a7..5da4bbc23e68ee5674312fa343b6ea1ac81a0172 100644 (file)
@@ -4,16 +4,12 @@ include <commitid.scad>
 
 baseh= 1;
 
-scale([2,2,1]) {
-
 mirror([0,0,1])
-  translate([-6,-2, -0.01])
-  cube([15.5,10, baseh + 0.01]);
+  translate([-12, -4, -0.01])
+  cube([31, 20, baseh + 0.01]);
 
-linear_extrude(height= 0.4 + 0.1)
+linear_extrude(height= Commitid_depth() + 0.1)
   Commitid_FontDemo();
 
-translate([-2.5,3,0])
-  cylinder(r=2, h=3, $fn=20);
-
-}
+translate([-5, 6, 0])
+  cylinder(r=4, h=3, $fn=20);
index da6341a9915ae71acae84f521980bf5ddc5f9443..973ca0aca7ec8018a1dd5d319a3ad0b56efa6a9e 100755 (executable)
@@ -7,18 +7,21 @@ $SIG{__WARN__} = sub { die @_; };
 
 # We generate a physical indication of which commit was used.
 #
-# We provide for a scaling factor
-#
-#    $Commitid_pixelsz = 0.4;
-#    $Commitid_depth = 1.5; // in pixels
+# We provide for scaling factors with dynamic variables:
+#    $Commitid_pixelsz        if not set, we use 0.4 } multiplied
+#    $Commitid_scale          if not set, we use 1.0 }  together
+#    $Commitid_depth          if not set, we use xy pixel size from above
+#    $Commitid_depth_scale    if not set, we use 1.0 (multiplies depth above)
 #
 # For each form we have
 #
-#    module Commitid_Form_2D(pixelsz=0.4)
-#    module Commitid_Form(pixelsz=0.4, depth=pixelsz)
+#    module Commitid_Form_2D(.4)
+#    module Commitid_Form()
+#
+# And we provide
 #
-#    function Commitid_Form_size(pixelsz=$Commitid_pixelsz) => [ xsz, ysz ]
-#         
+#   function Commitid_pixelsz()    // $Commitid_pixelsz * $Commitid_scale
+#   function Commitid_depth()      // see above
 #
 # We can generate these forms:
 #
@@ -58,6 +61,17 @@ $SIG{__WARN__} = sub { die @_; };
 
 sub p { print @_ or die $!; }
 
+p <<'END';
+function Commitid_pixelsz() =
+  ($Commitid_pixelsz       ? $Commitid_pixelsz       : 0.4) *
+  ($Commitid_scale         ? $Commitid_scale         : 1.0);
+function Commitid_depth() =
+  ($Commitid_depth         ? $Commitid_depth         : Commitid_pixelsz()) *
+  ($Commitid_depth_scale   ? $Commitid_depth_scale   : 1.0);
+function Commitid__scale() =
+  Commitid_pixelsz() / 0.1;
+END
+
 sub parsefont () {
     my %cellmap;
     for (;;) {
@@ -92,8 +106,8 @@ sub parsefont () {
                    } elsif (s{^\S}{}) {
                        my $f = $cellmap{$&};
                        die unless $f;
-                       $f =~ s/\b\d/ sprintf '%05d', $col*4000 + $&*2050 /ge;
-                       $f =~ s/\d\b/ sprintf '%05d', $row*4000 + $&*2050 /ge;
+                       $f =~ s/\b\d/ sprintf '%05d', $col*2000 + $&*1025 /ge;
+                       $f =~ s/\d\b/ sprintf '%05d', $row*2000 + $&*1025 /ge;
                        push @{ $chrpolys{$chr} }, [ split / /, $f ];
                    } else {
                        die "$_ ?";
@@ -125,7 +139,8 @@ sub parsefont () {
        p "}\n";
        my $px = @demo % $democols;
        my $py = int(@demo / $democols);
-       push @demo, " translate([$px * 1.600, $py * 2.400]) $mod ();\n";
+       push @demo, " scale( Commitid__scale() ) translate([$px * 0.800, $py * 1.200]) 
+ $mod ();\n";
     }
     p "module Commitid_FontDemo(){\n";
     p $_ foreach @demo;