Files
bambuddy/backend
maziggy 60f8529a3c Recover the preview slice from custom G-code the sidecar cannot parse
Opening the slice dialog on an unsliced project runs a preview slice purely
    to ask the slicer which AMS slots the chosen plate consumes. Bambu Studio 2.8
    writes {if timelapse_inline_photo} into the machine's time_lapse_gcode but
    exports no definition for that variable, so the template is unresolvable the
    moment it leaves Studio: an older sidecar stops with a placeholder parse error
    before producing any slice_info. The preview returned nothing and the caller
    fell back to guessing from painted faces, silently. On the H2D project this
    was found with, the guess dropped the support material -- a whole slot off a
    four-filament plate.

    Retry the preview once with just the named template emptied, still on the
    file's own settings. Keeping the embedded settings is what keeps the answer
    honest: overriding the process preset instead discards the project's support
    configuration, which loses that slot and moves used_g by up to 2x. Measured
    against the same file: retry reproduces all four slots gram for gram, a
    printer+process override returns three.

    Only templates that cannot extrude are eligible -- a start or filament-change
    template lays a prime line or purges, so emptying one would move the very
    grams the preview reports, and returning nothing beats a confident wrong
    number. Verified on a working H2D slice that emptying time_lapse_gcode leaves
    every used_g/used_m in slice_info identical.

    Match on a normalised option name: the slicer reports timelapse_gcode while
    the 3MF stores time_lapse_gcode, so a literal comparison finds nothing.

    Decide whether a retry applies before logging, so a slice that recovers does
    not announce itself at WARNING twenty seconds before it succeeds.
2026-08-15 14:52:07 +02:00
..