# Cutting Diagram 7.0

{% hint style="danger" %}
This page is currently being written.
{% endhint %}

{% hint style="info" %}
This feature was introduced in version 7.0.0.
{% endhint %}

## Computing Cutting Diagrams

Cutting diagrams can be solved by a class of algorithms known as [**Bin Packing**](https://en.wikipedia.org/wiki/Bin_packing_problem), albeit with a few twists. We are looking for an *optimal* cutting plan, but what is optimal? The criterion most often used to define optimality is the *least number of bins* necessary to pack a set of boxes. Other criteria to optimize include the size and number of offcuts produced (one large is better than many small), the total length of needed cuts, the number of times the panel needs to be rotated, the number of top-level through cuts, ...

{% hint style="warning" %}
Cutting diagrams are not available for material of type **Solid Wood**, because they are not meaningful in that context.
{% endhint %}

### Limitations

Bin Packing problems are notoriously difficult. Even if we cannot guarantee to find a perfect solution, our algorithm tries very hard to find an acceptable solution.

{% hint style="warning" %}
Cutting diagrams that do not look as you expected do not constitute bugs, and should not be reported as such.
{% endhint %}

## Types

* **One** (Dimensional) - Cut lengthwise only
* **Guillotine** - Cutting into rectangles with through cuts
* **Rectangle** - Cutting into nested rectangles
* **Nesting** - Cutting with any nested shapes

<figure><img src="https://2764382921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUSHuV5bThAGZxy7OHb-1972196547%2Fuploads%2F7ocXA007HE1FxHYPuDfA%2FCapture%20d%E2%80%99e%CC%81cran%202025-09-17%20a%CC%80%2018.21.05.png?alt=media&#x26;token=6d0907ca-5c63-4924-b9ad-bcc5fea73041" alt=""><figcaption></figcaption></figure>

## Cut Types

* **exact**: the number of cutting levels is exactly the same as the input value
* **non-exact**: an additional cutting level is allowed, but only to separate a leftover piece from an item
* **homogeneous**: this is similar to "exact," but it also requires that the last level of sub-sections contain exactly the same items

<figure><img src="https://2764382921-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUSHuV5bThAGZxy7OHb-1972196547%2Fuploads%2FB93FTkJgaa9KjXmB4QWk%2Fcut_types.jpg?alt=media&#x26;token=ecc975e7-200e-4975-9746-61f6ca590fe7" alt=""><figcaption></figcaption></figure>
