# Quick Usage

Download the ZIP file and extract to a location. Copy the *Example JSON file* below and save it as *test.json* using a simple text editor. To keep the things simple, save it at the same location as the executable.

To create your own JSON file, you can use our [visual box designer](https://midilli.tech/visual-box-designer), our online [JSON Creator](https://midilli.tech/midilli-tools-json-creator/) or refer to [MIDILLI JSON Definition](https://midilli.tech/help-and-support/manuals/manuals-free-tools/midilli-json-file-definition/) document to create your own from scratch.

### Example JSON File

The following file generates all six sides for *MyPart*, placing one hole and one rectangle cutout on the *Top* side. The top size of the box is 5x5 cm and the components are placed at (x = 1, y = 1) and (x = 3, y = 3) respectively. The visible sizes of the components are the same as drill sizes and their texts are just placed above since they are zero degrees rotated, with a font size of 8 pixels.

```json
{
	"Generic": {
		"width": 5.0,
		"length": 5.0
	},
	"MyPart_Top": {
		"myRoundComponent#1": {
			"location_x": 1,
			"location_y": 1,
			"drill_diameter": 1,
			"call_name": "Hello",
            "visible_diameter": 0,
			"visible_length" : 1,
			"visible_width" : 1,
			"rotation": 0
		},
		"myRectangleComponent#1": {
			"location_x": 3,
			"location_y": 3,
			"drill_width": 2,
			"drill_length": 1,
			"call_name": "MIDILLI",
			"visible_width" : 1,
			"visible_length" : 2,
			"rotation": 0
		}
	},
	"MyPart_Bottom": {

	},
	"MyPart_Back": {
		
	},
	"MyPart_Front": {

	},
	"MyPart_Left": {

	},
	"MyPart_Right": {

	}
}
```

Depending on the command-line options, the other sides of the part will be created using different sizing. Read *Coordinate system* *and effect of sizing parameters* for more on different results of the arguments.

<p class="callout info">**Note**: JSON syntax is very strict. Ensure that the last line before each '}' does **not** end with a comma, while all other lines **should**. Use an online validation tool to confirm correctness.  
</p>

<p class="callout info">**Note**: Use dot (.) if working with decimal numbers to separate the integer part.</p>

Assuming that the JSON file is stored at the same location as the executable file, open a command window (Command Prompt, or PowerShell), then execute the following command:

```
.\SVGGenerator.exe --json-file .\test.json --output-directory . --material-thickness 3 --box-height-3d 30 --vectorize=false
```

You will be provided with an output showing the current settings as following:

```
~~~~~ Settings ~~~~~
Laser kerf: 0 mm
Box height in 3D: 30 mm
Outer sizing enabled: No
Finger joints: No
Finger size: 3 mm (default: material thickness)
Finger count: Automatic
Finger clearance: 0 mm
Text enabled: Yes (Default font size: 8 px)
Components enabled: Yes
Side outline enabled: Yes
Recess for components enabled: No
Line per mm for recess areas: 1
Material thickness: 3 mm
Screw size top: 0 mm
Screw size bottom: 0 mm
Screw head diameter: 0 mm
Screw extra margin: 0 mm
Separate all output files: No
Vectorize enabled: No
Keep original files: No
Simulation enabled: No
Inkscape path: C:\\Progra~1\\Inkscape\\bin\\inkscape.com
```

Each setting on the console output can be customized with command line arguments.

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

After completion, 6 files starting with *MyPart\_* and ending with *.svg* will be visible under *test* directory. Opening *MyPart\_Top.svg* should display the following:

[![image.png](https://docs.midilli.tech/uploads/images/gallery/2025-11/scaled-1680-/wzuimage.png)](https://docs.midilli.tech/uploads/images/gallery/2025-11/wzuimage.png)

If you would like to directly vectorize the output, you can remove `--vectorize=false` option. As stated above, this will require the *Inkscape* to be installed.

For more customization, read the *Detailed usage* section.

<details id="bkmrk-hint-tip%3A-if-you-wan"><summary>Hint</summary>

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.

</details>