ENH: CLI: support parse downward_settings from default internal path
JIRA: no jira Change-Id: I99e2b40954c125f6b260f2498374ade66f246d2a (cherry picked from commit db98aa9a905d62f034cb3f9960f094804b8801be)
This commit is contained in:
parent
9b19dc9edd
commit
f9bd783f8b
|
@ -1,21 +1,156 @@
|
|||
{
|
||||
"printer": {
|
||||
"Bambu Lab A1": {
|
||||
"cli_safe_acceleration_e": "0,0",
|
||||
"cli_safe_acceleration_extruding": "0,0",
|
||||
"cli_safe_acceleration_retracting": "0,0",
|
||||
"cli_safe_acceleration_travel":"6000,6000",
|
||||
"cli_safe_acceleration_x": "6000,6000",
|
||||
"cli_safe_acceleration_y": "6000,6000",
|
||||
"cli_safe_acceleration_z": "0,0",
|
||||
"cli_safe_jerk_e": "0,0",
|
||||
"cli_safe_jerk_x": "0,0",
|
||||
"cli_safe_jerk_y": "0,0",
|
||||
"cli_safe_jerk_z": "0,0",
|
||||
"cli_safe_speed_e": "0,0",
|
||||
"cli_safe_speed_x": "0,0",
|
||||
"cli_safe_speed_y": "0,0",
|
||||
"cli_safe_speed_z": "0,0"
|
||||
"machine_limits": {
|
||||
"cli_safe_acceleration_e": "0,0",
|
||||
"cli_safe_acceleration_extruding": "0,0",
|
||||
"cli_safe_acceleration_retracting": "0,0",
|
||||
"cli_safe_acceleration_travel": "6000,6000",
|
||||
"cli_safe_acceleration_x": "6000,6000",
|
||||
"cli_safe_acceleration_y": "6000,6000",
|
||||
"cli_safe_acceleration_z": "0,0",
|
||||
"cli_safe_jerk_e": "0,0",
|
||||
"cli_safe_jerk_x": "0,0",
|
||||
"cli_safe_jerk_y": "0,0",
|
||||
"cli_safe_jerk_z": "0,0",
|
||||
"cli_safe_speed_e": "0,0",
|
||||
"cli_safe_speed_x": "0,0",
|
||||
"cli_safe_speed_y": "0,0",
|
||||
"cli_safe_speed_z": "0,0"
|
||||
},
|
||||
"downward_check": {
|
||||
"Bambu Lab A1 0.2 nozzle": [
|
||||
"Bambu Lab P1S 0.2 nozzle",
|
||||
"Bambu Lab P1P 0.2 nozzle",
|
||||
"Bambu Lab X1 Carbon 0.2 nozzle",
|
||||
"Bambu Lab X1E 0.2 nozzle",
|
||||
"Bambu Lab X1 0.2 nozzle",
|
||||
"Bambu Lab A1 mini 0.2 nozzle"
|
||||
],
|
||||
"Bambu Lab A1 0.4 nozzle": [
|
||||
"Bambu Lab P1S 0.4 nozzle",
|
||||
"Bambu Lab P1P 0.4 nozzle",
|
||||
"Bambu Lab X1 Carbon 0.4 nozzle",
|
||||
"Bambu Lab X1E 0.4 nozzle",
|
||||
"Bambu Lab X1 0.4 nozzle",
|
||||
"Bambu Lab A1 mini 0.4 nozzle"
|
||||
],
|
||||
"Bambu Lab A1 0.6 nozzle": [
|
||||
"Bambu Lab P1S 0.6 nozzle",
|
||||
"Bambu Lab P1P 0.6 nozzle",
|
||||
"Bambu Lab X1 Carbon 0.6 nozzle",
|
||||
"Bambu Lab X1E 0.6 nozzle",
|
||||
"Bambu Lab X1 0.6 nozzle",
|
||||
"Bambu Lab A1 mini 0.6 nozzle"
|
||||
],
|
||||
"Bambu Lab A1 0.8 nozzle": [
|
||||
"Bambu Lab P1S 0.8 nozzle",
|
||||
"Bambu Lab P1P 0.8 nozzle",
|
||||
"Bambu Lab X1 Carbon 0.8 nozzle",
|
||||
"Bambu Lab X1E 0.8 nozzle",
|
||||
"Bambu Lab X1 0.8 nozzle",
|
||||
"Bambu Lab A1 mini 0.8 nozzle"
|
||||
]
|
||||
}
|
||||
},
|
||||
"Bambu Lab A1 mini": {
|
||||
"machine_limits": {
|
||||
"cli_safe_acceleration_e": "0,0",
|
||||
"cli_safe_acceleration_extruding": "0,0",
|
||||
"cli_safe_acceleration_retracting": "0,0",
|
||||
"cli_safe_acceleration_travel": "6000,6000",
|
||||
"cli_safe_acceleration_x": "6000,6000",
|
||||
"cli_safe_acceleration_y": "6000,6000",
|
||||
"cli_safe_acceleration_z": "0,0",
|
||||
"cli_safe_jerk_e": "0,0",
|
||||
"cli_safe_jerk_x": "0,0",
|
||||
"cli_safe_jerk_y": "0,0",
|
||||
"cli_safe_jerk_z": "0,0",
|
||||
"cli_safe_speed_e": "0,0",
|
||||
"cli_safe_speed_x": "0,0",
|
||||
"cli_safe_speed_y": "0,0",
|
||||
"cli_safe_speed_z": "0,0"
|
||||
}
|
||||
},
|
||||
"Bambu Lab X1": {
|
||||
"downward_check": {
|
||||
"Bambu Lab X1 0.2 nozzle": [
|
||||
"Bambu Lab A1 mini 0.2 nozzle"
|
||||
],
|
||||
"Bambu Lab X1 0.4 nozzle": [
|
||||
"Bambu Lab A1 mini 0.4 nozzle"
|
||||
],
|
||||
"Bambu Lab X1 0.6 nozzle": [
|
||||
"Bambu Lab A1 mini 0.6 nozzle"
|
||||
],
|
||||
"Bambu Lab X1 0.8 nozzle": [
|
||||
"Bambu Lab A1 mini 0.8 nozzle"
|
||||
]
|
||||
}
|
||||
},
|
||||
"Bambu Lab X1 Carbon": {
|
||||
"downward_check": {
|
||||
"Bambu Lab X1 Carbon 0.2 nozzle": [
|
||||
"Bambu Lab A1 mini 0.2 nozzle"
|
||||
],
|
||||
"Bambu Lab X1 Carbon 0.4 nozzle": [
|
||||
"Bambu Lab A1 mini 0.4 nozzle"
|
||||
],
|
||||
"Bambu Lab X1 Carbon 0.6 nozzle": [
|
||||
"Bambu Lab A1 mini 0.6 nozzle"
|
||||
],
|
||||
"Bambu Lab X1 Carbon 0.8 nozzle": [
|
||||
"Bambu Lab A1 mini 0.8 nozzle"
|
||||
]
|
||||
}
|
||||
},
|
||||
"Bambu Lab X1E": {
|
||||
"downward_check": {
|
||||
"Bambu Lab X1E 0.2 nozzle": [
|
||||
"Bambu Lab A1 mini 0.2 nozzle"
|
||||
],
|
||||
"Bambu Lab X1E 0.4 nozzle": [
|
||||
"Bambu Lab A1 mini 0.4 nozzle"
|
||||
],
|
||||
"Bambu Lab X1E 0.6 nozzle": [
|
||||
"Bambu Lab A1 mini 0.6 nozzle"
|
||||
],
|
||||
"Bambu Lab X1E 0.8 nozzle": [
|
||||
"Bambu Lab A1 mini 0.8 nozzle"
|
||||
]
|
||||
}
|
||||
},
|
||||
"Bambu Lab P1P": {
|
||||
"downward_check": {
|
||||
"Bambu Lab P1P 0.2 nozzle": [
|
||||
"Bambu Lab A1 mini 0.2 nozzle"
|
||||
],
|
||||
"Bambu Lab P1P 0.4 nozzle": [
|
||||
"Bambu Lab A1 mini 0.4 nozzle"
|
||||
],
|
||||
"Bambu Lab P1P 0.6 nozzle": [
|
||||
"Bambu Lab A1 mini 0.6 nozzle"
|
||||
],
|
||||
"Bambu Lab P1P 0.8 nozzle": [
|
||||
"Bambu Lab A1 mini 0.8 nozzle"
|
||||
]
|
||||
}
|
||||
},
|
||||
"Bambu Lab P1S": {
|
||||
"downward_check": {
|
||||
"Bambu Lab P1S 0.2 nozzle": [
|
||||
"Bambu Lab A1 mini 0.2 nozzle"
|
||||
],
|
||||
"Bambu Lab P1S 0.4 nozzle": [
|
||||
"Bambu Lab A1 mini 0.4 nozzle"
|
||||
],
|
||||
"Bambu Lab P1S 0.6 nozzle": [
|
||||
"Bambu Lab A1 mini 0.6 nozzle"
|
||||
],
|
||||
"Bambu Lab P1S 0.8 nozzle": [
|
||||
"Bambu Lab A1 mini 0.8 nozzle"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -917,6 +917,56 @@ static int construct_assemble_list(std::vector<assemble_plate_info_t> &assemble_
|
|||
return ret;
|
||||
}
|
||||
|
||||
static void load_downward_settings_list_from_config(std::string config_file, std::string printer_name, std::string printer_model, std::vector<std::string>& downward_settings)
|
||||
{
|
||||
std::map<std::string, std::string> printer_params;
|
||||
|
||||
boost::filesystem::path directory_path(config_file);
|
||||
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("%1%, will parse file %2% for printer mode %3%, printer name %4%")%__FUNCTION__ % config_file %printer_model %printer_name;
|
||||
if (!fs::exists(directory_path)) {
|
||||
BOOST_LOG_TRIVIAL(warning) << boost::format("file %1% not exist.")%config_file;
|
||||
}
|
||||
else {
|
||||
try {
|
||||
json root_json;
|
||||
boost::nowide::ifstream ifs(config_file);
|
||||
ifs >> root_json;
|
||||
ifs.close();
|
||||
|
||||
if (root_json.contains("printer")) {
|
||||
json printer_json = root_json["printer"];
|
||||
if (!printer_model.empty() && printer_json.contains(printer_model)) {
|
||||
json printer_model_json = printer_json[printer_model];
|
||||
|
||||
if (printer_model_json.contains("downward_check")) {
|
||||
json downward_check_json = printer_model_json["downward_check"];
|
||||
if (downward_check_json.contains(printer_name)) {
|
||||
downward_settings = downward_check_json[printer_name].get<std::vector<std::string>>();
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("got %1% downward settings of %2% in cli_config.json")%downward_settings.size() %printer_name;
|
||||
}
|
||||
else {
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("can not find %1% in downward_check of %2% in cli_config.json")%printer_name %printer_model;
|
||||
}
|
||||
}
|
||||
else {
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("can not find downward_check for %1% in cli_config.json")%printer_model;
|
||||
}
|
||||
}
|
||||
else {
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("can not find printer_model %1% in the file")%printer_model;
|
||||
}
|
||||
}
|
||||
else {
|
||||
BOOST_LOG_TRIVIAL(warning) << boost::format("can not find key printer in the file");
|
||||
}
|
||||
}
|
||||
catch (std::exception &err) {
|
||||
BOOST_LOG_TRIVIAL(error) << __FUNCTION__<< ": parse file "<<config_file<<" got a generic exception, reason = " << err.what();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int CLI::run(int argc, char **argv)
|
||||
{
|
||||
// Mark the main thread for the debugger and for runtime checks.
|
||||
|
@ -994,7 +1044,7 @@ int CLI::run(int argc, char **argv)
|
|||
boost::algorithm::iends_with(boost::filesystem::path(argv[0]).filename().string(), "gcodeviewer");
|
||||
#endif // _WIN32*/
|
||||
|
||||
bool translate_old = false, regenerate_thumbnails = false, filament_color_changed = false;
|
||||
bool translate_old = false, regenerate_thumbnails = false, filament_color_changed = false, downward_check = false;
|
||||
int current_printable_width, current_printable_depth, current_printable_height, shrink_to_new_bed = 0;
|
||||
int old_printable_height = 0, old_printable_width = 0, old_printable_depth = 0;
|
||||
Pointfs old_printable_area, old_exclude_area;
|
||||
|
@ -1004,7 +1054,7 @@ int CLI::run(int argc, char **argv)
|
|||
const std::vector<std::string> &load_configs = m_config.option<ConfigOptionStrings>("load_settings", true)->values;
|
||||
const std::vector<std::string> &uptodate_configs = m_config.option<ConfigOptionStrings>("uptodate_settings", true)->values;
|
||||
const std::vector<std::string> &uptodate_filaments = m_config.option<ConfigOptionStrings>("uptodate_filaments", true)->values;
|
||||
const std::vector<std::string> &downward_check = m_config.option<ConfigOptionStrings>("downward_check", true)->values;
|
||||
std::vector<std::string> downward_settings = m_config.option<ConfigOptionStrings>("downward_settings", true)->values;
|
||||
std::vector<std::string> downward_compatible_machines;
|
||||
//BBS: always use ForwardCompatibilitySubstitutionRule::Enable
|
||||
//const ForwardCompatibilitySubstitutionRule config_substitution_rule = m_config.option<ConfigOptionEnum<ForwardCompatibilitySubstitutionRule>>("config_compatibility", true)->value;
|
||||
|
@ -1018,7 +1068,11 @@ int CLI::run(int argc, char **argv)
|
|||
sliced_info_t sliced_info;
|
||||
std::map<std::string, std::string> record_key_values;
|
||||
|
||||
bool start_gui = m_actions.empty() && downward_check.empty();
|
||||
ConfigOptionBool* downward_check_option = m_config.option<ConfigOptionBool>("downward_check");
|
||||
if (downward_check_option)
|
||||
downward_check = downward_check_option->value;
|
||||
|
||||
bool start_gui = m_actions.empty() && !downward_check;
|
||||
if (start_gui) {
|
||||
BOOST_LOG_TRIVIAL(info) << "no action, start gui directly" << std::endl;
|
||||
::Label::initSysFont();
|
||||
|
@ -1095,7 +1149,7 @@ int CLI::run(int argc, char **argv)
|
|||
Semver file_version;
|
||||
std::map<size_t, bool> orients_requirement;
|
||||
std::vector<Preset*> project_presets;
|
||||
std::string new_printer_name, current_printer_name, new_process_name, current_process_name, current_printer_system_name, current_process_system_name, new_process_system_name, new_printer_system_name, printer_model_id, printer_model;//, printer_inherits, print_inherits;
|
||||
std::string new_printer_name, current_printer_name, new_process_name, current_process_name, current_printer_system_name, current_process_system_name, new_process_system_name, new_printer_system_name, printer_model_id, current_printer_model, printer_model;//, printer_inherits, print_inherits;
|
||||
std::vector<std::string> upward_compatible_printers, new_print_compatible_printers, current_print_compatible_printers, current_different_settings;
|
||||
std::vector<std::string> current_filaments_name, current_filaments_system_name, current_inherits_group;
|
||||
DynamicPrintConfig load_process_config, load_machine_config;
|
||||
|
@ -1330,6 +1384,7 @@ int CLI::run(int argc, char **argv)
|
|||
}*/
|
||||
current_printer_name = config.option<ConfigOptionString>("printer_settings_id")->value;
|
||||
current_process_name = config.option<ConfigOptionString>("print_settings_id")->value;
|
||||
current_printer_model = config.option<ConfigOptionString>("printer_model", true)->value;
|
||||
current_filaments_name = config.option<ConfigOptionStrings>("filament_settings_id")->values;
|
||||
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("current_printer_name %1%, current_process_name %2%")%current_printer_name %current_process_name;
|
||||
|
@ -2365,33 +2420,40 @@ int CLI::run(int argc, char **argv)
|
|||
if (root_json.contains("printer")) {
|
||||
json printer_json = root_json["printer"];
|
||||
if (!printer_model.empty() && printer_json.contains(printer_model)) {
|
||||
json new_printer_json = printer_json[printer_model];
|
||||
printer_params = new_printer_json.get<std::map<std::string, std::string>>();
|
||||
json printer_model_json = printer_json[printer_model];
|
||||
|
||||
for (auto param_iter = printer_params.begin(); param_iter != printer_params.end(); param_iter++)
|
||||
{
|
||||
std::string key = param_iter->first;
|
||||
//replace "cli_safe" with "machine_max"
|
||||
key.replace(0, 8, "machine_max");
|
||||
if (printer_model_json.contains("machine_limits")) {
|
||||
json machine_limits_json = printer_model_json["machine_limits"];
|
||||
printer_params = machine_limits_json.get<std::map<std::string, std::string>>();
|
||||
|
||||
ConfigOptionFloats* option = m_print_config.option<ConfigOptionFloats>(key);
|
||||
if (option) {
|
||||
//de-serialize the values from param_iter->second, and do the compare here
|
||||
unsigned int array_count = option->size();
|
||||
ConfigOptionFloats new_option;
|
||||
new_option.deserialize(param_iter->second);
|
||||
unsigned int new_array_count = new_option.size();
|
||||
for (unsigned int index = 0; index < array_count; index++)
|
||||
{
|
||||
if ((index < new_array_count) && new_option.values[index] != 0.f && (new_option.values[index] < option->values[index]))
|
||||
for (auto param_iter = printer_params.begin(); param_iter != printer_params.end(); param_iter++)
|
||||
{
|
||||
std::string key = param_iter->first;
|
||||
//replace "cli_safe" with "machine_max"
|
||||
key.replace(0, 8, "machine_max");
|
||||
|
||||
ConfigOptionFloats* option = m_print_config.option<ConfigOptionFloats>(key);
|
||||
if (option) {
|
||||
//de-serialize the values from param_iter->second, and do the compare here
|
||||
unsigned int array_count = option->size();
|
||||
ConfigOptionFloats new_option;
|
||||
new_option.deserialize(param_iter->second);
|
||||
unsigned int new_array_count = new_option.size();
|
||||
for (unsigned int index = 0; index < array_count; index++)
|
||||
{
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("set key %1% index %2%, from %3% to %4%") % key %index %option->values[index] % new_option.values[index];
|
||||
option->values[index] = new_option.values[index];
|
||||
if ((index < new_array_count) && new_option.values[index] != 0.f && (new_option.values[index] < option->values[index]))
|
||||
{
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("set key %1% index %2%, from %3% to %4%") % key %index %option->values[index] % new_option.values[index];
|
||||
option->values[index] = new_option.values[index];
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
BOOST_LOG_TRIVIAL(warning) << boost::format("can not find key %1% in config") %key;
|
||||
}
|
||||
else
|
||||
BOOST_LOG_TRIVIAL(warning) << boost::format("can not find key %1% in config") %key;
|
||||
}
|
||||
else {
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("can not find machine_limits for printer %1% in cli_config.json")%printer_model;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -3160,44 +3222,56 @@ int CLI::run(int argc, char **argv)
|
|||
//doing downward_check
|
||||
std::vector<printer_plate_info_t> downward_check_printers;
|
||||
std::vector<bool> downward_check_status;
|
||||
for (auto const &file : downward_check) {
|
||||
DynamicPrintConfig config;
|
||||
std::string config_type, config_name, filament_id, config_from, downward_printer;
|
||||
int ret = load_config_file(file, config, config_type, config_name, filament_id, config_from);
|
||||
if (ret) {
|
||||
record_exit_reson(outfile_dir, ret, 0, cli_errors[ret], sliced_info);
|
||||
flush_and_exit(ret);
|
||||
if (downward_check) {
|
||||
bool use_default = false;
|
||||
std::string default_path;
|
||||
if (downward_settings.size() == 0) {
|
||||
//parse from internal
|
||||
std::string cli_config_file = resources_dir() + "/profiles/BBL/cli_config.json";
|
||||
load_downward_settings_list_from_config(cli_config_file, current_printer_name, current_printer_model, downward_settings);
|
||||
use_default = true;
|
||||
default_path = resources_dir() + "/profiles/BBL/machine_full/";
|
||||
}
|
||||
if ((config_type != "machine") || (config_from != "system")) {
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("found invalid config type %1% or from %2% in file %3% when downward_check")%config_type %config_from %file;
|
||||
record_exit_reson(outfile_dir, ret, 0, cli_errors[CLI_CONFIG_FILE_ERROR], sliced_info);
|
||||
flush_and_exit(ret);
|
||||
for (auto const &file : downward_settings) {
|
||||
DynamicPrintConfig config;
|
||||
std::string config_type, config_name, filament_id, config_from, downward_printer;
|
||||
std::string file_path = use_default?(default_path+file+".json"):file;
|
||||
int ret = load_config_file(file_path, config, config_type, config_name, filament_id, config_from);
|
||||
if (ret) {
|
||||
record_exit_reson(outfile_dir, ret, 0, cli_errors[ret], sliced_info);
|
||||
flush_and_exit(ret);
|
||||
}
|
||||
if ((config_type != "machine") || (config_from != "system")) {
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("found invalid config type %1% or from %2% in file %3% when downward_check")%config_type %config_from %file_path;
|
||||
record_exit_reson(outfile_dir, ret, 0, cli_errors[CLI_CONFIG_FILE_ERROR], sliced_info);
|
||||
flush_and_exit(ret);
|
||||
|
||||
}
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("downward_check: loaded machine config %1%, from %2%")%config_name %file_path ;
|
||||
|
||||
printer_plate_info_t printer_plate;
|
||||
Pointfs temp_printable_area, temp_exclude_area;
|
||||
|
||||
printer_plate.printer_name = config_name;
|
||||
|
||||
temp_printable_area = config.option<ConfigOptionPoints>("printable_area", true)->values;
|
||||
temp_exclude_area = config.option<ConfigOptionPoints>("bed_exclude_area", true)->values;
|
||||
if (temp_printable_area.size() >= 4) {
|
||||
printer_plate.printable_width = (int)(temp_printable_area[2].x() - temp_printable_area[0].x());
|
||||
printer_plate.printable_depth = (int)(temp_printable_area[2].y() - temp_printable_area[0].y());
|
||||
printer_plate.printable_height = (int)(config.opt_float("printable_height"));
|
||||
}
|
||||
if (temp_exclude_area.size() >= 4) {
|
||||
printer_plate.exclude_width = (int)(temp_exclude_area[2].x() - temp_exclude_area[0].x());
|
||||
printer_plate.exclude_depth = (int)(temp_exclude_area[2].y() - temp_exclude_area[0].y());
|
||||
printer_plate.exclude_x = (int)temp_exclude_area[0].x();
|
||||
printer_plate.exclude_y = (int)temp_exclude_area[0].y();
|
||||
}
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("downward_check: printable size{%1%,%2%, %3%}, exclude area{%4%, %5%: %6% x %7%}")
|
||||
%printer_plate.printable_width %printer_plate.printable_depth %printer_plate.printable_height
|
||||
%printer_plate.exclude_x %printer_plate.exclude_y %printer_plate.exclude_width %printer_plate.exclude_depth;
|
||||
downward_check_printers.push_back(std::move(printer_plate));
|
||||
}
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("downward_check: loaded machine config %1%, from %2%")%config_name %file ;
|
||||
|
||||
printer_plate_info_t printer_plate;
|
||||
Pointfs temp_printable_area, temp_exclude_area;
|
||||
|
||||
printer_plate.printer_name = config_name;
|
||||
|
||||
temp_printable_area = config.option<ConfigOptionPoints>("printable_area", true)->values;
|
||||
temp_exclude_area = config.option<ConfigOptionPoints>("bed_exclude_area", true)->values;
|
||||
if (temp_printable_area.size() >= 4) {
|
||||
printer_plate.printable_width = (int)(temp_printable_area[2].x() - temp_printable_area[0].x());
|
||||
printer_plate.printable_depth = (int)(temp_printable_area[2].y() - temp_printable_area[0].y());
|
||||
printer_plate.printable_height = (int)(config.opt_float("printable_height"));
|
||||
}
|
||||
if (temp_exclude_area.size() >= 4) {
|
||||
printer_plate.exclude_width = (int)(temp_exclude_area[2].x() - temp_exclude_area[0].x());
|
||||
printer_plate.exclude_depth = (int)(temp_exclude_area[2].y() - temp_exclude_area[0].y());
|
||||
printer_plate.exclude_x = (int)temp_exclude_area[0].x();
|
||||
printer_plate.exclude_y = (int)temp_exclude_area[0].y();
|
||||
}
|
||||
BOOST_LOG_TRIVIAL(info) << boost::format("downward_check: printable size{%1%,%2%, %3%}, exclude area{%4%, %5%: %6% x %7%}")
|
||||
%printer_plate.printable_width %printer_plate.printable_depth %printer_plate.printable_height
|
||||
%printer_plate.exclude_x %printer_plate.exclude_y %printer_plate.exclude_width %printer_plate.exclude_depth;
|
||||
downward_check_printers.push_back(std::move(printer_plate));
|
||||
}
|
||||
|
||||
int downward_check_size = downward_check_printers.size();
|
||||
|
|
|
@ -5693,9 +5693,14 @@ CLIMiscConfigDef::CLIMiscConfigDef()
|
|||
def->cli_params = "\"filament1.json;filament2.json;...\"";
|
||||
def->set_default_value(new ConfigOptionStrings());
|
||||
|
||||
def = this->add("downward_check", coStrings);
|
||||
def = this->add("downward_check", coBool);
|
||||
def->label = "downward machines check";
|
||||
def->tooltip = "check whether current machine downward compatible with the machines in the list";
|
||||
def->tooltip = "if enabled, check whether current machine downward compatible with the machines in the list";
|
||||
def->set_default_value(new ConfigOptionBool(false));
|
||||
|
||||
def = this->add("downward_settings", coStrings);
|
||||
def->label = "downward machines settings";
|
||||
def->tooltip = "the machine settings list need to do downward checking";
|
||||
def->cli_params = "\"machine1.json;machine2.json;...\"";
|
||||
def->set_default_value(new ConfigOptionStrings());
|
||||
|
||||
|
|
Loading…
Reference in New Issue