summaryrefslogtreecommitdiffabout
path: root/delta.jscad
authorMichael Krelin <hacker@klever.net>2016-03-20 14:38:17 (UTC)
committer Michael Krelin <hacker@klever.net>2016-03-20 14:38:17 (UTC)
commit8805ba36fd9da26d3764ad83a5c8b97c30140dc0 (patch) (unidiff)
tree0c98aaa8b3c9c967285dfb1f535113b2afb67959 /delta.jscad
parent33c7b3b1dc1d7d9c706bfa25e9f56eb237aa7dfc (diff)
downloadredelta-8805ba36fd9da26d3764ad83a5c8b97c30140dc0.zip
redelta-8805ba36fd9da26d3764ad83a5c8b97c30140dc0.tar.gz
redelta-8805ba36fd9da26d3764ad83a5c8b97c30140dc0.tar.bz2
bed holder redesign
Diffstat (limited to 'delta.jscad') (more/less context) (ignore whitespace changes)
-rw-r--r--delta.jscad53
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
@@ -796,16 +796,69 @@ 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
802function bedholder(params) { 802function 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 });