Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/supermerill/SuperSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbubnikv <bubnikv@gmail.com>2018-02-15 19:02:47 +0300
committerbubnikv <bubnikv@gmail.com>2018-02-15 19:02:47 +0300
commitb695089bc4d517559d9e78556e9481d3ff61d6d7 (patch)
tree1441f8f7e0866d0f613ec91d77e7b5bd27c22801 /xs/src/libslic3r/GCode.cpp
parent1fa3ffbf839c61e216ce5026a413b8b5ecf5e106 (diff)
parentdcc667cdc7e051c71952565739527c34c07ee06a (diff)
Merge remote-tracking branch 'remotes/origin/3mf_io'
Diffstat (limited to 'xs/src/libslic3r/GCode.cpp')
-rw-r--r--xs/src/libslic3r/GCode.cpp29
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);