# JSON File Definition

Applicable on: [SVG Generator](https://docs.midilli.tech/books/midilli-svg-generator "MIDILLI SVG Generator Manual"), [G-Code Generator](https://docs.midilli.tech/books/midilli-g-code-generator "MIDILLI G-Code Generator"), [STL Generator](https://docs.midilli.tech/books/midilli-stl-generator-for-3d-printers "MIDILLI STL Generator for 3D Printers")

**MIDILLI Tools** require a JSON file to operate. An example file is provided in the tool manuals, which you can modify to meet your specific needs. Below is a detailed explanation of the mandatory (indicated in bold) and optional properties and parameters. The text enclosed in square brackets \[ \] can be replaced if it begins with *unique*; otherwise, you should choose from the available options (e.g., \[uniquePartName\]\_\[Side\]).

To create your own JSON file, you can also use our online [Visual Box Designer](https://midilli.tech/visual-box-designer/) or textual [JSON Creator](https://midilli.tech/midilli-tools-json-creator/).

This JSON is a simplified version of the full configuration we use internally. It allows you to quickly customize your design without diving into complex data structures, offering a streamlined approach to controlling your project.

<figure class="wp-block-table is-style-stripes has-small-font-size" id="bkmrk-section-property-des"><table class="has-black-color has-white-background-color has-text-color has-background has-link-color" style="width: 105.833%; height: 2272.8px;"><thead><tr style="height: 63.2px;"><th class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 63.2px;">Section</th><th class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 63.2px;">Property</th><th class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 63.2px;">Description</th><th class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 63.2px;">Parameter</th><th style="width: 21.8065%; height: 63.2px;">Parameter description</th><th class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 63.2px;">Unit</th><th class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 63.2px;">Multiplicity</th></tr></thead><tbody><tr style="height: 46.4px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 46.4px;">**Generic**</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 46.4px;"> </td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 46.4px;">Specify generic properties</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 46.4px;"> </td><td style="width: 21.8065%; height: 46.4px;"> </td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 46.4px;">–</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 46.4px;">1</td></tr><tr style="height: 46.4px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 46.4px;">**Generic**</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 46.4px;">**width**</td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 46.4px;">The width of the box\* (on x-axis).</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 46.4px;">–</td><td style="width: 21.8065%; height: 46.4px;"> </td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 46.4px;">cm</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 46.4px;">1</td></tr><tr style="height: 46.4px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 46.4px;">**Generic**</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 46.4px;">**length**</td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 46.4px;">The length of the box\* (on y-axis).</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 46.4px;">–</td><td style="width: 21.8065%; height: 46.4px;"> </td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 46.4px;">cm</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 46.4px;">1</td></tr><tr style="height: 46.4px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 46.4px;">**Generic**</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 46.4px;">material\_thickness</td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 46.4px;">The thickness of the material.</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 46.4px;">–</td><td style="width: 21.8065%; height: 46.4px;"> </td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 46.4px;">mm</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 46.4px;">0-1</td></tr><tr style="height: 46.4px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 46.4px;">**Generic**</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 46.4px;">board\_height\_3d</td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 46.4px;">The height of the box\* (on z-axis).</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 46.4px;">–</td><td style="width: 21.8065%; height: 46.4px;"> </td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 46.4px;">mm</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 46.4px;">0-1</td></tr><tr style="height: 80px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 80px;">**Generic**</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 80px;">outer\_sizing</td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 80px;">Whether to include material thickness in the calculations.</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 80px;">–</td><td style="width: 21.8065%; height: 80px;"> </td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 80px;">bool (true or false)</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 80px;">0-1</td></tr><tr style="height: 197.6px;"><td style="width: 20.8532%; height: 197.6px;">**Generic**</td><td style="width: 15.6095%; height: 197.6px;">finger\_joint</td><td style="width: 16.0873%; height: 197.6px;">Whether to add finger (box) joints to the 4 wall corners so panels can be assembled without glue. Front/Back panels get protruding fingers, Left/Right panels get the matching slots.</td><td style="width: 14.2993%; height: 197.6px;">–</td><td style="width: 21.8065%; height: 197.6px;">  
</td><td style="width: 6.19638%; height: 197.6px;">bool (true or false)</td><td style="width: 5.12393%; height: 197.6px;">0-1</td></tr><tr style="height: 29.6px;"><td style="width: 20.8532%; height: 29.6px;">**Generic**</td><td style="width: 15.6095%; height: 29.6px;">finger\_size</td><td style="width: 16.0873%; height: 29.6px;">The width of a single finger. If not set, defaults to the material thickness. A warning is printed if it is smaller than the material thickness.</td><td style="width: 14.2993%; height: 29.6px;">–</td><td style="width: 21.8065%; height: 29.6px;">  
</td><td style="width: 6.19638%; height: 29.6px;">mm</td><td style="width: 5.12393%; height: 29.6px;">0-1</td></tr><tr style="height: 46.4px;"><td style="width: 20.8532%; height: 46.4px;">**Generic**</td><td style="width: 15.6095%; height: 46.4px;">finger\_count</td><td style="width: 16.0873%; height: 46.4px;">Number of fingers on each wall edge. If not set (or 0), it is calculated automatically from the edge length and finger size.</td><td style="width: 14.2993%; height: 46.4px;">–</td><td style="width: 21.8065%; height: 46.4px;">  
</td><td style="width: 6.19638%; height: 46.4px;">count</td><td style="width: 5.12393%; height: 46.4px;">0-1</td></tr><tr style="height: 29.6px;"><td style="width: 20.8532%; height: 29.6px;">**Generic**</td><td style="width: 15.6095%; height: 29.6px;">finger\_clearance</td><td style="width: 16.0873%; height: 29.6px;">Extra clearance added to the slots so the fingers fit without sticking. Applied only to the slots that receive a finger (Left/Right); Front/Back notches stay at finger\_size to keep the edge even. Default: 0.</td><td style="width: 14.2993%; height: 29.6px;">–</td><td style="width: 21.8065%; height: 29.6px;">  
</td><td style="width: 6.19638%; height: 29.6px;">mm</td><td style="width: 5.12393%; height: 29.6px;">0-1</td></tr><tr style="height: 130.4px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 130.4px;">**\[uniquePartName\]\_\[Side\]**</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 130.4px;"> </td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 130.4px;">Initiate creation of \[Side\] side of the part \[uniquePartName\]. Side can be: Top, Bottom, Left, Right, Back, Front.</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 130.4px;"> </td><td style="width: 21.8065%; height: 130.4px;"> </td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 130.4px;">–</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 130.4px;">1-6</td></tr><tr style="height: 130.4px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 130.4px;">\[uniquePartName\]\_\[Side\]</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 130.4px;">\[uniqueComponentName\]</td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 130.4px;">A unique component name to create a hole or rectangular shape on the \[uniquePartName\] \[Side\].</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 130.4px;"> </td><td style="width: 21.8065%; height: 130.4px;"> </td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 130.4px;">–</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 130.4px;">0-\*</td></tr><tr style="height: 80px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 80px;">\[uniquePartName\]\_\[Side\]</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 80px;">\[uniqueComponentName\]</td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 80px;">–</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 80px;">**location\_x**</td><td style="width: 21.8065%; height: 80px;">X position of center of the \[uniqueComponentName\] relative to the \[uniquePartName\] \[Side\].</td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 80px;">cm</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 80px;">1</td></tr><tr style="height: 80px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 80px;">\[uniquePartName\]\_\[Side\]</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 80px;">\[uniqueComponentName\]</td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 80px;">–</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 80px;">**location\_y**</td><td style="width: 21.8065%; height: 80px;">X position of center of the \[uniqueComponentName\] relative to the \[uniquePartName\] \[Side\].</td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 80px;">cm</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 80px;">1</td></tr><tr style="height: 96.8px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 96.8px;">\[uniquePartName\]\_\[Side\]</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 96.8px;">\[uniqueComponentName\]</td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 96.8px;">–</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 96.8px;">**drill\_diameter**</td><td style="width: 21.8065%; height: 96.8px;">The diameter of the hole to open. Has priority over *drill\_width* and *drill\_length*. Set to 0 only to display text.</td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 96.8px;">cm</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 96.8px;">1</td></tr><tr style="height: 147.2px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 147.2px;">\[uniquePartName\]\_\[Side\]</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 147.2px;">\[uniqueComponentName\]</td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 147.2px;">–</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 147.2px;">**drill\_width**</td><td style="width: 21.8065%; height: 147.2px;">The drill width of the rectangle to cut out. If *drill\_diameter* is found, *drill\_width* is ignored. Mandatory if *drill\_diameter* is not used. Set to 0 only to display text.</td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 147.2px;">cm</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 147.2px;">1</td></tr><tr style="height: 147.2px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 147.2px;">\[uniquePartName\]\_\[Side\]</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 147.2px;">\[uniqueComponentName\]</td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 147.2px;">–</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 147.2px;">**drill\_length**</td><td style="width: 21.8065%; height: 147.2px;">The drill length (y-axis) of the rectangle to cut out. If *drill\_diameter* is found, *drill\_length* is ignored. Mandatory if *drill\_diameter* is not used. Set to 0 only to display text.</td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 147.2px;">cm</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 147.2px;">1</td></tr><tr style="height: 96.8px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 96.8px;">\[uniquePartName\]\_\[Side\]</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 96.8px;">\[uniqueComponentName\]</td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 96.8px;">–</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 96.8px;">rotation</td><td style="width: 21.8065%; height: 96.8px;">Clockwise rotation of the component (0-359). If *call\_name* is set, text is also rotated around the component.</td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 96.8px;">degree</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 96.8px;">0-1</td></tr><tr style="height: 96.8px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 96.8px;">\[uniquePartName\]\_\[Side\]</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 96.8px;">\[uniqueComponentName\]</td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 96.8px;">–</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 96.8px;">call\_name</td><td style="width: 21.8065%; height: 96.8px;">Text to assign to the component. Placed using *visible\_length* and *visible\_width* as margin. See *rotation* for more info.</td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 96.8px;">text</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 96.8px;">0-1</td></tr><tr style="height: 46.4px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 46.4px;">\[uniquePartName\]\_\[Side\]</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 46.4px;">\[uniqueComponentName\]</td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 46.4px;">–</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 46.4px;">silk\_screen\_font\_size</td><td style="width: 21.8065%; height: 46.4px;">Custom font size for the text in pixels (px).</td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 46.4px;">px</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 46.4px;">0-1</td></tr><tr style="height: 147.2px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 147.2px;">\[uniquePartName\]\_\[Side\]</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 147.2px;">\[uniqueComponentName\]</td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 147.2px;">–</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 147.2px;">visible\_diameter</td><td style="width: 21.8065%; height: 147.2px;">If a recess is desired in the shape of a circle instead of a rectangle, this value must be specified. If this value is not found then *visible length* and *visible\_width* values are used.</td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 147.2px;">cm</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 147.2px;">0-1</td></tr><tr style="height: 197.6px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 197.6px;">\[uniquePartName\]\_\[Side\]</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 197.6px;">\[uniqueComponentName\]</td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 197.6px;">–</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 197.6px;">visible\_length</td><td style="width: 21.8065%; height: 197.6px;">If the visible area of the component is not the same as the drill size, *call\_name* uses this parameter to adjust the font margins keep the text above the visible section. If not found, *drill\_length* is used. This value is also used for the recess length of the component.</td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 197.6px;">cm</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 197.6px;">0-1</td></tr><tr style="height: 197.6px;"><td class="has-text-align-center" data-align="center" style="width: 20.8532%; height: 197.6px;">\[uniquePartName\]\_\[Side\]</td><td class="has-text-align-center" data-align="center" style="width: 15.6095%; height: 197.6px;">\[uniqueComponentName\]</td><td class="has-text-align-center" data-align="center" style="width: 16.0873%; height: 197.6px;">–</td><td class="has-text-align-center" data-align="center" style="width: 14.2993%; height: 197.6px;">visible\_width</td><td style="width: 21.8065%; height: 197.6px;">If the visible area of the component is not the same as the drill size, *call\_name* uses this parameter to keep the text horizontally centered with the component. If not found *drill\_width* is used. This value is also used for the recess width of the component.</td><td class="has-text-align-center" data-align="center" style="width: 6.19638%; height: 197.6px;">cm</td><td class="has-text-align-center" data-align="center" style="width: 5.12393%; height: 197.6px;">0-1</td></tr></tbody></table>

<figcaption class="wp-element-caption">*\* These values may change depending on outer or inner-sizing choice. **Bold font** represents a mandatory property.*</figcaption></figure>The text *\[uniquePartName\]* can be replaced with any name, brackets should be removed, e.g, MyPart

However, *\[Side\]* should be replaced with one of *Top, Bottom, Left, Right, Back, Front*. Note: each side may appear only once for a *\[uniquePartName\]* part, e.g., *MyPart\_Top* or *MyPart\_Left*. If any of the sides are missing it will not be created.

*Note: Use dot (.) if working with decimal numbers to separate the integer part.*