author | Michael Krelin <hacker@klever.net> | 2016-03-20 14:38:17 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2016-03-20 14:38:17 (UTC) |
commit | 8805ba36fd9da26d3764ad83a5c8b97c30140dc0 (patch) (unidiff) | |
tree | 0c98aaa8b3c9c967285dfb1f535113b2afb67959 | |
parent | 33c7b3b1dc1d7d9c706bfa25e9f56eb237aa7dfc (diff) | |
download | redelta-8805ba36fd9da26d3764ad83a5c8b97c30140dc0.zip redelta-8805ba36fd9da26d3764ad83a5c8b97c30140dc0.tar.gz redelta-8805ba36fd9da26d3764ad83a5c8b97c30140dc0.tar.bz2 |
bed holder redesign
-rw-r--r-- | delta.jscad | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/delta.jscad b/delta.jscad index 12bdb97..e9fb773 100644 --- a/delta.jscad +++ b/delta.jscad | |||
@@ -792,24 +792,77 @@ function glass() { | |||
792 | rv.properties.vitamin = true; | 792 | rv.properties.vitamin = true; |
793 | return rv.setColor(CONFIG.color.glass); | 793 | return rv.setColor(CONFIG.color.glass); |
794 | } | 794 | } |
795 | function platform() { | 795 | function platform() { |
796 | var b = heatbed(); | 796 | var b = heatbed(); |
797 | var g = glass(); | 797 | var g = glass(); |
798 | g = g.connectTo(g.properties.c_bed,b.properties.c_glass,false,0); | 798 | g = g.connectTo(g.properties.c_bed,b.properties.c_glass,false,0); |
799 | return b.union(g); | 799 | return b.union(g); |
800 | } | 800 | } |
801 | 801 | ||
802 | function bedholder(params) { | 802 | function bedholder(params) { |
803 | var h0 = CONFIG.foot.h+CONFIG.extrusion.w*2+CONFIG.base.gap; | 803 | var h0 = CONFIG.foot.h+CONFIG.extrusion.w*2+CONFIG.base.gap; |
804 | var e_h=E2020.T.thickness; // height of the bump for extrusion | ||
805 | var e_w=E2020.slot_width-PRINT.fit_tolerance; // width of the bump for extrusion | ||
806 | var e_o=E2020.slot_width+PRINT.fit_tolerance; // opening for the T-Nut width | ||
807 | var rv = CSG.cylinder({ | ||
808 | start: [0,0,h0], end: [0,0,h0+CONFIG.bedholder.h], | ||
809 | radiusStart: CD.base.outer_inscription_r, | ||
810 | radiusEnd: CD.base.outer_inscription_r+CONFIG.bedholder.h/2, | ||
811 | resolution: 240 | ||
812 | }); | ||
813 | rv=rv.intersect(CSG.cube({ | ||
814 | corner1: [-CONFIG.extrusion.w/2,-CD.base.inner_inscription_r,h0], | ||
815 | corner2: [ CONFIG.extrusion.w/2,-CD.base.mid_inscription_r*2,h0+2*CONFIG.bedholder.h] | ||
816 | })); | ||
817 | |||
818 | rv=rv.union(CSG.cube({ // bump to fix on extrusion | ||
819 | corner1: [-CONFIG.extrusion.w/2,-CD.base.mid_inscription_r-e_w/2,h0], | ||
820 | corner2: [ CONFIG.extrusion.w/2,-CD.base.mid_inscription_r+e_w/2,h0-e_h] | ||
821 | }).subtract( | ||
822 | CSG.cube({center:[0,0,0],radius:[(e_o+2*e_h)/(2*Math.sqrt(2)),e_w+2,(e_o+2*e_h)/(2*Math.sqrt(2))]}) | ||
823 | .rotateY(45) | ||
824 | .translate([0,-CD.base.mid_inscription_r,h0-e_h]) | ||
825 | )); | ||
826 | |||
827 | var ebolt_s = CONFIG.bedholder.bolt.l-CONFIG.extrusion.slotdepth+PRINT.play_tolerance*2; | ||
828 | rv=rv.subtract([ | ||
829 | CSG.cylinder({ // base screw | ||
830 | start: [0,-CD.base.mid_inscription_r,h0-1], | ||
831 | end: [0,-CD.base.mid_inscription_r,h0+CONFIG.bedholder.h+1], | ||
832 | radius: CONFIG.bedholder.bolt.d/2+PRINT.screw_tolerance/2 | ||
833 | }), | ||
834 | CSG.cylinder({ // base screw head | ||
835 | start: [0,-CD.base.mid_inscription_r,h0+ebolt_s], | ||
836 | end: [0,-CD.base.mid_inscription_r,h0+CONFIG.bedholder.h+1], | ||
837 | radius: CONFIG.bedholder.bolt.head.d/2+PRINT.play_tolerance | ||
838 | }) | ||
839 | ]); | ||
840 | |||
841 | var nuth=h0+CONFIG.bedholder.h*3/4; | ||
842 | rv=rv.subtract([ | ||
843 | CSG.cylinder({ // bed screw | ||
844 | start: [0,-CONFIG.heatbed.sr,h0-1], | ||
845 | end: [0,-CONFIG.heatbed.sr,h0+CONFIG.bedholder.h+1], | ||
846 | radius: CONFIG.bedholder.bolt.d/2+PRINT.screw_tolerance/2 | ||
847 | }), | ||
848 | CSG.cube({ // nut pocket | ||
849 | center: [0,-CONFIG.heatbed.sr,nuth], | ||
850 | radius: [CONFIG.extrusion.w/2+1,CONFIG.bedholder.nut.w/2+PRINT.slide_tolerance/2,CONFIG.bedholder.nut.h/2+PRINT.slide_tolerance/2] | ||
851 | }) | ||
852 | ]); | ||
853 | |||
854 | rv.properties.P = new CSG.Connector([-CONFIG.extrusion.w/2,-CD.base.mid_inscription_r,h0+CONFIG.bedholder.h/2], | ||
855 | [1,0,0],[0,0,1]); | ||
856 | return rv.setColor(CONFIG.color.parts); | ||
804 | var bolt_s = CONFIG.bedholder.bolt.l-CONFIG.extrusion.slotdepth+PRINT.play_tolerance*2; | 857 | var bolt_s = CONFIG.bedholder.bolt.l-CONFIG.extrusion.slotdepth+PRINT.play_tolerance*2; |
805 | var nuth=h0+CONFIG.bedholder.h*3/4; | 858 | var nuth=h0+CONFIG.bedholder.h*3/4; |
806 | var nutth = nuth+CONFIG.bedholder.nut.h/2+PRINT.slide_tolerance/2; | 859 | var nutth = nuth+CONFIG.bedholder.nut.h/2+PRINT.slide_tolerance/2; |
807 | var rv = CSG.roundedCube({ | 860 | var rv = CSG.roundedCube({ |
808 | corner1: [-CONFIG.extrusion.w/2,-CD.base.inner_inscription_r,h0], | 861 | corner1: [-CONFIG.extrusion.w/2,-CD.base.inner_inscription_r,h0], |
809 | corner2: [ CONFIG.extrusion.w/2,-CONFIG.heatbed.sr-3/2-CONFIG.bedholder.margin,h0+CONFIG.bedholder.h], | 862 | corner2: [ CONFIG.extrusion.w/2,-CONFIG.heatbed.sr-3/2-CONFIG.bedholder.margin,h0+CONFIG.bedholder.h], |
810 | roundradius: CONFIG.bedholder.margin | 863 | roundradius: CONFIG.bedholder.margin |
811 | }); | 864 | }); |
812 | rv = rv.subtract([ | 865 | rv = rv.subtract([ |
813 | CSG.cylinder({ // base screw | 866 | CSG.cylinder({ // base screw |
814 | start: [0,-CD.base.mid_inscription_r,h0-1], | 867 | start: [0,-CD.base.mid_inscription_r,h0-1], |
815 | end: [0,-CD.base.mid_inscription_r,h0+CONFIG.bedholder.h+1], | 868 | end: [0,-CD.base.mid_inscription_r,h0+CONFIG.bedholder.h+1], |