Skip to main content

JSON File Definition

Applicable on:  SVG Generator,  G-Code Generator,  STL Generator

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 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 online Visual Box Designer  or textual textual 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.

finger_joint 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. –
bool (true or false) 0-1 Generic finger_size 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. –
mm 0-1 Generic finger_count Number of fingers on each wall edge. If not set (or 0), it is calculated automatically from the edge length and finger size. –
count 0-1 Generic finger_clearance 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. –
mm 0-1 [uniquePartName]_[Side]    Initiate creation of [Side] side of the part [uniquePartName]. Side can be: Top, Bottom, Left, Right, Back, Front.       – 1-6 [uniquePartName]_[Side] [uniqueComponentName] A unique component name to create a hole or rectangular shape on the [uniquePartName] [Side].       – 0-* [uniquePartName]_[Side] [uniqueComponentName] – location_x X position of center of the [uniqueComponentName] relative to the [uniquePartName] [Side]. cm 1 [uniquePartName]_[Side] [uniqueComponentName] – location_y X position of center of the [uniqueComponentName] relative to the [uniquePartName] [Side]. cm 1 [uniquePartName]_[Side] [uniqueComponentName] – drill_diameter The diameter of the hole to open. Has priority over over drill_width drill_width and and drill_length. Set to 0 only to display text. cm 1 [uniquePartName]_[Side] [uniqueComponentName] – drill_width The drill width of the rectangle to cut out. If If drill_diameter drill_diameter is found,  drill_width drill_width is ignored. Mandatory if if drill_diameter drill_diameter is not used. Set to 0 only to display text. cm 1 [uniquePartName]_[Side] [uniqueComponentName] – drill_length The drill length (y-axis) of the rectangle to cut out. If If drill_diameter drill_diameter is found,  drill_length  is ignored. Mandatory if if drill_diameter drill_diameter is not used. Set to 0 only to display text. cm 1 [uniquePartName]_[Side] [uniqueComponentName] – rotation Clockwise rotation of the component (0-359). If If call_name  is set, text is also rotated around the component. degree 0-1 [uniquePartName]_[Side] [uniqueComponentName] – call_name Text to assign to the component. Placed using using visible_length and  and visible_width visible_width as margin. See See rotation rotation for more info. text 0-1 [uniquePartName]_[Side] [uniqueComponentName] – silk_screen_font_size Custom font size for the text in pixels (px). px 0-1 [uniquePartName]_[Side] [uniqueComponentName] – visible_diameter 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 then visible length and  and visible_width visible_width values are used. cm 0-1 [uniquePartName]_[Side] [uniqueComponentName] – visible_length If the visible area of the component is not the same as the drill size,  call_name 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. cm 0-1 [uniquePartName]_[Side] [uniqueComponentName] – visible_width If the visible area of the component is not the same as the drill size,  call_name call_name uses this parameter to keep the text horizontally centered with the component. If not found found drill_width drill_width is used. This value is also used for the recess width of the component. cm 0-1
* These values may change depending on outer or inner-sizing choice.  Bold font  represents a mandatory property.

The text text [uniquePartName]  can be replaced with any name, brackets should be removed, e.g, MyPart

However,  [Side]  should be replaced with one of of Top, Bottom, Left, Right, Back, Front. Note: each side may appear only once for a a [uniquePartName]  part, e.g.,  MyPart_Top or  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.