Reference Documents

Technical documents that can be applied to multiple MIDILLI products.

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 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 or 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.

* These values may change depending on outer or inner-sizing choice. Bold font represents a mandatory property.

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.

Understanding 2D Coordinate Systems in MIDILLI Tools

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

In the MIDILLI Tools, a 2D coordinate system is used for the parts and components. The box height is also specified to enable assembling the generated sides into a finished box structure.

The coordinate system with direction of increase and direction of rotation in the MIDILLI SVG Generator.

Each side of the shape has its local origin starting at the top-left corner (x = 0, y = 0). The default rotation of the added components is set to zero (0) degrees, with rotation occurring clockwise. For example, a 90-degree rotation will rotate the component 90 degrees to the right. All coordinates and locations in the JSON file are given in centimeters (cm), and the rotation is measured in degrees. This is how the final box without any components may look like if all sides are exported:

The dots represent the local origins (top-left) of each side.

The two images below show how each side appears in the 2D view. Imagine pressing the 3D box above and flattening it to see this perspective:

Sizing summary if inner-sizing option is used (by default).

If the inner-sizing option is used (enabled by default), the left and right sides will have a greater height/length to cover the back and front sides. Additionally, the left, right, back, and front will be slightly taller to maintain the specified inner volume. The top and bottom will then fit in accordingly. The components on sides (except top and bottom) will be repositioned considering these changes. For example, if you put a component at x = 0, y = 0 for right side, this component will be located at x = b, y = b.

Sizing summary if outer-sizing option is used (can be enabled with command-line argument).

If the outer-sizing option is enabled (via --outer-sizing command-line argument), the front and back sides will be slightly shorter to align with the width of the left and right sides. Similarly, all four sides (left, right, front, and back) will be slightly adjusted to maintain the specified outer volume. The top and bottom will then fit precisely on top of and beneath the other sides. In this case, unlike inner-sizing, components will be placed exactly as you specify it without any adjustments. Below, both variations for the sizing are shown in 3D:

Sizing with inner-sizing (default) options.

Sizing with outer-sizing options.

Tip: If you want the overall size to be exactly as you specify in the JSON file, use the --outer-sizing option. If you want the usable inner area to be the same as you define, leave it as default.