-rw-r--r-- | another.scad | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/another.scad b/another.scad index 7e8a45f..342d70c 100644 --- a/another.scad +++ b/another.scad | |||
@@ -120,69 +120,81 @@ module the_extruder( | |||
120 | }//place idler | 120 | }//place idler |
121 | // filament path | 121 | // filament path |
122 | rotate([0,0,45]) translate([(pulley_d-filament_path_d)/2,0,0]) { | 122 | rotate([0,0,45]) translate([(pulley_d-filament_path_d)/2,0,0]) { |
123 | rotate([90,0,0]) cylinder(d=filament_d,h=gearbox_d*2,center=true,$fn=15); | 123 | rotate([90,0,0]) cylinder(d=filament_d,h=gearbox_d*2,center=true,$fn=15); |
124 | rotate([-90,0,0]) | 124 | rotate([-90,0,0]) |
125 | translate([0,0,mount_d/sqrt(2)/2+mount_screw_d]) | 125 | translate([0,0,mount_d/sqrt(2)/2+mount_screw_d]) |
126 | pushfit(pf); | 126 | pushfit(pf); |
127 | } | 127 | } |
128 | }//translate teeth | 128 | }//translate teeth |
129 | }//translate pulley | 129 | }//translate pulley |
130 | }//translate protrusion | 130 | }//translate protrusion |
131 | }//vitamins | 131 | }//vitamins |
132 | 132 | ||
133 | module lever() { | 133 | module lever() { |
134 | translate([0,0,protrusion_h+pulley_elevation+teeth_elevation]) { | 134 | translate([0,0,protrusion_h+pulley_elevation+teeth_elevation]) { |
135 | difference() { | 135 | difference() { |
136 | union() { | 136 | union() { |
137 | hull() { | 137 | hull() { |
138 | place_idler() | 138 | place_idler() |
139 | cylinder(d=lsd,h=lever_thickness,center=true,$fn=60); | 139 | cylinder(d=lsd,h=lever_thickness,center=true,$fn=60); |
140 | translate([mount_d/2,0,0]) | 140 | translate([mount_d/2,0,0]) |
141 | cylinder(d=lsd,h=lever_thickness,center=true,$fn=60); | 141 | cylinder(d=lsd,h=lever_thickness,center=true,$fn=60); |
142 | }//hull | 142 | }//hull |
143 | hull() { | 143 | hull() { |
144 | translate([mount_d/2,0,0]) | 144 | translate([mount_d/2,0,0]) |
145 | cylinder(d=lsd,h=lever_thickness,center=true,$fn=60); | 145 | cylinder(d=lsd,h=lever_thickness,center=true,$fn=60); |
146 | translate([mount_d/2,-longwing,0]) rotate([0,90,0]) | 146 | translate([mount_d/2,-longwing,0]) rotate([0,90,0]) |
147 | cylinder(d=lever_thickness,h=lsd,center=true,$fn=60); | 147 | cylinder(d=lever_thickness,h=lsd,center=true,$fn=60); |
148 | }//hull | 148 | }//hull |
149 | }//union | 149 | }//union |
150 | 150 | ||
151 | // filament path | 151 | // filament path |
152 | place_idler() translate([-(idler_d+filament_path_d)/2,0,0]) rotate([90,0,0]) { | 152 | place_idler() { |
153 | cylinder(d=filament_path_d,h=3*gearbox_d,center=true,$fn=30); | 153 | translate([-(idler_d+filament_path_d)/2,0,0]) rotate([90,0,0]) { |
154 | translate([0,-filament_path_d/2/sqrt(2),0]) rotate([0,0,45]) | 154 | cylinder(d=filament_path_d,h=3*gearbox_d,center=true,$fn=30); |
155 | cube(size=[filament_path_d/2,filament_path_d/2,3*gearbox_d],center=true); | 155 | translate([0,-filament_path_d/2/sqrt(2),0]) rotate([0,0,45]) |
156 | } | 156 | cube(size=[filament_path_d/2,filament_path_d/2,3*gearbox_d],center=true); |
157 | }//rotate translate | ||
158 | translate([-(idler_d+filament_path_d)/2,0,0]) | ||
159 | rotate([90,0,0]) | ||
160 | translate([0,0, | ||
161 | sqrt(2)*(mount_d-pulley_d+filament_path_d+lsd)/2 | ||
162 | ]) { | ||
163 | cylinder(d1=filament_path_d,d2=2*filament_path_d, | ||
164 | h=filament_path_d,$fn=2*filament_path_d*fnd); | ||
165 | translate([0,0,filament_path_d-epsilon]) | ||
166 | cylinder(d=2*filament_path_d,h=lsd,$fn=2*filament_path_d*fnd); | ||
167 | } | ||
168 | }//place_idler | ||
157 | 169 | ||
158 | // idler space and mounting hole | 170 | // idler space and mounting hole |
159 | place_idler() { | 171 | place_idler() { |
160 | difference() { | 172 | difference() { |
161 | cylinder(d=idler_d+idler_clearance*2,h=idler_h+idler_v_tolerance,center=true,$fn=60); | 173 | cylinder(d=idler_d+idler_clearance*2,h=idler_h+idler_v_tolerance,center=true,$fn=60); |
162 | if(supports) for(y=[-lsd/2+extrusion_width:(lsd-2*extrusion_width)/3:lsd/2-extrusion_width]) | 174 | if(supports) for(y=[-lsd/2+extrusion_width:(lsd-2*extrusion_width)/3:lsd/2-extrusion_width]) |
163 | translate([-lsd/2-1,y-extrusion_width/2,-idler_h/2-idler_v_tolerance/2-1]) | 175 | translate([-lsd/2-1,y-extrusion_width/2,-idler_h/2-idler_v_tolerance/2-1]) |
164 | cube(size=[lsd+2,extrusion_width,idler_h+idler_v_tolerance+2]); | 176 | cube(size=[lsd+2,extrusion_width,idler_h+idler_v_tolerance+2]); |
165 | } | 177 | } |
166 | cylinder(d=idler_screw_d,h=lever_thickness+2,center=true,$fn=30); | 178 | cylinder(d=idler_screw_d,h=lever_thickness+2,center=true,$fn=30); |
167 | translate([0,0,lever_thickness/2-idler_screwhead_h]) | 179 | translate([0,0,lever_thickness/2-idler_screwhead_h]) |
168 | cylinder(d=idler_screwhead_d,h=idler_screwhead_h+1,$fn=fnd*idler_screwhead_d); | 180 | cylinder(d=idler_screwhead_d,h=idler_screwhead_h+1,$fn=fnd*idler_screwhead_d); |
169 | } | 181 | } |
170 | // mounting screw hole | 182 | // mounting screw hole |
171 | translate([mount_d/2,0,0]) | 183 | translate([mount_d/2,0,0]) |
172 | cylinder(d=mount_screw_d+mount_screw_d_tolerance,h=lever_thickness+2,center=true,$fn=fnd*mount_screw_d); | 184 | cylinder(d=mount_screw_d+mount_screw_d_tolerance,h=lever_thickness+2,center=true,$fn=fnd*mount_screw_d); |
173 | 185 | ||
174 | // lever end | 186 | // lever end |
175 | translate([mount_d/2,0,0]) rotate([0,90,0]) { | 187 | translate([mount_d/2,0,0]) rotate([0,90,0]) { |
176 | translate([0,-longwing,lsd/2]) finger_indent(d=lever_thickness-1,r=15); | 188 | translate([0,-longwing,lsd/2]) finger_indent(d=lever_thickness-1,r=15); |
177 | translate([0,-longwing,0]) | 189 | translate([0,-longwing,0]) |
178 | mirror([0,0,1]) | 190 | mirror([0,0,1]) |
179 | difference() { | 191 | difference() { |
180 | cylinder(d=spring_d+spring_d_clearance,h=lsd,$fn=fnd*(spring_d+spring_d_clearance)); | 192 | cylinder(d=spring_d+spring_d_clearance,h=lsd,$fn=fnd*(spring_d+spring_d_clearance)); |
181 | sphere(d=spring_d*3/4,$fn=fnd*spring_d*3/4); | 193 | sphere(d=spring_d*3/4,$fn=fnd*spring_d*3/4); |
182 | } | 194 | } |
183 | }//rotate-translate | 195 | }//rotate-translate |
184 | }//difference | 196 | }//difference |
185 | // bridging patch | 197 | // bridging patch |
186 | if(bridges) place_idler() | 198 | if(bridges) place_idler() |
187 | translate([0,0,lever_thickness/2-mount_screwhead_h]) | 199 | translate([0,0,lever_thickness/2-mount_screwhead_h]) |
188 | mirror([0,0,1]) | 200 | mirror([0,0,1]) |