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
- آخر نشاط في المصدر
- ١١ مايو ٢٠٢٦ في ٢٣:٥٩
- لغة SKILL.md المكتشفة
- الإنجليزية
- النجوم
- ١
- التفرعات
- ٠
خيارات التثبيت
يُحدَّد 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