-rw-r--r-- | delta.jscad | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/delta.jscad b/delta.jscad index 9941125..043f6f8 100644 --- a/delta.jscad +++ b/delta.jscad | |||
@@ -528,48 +528,56 @@ var E2020 = { | |||
528 | [ -e.slot_width/2,e.outer/2], | 528 | [ -e.slot_width/2,e.outer/2], |
529 | ]).extrude({offset:[0,0,l+thickness]}).rotateZ(w); | 529 | ]).extrude({offset:[0,0,l+thickness]}).rotateZ(w); |
530 | })); | 530 | })); |
531 | rv.properties.P = new CSG.Connector([0,0,0],[0,0,1],[1,0,0]); | 531 | rv.properties.P = new CSG.Connector([0,0,0],[0,0,1],[1,0,0]); |
532 | return rv; | 532 | return rv; |
533 | } | 533 | } |
534 | }; | 534 | }; |
535 | 535 | ||
536 | var THREEWINDS = [0,120,240]; | 536 | var THREEWINDS = [0,120,240]; |
537 | 537 | ||
538 | function base_extrusions() { | 538 | function base_extrusions() { |
539 | var rv = union( THREEWINDS.map(function(w) { | 539 | var rv = union( THREEWINDS.map(function(w) { |
540 | var e = E2020.extrusion({l:CONFIG.base.el}); | 540 | var e = E2020.extrusion({l:CONFIG.base.el}); |
541 | e = e.connectTo(e.properties.c_midway, | 541 | e = e.connectTo(e.properties.c_midway, |
542 | new CSG.Connector([0,-CD.base.mid_inscription_r,CONFIG.extrusion.w/2],[1,0,0],[0,0,1]), | 542 | new CSG.Connector([0,-CD.base.mid_inscription_r,CONFIG.extrusion.w/2],[1,0,0],[0,0,1]), |
543 | false, 0); | 543 | false, 0); |
544 | return union( [0,CONFIG.extrusion.w+CONFIG.base.gap].map(function(z) { | 544 | return union( [0,CONFIG.extrusion.w+CONFIG.base.gap].map(function(z) { |
545 | return e.translate([0,0,z]); | 545 | return e.translate([0,0,z]); |
546 | }) ).rotateZ(w); | 546 | }) ).rotateZ(w); |
547 | }) ); | 547 | }) ); |
548 | rv.properties.P = new CSG.Connector([0,0,0],[0,0,1],[1,0,0]); | 548 | rv.properties.P = new CSG.Connector([0,0,0],[0,0,1],[1,0,0]); |
549 | return rv.setColor(CONFIG.color.extrusion); | 549 | return rv.setColor(CONFIG.color.extrusion); |
550 | } | 550 | } |
551 | 551 | ||
552 | function column_extrusions() { | ||
553 | var rv = union( THREEWINDS.map(function(w) { | ||
554 | return E2020.extrusion({l:CONFIG.column.h}).translate([0,CD.base.column_r,0]).rotateZ(w); | ||
555 | }) ); | ||
556 | rv.properties.P = new CSG.Connector([0,0,0],[0,0,1],[1,0,0]); | ||
557 | return rv.setColor(CONFIG.color.extrusion); | ||
558 | } | ||
559 | |||
552 | function refaxes(o) { | 560 | function refaxes(o) { |
553 | if(!o) o = {}; | 561 | if(!o) o = {}; |
554 | var l = o.l||20, g = o.g||0.7; | 562 | var l = o.l||20, g = o.g||0.7; |
555 | return union([ | 563 | return union([ |
556 | CSG.cylinder({start:[0,0,0],end:[l,0,0]}).setColor([1,0,0,g]), | 564 | CSG.cylinder({start:[0,0,0],end:[l,0,0]}).setColor([1,0,0,g]), |
557 | CSG.cylinder({start:[0,0,0],end:[0,l,0]}).setColor([0,1,0,g]), | 565 | CSG.cylinder({start:[0,0,0],end:[0,l,0]}).setColor([0,1,0,g]), |
558 | CSG.cylinder({start:[0,0,0],end:[0,0,l]}).setColor([0,0,1,g]) | 566 | CSG.cylinder({start:[0,0,0],end:[0,0,l]}).setColor([0,0,1,g]) |
559 | ]); | 567 | ]); |
560 | } | 568 | } |
561 | 569 | ||
562 | function P(x) { | 570 | function P(x) { |
563 | return x.connectTo(x.properties.P,new CSG.Connector([0,0,0],[0,0,1],[1,0,0]), false, 0); | 571 | return x.connectTo(x.properties.P,new CSG.Connector([0,0,0],[0,0,1],[1,0,0]), false, 0); |
564 | } | 572 | } |
565 | 573 | ||
566 | function main(params) { | 574 | function main(params) { |
567 | return refaxes().union(P(base_extrusions())); | 575 | return refaxes().union(P(base_extrusions())); |
568 | } | 576 | } |
569 | 577 | ||
570 | function _main(params) { | 578 | function _main(params) { |
571 | var e = EFFECTOR.effector(); | 579 | var e = EFFECTOR.effector(); |
572 | var hs = E3DV6.heatsink(); | 580 | var hs = E3DV6.heatsink(); |
573 | hs = hs.connectTo(hs.properties.grove_connector,e.properties.grove_connector,false,0); | 581 | hs = hs.connectTo(hs.properties.grove_connector,e.properties.grove_connector,false,0); |
574 | var ms = microswitch(); | 582 | var ms = microswitch(); |
575 | var hd = EFFECTOR.hinged({ | 583 | var hd = EFFECTOR.hinged({ |