#!/usr/bin/perl -w
+# Use:
+# - support X/Y dist 0.5mm
+
use strict;
our $shape = <<'END';
zxxYYXXZXzzxyXXYZyyzxZZXZZZYzzzxxZZYxxxyZZyy
yzzXXZZYZyyzxZZXYxxyzYYZYYYXyyyzzYYXzzzxYYxx
END
+# simple version (unknotted, [0,1,2]^3):
+# YxxyzYYZXzzxyXXYZyyzxZZX
sub o { print @_ or die $!; }
__DATA__
-thick = 8;
+thick = 6;
+edgeu = 10;
// calculated
octa_short = octa_long / (1 + sqrt(2));
module OctaThing() {
- foreach (r = [[0,0,0], [90,0,0], [0,90,0]]) {
- rotate(r)
- cube([ octa_short,octa_short, octa_long ], center=true);
+ hull(){
+ for (r = [[0,0,0], [90,0,0], [0,90,0]]) {
+ rotate(r)
+ cube([ octa_short,octa_short, octa_long ], center=true);
+ }
+ }
+}
+
+module TraceEdge(p,q) {
+ hull(){
+ for (x=[p,q]) {
+ translate(x * edgeu)
+ OctaThing();
+ }
}
}
-OctaThing();
+rotate([0,0,45])
+ rotate([0,90,0])
+ Trace();