# Crank (lever)

> Component kind `crank` (category `mech`, DSL name `crank`, API v1)

Rigid arm that rotates around a pivot. The pivot sits at the component origin; the arm extends along the local +X axis for `length` mm. Same single rotational port as a shaft, different visual footprint.

## Parameters

- **`length`** — Arm length from pivot to tip along the local X axis (mm).
- **`width`** — Arm width along the local Y axis (mm).
- **`thickness`** — Arm thickness along the local Z axis (mm).
- **`pivotDiameter`** — Diameter of the pivot boss at the component origin (mm).

## Parameters schema

| Parameter | Type | Default | Constraints |
| --- | --- | --- | --- |
| `length` | Number | 60 |  |
| `width` | Number | 12 |  |
| `thickness` | Number | 6 |  |
| `pivotDiameter` | Number | 8 |  |

## Ports

| Port | Type | Description |
| --- | --- | --- |
| `axis` | `rotational` | Rotational port at the pivot. Spin axis is local Z. |

## Kinematics

Passive — no propagation rule of its own. The connection at the pivot (typically mech.couple to a shaft) drives the arm's rotation; the tip traces a circle of radius `length`.

## Example

```
crank "C1" {
  length: 60
  width: 12
  thickness: 6
}
```
