Skip to content

Baseplates: a screw bore of nearly the magnet pocket's width leaves 6 to 12 open edges a cell at 42 mm #92

Closed

Description

@Oliver-Johnson

What is left of #77 after #81. Found by sweeping near-equal magnet, counterbore and shank sizes on main c0dc948: differences from -0.1 to +0.15 mm in 0.005 steps at 34.5, 36.13, 40, 42 and 46 mm, random hundredths, round typed sizes, and the PR #81 review's sweeps (about 43,000 designs; every no-screw control is clean).

What happens. At 42 mm (and one design at 46 mm), a one-cell plate with no joint, taken by the page with no warning and Download on, builds with 6 to 12 open edges a cell when a screw bore is nearly as wide as the magnet pocket it meets. #77's own three cases are all closed or refused on c0dc948, so what is left is a different leak, found by the same sweep.

Repros (Baseplates page, c0dc948, confirmed in Chromium; md magnet Ø, mh its height, ms its side, sh hole, sd head, se counterbore depth):

  • 6 x 2 magnet from beneath, 3 mm hole, 3 deep: #pi=42&w=42&d=42&bw=400&bd=400&cn=none&mg=1&md=6&mh=2&ms=bottom&sc=1&sh=3&sd=4&se=3 (A1:9), ...&sd=5.53&se=3 (A1:9) and ...&sd=5.93&se=3 (A1:12)
  • the review's 4.16 x 2 magnet, 2.58 hole, 4.34 head: #pi=42&w=42&d=42&bw=400&bd=400&cn=none&mg=1&md=4.16&mh=2&ms=bottom&sc=1&sh=2.58&sd=4.34&se=2 (A1:9; 10 on main)
  • 46 mm, bare 2.98 shank under a 3 x 2 magnet from above: #pi=46&w=46&d=46&bw=400&bd=400&cn=none&mg=1&md=3&mh=2&ms=top&sc=1&sh=2.98&sd=2.98&se=2 (A1:12)
  • 14 round typed designs, all at 42 mm: #pi=42&w=42&d=42&bw=400&bd=400&cn=none&mg=1&md=M&mh=H&ms=SIDE&sc=1&sh=HOLE&sd=HEAD&se=DEPTH with (M, H, SIDE, DEPTH, HOLE, HEAD, open edges): 4, 1.5, top, 1.5, 2.5, 6.05 (12); 6, 2, bottom, 3, 4, 4.55 (9); 6, 2, bottom, 3, 3, 5.05 (12); 4, 2, bottom, 4, 3, 6.05 (12); 4, 3, top, 1.5, 3, 6.05 (12); 6, 2, bottom, 2.5, 2.5, 5.65 (9); 6, 1.5, bottom, 2, 3.5, 4.75 (6); 3, 2, top, 2.5, 3, 4.25 (12); 3, 3, top, 1, 2.5, 4.25 (9); 6, 1, bottom, 2, 4, 4.55 (9); 3, 2, top, 2, 3, 4.25 (12); 6, 2, bottom, 2.5, 3, 4 (9); 6, 3, bottom, 4, 2, 4.9 (12); 6, 1.5, bottom, 4, 3, 4 (9). Main 326cc48 builds all but one of these closed.

How often (one cell, no joint, 42 mm unless noted): 6 of 15,300 designs on the near-equal grid; 14 of 12,000 typed designs; 571 of 2,851 heads in one 6 x 2 / 3 mm family (main: 126 of 3,001); 98 of 481 shanks in the review's 4.16 x 2 family (main: 476). The leaks come in bands 0.001 to 0.03 mm wide; moving the magnet, hole, head or pitch by 0.01 mm usually closes one, which is what a coincidence of planes looks like. A counterbore 2.5 mm deep or more under a 2 mm magnet leaks at 42 mm; equal or shallower is clean.

Cause. The bottom face, on the print bed, is a cap fanned from one point. fanCentre (src/core.js, near line 2558) moves that point so no spoke passes within 0.01 mm of a corner of a cutter's wall (FAN_CLEAR), but it tries only 72 candidate points (6 distances times 12 directions) and keeps the average if none is clear. The walls it avoids, fastenerFoot = wallsAt(0) (near line 3419), number about 140, because where two bores' walls were unioned the BSP split each wall along the other's planes and wallsAt hands those split points back along with the corners. No candidate is clear of all of them, a spoke passes about 5 microns from a pocket corner, and the sliver of floor between the crossings is lost. The comment above cornersAt (near line 3390) describes the same fault at the socket floor, where the fix was to hand fanCentre the corners only; the bottom face still gets all the points.

Possible fix. Small, engine geometry (only the bottom cap's triangulation; the solid does not change). In a scratch copy, handing fanCentre the corners only for the bottom face (fastenerFoot = cornersAt(0)) closed all 21 designs listed above, all 98 shanks of the 4.16 x 2 family and 570 of the 571 heads (3.909 stays open at 12). It is not bytes-preserving: on a sample of 1,210 designs it changed the bytes of 283, mostly designs that were already closed, because the fan of a closed cell moves too. A bytes-preserving form refans only a cell that comes out open, with the corners only, as the socket floor does with floorAvoid. Add audit rows for the listed designs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

bugSomething isn't working

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions