summaryrefslogtreecommitdiff
path: root/another.scad
authorMichael Krelin <hacker@klever.net>2018-08-06 11:32:37 (UTC)
committer Michael Krelin <hacker@klever.net>2018-08-06 11:32:37 (UTC)
commit94730f0a772dab12295fbf71ba436e9e06efd00a (patch) (unidiff)
treefdba7f0d93bf990d0b3e3bf2ac22265e35dc7dff /another.scad
parent62c1ffcff93a1880b26829bd5cd5fed9c3eb6293 (diff)
downloadextrudery-94730f0a772dab12295fbf71ba436e9e06efd00a.zip
extrudery-94730f0a772dab12295fbf71ba436e9e06efd00a.tar.gz
extrudery-94730f0a772dab12295fbf71ba436e9e06efd00a.tar.bz2
another: conditional bridging patches
Diffstat (limited to 'another.scad') (more/less context) (ignore whitespace changes)
-rw-r--r--another.scad8
1 files changed, 4 insertions, 4 deletions
diff --git a/another.scad b/another.scad
index 9ed285d..7e7f22d 100644
--- a/another.scad
+++ b/another.scad
@@ -36,49 +36,49 @@ module the_extruder(
36 st_screw_d = 5, 36 st_screw_d = 5,
37 st_thickshell = 8*extrusion_width, st_thinshell = 4*extrusion_width, 37 st_thickshell = 8*extrusion_width, st_thinshell = 4*extrusion_width,
38 38
39 // screw it 39 // screw it
40 mount_screw_d = 3.1, mount_screw_l = 20, 40 mount_screw_d = 3.1, mount_screw_l = 20,
41 mount_screwhead_d=6, mount_screwhead_h=3, 41 mount_screwhead_d=6, mount_screwhead_h=3,
42 42
43 pf = pushfit_embeddest, 43 pf = pushfit_embeddest,
44 44
45 // empty spaces 45 // empty spaces
46 idler_travel = 3, // how far should idler travel when pressed 46 idler_travel = 3, // how far should idler travel when pressed
47 idler_clearance=1, 47 idler_clearance=1,
48 pulley_clearance=2, 48 pulley_clearance=2,
49 lever_v_clearance=.7, // vertical clearance for the lever 49 lever_v_clearance=.7, // vertical clearance for the lever
50 spring_d_clearance=1, 50 spring_d_clearance=1,
51 protrusion_tolerance_h=.5, // horizontal tolerance for the motor protrusion 51 protrusion_tolerance_h=.5, // horizontal tolerance for the motor protrusion
52 protrusion_tolerance_v=.5, // vertical tolerance for the motor protrusion 52 protrusion_tolerance_v=.5, // vertical tolerance for the motor protrusion
53 mount_screw_d_tolerance=.4, 53 mount_screw_d_tolerance=.4,
54 idler_v_tolerance=.5, 54 idler_v_tolerance=.5,
55 knob_bore_d_tolerance=.6, 55 knob_bore_d_tolerance=.6,
56 56
57 what="lever", // lever|body|knob|springpad|* 57 what="lever", // lever|body|knob|springpad|*
58 left=false, 58 left=false,
59 vitamins = true, 59 vitamins = true,
60 supports = false, 60 supports = false, bridges = true,
61 tensioner = true, 61 tensioner = true,
62 debug = false 62 debug = false
63) { 63) {
64 fnd = 2*PI; fnr = 2*fnd; 64 fnd = 2*PI; fnr = 2*fnd;
65 65
66 lever_shell = mount_screwhead_h+0.5; 66 lever_shell = mount_screwhead_h+0.5;
67 lever_thickness=max(spring_d+spring_d_clearance+layer_height*8,idler_h+idler_v_tolerance+2*lever_shell); 67 lever_thickness=max(spring_d+spring_d_clearance+layer_height*8,idler_h+idler_v_tolerance+2*lever_shell);
68 lsd = idler_d-idler_clearance*2; 68 lsd = idler_d-idler_clearance*2;
69 longwing=gearbox_d/2+spring_d/2+lsd/2; 69 longwing=gearbox_d/2+spring_d/2+lsd/2;
70 h_ = (pulley_d+idler_d)/(2*sqrt(2)); 70 h_ = (pulley_d+idler_d)/(2*sqrt(2));
71 ri = sqrt( pow(h_,2) + pow(mount_d/2-h_,2) ); 71 ri = sqrt( pow(h_,2) + pow(mount_d/2-h_,2) );
72 spring_dl = idler_travel*longwing/ri; 72 spring_dl = idler_travel*longwing/ri;
73 73
74 filament_elevation=protrusion_h+pulley_elevation+teeth_elevation; 74 filament_elevation=protrusion_h+pulley_elevation+teeth_elevation;
75 ls_z = filament_elevation; // leverspace mid-z 75 ls_z = filament_elevation; // leverspace mid-z
76 body_h = max(protrusion_h+bore_l,mount_screw_l-mounthole_depth/2+mount_screwhead_h,ls_z*2); 76 body_h = max(protrusion_h+bore_l,mount_screw_l-mounthole_depth/2+mount_screwhead_h,ls_z*2);
77 ls_h = lever_thickness+lever_v_clearance; // leverspace height 77 ls_h = lever_thickness+lever_v_clearance; // leverspace height
78 78
79 module mirrorleft() { 79 module mirrorleft() {
80 mirror([left?0:1,0,0]) children(); 80 mirror([left?0:1,0,0]) children();
81 } 81 }
82 module place_idler() { 82 module place_idler() {
83 rotate([0,0,45]) 83 rotate([0,0,45])
84 translate([(pulley_d+idler_d)/2,0,0]) 84 translate([(pulley_d+idler_d)/2,0,0])
@@ -157,49 +157,49 @@ module the_extruder(
157 if(supports) for(y=[-lsd/2+extrusion_width:(lsd-2*extrusion_width)/3:lsd/2-extrusion_width]) 157 if(supports) for(y=[-lsd/2+extrusion_width:(lsd-2*extrusion_width)/3:lsd/2-extrusion_width])
158 translate([-lsd/2-1,y-extrusion_width/2,-idler_h/2-idler_v_tolerance/2-1]) 158 translate([-lsd/2-1,y-extrusion_width/2,-idler_h/2-idler_v_tolerance/2-1])
159 cube(size=[lsd+2,extrusion_width,idler_h+idler_v_tolerance+2]); 159 cube(size=[lsd+2,extrusion_width,idler_h+idler_v_tolerance+2]);
160 } 160 }
161 cylinder(d=mount_screw_d+mount_screw_d_tolerance,h=lever_thickness+2,center=true,$fn=30); 161 cylinder(d=mount_screw_d+mount_screw_d_tolerance,h=lever_thickness+2,center=true,$fn=30);
162 translate([0,0,lever_thickness/2-mount_screwhead_h]) 162 translate([0,0,lever_thickness/2-mount_screwhead_h])
163 cylinder(d=mount_screwhead_d,h=mount_screwhead_h+1,$fn=fnd*mount_screwhead_d); 163 cylinder(d=mount_screwhead_d,h=mount_screwhead_h+1,$fn=fnd*mount_screwhead_d);
164 } 164 }
165 // mounting screw hole 165 // mounting screw hole
166 translate([mount_d/2,0,0]) 166 translate([mount_d/2,0,0])
167 cylinder(d=mount_screw_d+mount_screw_d_tolerance,h=lever_thickness+2,center=true,$fn=fnd*mount_screw_d); 167 cylinder(d=mount_screw_d+mount_screw_d_tolerance,h=lever_thickness+2,center=true,$fn=fnd*mount_screw_d);
168 168
169 // lever end 169 // lever end
170 translate([mount_d/2,0,0]) rotate([0,90,0]) { 170 translate([mount_d/2,0,0]) rotate([0,90,0]) {
171 translate([0,-longwing,lsd/2]) finger_indent(d=lever_thickness-1,r=15); 171 translate([0,-longwing,lsd/2]) finger_indent(d=lever_thickness-1,r=15);
172 translate([0,-longwing,0]) 172 translate([0,-longwing,0])
173 mirror([0,0,1]) 173 mirror([0,0,1])
174 difference() { 174 difference() {
175 cylinder(d=spring_d+spring_d_clearance,h=lsd,$fn=fnd*(spring_d+spring_d_clearance)); 175 cylinder(d=spring_d+spring_d_clearance,h=lsd,$fn=fnd*(spring_d+spring_d_clearance));
176 sphere(d=spring_d*3/4,$fn=fnd*spring_d*3/4); 176 sphere(d=spring_d*3/4,$fn=fnd*spring_d*3/4);
177 } 177 }
178 }//rotate-translate 178 }//rotate-translate
179 }//difference 179 }//difference
180 // bridging patch 180 // bridging patch
181 place_idler() 181 if(bridges) place_idler()
182 translate([0,0,lever_thickness/2-mount_screwhead_h]) 182 translate([0,0,lever_thickness/2-mount_screwhead_h])
183 mirror([0,0,1]) 183 mirror([0,0,1])
184 cylinder(d=mount_screwhead_d,h=layer_height); 184 cylinder(d=mount_screwhead_d,h=layer_height);
185 }//translate 185 }//translate
186 }//lever module 186 }//lever module
187 187
188 module body() { 188 module body() {
189 difference() { 189 difference() {
190 union() { 190 union() {
191 cylinder(d=gearbox_d,h=body_h,$fn=fnd*gearbox_d); 191 cylinder(d=gearbox_d,h=body_h,$fn=fnd*gearbox_d);
192 // finger and spring support 192 // finger and spring support
193 fsw = gearbox_d-(gearbox_d-mount_d)/2-spring_lc; 193 fsw = gearbox_d-(gearbox_d-mount_d)/2-spring_lc;
194 translate([-gearbox_d/2,0,0]) difference() { 194 translate([-gearbox_d/2,0,0]) difference() {
195 union() { 195 union() {
196 hull() { 196 hull() {
197 translate([0,-longwing,ls_z]) 197 translate([0,-longwing,ls_z])
198 rotate([0,90,0]) 198 rotate([0,90,0])
199 cylinder(d=lever_thickness,h=fsw,$fn=fnd*lever_thickness); 199 cylinder(d=lever_thickness,h=fsw,$fn=fnd*lever_thickness);
200 hh=body_h-ls_z; 200 hh=body_h-ls_z;
201 translate([0,0,ls_z-lever_thickness/2]) 201 translate([0,0,ls_z-lever_thickness/2])
202 mirror([0,1,0]) cube(size=[fsw,longwing-hh+lever_thickness/sqrt(2),hh+lever_thickness/2]); 202 mirror([0,1,0]) cube(size=[fsw,longwing-hh+lever_thickness/sqrt(2),hh+lever_thickness/2]);
203 hhh=ls_z; 203 hhh=ls_z;
204 translate([0,0,0]) 204 translate([0,0,0])
205 mirror([0,1,0]) cube(size=[fsw,longwing-hhh+lever_thickness/sqrt(2),hhh+lever_thickness/2]); 205 mirror([0,1,0]) cube(size=[fsw,longwing-hhh+lever_thickness/sqrt(2),hhh+lever_thickness/2]);
@@ -218,52 +218,52 @@ module the_extruder(
218 hf = (bigd-st_screw_d)/2; 218 hf = (bigd-st_screw_d)/2;
219 translate([0,0,st_thickshell+st_nut_h+st_thinshell-epsilon]) 219 translate([0,0,st_thickshell+st_nut_h+st_thinshell-epsilon])
220 cylinder(d1=st_screw_d,d2=bigd, 220 cylinder(d1=st_screw_d,d2=bigd,
221 h=hf+epsilon, $fn=fnd*bigd); 221 h=hf+epsilon, $fn=fnd*bigd);
222 translate([0,0,st_thickshell+st_nut_h+st_thinshell+hf-epsilon]) 222 translate([0,0,st_thickshell+st_nut_h+st_thinshell+hf-epsilon])
223 cylinder(d=bigd,h=fsw+1,$fn=fnd*bigd); 223 cylinder(d=bigd,h=fsw+1,$fn=fnd*bigd);
224 } 224 }
225 } 225 }
226 } 226 }
227 } // translate 227 } // translate
228 228
229 // pushfit bracket 229 // pushfit bracket
230 translate([0,0,filament_elevation]) 230 translate([0,0,filament_elevation])
231 rotate([0,0,45]) translate([pulley_d/2,0,0]) 231 rotate([0,0,45]) translate([pulley_d/2,0,0])
232 rotate([-90,0,0]) 232 rotate([-90,0,0])
233 translate([0,0,mount_d/sqrt(2)/2+mount_screw_d-gearbox_d/2/*TODO:*/]) 233 translate([0,0,mount_d/sqrt(2)/2+mount_screw_d-gearbox_d/2/*TODO:*/])
234 cylinder(r=min(body_h-filament_elevation,filament_elevation)/sin(60)-epsilon,h=pf_h(pf)+gearbox_d/2/*TODO:*/,$fn=6); 234 cylinder(r=min(body_h-filament_elevation,filament_elevation)/sin(60)-epsilon,h=pf_h(pf)+gearbox_d/2/*TODO:*/,$fn=6);
235 }//union (first child of difference) 235 }//union (first child of difference)
236 236
237 // protrusion 237 // protrusion
238 translate([0,0,-1]) 238 translate([0,0,-1])
239 cylinder(d=protrusion_d+protrusion_tolerance_h,h=protrusion_h+protrusion_tolerance_v+1,$fn=fnd*(protrusion_d+protrusion_tolerance_h)); 239 cylinder(d=protrusion_d+protrusion_tolerance_h,h=protrusion_h+protrusion_tolerance_v+1,$fn=fnd*(protrusion_d+protrusion_tolerance_h));
240 // mount screw holes 240 // mount screw holes
241 for(zr=[0:90:359]) rotate([0,0,zr]) translate([mount_d/2,0,0]) { 241 for(zr=[0:90:359]) rotate([0,0,zr]) translate([mount_d/2,0,0]) {
242 translate([0,0,mount_screw_l-mounthole_depth/2-layer_height-1]) 242 translate([0,0,mount_screw_l-mounthole_depth/2-(bridges?layer_height:-epsilon)])
243 mirror([0,0,1]) 243 mirror([0,0,1])
244 cylinder(d=mount_screw_d+mount_screw_d_tolerance, 244 cylinder(d=mount_screw_d+mount_screw_d_tolerance,
245 h=mount_screw_l-mounthole_depth/2-layer_height+1, 245 h=mount_screw_l-mounthole_depth/2+1,
246 $fn=fnd*(mount_screw_d+mount_screw_d_tolerance)); 246 $fn=fnd*(mount_screw_d+mount_screw_d_tolerance));
247 translate([0,0,mount_screw_l-mounthole_depth/2]) 247 translate([0,0,mount_screw_l-mounthole_depth/2])
248 cylinder(d=mount_screwhead_d,h=body_h+1,$fn=fnd*mount_screwhead_d); 248 cylinder(d=mount_screwhead_d,h=body_h+1,$fn=fnd*mount_screwhead_d);
249 }//for 249 }//for
250 // pushfit 250 // pushfit
251 translate([0,0,filament_elevation]) 251 translate([0,0,filament_elevation])
252 rotate([0,0,45]) translate([pulley_d/2,0,0]) 252 rotate([0,0,45]) translate([pulley_d/2,0,0])
253 rotate([-90,0,0]) 253 rotate([-90,0,0])
254 translate([0,0,mount_d/sqrt(2)/2+mount_screw_d+epsilon]) 254 translate([0,0,mount_d/sqrt(2)/2+mount_screw_d+epsilon])
255 rotate([0,0,180]) { 255 rotate([0,0,180]) {
256 pushfit(pf); 256 pushfit(pf);
257 cylinder(d=filament_guide_d,h=gearbox_d,center=true,$fn=fnd*filament_guide_d); 257 cylinder(d=filament_guide_d,h=gearbox_d,center=true,$fn=fnd*filament_guide_d);
258 translate([0,-filament_guide_d/2/sqrt(2),0]) 258 translate([0,-filament_guide_d/2/sqrt(2),0])
259 rotate([0,0,45]) 259 rotate([0,0,45])
260 cube(size=[filament_guide_d/2,filament_guide_d/2,gearbox_d],center=true); 260 cube(size=[filament_guide_d/2,filament_guide_d/2,gearbox_d],center=true);
261 }//rotate translate rotate translate rotate translate 261 }//rotate translate rotate translate rotate translate
262 // pulley 262 // pulley
263 cylinder(d=pulley_d+pulley_clearance,h=body_h+1,$fn=fnd*(pulley_d+pulley_clearance)); 263 cylinder(d=pulley_d+pulley_clearance,h=body_h+1,$fn=fnd*(pulley_d+pulley_clearance));
264 // leverspace 264 // leverspace
265 hull() for(x=[0,gearbox_d]) 265 hull() for(x=[0,gearbox_d])
266 rotate([0,0,45]) 266 rotate([0,0,45])
267 translate([x,0,ls_z-ls_h/2]) 267 translate([x,0,ls_z-ls_h/2])
268 cylinder(d=idler_d+idler_clearance,h=ls_h,$fn=fnd*(idler_d+idler_clearance)); 268 cylinder(d=idler_d+idler_clearance,h=ls_h,$fn=fnd*(idler_d+idler_clearance));
269 269