mirror of
https://github.com/gittrahan/support-fins.git
synced 2026-10-19 02:10:52 -05:00
Two tine-correctness fixes, both from Matthew's read against Slant3D's spec. ONE LAYER: tineH was hardcoded 0.3 in both builders (prop.js emitTines and fins.js) -- Slant3D's number, but his layer height. At Matthew's 0.2mm that bakes a 1.5-layer tine, which slices into two beads and loses the "single continuous layer line" that is the whole reason a horizontal tine fuses in yet snaps off (FIN-SPEC "Why the tines must be horizontal"). Set both to 0.2 = one slicer layer, with a comment that it must track the layer height. (Tines were already geometrically horizontal -- verified 0 slanted faces across 33,768 tine triangles over every stress model and pose; the "not horizontal" look is the comb marching up a sloped wall, each rung flat.) SQUAT WALLS GOT NO TINES: emitTines gated out any wall whose top sits below baseH+0.2 -- correct for a flanged wall (nothing but flange down there) but it skipped every squat wall (top 0.4-1.3mm). Added a minTop param defaulting to the flanged floor; the squat pass passes squatBrimH so tines attach above the brim. Squat walls now carry tines wherever the low overhang is steep enough to grip (a near-horizontal ledge still honestly gets none -- can't bite a flat ceiling). tests/tine_shape.test.js pins all of it: tineH == one layer in both builders; every tooth exactly one layer tall with no slanted faces; and a low-contact wall gets 0 tines at the flanged floor but >=1 at the brim floor.