summaryrefslogtreecommitdiffabout
path: root/delta.jscad
Unidiff
Diffstat (limited to 'delta.jscad') (more/less context) (ignore whitespace changes)
-rw-r--r--delta.jscad11
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
640function refaxes(o) { 640function 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
650function P(x) { 650function 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
654var PARTS = { 654var 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
661function main(params) { 672function 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
669function _main(params) { 680function _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'])