YAPPgenerator_en
  • Yet Another Parametric Projectbox generator
  • What you need
  • Getting Started
  • Design Philosophy
  • Coordinate Systems
  • YAPPgenerator API
  • YAPP Box Settings
    • Multiple PCBs
  • Standoffs
    • pcbStands (advanced)
  • Connecting Base and Lid
    • Connecting Base and Lid (advanced)
  • Cutouts
    • n(h) - yappFromInside
    • p(6) - Cutout Depth
    • Placement of the project box
      • Cutouts in the Base Plane
      • Cutouts in the Lid Plane
      • Cutouts in the Front Plane
      • Cutouts in the Back Plane
      • Cutouts in the Left Plane
      • Cutouts in the Right Plane
    • Shapes
    • Optional Parameters
      • p(7) - Angle
      • n(a) = Polygon Definition
      • n(b)/n(c) - Mask Definition
      • n(d) - Coordinate System
      • n(e) - Position reference
      • n(f) - Alternate Origin
      • n(g) - PCB Selection
  • Box Mounts
    • boxMounts (advanced)
  • Snap Joins
  • Light Tubes
  • Push Buttons
    • Optional Parameters
  • Ridge Extension
  • Labels
  • Images
  • Hooks
  • Debugging
  • Advanced Options
    • Specify a PCB
    • Position reference
    • Polygon Definitions
    • Mask Definitions
  • Generating STL file from KiCad
  • License
Powered by GitBook
On this page

YAPPgenerator API

All objects (cutouts, pcbStands, labels) are entered as elements in an array. Each element is an array of its own. The way you populate the array's is named the 'YAPPgenerator API', API for short.

In the description of the API we use the following convention:

Parameters p(..) means it is a Positional parameter like. These parameters must be entered in fixed order. n(..) means it is a a non-Positional parameter. These parameters can be entered in random order. There are required parameters (you need to enter all required parameters) and optional parameters (they mostly have a default value and can be omitted).

For non-numerical parameters the following syntax is used:

   { yappKeyWord }
   <Default value>
   | means one or more values from the list are allowed
   , means only one value from the list is allowed

To elaborate lets use a fictional demoArray with this API:

demoArray Parameters:
 Required:
  p(0)  = posx                    --\
  p(1)  = posy                      > required positional parameters (0),(1) and (2)
  p(2)  = { yappThis | yappThat } --/
  
 Optional:                                                   
  p(3)  = standoffDiameter    Default = standoffDiameter;        --\
  p(4)  = standoffPinDiameter Default = standoffPinDiameter;       > Optional
  p(5)  = standoffHoleSlack   Default = standoffHoleSlack;       --/    Positional

  n(a)  = { <yappBoth> | yappLidOnly | yappBaseOnly }            --\
  n(b)  = { <yappPin>, yappHole } // Baseplate support treatment   |
  n(c)  = { <yappAllCorners> | yappFrontLeft | yappFrontRight      > Optional, non-
                             | yappBackLeft | yappBackRight }      |  Positional
  n(d)  = { <yappCoordPCB> | yappCoordBox | yappCoordBoxInside }   |
  n(e)  = { yappNoFillet }                                       --/

As you can see, there are three required positional parameters p(0, 1 and 2) and there are three optional positional parameters p(3, 4 and 5). Not all positional parameters are required but if you want to give f.i. positional parameter p(5) a value of '50' you also have to enter values for optional parameters p(3) and p(4). This might look like this:

  +---+-----+----< required parameters p(0), p(1) and p(2)
  |   |     |
  V   V     V
[10, 13, yappThat, yappDefault, yappDefault, 50 ...]
                       ^            ^         ^  
                       |            |         | 
                       |            |         \---> new value for positional 
                       |            |                 parameter p(5)
                       |            \------------> positional/required parameter p(4)
                       \-------------------> positional/required parameter p(3)                     

The following entries are all valid:

demoArray = 
[
  [5, 6, yappThis]                    //-> Parameters 0, 1 and 2 are given, the rest
                                      //   are optional with default values.
  [5, 6, yappThis, yappDefault, 2]    //-> Same as previous entry, but with a value 
                                      //   of '3' for parameter 4.
  [5, 6, yappThis, yappDefault, yappDefault, 0.5] //-> Same as the first entry, but 
                                                  //   a value of 0.5 for
                                                  //   parameter 5.
  [5, 6, yappThis, yappDefault, 2, 0.5] //-> Same as the first entry, but with a value
                                        //   of '2' for parameter 4 and 
                                        //   a value of '0.5' for parameter 5.
  [5, 6, yappThis, 8, 2, 0.5]     //-> Same as the first entry, but with a value
                                  //   of '8' for parameter 3 and a value of '2'
                                  //   for parameter 4 and a value of '0.5' for
                                  //   parameter 5.
  ];

Parameter n(a) can have the values (one or more) yappBoth, yappLidOnly and/or yappBaseOnly. If neither is given, the default yappBoth will be used.

Parameter n(b) can have one (and only one) of the values yappHole or yappPin. If omited the default value yappPin will be used.

Parameter n(c) can have one or more values yappAllCorners, yappRightLeft, yappFrontRight, yappBackLeft and/or yappBackRight. If omitted yappAllCorners will be used.

Parameter n(d) can have one of the following values yappCoordBox or yappCoordPCB. If omitted yappCoordPCB is used.

Parameter n(e) can have the value yappNoFillet. If omitted the default is that for this object fillets are created.

PreviousCoordinate SystemsNextYAPP Box Settings

Last updated 1 year ago