bosl2-joiners
Learn how to create mating tab/socket geometry using BOSL2 joiners and attach them to specific faces or corners.
ソース情報
- リポジトリ
- Ranch-Hand-Robotics/openscad_skills
- ソースの最終更新活動
- 2026年5月11日 23:59
- 検出された SKILL.md の言語
- 英語
- スター
- 1
- フォーク
- 0
インストール方法
デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。
ソースファイルを確認
インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。
SKILL.md を表示中
SKILL.md
ソースの指示 · 読み取り専用プレビュー- 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
GitHubで見る