author | Michael Krelin <hacker@klever.net> | 2016-01-07 20:55:09 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2016-01-07 20:55:09 (UTC) |
commit | 38331f5dc2cb18d65baf24c5a181de1656c9b8c4 (patch) (side-by-side diff) | |
tree | 2f9f5c3dafce947d74ac94a9e212d18336242910 | |
parent | 07d64020a23339f759f183c12ebda7a5f69acc78 (diff) | |
download | redelta-38331f5dc2cb18d65baf24c5a181de1656c9b8c4.zip redelta-38331f5dc2cb18d65baf24c5a181de1656c9b8c4.tar.gz redelta-38331f5dc2cb18d65baf24c5a181de1656c9b8c4.tar.bz2 |
base sides generation separated
-rw-r--r-- | delta.jscad | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/delta.jscad b/delta.jscad index e6516f9..7dedfab 100644 --- a/delta.jscad +++ b/delta.jscad @@ -535,36 +535,41 @@ var E2020 = { [ -e.T.width/2,e.outer/2-e.thickness], [ -e.slot_width/2,e.outer/2-e.thickness], [ -e.slot_width/2,e.outer/2], ]).extrude({offset:[0,0,l+thickness]}).rotateZ(w); })); rv.properties.P = new CSG.Connector([0,0,0],[0,0,1],[1,0,0]); return rv; } }; var THREEWINDS = [0,120,240]; +function base_sides() { + return [0,1].map(function(l) { + return THREEWINDS.map(function(w) { + var e = E2020.extrusion({l:CONFIG.base.el}); + e = e.connectTo(e.properties.c_midway, + new CSG.Connector([0,-CD.base.mid_inscription_r,CONFIG.extrusion.w/2],[1,0,0],[0,0,1]), + false, 0); + return ( e.translate([0,0,CONFIG.foot.h+l*(CONFIG.extrusion.w+CONFIG.base.gap)]) + .rotateZ(w) + .setColor(CONFIG.color.extrusion) ); + }); + }); +} function base_extrusions() { - var rv = union( THREEWINDS.map(function(w) { - var e = E2020.extrusion({l:CONFIG.base.el}); - e = e.connectTo(e.properties.c_midway, - new CSG.Connector([0,-CD.base.mid_inscription_r,CONFIG.extrusion.w/2],[1,0,0],[0,0,1]), - false, 0); - return union( [0,CONFIG.extrusion.w+CONFIG.base.gap].map(function(z) { - return e.translate([0,0,z]); - }) ).rotateZ(w); - }) ); + var rv = union( base_sides().map(function(x){return union(x)}) ); rv.properties.P = new CSG.Connector([0,0,0],[0,0,1],[1,0,0]); - return rv.setColor(CONFIG.color.extrusion); + return rv; } function column_extrusions() { var rv = union( THREEWINDS.map(function(w) { return E2020.extrusion({l:CONFIG.column.h}).translate([0,CD.base.column_r,0]).rotateZ(w); }) ); rv.properties.P = new CSG.Connector([0,0,0],[0,0,1],[1,0,0]); return rv.setColor(CONFIG.color.extrusion); } function duet() { var C = CONFIG.duet; |