> For the complete documentation index, see [llms.txt](https://mrwheel-docs.gitbook.io/yappgenerator_en/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mrwheel-docs.gitbook.io/yappgenerator_en/cutouts.md).

# Cutouts

For each **plane** (face) there is an array in which you can specify per line where cutouts should come, what the **`origin`** of such a recess is, what shape the recess should have (*Rectangle*, *RoundedRect*, *Circle*, *CircleWithFlats*, *CircleWithKey* or *Polygon*).&#x20;

Depending on the **plane**, the first element is the position on the **X-axis** (lid-, base-, left- or rightPlane) or the **Y-axis** (front- or backPlane) and the second element is the position on the **Y-axis** (lid-, base-, left- or rightPlane) and the **Z-axis** (front-, back-, left- or rightPlane).&#x20;

```
===================================================================
  *** Cutouts ***
    There are 6 cutouts one for each surface:
      cutoutsBase, cutoutsLid, cutoutsFront, cutoutsBack, cutoutsLeft, cutoutsRight
-------------------------------------------------------------------
  Default origin = yappCoordPCB

                        Required                Not Used        Note
----------------------+-----------------------+---------------+------------------------------------
  yappRectangle       | width, length         | radius        |
  yappCircle          | radius                | width, length |
  yappRoundedRect     | width, length, radius |               |     
  yappCircleWithFlats | width, radius         | length        | length=distance
                      |                       |               | between flats
  yappCircleWithKey   | width, length, radius |               | width = key width 
                      |                       |               | length=key depth
  yappPolygon         | width, length         | radius        | yappPolygonDef object
                      |                       |               | must be provided
----------------------+-----------------------+---------------+------------------------------------

  Parameters:
   Required:
    p(0) = from Back
    p(1) = from Left
    p(2) = width
    p(3) = length
    p(4) = radius
    p(5) = shape : { yappRectangle | yappCircle | yappPolygon | yappRoundedRect 
                    | yappCircleWithFlats | yappCircleWithKey }
  Optional:
    p(6) = depth : Default = 0/Auto : 0 = Auto (plane thickness)
    p(7) = angle : Default = 0
    n(a) = { yappPolygonDef } : Required if shape = yappPolygon specified -
    n(b) = { yappMaskDef } : If a yappMaskDef object is added it will be used as a mask 
                             for the cutout.
    n(c) = { [yappMaskDef, hOffset, vOffset, rotation] } : If a list for a mask is added 
                              it will be used as a mask for the cutout. With the Rotation 
                              and offsets applied. This can be used to fine tune the mask
                              placement within the opening.
    n(d) = { <yappCoordPCB> | yappCoordBox | yappCoordBoxInside }
    n(e) = { <yappOrigin>, yappCenter }
    n(f) = { <yappGlobalOrigin>, yappAltOrigin } // Only affects Top(lid), Back and Right Faces
    n(g) = [yappPCBName, "XXX"] : Specify a PCB. Defaults to [yappPCBName, "Main"]
    n(h) = { yappFromInside } Make the cut from the inside towards the outside
-------------------------------------------------------------------

```
