Repository navigation
feat(assembly): 3d assembly pair - interpenetration, min clearance, per-feature radial clearance of threads/ribs, as printed from G-code (Refs #754, #574) - #756
Open
alex-mextner wants to merge 1 commit into
Conversation
…um clearance, per-feature radial clearance of threads and ribs, as printed from G-code walls (Refs #754, #574) pair A B (STL/3MF/OBJ/PLY, scale + pose each): exact overlap volume with seat contacts split out, exact minimum gap (optionally inside a zone), and per coaxial feature the radial clearance read from surface profiles against the helical phase: gap at the posed and at the best phase of screwing/clocking, free play, crest/root clearances, handedness and pitch coherence; --screw-to-best turns B to the best phase. With a G-code per part (lib/gcode_walls.py) the same numbers from the printed outer walls, the model registered onto the printed object, per-layer wall-vs-model deviation, raft base. Cactus rim+plug at x2.00493695: model gap 0.600 mm / play 0.693 mm, as printed 0.556 / 0.643 mm. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
3d assembly pair A B- do two parts mate? No spec file: two meshes (STL / 3MF / OBJ / PLY), each with a scale and a pose, are judged for--seat-tolis a seat contact, not a collision);--zone(so a seat face does not hide the real gap);z/pitch -+ theta/2pi; ribs: the angle) and slid against the other part. Reported: gap at the posed phase and at the best phase of screwing / clocking, free play (mm of axial travel / degrees), crest -> root clearances, handedness (a mismatch FAILs), pitch coherence (a wrong pitch is a warning, not a pass), coverage, concentricity.--screw-to-bestturns B to the best phase before measuring (the turn keeps a seat face seated);--gcode-a/--gcode-bthe same numbers from the printed OUTER WALL paths of the object (lib/gcode_walls.py), the model registered onto the printed object (translation-only Gauss-Newton on the signed distance, so the slicer's own placement is recovered), the per-layer wall-vs-model deviation, and the printed surface = centre line +- width/2.Plus
lib/gcode_walls.py: one reader of the wall lines of ONE object from Orca / Bambu / PrusaSlicer / Marlin G-code (object and layer labels fromgcode_labels), refusing ambiguous names and several copies.Refs #754 (this work), #574 (assembly toolkit), #553.
Cactus acceptance (rim = the ball's bore, plug = the bottom plug, both at scale 2.00493695, thread pitch 3.007)
These are the numbers the ad-hoc
verify/check_thread_fit.pyof the garage-band cactus project gave (0.59 / 0.69 / 0.56 / 0.64), now from a generic command.Tests
tests/test_gcode_walls.py,tests/test_assembly_pair.py,tests/e2e/test_assembly_pair.py- synthetic exact threads and ribs built with a known radial gap; each asserts a number read off the construction and has a teeth case (too tight, wrong handedness, wrong pitch, wrong phase, colliding pose, oversize print, wrong print pose, wrong object name).