-
Workholding shelves and brackets for blade-mounted fixtures
Version 2026Q1 | Last Updated: January 22, 2026 | SolidCut CAD 2025
See also: Articulating Features for compliant/spring mechanisms, Blade-Mounted Accessories for full category list.
Two new edge feature types for mounting clamping devices to blade faces. These provide downward clamping force to hold parts during cutting. Both types use the face detection modes above to determine placement surfaces.
| Type ID | Name | Constant | Description |
|---|---|---|---|
| 7 | Side Plate (Gusset) | i_EDGE_FEAT_SIDE_PLATE | Clip-together flat pieces with triangular gusset braces |
| 8 | Bend-Tab T-Plate | i_EDGE_FEAT_BEND_TAB | Single-piece bent clamp shelf, self-locking, 3-bend design |
Multiple flat laser-cut pieces that slot together and bolt to the blade face. Triangular gusset braces provide structural rigidity. Best for heavy clamping loads, thick materials, and permanent fixtures.
These screenshots from the original 2019 SolidCut development show the side plate concept with triangular gusset braces already modeled as 3D solid geometry. Key observations from this prototype:
This 2019 work forms the basis for Variant A in the current system. The new automation will generate these assemblies programmatically from face detection results, rather than manual placement.
A single flat laser-cut blank (double-T shape) that bends at three scored lines and enters the blade twice — through a top mortise and back through a lower ratchet slot — creating a self-locking clip secured with a pin.
BACK │BLADE│ FRONT
│ │
stop ════════════════╪═════╪═╗
(wide) │ mor │ ║ BEND 1 (+10° shown, could be -10°)
│ tise│ ╲
│ │ ╲═══════════╗ ← shelf (~15mm span)
│ │ ║ clamp on top
│ │ ║
│ │ ║ BEND 2 (−135°)
│ │ ╱
│ │ ╱
│ │ ╱ leg
│ │ ╱
│ │ ╱
│ │ ╱
pin ○───────╪─■■■─╪══╝ BEND 3 → tab thru this slot
│─────│
│─────│ ← more ratchet slots
│─────│ (pick higher = shelf higher)
│─────│ (pick lower = shelf lower)
│ │
| Bend | Location | Angle | Purpose |
|---|---|---|---|
| 1 | Just past front blade face | ±10-15° | Shelf tilt (up or down) |
| 2 | Shelf tip (end of ~15mm span) | −135° | Leg kick-back toward blade |
| 3 | Bottom of leg (near blade face) | Calculated | Tab horizontal through ratchet slot |
| Control | How | Range |
|---|---|---|
| Shelf tilt | Bend 1 angle | ±10-15° from horizontal |
| Shelf span | Fixed by blank geometry | Designed per application |
| Leg angle | Bend 2 (always ~−135°) | Fixed by score line position |
| Height on blade | Which ratchet slot tab enters | Discrete steps (e.g. 5mm) |
Note: The isometric view does not clearly show the bend angle — the shelf nominally angles upward at ~45° (or as specified by bendAngle1_tilt) to provide a horizontal or near-horizontal clamping surface for the workpiece. The bend occurs at the small radii / inner slot visible in the front elevation where the clamp exits the blade face.
| Gauge | Thickness | Forming | Recommended Variant |
|---|---|---|---|
| 18-16ga | 1.2-1.5mm | Hand bend | Bend-Tab (Variant B) |
| 14ga | 2.0mm | Hand bend (mild steel) / Press brake (stainless) | Bend-Tab (Variant B) — sweet spot |
| 12ga | 2.5mm | Press brake required | Bend-Tab (Variant B) with press brake, or Side Plate (Variant A) |
| 10ga+ | 3.0mm+ | Press brake / fabrication | Side Plate (Variant A) recommended |
Rule of thumb: If press brake is required, consider whether Side Plate (Variant A) is more practical — no bending needed, just flat laser-cut pieces that bolt together.
Bend relief voids (notches at bend lines) prevent material tearing during forming. Required for all bend-tab clamps. Dimensions scale with material thickness:
Recommended minimums:
14ga (2.0mm): relief width 4mm, depth 2.5mm, rib width 8mm
12ga (2.5mm): relief width 5mm, depth 3.0mm, rib width 10mm
BA = π × (R + K × T) × (θ / 180)
Where:
R = inside bend radius (mm)
K = K-factor (0.33 air bend, 0.50 bottoming)
T = material thickness (mm)
θ = bend angle (degrees)
Example: 14ga steel (2mm), R=1.5mm, K=0.4
Bend 1 (10°): BA = π × 2.1 × 0.056 = 0.37mm
Bend 2 (135°): BA = π × 2.1 × 0.750 = 4.95mm
Bend 3 (~45°): BA = π × 2.1 × 0.250 = 1.65mm
Not every ratchet slot is reachable at every tilt angle. The combination of bend 1 angle, shelf span, leg length, and bend 2 angle determines which slot the tab can reach. The system must validate reachability and warn if the chosen slot is unreachable.
Z_tab = Z_mortise - shelfSpan × sin(tilt) - legLength × cos(kick_effective)
Valid slot = closest ratchet slot to Z_tab within ± (spacing / 2)
This variant extends the bend-tab design with integral spring-loaded contact lugs. The concept needs further discussion and validation before implementation.
Extends the standard bend-tab clamp shelf (Variant B) with vertical "flex lugs" that provide spring-loaded contact with the workpiece. The base uses the existing mortise/ratchet system for coarse positioning, while serpentine cuts in the lugs provide passive compliance.
TruArc-Style (Complex)
Flex-Lug (Simple)
| Task | TruArc-Style | Flex-Lug (Parametric) | Savings |
|---|---|---|---|
| Initial CAD design | 20-40 hrs | 2-4 hrs (library setup) | ~90% |
| Iteration / prototyping | 10-20 hrs | 1-2 hrs (parameter tweaks) | ~90% |
| Per-job customization | 4-8 hrs | 0.5-1 hr (select type, place) | ~85% |
| BOM / procurement | 2-4 hrs (multiple parts) | 0.25 hr (single blank) | ~90% |
| Total per fixture | 36-72 hrs | 4-8 hrs | ~85% |
The TruArc-style mechanism is highly capable but requires:
The Flex-Lug approach trades some adjustability for dramatic simplicity:
For high-volume fixture shops, this could mean 10x faster turnaround on compliant clamping solutions.
Concept Stage: The Flex-Lug variant (BT-FLEX-LUG-14) schema will be added to the JSON Schema Reference when the design is finalized. Key additions include flexLugs object with spring pattern, contact pad, and lug geometry parameters.
See also: Articulating Edge Features for related flex mechanisms including turnbuckle-actuated clamps.
| Aspect | Variant A (Gusset/Clip) | Variant B (Bend-Tab) | Variant C (Flex-Lug) * |
|---|---|---|---|
| Parts count | 3-5 per station | 1 (single blank) | 1 (single blank) |
| Blade modifications | Multiple slots + additions | 1 mortise + ratchet slots | 1 mortise + ratchet slots |
| Tilt adjustment | Fixed at fabrication | Bend 1 angle (±10-15°) | Bend 1 angle (±10-15°) |
| Height adjustment | None | Ratchet slot selection | Ratchet + flex compliance |
| Compliance | None (rigid) | None (rigid) | Passive spring (serpentine cuts) |
| Removal | Difficult (bolted) | Pull pin, slide out | Pull pin, slide out |
| Strength | Higher (triangulated) | Moderate (bent sheet) | Lower (spring section) |
| Cost | Higher | Low | Low |
| Gauge range | Any thickness | 16-12ga only | 16-12ga only |
| Use case | Heavy loads, permanent | General clamping | Compliant contact, weld fixtures |
* Variant C is a concept under development
For the authoritative schema definitions, see the JSON Schema Reference:
Clamp/shelf types are defined once at the file level in a reusable library, then referenced by ID at the blade level with position and override information. This avoids duplication and ensures consistency across blades.
Defines parametric clamp types including bend-tab (BT-STD-14, BT-WIDE-12) and side-plate (SP-HEAVY-2G) variants.
Define custom cutout shapes for shelf mating plates. Profiles are defined once at file level, then referenced by ID in clamp type definitions. Supports PEPS kurve format (native), SVG path syntax, or parametric shapes.
References library types by ID, adds position along edge, face selection, and per-instance overrides.
| Format | Description | Example |
|---|---|---|
peps-kurve | Native PEPS kurve syntax (lines: tx y, arcs CW: tx y xc yc, arcs CCW: ax y xc yc) | "x0 y0 tx10 y0 tx10 y10 tx0 y10 tx0 y0" |
svg-path | SVG path d attribute syntax (M, L, A, Z commands) | "M0,0 L10,0 L10,10 L0,10 Z" |
parametric | Predefined shapes with dimensions | See Parametric Shapes below |
| Shape | Parameters | Description |
|---|---|---|
rectangle | width, height, cornerRadius (opt) | Rectangle, optional rounded corners |
obround | width, height | Slot with semicircle ends (pill shape) |
circle | dia | Simple circle |
diamond | width, height | Diamond/rhombus shape |
hexagon | across_flats | Regular hexagon |
| Group | Parameter | Type | Description |
|---|---|---|---|
| (profile root) | description | string | Human-readable description |
| origin | string | center, corner — reference point for placement | |
| format | string | peps-kurve, svg-path, or parametric | |
| data | string | Profile geometry (for peps-kurve and svg-path) | |
| (parametric) | shape | string | rectangle, obround, circle, diamond, hexagon |
| width / height / dia | float | Shape dimensions (mm) | |
| cornerRadius | float | Corner radius for rectangle (mm) | |
shelfCutouts[] | profileRef | string | Reference to customProfiles library ID |
| count | int | Number of cutouts (default: 1) | |
| spacing / axis | float / string | Spacing between cutouts, axis direction (width or span) |
| Mode | Value | Description |
|---|---|---|
percent | 0–100 | Percentage along edge (0 = start, 100 = end) |
absolute | mm | Distance from edge start in millimeters |
fromEnd | mm | Distance from edge end in millimeters |
| Group | Parameter | Type | Description |
|---|---|---|---|
| (root) | partNumber | string | Formal part number for inventory/drawings |
| description | string | Human-readable description of clamp type | |
material | gauge | int | Sheet metal gauge (10–20) |
| thickness | float | Thickness in mm | |
| material | string | mild-steel, stainless, aluminum | |
shelf | span | float | Projection from blade face (mm) |
| width | float | Width perpendicular to blade (mm) | |
| depth | float | Depth for sidePlate variant (mm) | |
leg | length | float | Leg length from shelf tip (mm) |
| count | int | Number of legs (1 = center, 2 = split) | |
bends | kick | float | Bend 2 angle (degrees, −135 typical) |
| kFactor | float | K-factor for BA calc (0.3–0.5) | |
| insideRadius | float | Inside bend radius (mm) | |
bends.relief | type | string | notch, radius, or none |
| width | float | Void width at bend line (mm), typically ≥2× thickness | |
| depth | float | Void depth into material (mm), typically ≥ thickness | |
| (root) | shape | string | semicircle, square, vee |
| (root) | formingMethod | string | hand, press-brake, roll |
ribConnection | width | float | Solid material width between voids (mm) |
backStop | overhang | float | Overhang beyond mortise width (mm), prevents pull-through |
ratchet | slotCount | int | Number of height-adjust slots |
| slotSpacing | float | Vertical spacing between slots (mm) | |
holes.shelf | pattern | string | linear, grid, radial, or custom |
| count | int | Number of holes (linear pattern) | |
| rows / cols | int | Grid dimensions (grid pattern) | |
| dia | float | Hole diameter (mm) | |
| spacing | float | Distance between holes (linear, mm) | |
| spacingX / spacingY | float | Grid spacing in X and Y (mm) | |
| origin | string | center, corner, or edge | |
| axis | string | width or span (linear pattern direction) | |
| rotation | float | Rotate hole pattern about shelf center (degrees) | |
holes.pin | dia | float | Retaining pin hole diameter (mm) |
| fromTop | float | Distance from tab top edge (mm) | |
countersink | dia | float | Countersink diameter (mm) |
| depth | float | Countersink depth (mm) | |
cornerBlends | shelfEdges | float | Blend radius on shelf plate edges (mm) |
| backStopEdges | float | Blend radius on back stop/retention flange (mm) | |
| lockingProngs | float | Blend radius on ratchet locking tabs (mm) | |
| legEdges | float | Blend radius on leg edges (mm) | |
gussets | count | int | Number of triangular braces |
| angle | float | Gusset angle from vertical (degrees) | |
| height | float | Gusset height (mm) | |
fasteners | type | string | bolt, rivet, weld-stud |
| dia | float | Fastener diameter (mm) | |
| count | int | Fasteners per station |
| Parameter | Type | Description | |
|---|---|---|---|
ref | string | Required. Library type ID to use | |
face | string | Required. left-inside, left-outside, right-inside, right-outside, front, back | |
position | object | Required. { mode, value } — see Position Modes above | |
ratchetSlotIndex | int | Which ratchet slot (0 = lowest). bendTab only. | |
tiltOverride | float | Override bend 1 tilt angle (±15°) | |
mirror | bool | Mirror clamp geometry (default: false) | |
enabled | bool | Enable/disable this placement (default: true) | |
overrides | relief.width | float | Override relief void width (mm) |
| relief.depth | float | Override relief void depth (mm) | |
| ribConnection.width | float | Override rib connection width (mm) |
Both Variant B (bend-tab clamps) and zigzag blades use the same fxParallelBend engine. The geometry is always N rectangular segments joined at N-1 parallel bend lines, all perpendicular to the base. The 3D solid is built by extruding each rectangle (SLD BLO), rotating to the bend angle, and unioning all pieces. The flat pattern is the same rectangles laid inline with BA deductions at each joint, stored as a named figure/kurve associated with the solid body.
fxParallelBend.ovm ← SHARED ENGINE (clamps + zigzag blades)
├── fxPB_Build3D N segments → BLO + rotate + UNI → solid
├── fxPB_BuildFlat BA-deducted flat pattern → figure/kurve
└── fxPB_ExportDXF Layers: outline, scores, holes
fxEdgeFeat_Dispatch ← Main edge feature dispatcher
├── type 1-6 ← Existing features (grippers, plungers, etc.)
├── type 7 → fxSidePlate ← Variant A (clip-together gusset)
│ ├── fxSP_BuildLocalCS
│ ├── fxSP_PlateProfile
│ ├── fxSP_GussetProfile
│ ├── fxSP_Slots + Fasteners
│ └── fxSP_Transform + Boolean
└── type 8 → fxBendTab ← Variant B (3-bend T-plate)
├── fxBT_PrepSegments 4 segments, 3 angles → arrays
├── call fxPB_Build3D → i_clampBody (3D solid)
├── call fxPB_BuildFlat → k(n) flat pattern figure
├── fxBT_AddShelfHoles Drill into 3D + mark on flat
├── fxBT_BuildMortiseSlot (subtract from blade)
├── fxBT_BuildRatchetSlots (column of height-adjust slots)
└── fxBT_TransformToWorld
fxZigzagBlade.ovm (future) ← Same shared engine, different inputs
├── fxZZ_PrepSegments N segments, N-1 angles → arrays
├── call fxPB_Build3D → i_zigzagBody (3D solid)
└── call fxPB_BuildFlat → k(n) flat pattern figure