fix stroke bug

This commit is contained in:
Adrian Mariano 2022-09-12 16:47:47 -04:00
parent ef368e2d5c
commit cd50d6bf79
2 changed files with 67 additions and 13 deletions

View file

@ -372,20 +372,16 @@ module stroke(
: zrot(joint_angle); : zrot(joint_angle);
multmatrix(mat) polygon(joint_shape); multmatrix(mat) polygon(joint_shape);
} else { } else {
// These are parallel to the path
v1 = path2[i] - path2[i-1]; v1 = path2[i] - path2[i-1];
v2 = path2[i+1] - path2[i]; v2 = path2[i+1] - path2[i];
ang = modang(v_theta(v2) - v_theta(v1)); ang = modang(v_theta(v2) - v_theta(v1));
pv1 = rot(-90, p=unit(v1,BACK)); // Need 90 deg offset to make wedge perpendicular to path, and the wedge
pv2 = rot(-90, p=unit(v2,BACK)); // position depends on whether we turn left (ang<0) or right (ang>0)
if (!approx(ang,0)) { theta = v_theta(v1) - sign(ang)*90;
if (ang>=0) { ang_eps = 0.1;
rot(from=RIGHT, to=pv1) if (!approx(ang,0))
arc(d=widths[i], angle=ang, wedge=true); arc(d=widths[i], angle=[theta-ang_eps, theta+ang+ang_eps], wedge=true);
} else {
rot(from=RIGHT, to=-pv2)
arc(d=widths[i], angle=-ang, wedge=true);
}
}
} }
} }
} }

View file

@ -76,7 +76,7 @@ include <screw_drive.scad>
// . // .
// |ISO|UTS|Head | Drive | // |ISO|UTS|Head | Drive |
// |---|---|--------------- | ----------------------------| // |---|---|--------------- | ----------------------------|
// |X|X|"none" | hex, torx, slot (UTS only)| // |X|X|"none" | hex, torx, slot |
// |X|X|"hex" | *none*| // |X|X|"hex" | *none*|
// |X|X|"socket" | hex, torx| // |X|X|"socket" | hex, torx|
// |X|X|"button" | hex, torx| // |X|X|"button" | hex, torx|
@ -1263,7 +1263,7 @@ function _screw_info_english(diam, threadcount, head, thread, drive) =
["#1", [ 0.118, 1/16, 7, 0.031, 0.036]], ["#1", [ 0.118, 1/16, 7, 0.031, 0.036]],
["#2", [ 9/64, 5/64, 8, 0.038, 0.037]], ["#2", [ 9/64, 5/64, 8, 0.038, 0.037]],
["#3", [ 0.161, 5/64, 8, 0.044, 0.041]], // For larger sizes, hex recess depth is ["#3", [ 0.161, 5/64, 8, 0.044, 0.041]], // For larger sizes, hex recess depth is
["#4", [ 0.183, 3/32, 10, 0.051, 0.049]], // half the diameter ["#4", [ 0.183, 3/32, 10, 0.051, 0.049]], // half the screw diameter
["#5", [ 0.205, 3/32, 10, 0.057, 0.049]], ["#5", [ 0.205, 3/32, 10, 0.057, 0.049]],
["#6", [ 0.226, 7/64, 15, 0.064, 0.058]], ["#6", [ 0.226, 7/64, 15, 0.064, 0.058]],
["#8", [ 0.270, 9/64, 25, 0.077, 0.078]], ["#8", [ 0.270, 9/64, 25, 0.077, 0.078]],
@ -2088,3 +2088,61 @@ $fn control
*/ */
/*
iso shoulder screws, hex drive socket head ISO 7379
Mcmaster has variations like 12mm shoulder for m10, 6mm shoulder for M5
shld thread head head hex hex dep
diam length diam ht shold tol
5, [6.5, 9.5, 10, 4.5, 3, 2.4 .03
6, [8 , 11 , 13, 5.5, 4, 3.3 .03
8, [10 , 13 , 16, 7 , 5, 4.2 .03
10,[13 , 16 , 18, 9 , 6, 4.9 .037
12,[16 , 18 , 24, 11 , 8, 6.6 .037
16,[20 , 22 , 30, 14 , 10, 8.8 .046
20,[25 , 27 , 36, 16 , 12, 10 .046
UTS shoulder screws, b18.3 (table 13)
sh diam thread len, head diam hex size hex depth
[#4, [1/8 , 5/32 , 1/4 , 5/64 , 0.067
[#6, [5/32 , 3/16 , 9/32 , 3/32 , 0.067
[#8, [3/16 , 3/16 , 5/16 , 3/32 , 0.079
[#10, [1/4 , 3/8 , 3/8 , 1/8 , 0.094
[1/4, [5/16 , 7/16 , 7/16 , 5/32 , 0.117
[5/16, [3/8 , 1/2 , 9/16 , 3/16 , 0.141
[3/8, [1/2 , 5/8 , 3/4 , 1/4 , 0.188
[1/2, [5/8 , 3/4 , 7/8 , 5/16 , 0.234
[5/8, [3/4 , 7/8 , 1 , 3/8 , 0.281
[3/4, [1 , 1 , 1+5/16 , 1/2 , 0.375
[7/8, [1+1/4, 1+1/8, 1+3/4 , 5/8 , 0.469
[1+1/8, [1+1/2, 1+1/2, 2+1/8 , 7/8 , 0.656
[1+1/4, [1+3/4, 1+3/4, 2+3/8 , 1 , 0.750
[1+1/2, [2 , 2 , 2+3/4 , 1+1/4 , 0.937
shoulder tol = .003
height = .5 (shoulder nom diam) + .0625
.5 (shoulder nom diam) + .125 >= 3/4
*/
,