---
title: "Preview Dfm Bend Plan"
method: POST
path: "/v1/dfm/{dfm_id}/parts/{part_id}/bend-plan"
tags: ["manufacturing-v1"]
---

# Preview Dfm Bend Plan

`POST /v1/dfm/{dfm_id}/parts/{part_id}/bend-plan`

## Request

- Base URL: `https://api.rmfg.com`
- URL: `https://api.rmfg.com/v1/dfm/{dfm_id}/parts/{part_id}/bend-plan`
- Auth: HTTP bearer

Experimental sampled bend plan; does not change purchasing DFM status.

## Path parameters

- `dfm_id` string, required
- `part_id` string, required

## Request body

- V1BendPlanPreviewRequest: Request a Rust bend plan for the exact prepared DFM configuration.
  - `include_preview` boolean: Include self-contained 3D geometry and animation frames in preview; agents can omit it.

## Response `200`

Successful Response

- V1BendProgramResponse: Resolved program, its checks, and optional self-contained 3D preview.
  - `object` 'bend_plan_preview'
  - `schema_version` 2
  - `dfm_id` string, required
  - `part_id` string, required
  - `configuration_hash` string, required
  - `engine` string, required
  - `scene_revision` string, required
  - `source_step_sha256` string, required
  - `elapsed_ms` number, required
  - `machine_ready` false
  - `program` V1BendProgram, required: One resolved candidate. Steps are listed in execution order.
    - `material_id` string, required
    - `steps` V1BendProgramStep[], required
      - `bend_id` integer, required
      - `station_id` string, nullable, required: Null when no tooling station could be resolved for this bend.
      - `reversed` boolean, required
      - `calibration_id` union, required
        - integer
        - string
      - `estimated_force_kn` number, nullable, required
      - `springback` object, nullable: Versioned springback prediction and historical-match provenance. Null for older programs; not machine qualification.
      - `backgauges` object, nullable, required: Native gauge schema v1: fingers in fixed machine order with start/end X/R/Z in mm, retractStart/retractEnd normalized stroke progress, and placement contacts/stability. Null means no placement. A confirmed placement is not controller qualification.
    - `stations` V1BendProgramStation[], required
      - `id` string, required
      - `setup_index` integer, required: Zero-based setup index.
      - `punch_id` string, required
      - `die_id` string, required
      - `lower_adapter_id` string, nullable
      - `punch_segments_mm` number[], required
      - `die_segments_mm` number[], required
      - `adapter_segments_mm` number[]
      - `punch_segment_order_numbers` string[]: Catalog order numbers for special end segments, aligned with punch_segments_mm.
      - `punch_flipped` boolean: The punch is mounted turned 180° about the vertical axis (TRUMPF "Flipped"), so a gooseneck opens toward the other side.
      - `width_mm` number, required
      - `center_mm` number, required
    - `tools` object[], required: Selected native catalog profiles: id, name, profileNumber, kind, height/width/radius in mm, angle in degrees, maximumLoad in kN/m.
    - `setup_count` integer, required
    - `tooling_changes` integer, required
  - `checks` V1BendProgramChecks, required
    - `status` 'passed' | 'failed' | 'unavailable', required: Overall sampled result. Inspect findings even when passed; this never means machine-ready.
    - `summary` string, required
    - `findings` object[], required: All tooling/process findings, with level, message and optional bendId.
    - `collisions` object, nullable, required: Native sampled audit: status, hits (bendId/progress/mesh/obstacle), sample count, backgauge coverage, limitations and errors. Null means no collision audit ran.
    - `validation_scope` object, required
    - `inventory_confirmed` boolean, required
    - `search` object, required
  - `preview` object, nullable, required: Native render schema v1, or null if omitted: sceneAssets, ordered steps/frames, units and column-major matrices. Geometry and poses are embedded; no viewer URL is created.

## Other responses

- `401`: Missing or invalid credentials.
- `403`: The credentials do not permit this operation.
- `404`: The resource does not exist or is not visible to the caller.
- `422`: Validation failed; see `error.param` and `error.details`.
- `429`: Rate limit exceeded; retry after the `Retry-After` header.
- `500`: Unexpected failure; safe to retry with the same Idempotency-Key.

## Changes

- **2026-11-02** `65ed46eb9e55`: 1 info
  - added the optional property `program/anyOf[subschema #1: V1BendProgram]/stations/items/punch_flipped` to the response with the `200` status
- **2026-10-01** `737527fc081e`: 1 info
  - added the optional property `program/anyOf[subschema #1: V1BendProgram]/steps/items/springback` to the response with the `200` status
- **2026-09-28** `3568b01e288d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rmfg/apis/rmfg-manufacturing-api/changes/v1/dfm/:dfm_id/parts/:part_id/bend-plan/post.md)

---

[API](https://skmtc.dev/rmfg/apis/rmfg-manufacturing-api.md) - [All operations](https://skmtc.dev/rmfg/apis/rmfg-manufacturing-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rmfg/apis/rmfg-manufacturing-api/revisions/078f984358b9?raw)
