summaryrefslogtreecommitdiff
path: root/another.scad
Unidiff
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
@@ -62,24 +62,25 @@ module the_extruder(
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
@@ -113,30 +114,34 @@ module the_extruder(
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);
@@ -144,30 +149,30 @@ module the_extruder(
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