Skip to content

feat(desktop): the assistant makes a screw joint with one call - #323

Merged
ManuelStaggl merged 1 commit into
mainfrom
feat/screw-joint
Nov 11, 2026
Merged

ManuelStaggl merged 1 commit into
mainfrom
feat/screw-joint

Conversation

@ManuelStaggl

Copy link
Copy Markdown
Collaborator

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). more repeats 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.
  • Screws as standard parts: placed with 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.
  • Template test: it waits for the hinge's slider to be enabled before it presses Home (the slider takes no keys while SolidCraft drives the joint; failed once locally).

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

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>
@ManuelStaggl
ManuelStaggl merged commit ee9f763 into main Nov 11, 2026
7 checks passed
@ManuelStaggl
ManuelStaggl deleted the feat/screw-joint branch November 11, 2026 09:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant