Skip to main content

Command line arguments

Introduction

If the program is executed with -h or --help option, the following quick help will be displayed:

Usage:
  STLGenerator.GCodeGenerator.exe [OPTION...]

  -j, --json-file arg           Project JSON file
  -o, --output-directory arg    Output directoryfolder
  -t, --material-thickness arg  Material thickness to cut in mm (default:
                                0)
  -b, --box-height-3d arg       Box height in 3D in mm (default: 0)
  -s,d, --single-partcut-depth-per-pass Mergearg  allDepth STLper filespass to constructcut ain 3D box.
                                Use --separate-top and/or --separate-bottom
                                to separate the sidesmm
  -p, --separate-topbit-shape Doarg           notBit combineshape thefor topdrill sidesize withcompensation:
                                thestraight, otheror sidesv-shaped when(default: using the --single-part optionstraight)
  -m, --separate-bottom         Do not combine the bottom side with the
                                other sides when using the --single-part
                                option
  -y, --separate-back           Do not combine the back side with the other
                                sides when using the --single-part option
  -u, --separate-front          Do not combine the front side with the
                                other sides when using the --single-part
                                option
  -l, --separate-left           Do not combine the left side with the other
                                sides when using the --single-part option
  -g, --separate-right          Do not combine the right side with the
                                other sides when using the --single-part
                                option
  -w, --screw-sizebit-diameter arg        ScrewBit diameter in mm for drill size
                                compensation (default: 0.01)
  -k, --bit-angle arg           Bit angle in degrees for v-shaped bits for
                                drill size compensation (default: 0)
  -d,f, --screw-head-bit-cutter-height arg   ScrewBit headcutter height in mm (default:at 0)which -a,the
                                --screw-head-diameter arg
                                Screw headmaximum diameter inis mmreached (default: 0)
  -e, --screw-extra-margin arg  Screw extra margin in mm (default: 0)
  -z,g, --outer-sizing            Box sizes are for outside borders (inner
                                area will be smaller)
      --finger-joint            Add finger joints (box joints) to the side4
                                panelswall corners so theypanels can be assembled
                                without glue
      --finger-size arg         Finger width in mm (Default:0 = material thickness)
                                (default: 0)
      --finger-count arg        Number of fingers on an edge (Default:0 = automatic
                                based onfrom finger size) (default: 0)
      --finger-clearance arg    Extra clearance added to finger slots in mm
                                (Default: 0) (default: 0)
  -r, --recess-depth arg        The depth of recess in mm (Default:0 = no recess)
                                (default: 0)
  -x, --draw-textfeedrate-x Whetherarg          Feedrate to drawuse textfor x-axis (default: 200)
  -y, --feedrate-y arg          Feedrate to use for y-axis (default: 200)
  -z, --feedrate-z arg          Feedrate to use for z-axis (default: 100)
  -l, --outline                 Enable side outline cutting (default: true)
  -f,c, --font-sizecomponents              argEnable Fontcomponent size to draw in pxcutting (default: 8)true)
  -q,e, --text-depthscrew-size-top arg      DepthScrew todiameter engravefor texttop side in mm (0 = no
                                screws) (default: 0)
  -w, --screw-size-bottom arg   Screw diameter for bottom side in mm (0 =
                                no screws) (default: 0)
  -i, --screw-head-diameter arg
                                Screw head diameter in mm (default: 1)0)
  -c,a, --openscad-pathscrew-head-height arg   PathScrew tohead OpenSCADheight executablein mm (default: C:\\Progra~1\\OpenSCAD\\openscad.exe)
  -k, --keep-project-files      Do not delete OpenSCAD files at the end0)
  -n, --only-projectscrew-extra-margin Createarg  onlyScrew OpenSCADextra files,margin in mm (default: 0)
  -s, --simulate                Simulate, do not createwrite STL files
  -v, --verbose                 Verbose outputNCs
  -h, --help                    PrintShow this help message and exitquit

Both short and long versions of the arguments can be used.

The arguments --json-file, --output-directory, --cut-depth-pas-pass, --material-thickness, and --box-height-3d are mandatory. The last two arguments can also be given in the JSON file. If both JSON and the command-line has these arguments, the command line values will be used. . 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 --outline=false. Similarly, for activation of options, which are disabled by default, only use the argument. For example, to enable simulation, use either -s or --simulate. 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. You can use online visual box designer, JSON Creator or refer to MIDILLI JSON Definition document if you need help.

--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, in conjunction with the --cut-depth-per-pass argument. 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.

This value is mandatory.
It can be given in the JSON (under Generic, as value "material_thickness") as well as in the command line. Command line will override the value if provided.

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

This value is mandatory.
It can be given in the JSON (under Generic, as value "box_height_3d") as well as in the command line. Command line will override the value if provided.

--bit-shape

The shape of the endmill/bit/cutter. Currently straight and v-shaped cutters are supported. Read this page to learn more about the effect of this parameter.

Default: straight

--bit-diameter

The diameter of the bit or cutter can affect not only the size of drilled holes but also the overall dimensions of the cuts. This may result in slightly larger or smaller dimensions than intended. G-Code already supports compensation for cutter diameter using specific commands. This argument adjusts the coordinates to account for the bit diameter, ensuring accurate cuts and dimensions in case native compensation is not desired. Read this page to learn more about the effect of this parameter.

Default: 0, no compensation

--bit-angle

Angle in degrees which forms the v-shape. Only effective for v-shaped bits. Read this page to learn more about the effect of this parameter.

Default: 0, straight cutter

--bit-cutter-height

The height of the cutter in mm at which it reaches its maximum cut width. After this height (or after reaching this depth), always --bit-diameter value will be used. Only effective for v-shaped bits. Note that this is not the total height of the bit itself.

Read this page to learn more about the effect of this parameter.

Default: 0, straight cutter, starting directly with --bit-diameter width.

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

The value can be given in the JSON (under Generic, as value "outer_sizing") as well as in the command line. Command line will override the value if provided.

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

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

--feedrate-x

The speed at which the tool moves during cutting or engraving on x-axis, measured in units per minute (e.g., millimeters per minute). This value is crucial for controlling the precision and quality of the cut, with higher feedrates generally resulting in faster cuts but potentially lower accuracy or finish quality.

Default: 200

--feedrate-y

The speed at which the tool moves during cutting or engraving on y-axis, measured in units per minute (e.g., millimeters per minute). This value is crucial for controlling the precision and quality of the cut, with higher feedrates generally resulting in faster cuts but potentially lower accuracy or finish quality.

Default: 200

--feedrate-z

The speed at which the tool moves during cutting or engraving on z-axis, measured in units per minute (e.g., millimeters per minute). This value is crucial for controlling the precision and quality of the cut, with higher feedrates generally resulting in faster cuts but potentially lower accuracy or finish quality.

Default: 100

--outline

Enables side outline cuts, which adjust the dimensions of the sides according to the given sizes, based on the --outer-sizing property.

Default: true

--components

Enables the component output to cut circles and/or rectangular shapes through the --material-thickness.

Default: true

--screw-size-top

Screw hole diameter to be drawn as hole in millimeters (mm) on the top side of the box.

Default: 0 mm, no screws.

Brown: Screw diameter (or screw size)

--screw-size-bottom

Screw hole diameter to be drawn as hole in millimeters (mm) on the bottom side of the box.

Default: 0 mm, no screws.

Brown: Screw diameter (or screw size)

--screw-head-diameter

If the screws must be counterbore/recessed, any value given in millimeters (mm) (preferably greater than --screw-size-top or --screw-size-bottom) will create a circular shape to bury the head.

Default: 0 mm, protruding screw head.

Red: Screw head diameter

--screw-head-height

The depth of the screw-head to create counterbore/recessed screws given in millimeters (mm).

Default: 0 mm, protruding screw head.

Gray: Screw head height

The images below show how --screw-head-diameter and --screw-head-height affect the creation of screw head related recesses.

 

image.png

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

Green: Screw extra margin

--simulate

If used, simulates the settings, without writing to actual files.

Default: false, write to actual files.

--help

Shows the quick help with the list of arguments and their short descriptions.