mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-23 00:42:33 +00:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9a35221b7a |
+13
-2
@@ -28,6 +28,7 @@
|
||||
#include <csignal>
|
||||
#include <atomic>
|
||||
#include <new>
|
||||
#include <optional>
|
||||
|
||||
#if defined(__linux__) || defined(__LINUX__)
|
||||
#include <condition_variable>
|
||||
@@ -1614,6 +1615,10 @@ int CLI::run(int argc, char **argv)
|
||||
ConfigOptionBool* allow_rotations_option = m_config.option<ConfigOptionBool>("allow_rotations");
|
||||
if (allow_rotations_option)
|
||||
allow_rotations = allow_rotations_option->value;
|
||||
// Only an explicit --align-to-y-axis overrides the printer-structure default.
|
||||
std::optional<bool> align_to_y_axis;
|
||||
if (m_given_option_keys.count("align_to_y_axis") > 0)
|
||||
align_to_y_axis = m_config.opt_bool("align_to_y_axis");
|
||||
|
||||
ConfigOptionBool* skip_modified_gcodes_option = m_config.option<ConfigOptionBool>("skip_modified_gcodes");
|
||||
if (skip_modified_gcodes_option)
|
||||
@@ -5298,7 +5303,9 @@ int CLI::run(int argc, char **argv)
|
||||
arrange_cfg.bed_shrink_x = BED_SHRINK_SEQ_PRINT;
|
||||
arrange_cfg.bed_shrink_y = BED_SHRINK_SEQ_PRINT;
|
||||
}
|
||||
if (auto printer_structure_opt = m_print_config.option<ConfigOptionEnum<PrinterStructure>>("printer_structure")) {
|
||||
if (align_to_y_axis.has_value()) {
|
||||
arrange_cfg.align_to_y_axis = *align_to_y_axis;
|
||||
} else if (auto printer_structure_opt = m_print_config.option<ConfigOptionEnum<PrinterStructure>>("printer_structure")) {
|
||||
arrange_cfg.align_to_y_axis = (printer_structure_opt->value == PrinterStructure::psI3);
|
||||
}
|
||||
|
||||
@@ -5748,7 +5755,9 @@ int CLI::run(int argc, char **argv)
|
||||
arrange_cfg.bed_shrink_x = BED_SHRINK_SEQ_PRINT;
|
||||
arrange_cfg.bed_shrink_y = BED_SHRINK_SEQ_PRINT;
|
||||
}
|
||||
if (auto printer_structure_opt = m_print_config.option<ConfigOptionEnum<PrinterStructure>>("printer_structure")) {
|
||||
if (align_to_y_axis.has_value()) {
|
||||
arrange_cfg.align_to_y_axis = *align_to_y_axis;
|
||||
} else if (auto printer_structure_opt = m_print_config.option<ConfigOptionEnum<PrinterStructure>>("printer_structure")) {
|
||||
arrange_cfg.align_to_y_axis = (printer_structure_opt->value == PrinterStructure::psI3);
|
||||
}
|
||||
|
||||
@@ -7943,6 +7952,8 @@ bool CLI::setup(int argc, char **argv)
|
||||
for (std::string &input_file : m_input_files)
|
||||
input_file = resolve_cli_input_path(input_file);
|
||||
|
||||
m_given_option_keys.insert(opt_order.begin(), opt_order.end());
|
||||
|
||||
// Parse actions and transform options.
|
||||
for (auto const &opt_key : opt_order) {
|
||||
if (cli_actions_config_def.has(opt_key))
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef SLIC3R_HPP
|
||||
#define SLIC3R_HPP
|
||||
|
||||
#include <set>
|
||||
|
||||
#include "libslic3r/Config.hpp"
|
||||
#include "libslic3r/Model.hpp"
|
||||
|
||||
@@ -113,6 +115,8 @@ private:
|
||||
std::vector<std::string> m_input_files;
|
||||
std::vector<std::string> m_actions;
|
||||
std::vector<std::string> m_transforms;
|
||||
// Options the user typed; setup() fills the CLI's own options with defaults afterwards.
|
||||
std::set<std::string> m_given_option_keys;
|
||||
std::vector<Model> m_models;
|
||||
|
||||
bool setup(int argc, char **argv);
|
||||
|
||||
@@ -12347,6 +12347,12 @@ CLIMiscConfigDef::CLIMiscConfigDef()
|
||||
def->tooltip = L("If enabled, Arrange will allow rotation when placing objects.");
|
||||
def->set_default_value(new ConfigOptionBool(true));
|
||||
|
||||
def = this->add("align_to_y_axis", coBool);
|
||||
def->label = L("Align to Y axis when arranging");
|
||||
def->tooltip = L("If enabled, Arrange will turn each object so its long side runs along the Y axis before placing it. "
|
||||
"When not given, it is on for i3 printers and off for the others, as in the GUI.");
|
||||
def->set_default_value(new ConfigOptionBool(false));
|
||||
|
||||
def = this->add("avoid_extrusion_cali_region", coBool);
|
||||
def->label = L("Avoid extrusion calibrate region when arranging");
|
||||
def->tooltip = L("If enabled, Arrange will avoid extrusion calibrate region when placing objects.");
|
||||
|
||||
Reference in New Issue
Block a user