author | Michael Krelin <hacker@klever.net> | 2016-01-08 22:12:31 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2016-01-08 22:12:31 (UTC) |
commit | 27efa0c51613605858ead6186af5b7e47f50c687 (patch) (side-by-side diff) | |
tree | e91853f102742ead6950c0a08b303a4ecea4bba8 | |
parent | af783b9334f536d8adde19d39ed948c5274fe948 (diff) | |
download | redelta-27efa0c51613605858ead6186af5b7e47f50c687.zip redelta-27efa0c51613605858ead6186af5b7e47f50c687.tar.gz redelta-27efa0c51613605858ead6186af5b7e47f50c687.tar.bz2 |
duet holder part
-rw-r--r-- | delta.jscad | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/delta.jscad b/delta.jscad index dcf6fcc..855d4f9 100644 --- a/delta.jscad +++ b/delta.jscad @@ -708,121 +708,126 @@ function duetholder() { corner2: [hw/2+1,0,-2*s] }).rotateX(45).translate([0,-CONFIG.extrusion.w,0]), CSG.cylinder({ // duet bolt start: [0,hl,-lower], end: [0,hl,-lower+DH.s], radius: DH.bolt.d/2+PRINT.slide_tolerance }) ]); var cp = [0,hl,-lower+DH.s]; rv.properties.duet = new CSG.Properties(); rv.properties.duet.c_sw = new CSG.Connector(cp,[0,0,1],[1,0,0]); rv.properties.duet.c_se = new CSG.Connector(cp,[0,0,1],[1,0,0]); rv.properties.duet.c_ne = new CSG.Connector(cp,[0,0,1],[-Math.cos(Math.PI/3),-Math.sin(Math.PI/3),0]); rv.properties.duet.c_nw = new CSG.Connector(cp,[0,0,1],[-Math.cos(Math.PI/3),Math.sin(Math.PI/3),0]); rv.properties.c_h = new CSG.Connector([0,-CONFIG.extrusion.w/2,0],[0,0,1],[1,0,0]); rv.properties.c_v = new CSG.Connector([0,0,CONFIG.extrusion.w/2],[0,-1,0],[0,0,1]); rv.properties.P = new CSG.Connector([-hw/2,0,0],[1,0,0],[0,1,0]); return rv.setColor(CONFIG.color.parts); } function refaxes(o) { if(!o) o = {}; var l = o.l||20, g = o.g||0.7; return union([ CSG.roundedCylinder({start:[0,0,0],end:[l,0,0]}).setColor([1,0,0,g]), CSG.roundedCylinder({start:[0,0,0],end:[0,l,0]}).setColor([0,1,0,g]), CSG.roundedCylinder({start:[0,0,0],end:[0,0,l]}).setColor([0,0,1,g]) ]); } function P(x) { return x.connectTo(x.properties.P,new CSG.Connector([0,0,0],[0,0,1],[1,0,0]), false, 0); } var PARTS = { wip: function(params) { return foot(); return union(base_extrusions(),column_extrusions(),duet()); alltogethernow: function(params) { var cols = columns(); var sides = base_sides(); var feet = THREEWINDS.map(function(w,i) { var rv = foot(); rv = rv.connectTo(rv.properties.c_column,cols[i].properties.c_bottom,false,0); return rv; }); var rv = union(cols).union(sides.map(union)).union(feet); rv.properties.P = new CSG.Connector([0,0,0],[0,0,1],[1,0,0]); return rv; + }, + duetholder: function(params) { + return duetholder(); } }; function main(params) { var part = params.part && PARTS[params.part]; if(!part) return refaxes(); var rv = P(part(params)); if(!params.print) rv = rv.union(refaxes()); return rv; } function _main(params) { var e = EFFECTOR.effector(); var hs = E3DV6.heatsink(); hs = hs.connectTo(hs.properties.grove_connector,e.properties.grove_connector,false,0); var ms = microswitch(); var hd = EFFECTOR.hinged({ microswitch:ms,effector:e }); ms = ms.connectTo( ms.properties.screw_connector[0], hd.properties.microswitch_screw_connector[0], false, 0); var hdhd = EFFECTOR.split_hinged(hd); var fh = EFFECTOR.fanholder(); return union({ platform: e, hinged: hdhd[1], clamp: hdhd[0], fanholder: fh, alltogethernow: [e,hdhd[0],hdhd[1], columns(),hs,ms,fh] }[params.part||'alltogethernow']) var rv = union( e, hs, columns(), ///hd, hdhd[0], hdhd[1], ms); return rv; } function getParameterDefinitions() { return [{ name: 'part', type: 'choice', values: [ 'platform', 'hinged', 'clamp', 'fanholder', + 'duetholder', 'alltogethernow', 'wip' ], captions: [ 'Effector platform', 'Hinged part', 'Clamp', 'Fan holder', + 'Duet holder', 'All together now!', 'Work in progress' ], caption: 'Part', initial: 'wip' },{ name: 'print', type: 'checkbox', caption: 'For print, no nonsense', initial: false }]; } /* vim:set ft=javascript ai: */ |