From: Ian Jackson Date: Sun, 27 Jan 2019 18:35:36 +0000 (+0000) Subject: treefoi: more X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=1dd4579d895f0f99ebd9bd8cffc307296c207af0;p=reprap-play.git treefoi: more Signed-off-by: Ian Jackson --- 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__