README.md 3.1 KB

EzCAD Patcher

This tool parses and patches EZCAD files with values specified in a YAML config file.

Usage

Usage: ezcad_patcher.exe [OPTIONS] --input <INPUT>

Options:
  -i, --input <INPUT>    Input file to parse
  -d, --diff <DIFF>      File to diff input against
  -o, --output <OUTPUT>  Output file to write to
  -c, --config <CONFIG>  Configuration file
  -v, --verbose...       Increase logging verbosity
  -q, --quiet...         Decrease logging verbosity
  -h, --help             Print help

Configuration File

Operations defined in the configuration file are applied in order of definition.

Patching Pen

Setting values of specific fields for a given pen:

Ops: 
  - !PatchPen
    Pen: 0                  # Required - target pen
    Color: [127, 127, 127]  # Optional - target pen RGB color
    Enabled: true           # Optional - target pen enable flag
    LoopCount: 3            # Optional - target pen loop count
    Speed: 1.234            # Optional - target pen speed
    Power: 10.5             # Optional - target pen power 
    Frequency: 10000        # Optional - target pen frequency

Cloning one pen to another (and optionally override settings):

Ops: 
  - !ClonePen
    From: 0                 # Required - source pen
    To: 1                   # Required - target pen
    # Color: [64, 64, 64]   # Optional - target pen RGB color
    # Enabled: true         # Optional - target pen enable flag
    # LoopCount: 3          # Optional - target pen loop count
    # Speed: 1.234          # Optional - target pen speed
    # Power: 10.5           # Optional - target pen power 
    # Frequency: 10000      # Optional - target pen frequency

Incrementing a specific field by some value across a sequence of pens:

Ops: 
  - !PatternPen
    From: 1                 # Required - starting pen to copy settings from
    To: 5                   # Required - ending pen to stop at (inclusive)
    # Field: !Loops 1         # Choose one
    # Field: !Speed 100.0     # Choose one
    # Field: !Power 10.0      # Choose one
    # Field: !Frequency 1000  # Choose one

Importing and Exporting Pens and Objects

Exporting a pen to a file:

Ops:
  - !ExportPen
    Index: 0
    Path: "exported_pen.bin"

Importing a pen from a file:

Ops:
  - !ImportPen
    Index: 0
    Path: "exported_pen.bin"

Exporting an object to a file:

Ops:
  - !ExportObject
    Layer: 0
    Object: 0
    Path: "exported_object.bin"

Importing and append an object from a file:

Ops:
  - !ImportObject
    Layer: 0
    Path: "exported_object.bin"

Importing and replace an existing object from a file:

Ops:
  - !ImportObject
    Layer: 0
    Object: 3
    Path: "exported_object.bin"

Deleting and Generating Objects

Deleting all objects from a layer:

Ops:
  - !DeleteObjects
    Layer: 0

Deleting a specific object from a layer:

Ops:
  - !DeleteObjects
    Layer: 0
    Object: 3