Repository navigation
feat(desktop): the assistant makes a screw joint with one call - #323
Merged
Merged
Conversation
partbuddy_mechanism takes kind screw. It drills the clearance hole with the room for the head through the part held down, seats a heat-set insert or models a thread on the same line in the other part, puts the screws in as standard parts and says what to buy. The size tables of the function blocks move to screwSizes.ts, so the mechanisms can use them. Co-Authored-By: Claude Fable 5.2 <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.
First of the standards the product owner chose on 2026-11-11: a screw joint as a pair, so the assistant does not size and place the holes of both parts by itself.
screwSteps/screwProblem/screwLength(mechanisms.ts): per screw a clearance hole (ISO 273, normal) with a counterbore (ISO 4762 head) or a 90° countersink, drilled only as deep as the part held down is thick, and on the same line in the other part the seat of a heat-set insert (M2 to M6, 1 mm deeper than the insert) or a modelled thread (from M5: smaller printed threads strip).morerepeats it at further points. It refuses a part too thin to sink the head (1.2 mm must stay under it), a size without an insert, a small printed thread.parts.insert {point, direction}on the counterbore's floor or flush for a countersunk head, after all holes, so they belong to the design. (Seated by a pick on the hole, 0.40.0-rc.4 turned the screw in from the far side.) The length is the longest standard one that ends inside the insert and holds at least two thirds of it.partbuddy_mechanism {kind: screw}: from where the screw goes in, to where its line passes into the fixed part;size,head,thread,more,screws. The answer lists what to buy. One line in the work log; the role prompt says to use it for parts screwed together.screwSizes.ts: the tables of screws, nuts, inserts and clearances move out of blocks.ts, which re-exports them; mechanisms.ts must load in plain node for the template previews, and blocks.ts does not.Checked: eslint, typecheck, all unit tests; against SolidCraft 0.40.0-rc.4 a new contract test (plate on a block, two screws: 4 bodies, 2 standard parts, no overlap, no failed feature), run twice with the template test, plus the function block, hinge and closure tests. With
solidcraft-cli: cap, countersunk and plain heads build without interference and the screws end inside their inserts. Not printed.🤖 Generated with Claude Code