summaryrefslogtreecommitdiff
path: root/another.scad
authorMichael Krelin <hacker@klever.net>2018-08-12 21:36:03 (UTC)
committer Michael Krelin <hacker@klever.net>2018-08-12 21:36:03 (UTC)
commite33d88e915e10aa7c127a75482e1210313c29add (patch) (unidiff)
treec51b6a3fc3ff57b21b1bdfdaae0b472cd430190b /another.scad
parentf123d3acb5e918b6a21af0a65bba4dc0395c73f3 (diff)
downloadextrudery-e33d88e915e10aa7c127a75482e1210313c29add.zip
extrudery-e33d88e915e10aa7c127a75482e1210313c29add.tar.gz
extrudery-e33d88e915e10aa7c127a75482e1210313c29add.tar.bz2
make offset on idler and pulley side difference
idler is moving and as long as I'm using plain bearing for idler that should be better
Diffstat (limited to 'another.scad') (more/less context) (ignore whitespace changes)
-rw-r--r--another.scad21
1 files changed, 13 insertions, 8 deletions
diff --git a/another.scad b/another.scad
index a93d21a..50b3a84 100644
--- a/another.scad
+++ b/another.scad
@@ -50,48 +50,49 @@ module the_extruder(
50 // empty spaces 50 // empty spaces
51 idler_travel = 3, // how far should idler travel when pressed 51 idler_travel = 3, // how far should idler travel when pressed
52 idler_clearance=1, 52 idler_clearance=1,
53 pulley_clearance=2, 53 pulley_clearance=2,
54 lever_v_clearance=.7, // vertical clearance for the lever 54 lever_v_clearance=.7, // vertical clearance for the lever
55 spring_d_clearance=1, 55 spring_d_clearance=1,
56 protrusion_tolerance_h=.5, // horizontal tolerance for the motor protrusion 56 protrusion_tolerance_h=.5, // horizontal tolerance for the motor protrusion
57 protrusion_tolerance_v=.5, // vertical tolerance for the motor protrusion 57 protrusion_tolerance_v=.5, // vertical tolerance for the motor protrusion
58 mount_screw_d_tolerance=.4, 58 mount_screw_d_tolerance=.4,
59 idler_v_tolerance=.5, 59 idler_v_tolerance=.5,
60 knob_bore_d_tolerance=.6, 60 knob_bore_d_tolerance=.6,
61 st_nut_h_tolerance=.2, 61 st_nut_h_tolerance=.2,
62 st_nut_d_tolerance=.2,/* TODO: make it st_nut_w_tolerance */ 62 st_nut_d_tolerance=.2,/* TODO: make it st_nut_w_tolerance */
63 st_screw_d_tolerance=.5, 63 st_screw_d_tolerance=.5,
64 64
65 what="lever", // lever|body|knob|springpad|* 65 what="lever", // lever|body|knob|springpad|*
66 left=false, 66 left=false,
67 vitamins = true, 67 vitamins = true,
68 supports = false, bridges = true, 68 supports = false, bridges = true,
69 tensioner = true, 69 tensioner = true,
70 debug = false 70 debug = false
71) { 71) {
72 fnd = 2*PI; fnr = 2*fnd; 72 fnd = 2*PI; fnr = 2*fnd;
73 73
74 idler_filament_offset = filament_path_d/2; // -filament_offset;
74 lever_shell = mount_screwhead_h+0.5; 75 lever_shell = mount_screwhead_h+0.5;
75 lever_thickness=max(spring_d+spring_d_clearance+layer_height*8,idler_h+idler_v_tolerance+2*lever_shell); 76 lever_thickness=max(spring_d+spring_d_clearance+layer_height*8,idler_h+idler_v_tolerance+2*lever_shell);
76 lsd = idler_d-idler_clearance*2; 77 lsd = idler_d-idler_clearance*2;
77 longwing=gearbox_d/2+spring_d/2+lsd/2; 78 longwing=gearbox_d/2+spring_d/2+lsd/2;
78 h_ = (pulley_d+idler_d)/(2*sqrt(2)); 79 h_ = (pulley_d+idler_d)/(2*sqrt(2));
79 ri = sqrt( pow(h_,2) + pow(mount_d/2-h_,2) ); 80 ri = sqrt( pow(h_,2) + pow(mount_d/2-h_,2) );
80 spring_dl = idler_travel*longwing/ri; 81 spring_dl = idler_travel*longwing/ri;
81 82
82 filament_elevation=protrusion_h+pulley_elevation+teeth_elevation; 83 filament_elevation=protrusion_h+pulley_elevation+teeth_elevation;
83 ls_z = filament_elevation; // leverspace mid-z 84 ls_z = filament_elevation; // leverspace mid-z
84 body_h = max(protrusion_h+bore_l,mount_screw_l-mounthole_depth/2+mount_screwhead_h,ls_z*2); 85 body_h = max(protrusion_h+bore_l,mount_screw_l-mounthole_depth/2+mount_screwhead_h,ls_z*2);
85 ls_h = lever_thickness+lever_v_clearance; // leverspace height 86 ls_h = lever_thickness+lever_v_clearance; // leverspace height
86 87
87 module mirrorleft() { 88 module mirrorleft() {
88 mirror([left?0:1,0,0]) children(); 89 mirror([left?0:1,0,0]) children();
89 } 90 }
90 module place_idler() { 91 module place_idler() {
91 rotate([0,0,45]) 92 rotate([0,0,45])
92 translate([(pulley_d+idler_d)/2,0,0]) 93 translate([(pulley_d+idler_d)/2,0,0])
93 children(); 94 children();
94 } 95 }
95 module finger_indent(d=lever_thickness,depth/*=1*/,r/*=15*/) { 96 module finger_indent(d=lever_thickness,depth/*=1*/,r/*=15*/) {
96 if(depth) { 97 if(depth) {
97 hh = (-4*pow(depth,2)+pow(d,2))/(8*depth); 98 hh = (-4*pow(depth,2)+pow(d,2))/(8*depth);
@@ -101,85 +102,89 @@ module the_extruder(
101 hh=sqrt(pow(r,2)-pow(d,2)/4); 102 hh=sqrt(pow(r,2)-pow(d,2)/4);
102 translate([0,0,hh]) sphere(r=r,$fn=fnr*r); 103 translate([0,0,hh]) sphere(r=r,$fn=fnr*r);
103 } 104 }
104 } 105 }
105 106
106 % if(vitamins) mirrorleft() { 107 % if(vitamins) mirrorleft() {
107 translate([0,0,-epsilon]) mirror([0,0,1]) cylinder(d=gearbox_d,h=1,$fn=60); 108 translate([0,0,-epsilon]) mirror([0,0,1]) cylinder(d=gearbox_d,h=1,$fn=60);
108 for(zr=[0:90:359]) rotate([0,0,zr]) translate([mount_d/2,0,0]) 109 for(zr=[0:90:359]) rotate([0,0,zr]) translate([mount_d/2,0,0])
109 cylinder(d=mount_screw_d,h=20,$fn=30); 110 cylinder(d=mount_screw_d,h=20,$fn=30);
110 translate([0,0,-epsilon]) cylinder(d=protrusion_d,h=protrusion_h,$fn=30); 111 translate([0,0,-epsilon]) cylinder(d=protrusion_d,h=protrusion_h,$fn=30);
111 translate([0,0,protrusion_h]) { 112 translate([0,0,protrusion_h]) {
112 difference() { 113 difference() {
113 cylinder(d=bore_d,h=bore_l,$fn=30); 114 cylinder(d=bore_d,h=bore_l,$fn=30);
114 translate([-bore_d/2-1,bore_dd-bore_d/2,-1]) 115 translate([-bore_d/2-1,bore_dd-bore_d/2,-1])
115 cube([bore_d+2,bore_d/2,bore_l+2]); 116 cube([bore_d+2,bore_d/2,bore_l+2]);
116 } 117 }
117 translate([0,0,pulley_elevation]) { 118 translate([0,0,pulley_elevation]) {
118 cylinder(d=pulley_d,h=pulley_h,$fn=30); 119 cylinder(d=pulley_d,h=pulley_h,$fn=30);
119 translate([0,0,teeth_elevation]) { 120 translate([0,0,teeth_elevation]) {
120 place_idler() { 121 place_idler() {
121 cylinder(d=idler_d,h=idler_h,center=true,$fn=30); 122 cylinder(d=idler_d,h=idler_h,center=true,$fn=30);
122 cylinder(d=idler_screw_d,h=lever_thickness+2,center=true,$fn=30); 123 cylinder(d=idler_screw_d,h=lever_thickness+2,center=true,$fn=30);
123 }//place idler 124 }//place idler
124 // filament path 125 // filament path
125 rotate([0,0,45]) translate([pulley_d/2+filament_offset,0,0]) { 126 rotate([0,0,45]) {
126 rotate([90,0,0]) cylinder(d=filament_d,h=gearbox_d*2,center=true,$fn=15); 127 translate([pulley_d/2-idler_filament_offset,0,0]) rotate([90,0,0]) {
127 rotate([-90,0,0]) 128 cylinder(d=filament_d,h=gearbox_d,center=false,$fn=15);
128 translate([0,0,mount_d/sqrt(2)/2+mount_screw_d]) 129 }//rotate translate
129 pushfit(pf); 130 translate([pulley_d/2+filament_offset,0,0]) rotate([-90,0,0]) {
130 } 131 cylinder(d=filament_d,h=gearbox_d,center=false,$fn=15);
132 translate([0,0,mount_d/sqrt(2)/2+mount_screw_d])
133 pushfit(pf);
134 }//rotate translate
135 }//rotate
131 }//translate teeth 136 }//translate teeth
132 }//translate pulley 137 }//translate pulley
133 }//translate protrusion 138 }//translate protrusion
134 }//vitamins 139 }//vitamins
135 140
136 module lever() { 141 module lever() {
137 translate([0,0,protrusion_h+pulley_elevation+teeth_elevation]) { 142 translate([0,0,protrusion_h+pulley_elevation+teeth_elevation]) {
138 difference() { 143 difference() {
139 union() { 144 union() {
140 hull() { 145 hull() {
141 place_idler() 146 place_idler()
142 cylinder(d=lsd,h=lever_thickness,center=true,$fn=60); 147 cylinder(d=lsd,h=lever_thickness,center=true,$fn=60);
143 translate([mount_d/2,0,0]) 148 translate([mount_d/2,0,0])
144 cylinder(d=lsd,h=lever_thickness,center=true,$fn=60); 149 cylinder(d=lsd,h=lever_thickness,center=true,$fn=60);
145 }//hull 150 }//hull
146 hull() { 151 hull() {
147 translate([mount_d/2,0,0]) 152 translate([mount_d/2,0,0])
148 cylinder(d=lsd,h=lever_thickness,center=true,$fn=60); 153 cylinder(d=lsd,h=lever_thickness,center=true,$fn=60);
149 translate([mount_d/2,-longwing,0]) rotate([0,90,0]) 154 translate([mount_d/2,-longwing,0]) rotate([0,90,0])
150 cylinder(d=lever_thickness,h=lsd,center=true,$fn=60); 155 cylinder(d=lever_thickness,h=lsd,center=true,$fn=60);
151 }//hull 156 }//hull
152 }//union 157 }//union
153 158
154 // filament path 159 // filament path
155 place_idler() { 160 place_idler() {
156 translate([-idler_d/2+filament_offset,0,0]) rotate([90,0,0]) { 161 translate([-idler_d/2-idler_filament_offset,0,0]) rotate([90,0,0]) {
157 cylinder(d=filament_path_d,h=3*gearbox_d,center=true,$fn=30); 162 cylinder(d=filament_path_d,h=3*gearbox_d,center=true,$fn=30);
158 translate([0,-filament_path_d/2/sqrt(2),0]) rotate([0,0,45]) 163 translate([0,-filament_path_d/2/sqrt(2),0]) rotate([0,0,45])
159 cube(size=[filament_path_d/2,filament_path_d/2,3*gearbox_d],center=true); 164 cube(size=[filament_path_d/2,filament_path_d/2,3*gearbox_d],center=true);
160 }//rotate translate 165 }//rotate translate
161 translate([-idler_d/2+filament_offset,0,0]) 166 translate([-idler_d/2-idler_filament_offset,0,0])
162 rotate([90,0,0]) 167 rotate([90,0,0])
163 translate([0,0, 168 translate([0,0,
164 sqrt(2)*(mount_d-pulley_d+lsd)/2 169 sqrt(2)*(mount_d-pulley_d+lsd)/2
165 ]) { 170 ]) {
166 cylinder(d1=filament_path_d,d2=2*filament_path_d, 171 cylinder(d1=filament_path_d,d2=2*filament_path_d,
167 h=filament_path_d,$fn=2*filament_path_d*fnd); 172 h=filament_path_d,$fn=2*filament_path_d*fnd);
168 translate([0,0,filament_path_d-epsilon]) 173 translate([0,0,filament_path_d-epsilon])
169 cylinder(d=2*filament_path_d,h=lsd,$fn=2*filament_path_d*fnd); 174 cylinder(d=2*filament_path_d,h=lsd,$fn=2*filament_path_d*fnd);
170 } 175 }
171 }//place_idler 176 }//place_idler
172 177
173 // idler space and mounting hole 178 // idler space and mounting hole
174 place_idler() { 179 place_idler() {
175 difference() { 180 difference() {
176 cylinder(d=idler_d+idler_clearance*2,h=idler_h+idler_v_tolerance,center=true,$fn=60); 181 cylinder(d=idler_d+idler_clearance*2,h=idler_h+idler_v_tolerance,center=true,$fn=60);
177 if(supports) for(y=[-lsd/2+extrusion_width:(lsd-2*extrusion_width)/3:lsd/2-extrusion_width]) 182 if(supports) for(y=[-lsd/2+extrusion_width:(lsd-2*extrusion_width)/3:lsd/2-extrusion_width])
178 translate([-lsd/2-1,y-extrusion_width/2,-idler_h/2-idler_v_tolerance/2-1]) 183 translate([-lsd/2-1,y-extrusion_width/2,-idler_h/2-idler_v_tolerance/2-1])
179 cube(size=[lsd+2,extrusion_width,idler_h+idler_v_tolerance+2]); 184 cube(size=[lsd+2,extrusion_width,idler_h+idler_v_tolerance+2]);
180 } 185 }
181 cylinder(d=idler_screw_d,h=lever_thickness+2,center=true,$fn=30); 186 cylinder(d=idler_screw_d,h=lever_thickness+2,center=true,$fn=30);
182 translate([0,0,lever_thickness/2-idler_screwhead_h]) 187 translate([0,0,lever_thickness/2-idler_screwhead_h])
183 cylinder(d=idler_screwhead_d,h=idler_screwhead_h+1,$fn=fnd*idler_screwhead_d); 188 cylinder(d=idler_screwhead_d,h=idler_screwhead_h+1,$fn=fnd*idler_screwhead_d);
184 } 189 }
185 // mounting screw hole 190 // mounting screw hole