4 # - support X/Y dist 0.5mm
9 xyyZZYYXYxxyzYYZXzzxyXXYXXXZxxxyyXXZyyyzXXzz
10 zxxYYXXZXzzxyXXYZyyzxZZXZZZYzzzxxZZYxxxyZZyy
11 yzzXXZZYZyyzxZZXYxxyzYYZYYYXyyyzzYYXzzzxYYxx
13 # simple version (unknotted, [0,1,2]^3):
14 # YxxyzYYZXzzxyXXYZyyzxZZX
16 # New and less symmetric one that also fits in the 2x2x2 box:
17 # YXXyzzYxYXZZxzyxYzyyZXZx
20 sub o { print @_ or die $!; }
23 // -*- autogenerated, do not edit -*-
32 while ($shape =~ s/^\s*(\w)//) {
33 my $ix = index('xyz', (lc $1));
34 my $sign = $1 =~ /[A-Z]/ ? +1 : -1;
37 o " TraceEdge([@p],[@q]);\n";
41 die @p unless "@p" eq '0,0,0';
45 while (<DATA>) { o $_ }
56 octa_short = octa_long / (1 + sqrt(2));
60 for (r = [[0,0,0], [90,0,0], [0,90,0]]) {
62 cube([ octa_short,octa_short, octa_long ], center=true);
67 module TraceEdge(p,q) {