X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=treefoil.scad.pl;fp=treefoil.scad.pl;h=b1ceecbec8400a3129e0aeffd953b0e3f234910d;hb=1dd4579d895f0f99ebd9bd8cffc307296c207af0;hp=3bf401243ed1e162793bea0d94f09df8c80c832e;hpb=05430bd27f2161a1cfce3f1ddbfba28c20ee8eee;p=reprap-play.git diff --git a/treefoil.scad.pl b/treefoil.scad.pl old mode 100644 new mode 100755 index 3bf4012..b1ceecb --- a/treefoil.scad.pl +++ b/treefoil.scad.pl @@ -1,4 +1,38 @@ -__DATA__ +#!/usr/bin/perl -w + +use strict; + +our $shape = <<'END'; xyyZZYYXYxxyzYYZXzzxyXXYXXXZxxxyyXXZyyyzXXzz zxxYYXXZXzzxyXXYZyyzxZZXZZZYzzzxxZZYxxxyZZyy yzzXXZZYZyyzxZZXYxxyzYYZYYYXyyyzzYYXzzzxYYxx +END + +sub o { print @_ or die $!; } + +o <<'END'; +// -*- autogenerated, do not edit -*- + +module Trace() { +END + +my @p = qw(0 0 0); + +$"=','; + +while ($shape =~ s/^\s*(\w)//) { + my $ix = index('xyz', (lc $1)); + my $sign = $1 =~ /[A-Z]/ ? +1 : -1; + my @q = @p; + $q[$ix] += $sign; + o " TraceEdge([@p],[@q]);\n"; + @p = @q; +} + +die @p unless "@p" eq '0,0,0'; + +o "}\n\n"; + +while () { o $_ } + +__DATA__