Detailed Usage
[Top]
Below, the detailed usage of the tool and the standard JSON project file will be explained.
Command line arguments
If the program is executed with -h
or --help
option, the following quick help will be displayed:
STLGenerator.exe [OPTION...]
-j, --json-file arg Project JSON file
-o, --output-directory arg Output directory
-t, --material-thickness arg Material thickness in mm
-b, --box-height-3d arg Box height in 3D in mm
-s, --single-part Merge all STL files to construct a 3D box.
Use --separate-top and/or --separate-bottom
to separate the sides
-p, --separate-top Do not combine the top side with the other
sides when using the --single-part option
-m, --separate-bottom Do not combine the bottom side with the
other sides when using the --single-part
option
-w, --screw-size arg Screw diameter in mm (default: 0)
-d, --screw-head-height arg Screw head height in mm (default: 0)
-a, --screw-head-diameter arg
Screw head diameter in mm (default: 0)
-e, --screw-extra-margin arg Screw extra margin in mm (default: 0)
-z, --outer-sizing Box sizes are for outside borders (inner
area will be smaller)
-r, --recess-depth arg The depth of recess in mm (Default: no
recess) (default: 0)
-c, --openscad-path arg Path to OpenSCAD executable (default:
C:\\Progra~1\\OpenSCAD\\openscad.exe)
-k, --keep-project-files Do not delete OpenSCAD files at the end
-n, --only-project Create only OpenSCAD files, do not create
STL files
-v, --verbose Verbose output
-h, --help Print this help and exit
Both short and long versions of the arguments can be used.
The arguments -j
, -o
, -t
, and -b
are mandatory. Other arguments have default values as mentioned above. To set an argument to false, use the long version and assign the value false
. For example, to disable outline cut, use --only-project=false
. Similarly, for verbose, use either -v
or --verbose
. Argument values can be provided with a space or an equal sign if long versions are used. For instance, both --json-file test.json
and --json-file=test.json
are valid usage. For short versions, only space allowed, e.g., -b 30
.
--json-file
A valid path to JSON file to be used as input. Can be a relative path (starting from the working directory) or an absolute path.
--output-directory
The directory to write the output files to. Using .
(dot) will use the current working directory. The final files will be written into a new folder having the name of the --json-file
.
--material-thickness
This value is used to calculate the depth required for creating holes for components and/or screws. The value is in millimeters (mm).
Additionally, this value is used to determine the dimensions of the left, right, front, and bottom sides (if enabled) based on whether the --outer-sizing
parameter is active. See Coordinate system and effects of sizing parameters for more info.
--box-height-3d
The height of the box in millimeters (mm). If --outer-sizing
is used, this will be the outer height of the box. Otherwise, it is the inner height of the box.
--single-part
Merges all sides into a single file (.scad
or .stl
) to construct a complete 3D box. To separate top or bottom, use --separate-top
and/or --separate-bottom
respectively.
Default: false
--separate-top
Separate top side of the box from the rest of the sides and save it as a separate file if --single-part
option is used. This will also leave the _Top.scad
project file in the folder.
--separate-bottom
Separate bottom side of the box from the rest of the sides and save it as a separate file if --single-part
option is used. This will also leave the _Bottom.scad
project file in the folder.
--screw-size
Screw hole diameter to be drawn as hole in millimeters (mm) on the top and/or bottom side of the box. Needs at least --separate-top
or --separate-bottom
to be used. Otherwise no screw holes will be generated.
This will also generate 4 cylindrical supports to fix the screws.
Default: 0 mm, no screws.
--screw-head-height
The depth of the screw-head to create counterbore/recessed screws given in millimeters (mm).
Default: 0 mm, protruding screw head.
--screw-head-diameter
If the screws must be counterbore/recessed, any value given in millimeters (mm) (preferably greater than --screw-size
) will create a circular shape to bury the head.
Default: 0 mm, protruding screw head.
--screw-extra-margin
By default, screws are added at the four corners of the top and/or bottom side of the box, leaving a margin of --material-thickness
from the sides. If an additional margin is desired, any value given in millimeters (mm) will increase this gap.
Default: 0 mm, no additional margin.
--outer-sizing
If used, the sizes defined in the JSON file as well as the --material-thickness
and --box-height-3d
arguments will be used to create the outer volume with the given dimensions. Otherwise, these values will be used to create the inner volume with the given dimensions.
Default: false, use inner dimensions.
--recess-depth
The depth of the recess for components in millimeters (mm).
Recesses also take the sizing from visible_diameter (priority) or visible_width and visible_height properties. Recesses may be helpful to have slightly lowered shapes to e.g., stabilize or limit the movement of button caps. This value does not change the behavior of the screw head recess (See --screw-head-height
).
Default: 0 mm, no recess for the components
--openscad-path
Path to OpenSCAD executable to convert .scad
files to .stl
files. Requires free and open-source OpenSCAD to be installed separately.
Default: C:\Program Files\OpenSCAD\openscad.exe
--keep-project-files
Keeps the OpenSCAD files (.scad
files) after conversion to STL.
Default: false, remove .scad
files after conversion to STL.
--only-project
Only creates .scad
files and does not start STL conversion. This is useful e.g., to work on the files using OpenSCAD for fine-tuning or modifications.
--verbose
Shows more information during project creation and outputs of the OpenSCAD software during STL conversion.
--help
Shows the quick help with the list of arguments and their short descriptions.
JSON File
See the definition on this page: MIDILLI JSON File Definition.