fix twist for chamfered gears

This commit is contained in:
Stewart Allen 2024-07-19 20:12:15 -04:00
commit 4107b962ad

View file

@ -410,19 +410,18 @@ let model = {
const srad = shaft / 2; const srad = shaft / 2;
poly.addInner( newPolygon().centerCircle({ x:0, y:0, z:0 }, srad, nump) ); poly.addInner( newPolygon().centerCircle({ x:0, y:0, z:0 }, srad, nump) );
} }
const verts = poly.extrude(height || 15, { chamfer }); const zh = height || 15;
const verts = poly.extrude(zh, { chamfer });
if (twist) { if (twist) {
const rad = base.util.toRadians(twist); const rad = base.util.toRadians(twist);
for (let i=0; i<verts.length; i += 3) { for (let i=0; i<verts.length; i += 3) {
if (Math.abs(verts[i+2]) < 0.001) { let [x, y] = base.util.rotate(
let [x, y] = base.util.rotate( verts[i],
verts[i], verts[i+1],
verts[i+1], rad * (verts[i+2] / zh)
rad );
); verts[i] = x;
verts[i] = x; verts[i+1] = y;
verts[i+1] = y;
}
} }
} }
send.done(verts); send.done(verts);