-rw-r--r-- | delta.jscad | 23 |
1 files changed, 4 insertions, 19 deletions
diff --git a/delta.jscad b/delta.jscad index 35a777c..45e8765 100644 --- a/delta.jscad +++ b/delta.jscad | |||
@@ -851,115 +851,100 @@ var PARTS = { | |||
851 | return union(base_extrusions(),column_extrusions(),duet().translate([0,-20,0])); | 851 | return union(base_extrusions(),column_extrusions(),duet().translate([0,-20,0])); |
852 | }, | 852 | }, |
853 | alltogethernow: function(params) { | 853 | alltogethernow: function(params) { |
854 | var cols = columns(); | 854 | var cols = columns(); |
855 | var sides = base_sides(); | 855 | var sides = base_sides(); |
856 | var feet = THREEWINDS.map(function(w,i) { | 856 | var feet = THREEWINDS.map(function(w,i) { |
857 | var rv = foot(); | 857 | var rv = foot(); |
858 | rv = rv.connectTo(rv.properties.c_column,cols[i].properties.c_bottom,false,0); | 858 | rv = rv.connectTo(rv.properties.c_column,cols[i].properties.c_bottom,false,0); |
859 | var s = shoe(); | 859 | var s = shoe(); |
860 | s = s.connectTo(s.properties.c_foot,rv.properties.c_shoe,false,0); | 860 | s = s.connectTo(s.properties.c_foot,rv.properties.c_shoe,false,0); |
861 | return rv.union(s); | 861 | return rv.union(s); |
862 | }); | 862 | }); |
863 | var dh = duetholder(); | 863 | var dh = duetholder(); |
864 | var dhsw = dh.connectTo(dh.properties.c_h, | 864 | var dhsw = dh.connectTo(dh.properties.c_h, |
865 | new CSG.Connector([-CONFIG.duet.hole_spacing.x/2,-CD.base.mid_inscription_r,CONFIG.foot.h],[0,0,1],[1,0,0]), | 865 | new CSG.Connector([-CONFIG.duet.hole_spacing.x/2,-CD.base.mid_inscription_r,CONFIG.foot.h],[0,0,1],[1,0,0]), |
866 | false,0); | 866 | false,0); |
867 | var d = duet(); | 867 | var d = duet(); |
868 | d = d.connectTo(d.properties.holes.c_sw,dhsw.properties.duet.c_sw,false,0); | 868 | d = d.connectTo(d.properties.holes.c_sw,dhsw.properties.duet.c_sw,false,0); |
869 | var dhse = dh.connectTo(dh.properties.duet.c_se,d.properties.holes.c_se,false,0); | 869 | var dhse = dh.connectTo(dh.properties.duet.c_se,d.properties.holes.c_se,false,0); |
870 | var dhne = dh.connectTo(dh.properties.duet.c_ne,d.properties.holes.c_ne,false,0); | 870 | var dhne = dh.connectTo(dh.properties.duet.c_ne,d.properties.holes.c_ne,false,0); |
871 | var dhnw = dh.connectTo(dh.properties.duet.c_nw,d.properties.holes.c_nw,false,0); | 871 | var dhnw = dh.connectTo(dh.properties.duet.c_nw,d.properties.holes.c_nw,false,0); |
872 | var rv = union(cols).union(sides.map(union)).union(feet).union([ | 872 | var rv = union(cols).union(sides.map(union)).union(feet).union([ |
873 | d,dhsw,dhse,dhne,dhnw | 873 | d,dhsw,dhse,dhne,dhnw |
874 | ]); | 874 | ]); |
875 | var p = P(platform()); | 875 | var p = U.P(platform()); |
876 | rv = rv.union(p); | 876 | rv = rv.union(p); |
877 | rv.properties.P = new CSG.Connector([0,0,0],[0,0,1],[1,0,0]); | 877 | rv.properties.P = new CSG.Connector([0,0,0],[0,0,1],[1,0,0]); |
878 | return rv; | 878 | return rv; |
879 | }, | 879 | }, |
880 | duetholder: function(params) { | 880 | duetholder: function(params) { |
881 | return duetholder(); | 881 | return duetholder(); |
882 | }, | 882 | }, |
883 | foot: foot, | 883 | foot: foot, |
884 | shoe: shoe, | 884 | shoe: shoe, |
885 | bedholder: bedholder | 885 | bedholder: bedholder |
886 | }; | 886 | }; |
887 | 887 | ||
888 | function main(params) { | 888 | function main(params) { |
889 | var part = params.part && PARTS[params.part]; | 889 | var part = params.part && PARTS[params.part]; |
890 | if(!part) return refaxes(); | 890 | if(!part) return U.axes(); |
891 | var rv = P(part(params)); | 891 | var rv = U.P(part(params)); |
892 | if(!params.print) rv = rv.union(refaxes()); | 892 | if(!params.print) rv = rv.union(U.axes()); |
893 | return rv; | 893 | return rv; |
894 | } | 894 | } |
895 | 895 | ||
896 | function _main(params) { | 896 | function _main(params) { |
897 | var e = EFFECTOR.effector(); | 897 | var e = EFFECTOR.effector(); |
898 | var hs = E3DV6.heatsink(); | 898 | var hs = E3DV6.heatsink(); |
899 | hs = hs.connectTo(hs.properties.grove_connector,e.properties.grove_connector,false,0); | 899 | hs = hs.connectTo(hs.properties.grove_connector,e.properties.grove_connector,false,0); |
900 | var ms = microswitch(); | 900 | var ms = microswitch(); |
901 | var hd = EFFECTOR.hinged({ | 901 | var hd = EFFECTOR.hinged({ |
902 | microswitch:ms,effector:e | 902 | microswitch:ms,effector:e |
903 | }); | 903 | }); |
904 | ms = ms.connectTo( | 904 | ms = ms.connectTo( |
905 | ms.properties.screw_connector[0], | 905 | ms.properties.screw_connector[0], |
906 | hd.properties.microswitch_screw_connector[0], | 906 | hd.properties.microswitch_screw_connector[0], |
907 | false, 0); | 907 | false, 0); |
908 | var hdhd = EFFECTOR.split_hinged(hd); | 908 | var hdhd = EFFECTOR.split_hinged(hd); |
909 | var fh = EFFECTOR.fanholder(); | 909 | var fh = EFFECTOR.fanholder(); |
910 | return union({ | 910 | return union({ |
911 | platform: e, | 911 | platform: e, |
912 | hinged: hdhd[1], | 912 | hinged: hdhd[1], |
913 | clamp: hdhd[0], | 913 | clamp: hdhd[0], |
914 | fanholder: fh, | 914 | fanholder: fh, |
915 | alltogethernow: [e,hdhd[0],hdhd[1], columns(),hs,ms,fh] | 915 | alltogethernow: [e,hdhd[0],hdhd[1], columns(),hs,ms,fh] |
916 | }[params.part||'alltogethernow']) | 916 | }[params.part||'alltogethernow']) |
917 | var rv = union( | 917 | var rv = union( |
918 | e, | 918 | e, |
919 | hs, | 919 | hs, |
920 | columns(), | 920 | columns(), |
921 | ///hd, | 921 | ///hd, |
922 | hdhd[0], hdhd[1], | 922 | hdhd[0], hdhd[1], |
923 | ms); | 923 | ms); |
924 | return rv; | 924 | return rv; |
925 | } | 925 | } |
926 | 926 | ||
927 | function refaxes(o) { | ||
928 | if(!o) o = {}; | ||
929 | var l = o.l||20, g = o.g||0.7; | ||
930 | return union([ | ||
931 | CSG.roundedCylinder({start:[0,0,0],end:[l,0,0]}).setColor([1,0,0,g]), | ||
932 | CSG.roundedCylinder({start:[0,0,0],end:[0,l,0]}).setColor([0,1,0,g]), | ||
933 | CSG.roundedCylinder({start:[0,0,0],end:[0,0,l]}).setColor([0,0,1,g]) | ||
934 | ]); | ||
935 | } | ||
936 | |||
937 | function P(x) { | ||
938 | return x.connectTo(x.properties.P,new CSG.Connector([0,0,0],[0,0,1],[1,0,0]), false, 0); | ||
939 | } | ||
940 | |||
941 | |||
942 | function getParameterDefinitions() { | 927 | function getParameterDefinitions() { |
943 | return [{ | 928 | return [{ |
944 | name: 'part', | 929 | name: 'part', |
945 | type: 'choice', | 930 | type: 'choice', |
946 | values: [ | 931 | values: [ |
947 | 'platform', | 932 | 'platform', |
948 | 'hinged', | 933 | 'hinged', |
949 | 'clamp', | 934 | 'clamp', |
950 | 'fanholder', | 935 | 'fanholder', |
951 | 'duetholder', | 936 | 'duetholder', |
952 | 'foot', 'shoe', | 937 | 'foot', 'shoe', |
953 | 'bedholder', | 938 | 'bedholder', |
954 | 'alltogethernow', | 939 | 'alltogethernow', |
955 | 'wip' | 940 | 'wip' |
956 | ], | 941 | ], |
957 | captions: [ | 942 | captions: [ |
958 | 'Effector platform', | 943 | 'Effector platform', |
959 | 'Hinged part', | 944 | 'Hinged part', |
960 | 'Clamp', | 945 | 'Clamp', |
961 | 'Fan holder', | 946 | 'Fan holder', |
962 | 'Duet holder', | 947 | 'Duet holder', |
963 | 'Foot', 'Shoe', | 948 | 'Foot', 'Shoe', |
964 | 'Bed holder', | 949 | 'Bed holder', |
965 | 'All together now!', | 950 | 'All together now!', |