diff options
author | bubnikv <bubnikv@gmail.com> | 2018-02-15 19:02:47 +0300 |
---|---|---|
committer | bubnikv <bubnikv@gmail.com> | 2018-02-15 19:02:47 +0300 |
commit | b695089bc4d517559d9e78556e9481d3ff61d6d7 (patch) | |
tree | 1441f8f7e0866d0f613ec91d77e7b5bd27c22801 /xs/src/libslic3r/GCode.cpp | |
parent | 1fa3ffbf839c61e216ce5026a413b8b5ecf5e106 (diff) | |
parent | dcc667cdc7e051c71952565739527c34c07ee06a (diff) |
Merge remote-tracking branch 'remotes/origin/3mf_io'
Diffstat (limited to 'xs/src/libslic3r/GCode.cpp')
-rw-r--r-- | xs/src/libslic3r/GCode.cpp | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/xs/src/libslic3r/GCode.cpp b/xs/src/libslic3r/GCode.cpp index 538f9fefa..080b4769d 100644 --- a/xs/src/libslic3r/GCode.cpp +++ b/xs/src/libslic3r/GCode.cpp @@ -816,13 +816,10 @@ void GCode::_do_export(Print &print, FILE *file, GCodePreviewData *preview_data) // Append full config. _write(file, "\n"); { - StaticPrintConfig *configs[] = { &print.config, &print.default_object_config, &print.default_region_config }; - for (size_t i = 0; i < sizeof(configs) / sizeof(configs[0]); ++ i) { - StaticPrintConfig *cfg = configs[i]; - for (const std::string &key : cfg->keys()) - if (key != "compatible_printers") - _write_format(file, "; %s = %s\n", key.c_str(), cfg->serialize(key).c_str()); - } + std::string full_config = ""; + append_full_config(print, full_config); + if (!full_config.empty()) + _write(file, full_config); } // starts analizer calculations @@ -1385,6 +1382,24 @@ void GCode::apply_print_config(const PrintConfig &print_config) m_config.apply(print_config); } +void GCode::append_full_config(const Print& print, std::string& str) +{ + char buff[1024]; + + const StaticPrintConfig *configs[] = { &print.config, &print.default_object_config, &print.default_region_config }; + for (size_t i = 0; i < sizeof(configs) / sizeof(configs[0]); ++i) { + const StaticPrintConfig *cfg = configs[i]; + for (const std::string &key : cfg->keys()) + { + if (key != "compatible_printers") + { + sprintf(buff, "; %s = %s\n", key.c_str(), cfg->serialize(key).c_str()); + str += buff; + } + } + } +} + void GCode::set_extruders(const std::vector<unsigned int> &extruder_ids) { m_writer.set_extruders(extruder_ids); |