Skip to content

feat: add bayonet_mount() and bayonet_socket() twist-lock joiners (#1323)#1961

Open
junhinhow wants to merge 1 commit intoBelfrySCAD:masterfrom
junhinhow:feat/bayonet-mount-1323
Open

feat: add bayonet_mount() and bayonet_socket() twist-lock joiners (#1323)#1961
junhinhow wants to merge 1 commit intoBelfrySCAD:masterfrom
junhinhow:feat/bayonet-mount-1323

Conversation

@junhinhow
Copy link
Copy Markdown

Summary

  • Add bayonet_mount() module: creates radial pins on a cylinder for twist-lock joints
    • Configurable: pin count, angular width, taper angle for friction locking, clearance, wall thickness
  • Add bayonet_socket() module: creates L-shaped slots (vertical entry + horizontal lock channel)
    • Designed to mate with bayonet_mount() — insert vertically, twist to lock
  • Both modules use attachable(), full parameter validation, and complete documentation
  • Tests added to test_joiners.scadtest

Test plan

  • bayonet_mount() generates valid geometry (3-pin, 4-pin with taper, 2-pin wide angle)
  • bayonet_socket() generates valid geometry (3-slot, 4-slot, custom clearance)
  • Attachment system works correctly
  • No regressions in existing joiner tests

Addresses #1323

🤖 Generated with Claude Code

…lfrySCAD#1323)

Adds two new modules to joiners.scad for bayonet-style connections:

- bayonet_mount(d, h, pin_h, pins, pin_ang, taper_ang, clearance, wall):
  Creates radial pins on a cylindrical surface for twist-lock joints.
  Supports taper for friction locking, variable pin count, and
  configurable tolerances. Compatible with attachable().

- bayonet_socket(d, h, pin_h, pins, pin_ang, clearance, wall):
  Creates matching L-shaped slots to receive mount pins.
  Vertical entry + horizontal locking channel.
  Automatic clearance for 3D printing fit.

Both follow BOSL2 patterns: attachable(), parameter validation,
full documentation with Synopsis/SynTags/Topics/Examples.

Tests added in test_joiners.scadtest covering pin variants,
taper, clearance and dimensions.
@junhinhow junhinhow force-pushed the feat/bayonet-mount-1323 branch from c715759 to 2850e3c Compare April 6, 2026 13:48
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