Martin Hardwick
2023-11-30

Powder Bed Fusion CLI Generation

Announcing a Powder Bed Fusion CLI Generation tool. The tool is being developed as part of a project to extend STEP-NC for powder bed fusion machines. In this initial configuration you can generate scan paths for STEP solids using the parameters described below. Please note the simple option if you just want to sample the output. The process control attributes can be set as text strings. In the next phase we will be updating the tool to set the process parameters to values appropriate to the dimensions and tolerances of the part as defined in the STEP model.

Update: 2024-7-01 Generate paths in a serpentine fashion.
Fix several bugs in dealing with the slice topology.

Update: 2024-6-07 Fixed a bug that was causing a crash when displaying the help message.

Update: 2024-5-30 Updated to support offsets for contours and a striping fill strategy.

usage: slice_cli  [eid] [options]
  create a CLI file for a given STEP file

The first solid found in the STEP file is sliced and saved as a CLI file.
(You can specify the EID for a different shape_representation instance, to
override this behavior.)

The output is written, by default, to a file with the same name as the input
STEP file, but the extension is changed to .cli .  You can use the -o option
to write to a different file.

Options:
   -o  - save CLI output to given file

   -unit  - set the input units for parameters (default is mm)
   -layer - set the layer thickness.  (default .05mm)
   -width - set the rectangle or stripe width of the hatch fill
               (default 30mm)
   -length - set the rectangle height of the hatch fill (default 20mm)
   -hatch - set the spacing between hatches. (default .12m)
   -theta - set the hatch rotation between rectangles. (default 0 deg)
   -rot - set the rotation between layers (default 45 deg)
   -init-rot  - set the initial rotation (default 0 deg)

   -stripe-overlap  - set the stripe overlap (default .12)

   -stripe -write fill area as stripes (default)
   -rect, -chess- write fill area as a chessboard

   -quick - generate a model with only 10 layers
   -simple - use 10x larger parameters for layer and hatch to create
      simpler geometry.

   -use-part-unit - use the units in the STEP part in the CLI output.
      (default)
   -no-part-unit - use mm for the output units.

   -scale  - multiply all coords values by the given value
        and adjust units accordingly.  This has no effect on the geometry
        since the units are also adjusted.  This can be used to force the units
        to be much smaller, so that the -int flag can be used without loss
        of precision.  (Default is 1.e6)

   -int - force all coordinates to be written as integers. (default)
   -noint - force all coordinates to be written as floating point (decimal)
        values and sets the scale to 1.

   -polyline - write contours as $$POLYLINE.
   -nopolyline - write contours as $HATCHES

   Offsets:   -offset1  - set the offset for contour 1 (default .08mm)
   -offset2  - set the offset for contour 2 (default .16mm)
   -offset-hatch   - set the offset for hatching (default .14mm)

   Set the speed, and power paramers for contours and fill
   -speed-hatch  (default=1000)
   -speed-contour1  (default=300)
   -speed-contour2  (default=300
   -power-hatch  (default=250)
   -power-contour1  (default=90)
   -power-contour2  (default=80)

   -gp - write a plot file for each layer, suitable for input to Gnuplot.
        a text file called layer-#####.txt is created for each
        slice.  It consists of a sequence of 2D points that can be
        plotted as polylines.  Blank lines indicate breaks between polys.
   -nogp - do not create a plot file for each layer. (default)

Layers in a test part

The Layers in a Test Part

Full Layer Plot

Full Layer Plot

Zoomed Detail from Layer

Zoomed Detail from Layer