# Push Buttons

If you have one or more tactile switches on your PCB you can make a knop guide with witch you can push the tactile switch. You can size the button in any dimension you like and you can control the height of the button above the Lid (all within limits).

<figure><img src="/files/b0yESY9yqt1rYnDASlsX" alt="" width="244"><figcaption></figcaption></figure>

The API for push buttons is:

```
//===================================================================
//  *** Push Buttons ***
//-------------------------------------------------------------------
//  Default origin = yappCoordPCB: PCB[0,0,0]
//
//  Parameters:
//   Required:
//    p(0) = posx
//    p(1) = posy
//    p(2) = capLength 
//    p(3) = capWidth 
//    p(4) = capRadius 
//    p(5) = capAboveLid
//    p(6) = switchHeight
//    p(7) = switchTravel
//    p(8) = poleDiameter
//   Optional:
//    p(9) = Height to top of PCB : Default = standoffHeight + pcbThickness
//    p(10) = { yappRectangle | yappCircle | yappPolygon | yappRoundedRect 
//                    | yappCircleWithFlats | yappCircleWithKey } : Shape, Default = yappRectangle
//    p(11) = angle : Default = 0
//    p(12) = filletRadius          : Default = 0/Auto 
//    p(13) = buttonWall            : Default = 2.0;
//    p(14) = buttonPlateThickness  : Default= 2.5;
//    p(15) = buttonSlack           : Default= 0.25;
//    p(16) = snapSlack             : Default= 0.10;
//    n(a) = { <yappCoordPCB> | yappCoordBox | yappCoordBoxInside } 
//    n(b) = { <yappGlobalOrigin>,  yappLeftOrigin }
//    n(c) = { yappNoFillet }
//    n(d) = [yappPCBName, "XXX"] : Specify a PCB. Defaults to [yappPCBName, "Main"]
//-------------------------------------------------------------------
```

<figure><img src="/files/eBUxCTwH7441qR875LKh" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/EjUDOOu7Q8AQB5yV3GMt" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/Kxn7ZWd818sXGQqC8rUf" alt=""><figcaption></figcaption></figure>

The three buttons in the above images are created with this code:

```
pushButtons = 
[
    [84.2, 30.7, 8, 8, 0, 2, 1, 3.5, yappCircle]
   ,[85,   13.5, 8, 5, 3, 2, 1, 3.5, yappRectangle]
   ,[85,    7,   8, 5, 3, 2, 1, 3.5, yappRectangle]         
];     
```

<figure><img src="/files/HexFwypdBhKqjzMjTINQ" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mrwheel-docs.gitbook.io/yappgenerator_en/push-buttons.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
