author | Michael Krelin <hacker@klever.net> | 2016-01-07 20:56:05 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2016-01-07 20:56:05 (UTC) |
commit | 8eb0d1b0f417ac889bad97a582377130e4603b3d (patch) (unidiff) | |
tree | 890b5a8116489ef23519cda3854a20f2a6f292aa /delta.jscad | |
parent | fb43f676ec642311ebd214a21be4c960b008bcad (diff) | |
download | redelta-8eb0d1b0f417ac889bad97a582377130e4603b3d.zip redelta-8eb0d1b0f417ac889bad97a582377130e4603b3d.tar.gz redelta-8eb0d1b0f417ac889bad97a582377130e4603b3d.tar.bz2 |
alltogethernow part
-rw-r--r-- | delta.jscad | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/delta.jscad b/delta.jscad index 9c13528..ad19f88 100644 --- a/delta.jscad +++ b/delta.jscad | |||
@@ -626,64 +626,75 @@ function foot() { | |||
626 | }), CSG.cylinder({ // bolthead/washer hole | 626 | }), CSG.cylinder({ // bolthead/washer hole |
627 | start: [0,0,-1], end: [0,0,F.h-F.nut.h-PRINT.play_tolerance-F.shell], | 627 | start: [0,0,-1], end: [0,0,F.h-F.nut.h-PRINT.play_tolerance-F.shell], |
628 | radius: F.bolt.hd/2+PRINT.play_tolerance | 628 | radius: F.bolt.hd/2+PRINT.play_tolerance |
629 | }) | 629 | }) |
630 | ]).union(CSG.cylinder({ // bridging patch | 630 | ]).union(CSG.cylinder({ // bridging patch |
631 | start: [0,0,F.h-F.nut.h-PRINT.play_tolerance-PRINT.layer_height], | 631 | start: [0,0,F.h-F.nut.h-PRINT.play_tolerance-PRINT.layer_height], |
632 | end: [0,0,F.h-F.nut.h-PRINT.play_tolerance], | 632 | end: [0,0,F.h-F.nut.h-PRINT.play_tolerance], |
633 | radius: F.nut.d/2 | 633 | radius: F.nut.d/2 |
634 | })); | 634 | })); |
635 | rv.properties.c_column = new CSG.Connector([0,0,F.h],[0,0,1],[1,0,0]); | 635 | rv.properties.c_column = new CSG.Connector([0,0,F.h],[0,0,1],[1,0,0]); |
636 | rv.properties.P = new CSG.Connector([0,0,F.h],[0,0,-1],[1,0,0]); | 636 | rv.properties.P = new CSG.Connector([0,0,F.h],[0,0,-1],[1,0,0]); |
637 | return rv.setColor(CONFIG.color.parts); | 637 | return rv.setColor(CONFIG.color.parts); |
638 | } | 638 | } |
639 | 639 | ||
640 | function refaxes(o) { | 640 | function refaxes(o) { |
641 | if(!o) o = {}; | 641 | if(!o) o = {}; |
642 | var l = o.l||20, g = o.g||0.7; | 642 | var l = o.l||20, g = o.g||0.7; |
643 | return union([ | 643 | return union([ |
644 | CSG.roundedCylinder({start:[0,0,0],end:[l,0,0]}).setColor([1,0,0,g]), | 644 | CSG.roundedCylinder({start:[0,0,0],end:[l,0,0]}).setColor([1,0,0,g]), |
645 | CSG.roundedCylinder({start:[0,0,0],end:[0,l,0]}).setColor([0,1,0,g]), | 645 | CSG.roundedCylinder({start:[0,0,0],end:[0,l,0]}).setColor([0,1,0,g]), |
646 | CSG.roundedCylinder({start:[0,0,0],end:[0,0,l]}).setColor([0,0,1,g]) | 646 | CSG.roundedCylinder({start:[0,0,0],end:[0,0,l]}).setColor([0,0,1,g]) |
647 | ]); | 647 | ]); |
648 | } | 648 | } |
649 | 649 | ||
650 | function P(x) { | 650 | function P(x) { |
651 | return x.connectTo(x.properties.P,new CSG.Connector([0,0,0],[0,0,1],[1,0,0]), false, 0); | 651 | return x.connectTo(x.properties.P,new CSG.Connector([0,0,0],[0,0,1],[1,0,0]), false, 0); |
652 | } | 652 | } |
653 | 653 | ||
654 | var PARTS = { | 654 | var PARTS = { |
655 | wip: function(params) { | 655 | wip: function(params) { |
656 | return foot(); | 656 | return foot(); |
657 | return union(base_extrusions(),column_extrusions(),duet()); | 657 | return union(base_extrusions(),column_extrusions(),duet()); |
658 | alltogethernow: function(params) { | ||
659 | var cols = columns(); | ||
660 | var sides = base_sides(); | ||
661 | var feet = THREEWINDS.map(function(w,i) { | ||
662 | var rv = foot(); | ||
663 | rv = rv.connectTo(rv.properties.c_column,cols[i].properties.c_bottom,false,0); | ||
664 | return rv; | ||
665 | }); | ||
666 | var rv = union(cols).union(sides.map(union)).union(feet); | ||
667 | rv.properties.P = new CSG.Connector([0,0,0],[0,0,1],[1,0,0]); | ||
668 | return rv; | ||
658 | } | 669 | } |
659 | }; | 670 | }; |
660 | 671 | ||
661 | function main(params) { | 672 | function main(params) { |
662 | var part = params.part && PARTS[params.part]; | 673 | var part = params.part && PARTS[params.part]; |
663 | if(!part) return refaxes(); | 674 | if(!part) return refaxes(); |
664 | var rv = P(part(params)); | 675 | var rv = P(part(params)); |
665 | if(!params.print) rv = rv.union(refaxes()); | 676 | if(!params.print) rv = rv.union(refaxes()); |
666 | return rv; | 677 | return rv; |
667 | } | 678 | } |
668 | 679 | ||
669 | function _main(params) { | 680 | function _main(params) { |
670 | var e = EFFECTOR.effector(); | 681 | var e = EFFECTOR.effector(); |
671 | var hs = E3DV6.heatsink(); | 682 | var hs = E3DV6.heatsink(); |
672 | hs = hs.connectTo(hs.properties.grove_connector,e.properties.grove_connector,false,0); | 683 | hs = hs.connectTo(hs.properties.grove_connector,e.properties.grove_connector,false,0); |
673 | var ms = microswitch(); | 684 | var ms = microswitch(); |
674 | var hd = EFFECTOR.hinged({ | 685 | var hd = EFFECTOR.hinged({ |
675 | microswitch:ms,effector:e | 686 | microswitch:ms,effector:e |
676 | }); | 687 | }); |
677 | ms = ms.connectTo( | 688 | ms = ms.connectTo( |
678 | ms.properties.screw_connector[0], | 689 | ms.properties.screw_connector[0], |
679 | hd.properties.microswitch_screw_connector[0], | 690 | hd.properties.microswitch_screw_connector[0], |
680 | false, 0); | 691 | false, 0); |
681 | var hdhd = EFFECTOR.split_hinged(hd); | 692 | var hdhd = EFFECTOR.split_hinged(hd); |
682 | var fh = EFFECTOR.fanholder(); | 693 | var fh = EFFECTOR.fanholder(); |
683 | return union({ | 694 | return union({ |
684 | platform: e, | 695 | platform: e, |
685 | hinged: hdhd[1], | 696 | hinged: hdhd[1], |
686 | clamp: hdhd[0], | 697 | clamp: hdhd[0], |
687 | fanholder: fh, | 698 | fanholder: fh, |
688 | alltogethernow: [e,hdhd[0],hdhd[1], columns(),hs,ms,fh] | 699 | alltogethernow: [e,hdhd[0],hdhd[1], columns(),hs,ms,fh] |
689 | }[params.part||'alltogethernow']) | 700 | }[params.part||'alltogethernow']) |