mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-10-18 21:20:57 +00:00
fix: print statistics placeholders fail in custom G-code (#16348)
The G-code editor lists the Print Statistics placeholders for every custom G-code field, but total_weight, used_filament, total_cost, print_time, normal_print_time, silent_print_time, total_wipe_tower_cost and total_wipe_tower_filament were only defined for filename_format. Using one in custom G-code, including the File header G-code, stopped slicing with "Not a variable name". They are known only once the whole G-code is generated, so they use the reserved-tag mechanism of print_time_sec and used_filament_length: the placeholder parser gets a tag such as @TOTAL_WEIGHT@ and GCodeProcessor::run_post_process() replaces it with the same value filename_format gets, with numbers written to two decimals. The per-tag replacement loops are folded into one helper. The running extruded_* totals are unchanged. Fixes #15320 Fixes #7870
This commit is contained in:
1 parent
6d40ec93f6
commit
c6804fbb68
4 files changed
+122
-71
No files matched your search
@@ -601,6 +601,12 @@ inline constexpr float DEFAULT_FILAMENT_DENSITY = 1.245f;
|
||||
Print_Time_Minute_Placeholder,
|
||||
Print_Time_Sec_Placeholder,
|
||||
Used_Filament_Length_Placeholder,
|
||||
Normal_Print_Time_Placeholder,
|
||||
Silent_Print_Time_Placeholder,
|
||||
Total_Weight_Placeholder,
|
||||
Total_Cost_Placeholder,
|
||||
Total_Wipe_Tower_Cost_Placeholder,
|
||||
Total_Wipe_Tower_Filament_Placeholder,
|
||||
};
|
||||
|
||||
static const std::string& reserved_tag(ETags tag) { return s_IsBBLPrinter ? Reserved_Tags[static_cast<unsigned char>(tag)] : Reserved_Tags_compatible[static_cast<unsigned char>(tag)]; }
|
||||
|
||||
Reference in new issue
Block a user