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 | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/delta.jscad b/delta.jscad index e6516f9..7dedfab 100644 --- a/delta.jscad +++ b/delta.jscad @@ -523,60 +523,65 @@ var E2020 = { var fw = [0,90,180,270]; // four winds var iy = e.outer/2-e.T.depth; var ix = e.T.width/2-(e.outer/2-iy-e.thickness-e.T.thickness); rv = rv.union(fw.map(function(w) { return CAG.fromPoints([ [ e.slot_width/2,e.outer/2], [ e.slot_width/2,e.outer/2-e.thickness], [ e.T.width/2,e.outer/2-e.thickness], [ e.T.width/2,e.outer/2-e.thickness-e.T.thickness], [ ix, iy ], [ -ix, iy ], [ -e.T.width/2,e.outer/2-e.thickness-e.T.thickness], [ -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_extrusions() { - var rv = union( THREEWINDS.map(function(w) { +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 union( [0,CONFIG.extrusion.w+CONFIG.base.gap].map(function(z) { - return e.translate([0,0,z]); - }) ).rotateZ(w); - }) ); + 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( 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; var pholes = new CSG.Properties(); var hx = C.hole_spacing.x/2; var hy = C.hole_spacing.y/2; var hh = { nw: [1,-1], ne: [1,1], se: [-1,1], sw: [-1,-1] }; var holes = []; for(w in hh) { var h = hh[w],_x=h[0]*hx,_y=h[1]*hy; holes.push(CSG.cylinder({start:[_x,_y,-1],end:[_x,_y,C.pcb_size.z+1],radius:3/2})); pholes['c_'+w] = new CSG.Connector([_x,_y,0],[0,0,1],[1,0,0]); } rv = CSG.cube({ corner1: [-C.pcb_size.x/2, -C.pcb_size.y/2, 0], |