summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--delta.jscad57
1 files changed, 54 insertions, 3 deletions
diff --git a/delta.jscad b/delta.jscad
index 24c1c7e..0e8fd62 100644
--- a/delta.jscad
+++ b/delta.jscad
@@ -45,6 +45,12 @@ var CONFIG = {
45 margin: 3, 45 margin: 3,
46 s: 2.5 46 s: 2.5
47 }, 47 },
48 bedholder: {
49 h: 15,
50 margin: 3,
51 nut: { w: 5.4, h: 2.5 },
52 bolt: { d: 3, l: 10, head: { d: 5.33, h: 3 } }
53 },
48 hotend: { 54 hotend: {
49 h: 62.4, // full assembly height 55 h: 62.4, // full assembly height
50 groove: { d:12, h:6 }, // grove diameter and height 56 groove: { d:12, h:6 }, // grove diameter and height
@@ -764,6 +770,49 @@ function platform() {
764 return b.union(g); 770 return b.union(g);
765} 771}
766 772
773function bedholder(params) {
774 var h0 = CONFIG.foot.h+CONFIG.extrusion.w*2+CONFIG.base.gap;
775 var bolt_s = CONFIG.bedholder.bolt.l-CONFIG.extrusion.slotdepth+PRINT.play_tolerance*2;
776 var nuth=h0+CONFIG.bedholder.h*3/4;
777 var nutth = nuth+CONFIG.bedholder.nut.h/2+PRINT.slide_tolerance/2;
778 var rv = CSG.roundedCube({
779 corner1: [-CONFIG.extrusion.w/2,-CD.base.inner_inscription_r,h0],
780 corner2: [ CONFIG.extrusion.w/2,-CONFIG.heatbed.sr-3/2-CONFIG.bedholder.margin,h0+CONFIG.bedholder.h],
781 roundradius: CONFIG.bedholder.margin
782 });
783 rv = rv.subtract([
784 CSG.cylinder({ // base screw
785 start: [0,-CD.base.mid_inscription_r,h0-1],
786 end: [0,-CD.base.mid_inscription_r,h0+CONFIG.bedholder.h+1],
787 radius: CONFIG.bedholder.bolt.d/2+PRINT.screw_tolerance/2
788 }),
789 CSG.cylinder({ // bed screw
790 start: [0,-CONFIG.heatbed.sr,h0-1],
791 end: [0,-CONFIG.heatbed.sr,h0+CONFIG.bedholder.h+1],
792 radius: CONFIG.bedholder.bolt.d/2+PRINT.screw_tolerance/2
793 }),
794 CSG.cube({ // nut pocket
795 center: [0,-CONFIG.heatbed.sr,nuth],
796 radius: [CONFIG.extrusion.w/2+1,(CONFIG.bedholder.nut.w+PRINT.slide_tolerance)/2,(CONFIG.bedholder.nut.h+PRINT.slide_tolerance)/2]
797 }),
798 CSG.cylinder({ // sink base screw
799 start: [0,-CD.base.mid_inscription_r,h0+bolt_s],
800 end: [0,-CD.base.mid_inscription_r,h0+CONFIG.bedholder.h+1],
801 radius: CONFIG.bedholder.bolt.head.d/2+PRINT.play_tolerance
802 })
803 ]);
804 rv = rv.union(CSG.cylinder({
805 start: [0,-CONFIG.heatbed.sr,nutth], end: [0,-CONFIG.heatbed.sr,nutth+PRINT.layer_height],
806 radius: (CONFIG.bedholder.nut.w+PRINT.slide_tolerance)/2+PRINT.extrusion_width
807 }));
808 rv = rv.intersect(CSG.cylinder({
809 start: [0,0,h0-1], end: [0,0,h0+CONFIG.bedholder.h+1],
810 radius: CONFIG.heatbed.r, resolution: 270
811 }));
812 rv.properties.P = new CSG.Connector([0,-CD.base.mid_inscription_r,h0],[0,0,1],[1,0,0]);
813 return rv.setColor(CONFIG.color.parts);
814}
815
767var PARTS = { 816var PARTS = {
768 wip: function(params) { 817 wip: function(params) {
769 return duetholder(params); 818 return duetholder(params);
@@ -803,7 +852,8 @@ var PARTS = {
803 return duetholder(); 852 return duetholder();
804 }, 853 },
805 foot: foot, 854 foot: foot,
806 shoe: shoe 855 shoe: shoe,
856 bedholder: bedholder
807}; 857};
808 858
809function main(params) { 859function main(params) {
@@ -871,6 +921,7 @@ function getParameterDefinitions() {
871 'fanholder', 921 'fanholder',
872 'duetholder', 922 'duetholder',
873 'foot', 'shoe', 923 'foot', 'shoe',
924 'bedholder',
874 'alltogethernow', 925 'alltogethernow',
875 'wip' 926 'wip'
876 ], 927 ],
@@ -880,8 +931,8 @@ function getParameterDefinitions() {
880 'Clamp', 931 'Clamp',
881 'Fan holder', 932 'Fan holder',
882 'Duet holder', 933 'Duet holder',
883 'Foot', 934 'Foot', 'Shoe',
884 'Shoe', 935 'Bed holder',
885 'All together now!', 936 'All together now!',
886 'Work in progress' 937 'Work in progress'
887 ], 938 ],