Back to skills
SKILL.md
Fastener Hole
ASecurityCreate standard fastener holes: clearance, counterbore, or countersink.
- 539 stars
- 0 votes
- 0 copies
- 1 view
- Added May 26, 2026
Security analysis
100/100npx -y skills add ghbalf/freecad-ai --skill fastener-hole --agent claude-codeAre you the author of Fastener Hole?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ghbalf-fastener-hole)---
name: fastener-hole
description: "Create standard fastener holes: clearance, counterbore, or countersink."
---
# Fastener Hole Patterns
Create standard fastener holes: clearance, counterbore, or countersink.
## Hole types
### Clearance holes (through-hole for bolt to pass through)
| Size | Close fit | Normal fit |
|------|-----------|------------|
| M2 | 2.2mm | 2.4mm |
| M2.5 | 2.7mm | 2.9mm |
| M3 | 3.2mm | 3.4mm |
| M4 | 4.3mm | 4.5mm |
| M5 | 5.3mm | 5.5mm |
| M6 | 6.4mm | 6.6mm |
| M8 | 8.4mm | 9.0mm |
### Counterbore (socket head cap screw)
| Size | CB diameter | CB depth |
|------|-------------|----------|
| M3 | 6.5mm | 3.0mm |
| M4 | 8.0mm | 4.0mm |
| M5 | 10.0mm | 5.0mm |
| M6 | 11.5mm | 6.0mm |
| M8 | 15.0mm | 8.0mm |
### Countersink (flat head screw, 90 degree)
| Size | CS diameter |
|------|-------------|
| M3 | 6.3mm |
| M4 | 8.4mm |
| M5 | 10.4mm |
| M6 | 12.6mm |
## Parameters to ask (if not provided)
- **Screw size**: M2 through M8
- **Hole type**: clearance / counterbore / countersink
- **Fit**: close / normal (for clearance holes)
- **Target object**: body or feature to cut into
- **Positions**: list of XY coordinates, or pattern (linear/circular)
- **Pattern**: if applicable — count, spacing, or bolt circle diameter + count
## Construction
1. Create a sketch on the specified face
2. For each hole position, add a circle (clearance diameter)
3. Pocket through-all for the clearance hole
4. For counterbore: add a second larger circle, pocket to CB depth
5. For countersink: use a cone (Part.makeCone) to create the 90-degree chamfer
## Cleanup
After construction, hide all sketches for a clean viewport:
```python
for obj in App.ActiveDocument.Objects:
if obj.TypeId == "Sketcher::SketchObject":
obj.Visibility = False
```
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.