Complete Blade Retention Schema
"bladeRetention": {
// ═══════════════════════════════════════════════════════
// BLADE-TO-BLADE INTERLOCKING
// ═══════════════════════════════════════════════════════
"bladeToBlade": {
"type": "keyhole", // "keyhole" | "friction-slot" | "cross-pin" | "weld-only" | "none"
// --- Slot Clearances ---
"clearanceLeft": 0.1, // mm - gap on left side of N-tab
"clearanceRight": 0.1, // mm - gap on right side of N-tab
"additionalClearance": 0, // mm - extra on BOTH sides
// --- Crossover Configuration ---
"crossover": {
"mode": "ratio", // "ratio" | "fixed"
"ratio": 0.5, // 0.0-1.0 (if mode=ratio)
"fixedHeight": 25, // mm (if mode=fixed)
"gapOrRadius": "gap", // "gap" | "radius"
"gap": 2, // mm clearance between faces
"radius": 3 // mm fillet radius (if gapOrRadius=radius)
},
// --- Keyhole Options ---
"keyhole": {
"enabled": true,
"entryDiameter": "auto", // "auto" = slot width × 2
"position": "bottom" // "top" | "bottom"
},
// --- Relief Holes ---
"reliefHoles": {
"enabled": true,
"count": 2,
"diameter": 4, // mm
"offsetFromSlot": 8 // mm from slot centerline
},
// --- Alignment Hole ---
"alignmentHole": {
"enabled": false,
"type": "square", // "square" | "round"
"size": 5 // mm
}
},
// ═══════════════════════════════════════════════════════
// BLADE-TO-BASEPLATE MOUNTING
// ═══════════════════════════════════════════════════════
"bladeToBaseplate": {
"type": "tabSlot", // "tabSlot" | "shiftLock" | "capturedNut" | "weld"
// --- Tab Configuration ---
"tab": {
"count": "auto", // "auto" | number
"spacing": 100, // mm between tabs
"width": 20, // mm
"depth": "through" // "through" | "partial" | number (mm)
},
// --- Slot Configuration ---
"slot": {
"widthClearance": 0.2, // mm added to blade thickness
"cornerRadius": 1 // mm (for CNC milling)
},
// --- Shift-Lock Options (if type=shiftLock) ---
"shiftLock": {
"shiftDistance": 5, // mm blade shifts to lock
"lockLip": 3, // mm undercut depth
"clipType": "nucleo", // "nucleo" | "spring" | "custom"
"generateClipDXF": true
},
// --- Captured Nut Options (if type=capturedNut) ---
"capturedNut": {
"threadSize": "M6", // M5, M6, M8
"nutType": "hex", // "hex" | "square"
"screwHead": "socket", // "socket" | "countersunk" | "button"
"countersinkBaseplate": true,
"nutSpacing": 150 // mm between nut locations
}
}
}
Quick Examples
| Use Case | Configuration |
| Serviceable prototype |
"bladeToBlade": {"type": "keyhole"}, "bladeToBaseplate": {"type": "tabSlot"} |
| Production fixture |
"bladeToBlade": {"type": "friction-slot"}, "bladeToBaseplate": {"type": "shiftLock"} |
| Heavy duty serviceable |
"bladeToBlade": {"type": "cross-pin"}, "bladeToBaseplate": {"type": "capturedNut"} |
| Permanent maximum strength |
"bladeToBlade": {"type": "weld-only"}, "bladeToBaseplate": {"type": "weld"} |