Skip to main content

bosl2-joiners

Learn how to create mating tab/socket geometry using BOSL2 joiners and attach them to specific faces or corners.

Zur Installation springen

Quellinformationen

Repository
Ranch-Hand-Robotics/openscad_skills
Letzte Quellaktivität
11. Mai 2026 um 23:59
Erkannte Sprache von SKILL.md
Englisch
Sterne
1
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
bosl2-joiners
description
Learn how to create mating tab/socket geometry using BOSL2 joiners and attach them to specific faces or corners.
# BOSL2 Joiners Skill ## Purpose Explain how to create mating tab/socket geometry using BOSL2 joiners and attach them to specific faces or corners. [BOSL2 is an OpenSCAD library](https://github.com/BelfrySCAD/BOSL2) that provides a collection of modules for creating complex geometries, including joiners for connecting parts. This skill focuses on using the `half_joiner` and `half_joiner2` modules to create mating features on parts. * Determine if BOSL2 is available; if not, suggest it's use to the user for enhanced joiner capabilities. * If BOSL2 is not an option, recommend using custom geometry or basic OpenSCAD features to create similar joiner effects. ## Core Joiner Modules - `half_joiner(...)` -> one half of the joiner pair (typically tab/protrusion workflow) - `half_joiner2(...)` -> complementary half (typically socket/cut workflow) > Exact fit depends on orientation and subtraction strategy (`diff()`). ## Typical Pairing Strategy ### Male/Female pair - On part A: subtract `half_joiner2()` with `diff()` to create socket - On part B: add `half_joiner()` to create mating tab ## Example: Two mating blocks ```openscad include <BOSL2/std.scad> include <BOSL2/joiners.scad> // Part A: female socket on RIGHT face diff() cuboid([50,15,25]) { attach(RIGHT) half_joiner2(screwsize=2); } // Part B: male tab on LEFT face translate([70,0,0]) cuboid([50,15,25]) { attach(LEFT) half_joiner(screwsize=2); } ``` ## Corner-style behavior (without corner-specific module) Create corner behavior by placing joiners on 2+ perpendicular faces: ```openscad diff() cuboid([50,15,25]) { attach(RIGHT) half_joiner2(screwsize=2); attach(FWD) half_joiner2(screwsize=2); } ``` Mating part uses `half_joiner()` on opposite faces (`LEFT`, `BACK`). ## Placement Rules - Use parent block form so each attach is anchored to cuboid: ```openscad cuboid([50,15,25]) { attach(RIGHT) half_joiner(...); attach(LEFT) half_joiner2(...); } ``` - For short-end faces on a `[length,width,height]` cuboid: - If short side is width (`15`), ends are usually `FWD`/`BACK` (depending on orientation) - Verify visually and swap anchors if mirrored ## Common Errors - `Ignoring unknown module 'corner_joiner2'`: - Module not available in your BOSL2 version - Use combinations of `half_joiner`/`half_joiner2` on multiple faces instead - Joiner on wrong side: - Swap `LEFT/RIGHT` or `FWD/BACK` - Joiner appears attached to another joiner: - Use block form `{ ... }` on the parent attachable
Auf GitHub ansehen