mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-30 14:22:07 +00:00
Merge branch 'main' into bugfox/bed-shape-orientation
This commit is contained in:
@@ -648,13 +648,9 @@ void Bed3D::update_bed_triangles()
|
||||
(*model_offset_ptr)(1) = m_build_volume.bounding_volume2d().min.y() - bed_ext.min.y();
|
||||
(*model_offset_ptr)(2) = -0.41 + GROUND_Z;
|
||||
|
||||
// ORCA fix for non-rectangular bed (without 3D model) beds rendered with shifted position
|
||||
// TODO: FIXME: Is this ever needed?
|
||||
//Vec2d point_shift = m_build_volume.type() == BuildVolume_Type::Circle ? Vec2d(0,0) : m_bed_shape[0];
|
||||
Vec2d point_shift(0, 0);
|
||||
std::vector<Vec2d> origin_bed_shape;
|
||||
for (size_t i = 0; i < m_bed_shape.size(); i++) {
|
||||
origin_bed_shape.push_back(m_bed_shape[i] - point_shift);
|
||||
origin_bed_shape.push_back(m_bed_shape[i]);
|
||||
}
|
||||
std::vector<Vec2d> new_bed_shape; // offset to correct origin
|
||||
for (auto point : origin_bed_shape) {
|
||||
|
||||
@@ -563,6 +563,8 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co
|
||||
for (auto el : { "outer_wall_jerk", "inner_wall_jerk", "initial_layer_jerk", "top_surface_jerk", "travel_jerk", "infill_jerk"})
|
||||
toggle_field(el, have_default_jerk);
|
||||
|
||||
toggle_line("default_junction_deviation", gcflavor == gcfMarlinFirmware);
|
||||
|
||||
bool have_skirt = config->opt_int("skirt_loops") > 0;
|
||||
toggle_field("skirt_height", have_skirt && config->opt_enum<DraftShield>("draft_shield") != dsEnabled);
|
||||
toggle_line("single_loop_draft_shield", have_skirt); // ORCA: Display one wall if skirt enabled
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
namespace Slic3r {
|
||||
namespace GUI {
|
||||
|
||||
static const std::vector<std::string> filament_vendors =
|
||||
static const std::vector<std::string> filament_vendors =
|
||||
{"3Dgenius", "3DJake", "3DXTECH", "3D BEST-Q", "3D Hero",
|
||||
"3D-Fuel", "Aceaddity", "AddNorth", "Amazon Basics", "AMOLEN",
|
||||
"Ankermake", "Anycubic", "Atomic", "AzureFilm", "BASF",
|
||||
@@ -47,18 +47,18 @@ static const std::vector<std::string> filament_vendors =
|
||||
"CERPRiSE", "Das Filament", "DO3D", "DOW", "DSM",
|
||||
"Duramic", "ELEGOO", "Eryone", "Essentium", "eSUN",
|
||||
"Extrudr", "Fiberforce", "Fiberlogy", "FilaCube", "Filamentive",
|
||||
"Fillamentum", "FLASHFORGE", "Formfutura", "Francofil", "FilamentOne",
|
||||
"Fil X", "GEEETECH", "Giantarm", "Gizmo Dorks", "GreenGate3D",
|
||||
"HATCHBOX", "Hello3D", "IC3D", "IEMAI", "IIID Max",
|
||||
"INLAND", "iProspect", "iSANMATE", "Justmaker", "Keene Village Plastics",
|
||||
"Kexcelled", "LDO", "MakerBot", "MatterHackers", "MIKA3D",
|
||||
"NinjaTek", "Nobufil", "Novamaker", "OVERTURE", "OVVNYXE",
|
||||
"Polymaker", "Priline", "Printed Solid", "Protopasta", "Prusament",
|
||||
"Push Plastic", "R3D", "Re-pet3D", "Recreus", "Regen",
|
||||
"RatRig", "Sain SMART", "SliceWorx", "Snapmaker", "SnoLabs",
|
||||
"Spectrum", "SUNLU", "TTYT3D", "Tianse", "UltiMaker",
|
||||
"Valment", "Verbatim", "VO3D", "Voxelab", "VOXELPLA",
|
||||
"YOOPAI", "Yousu", "Ziro", "Zyltech"};
|
||||
"Fillamentum", "FLASHFORGE", "Formfutura", "Francofil", "FusRock",
|
||||
"FilamentOne", "Fil X", "GEEETECH", "Giantarm", "Gizmo Dorks",
|
||||
"GreenGate3D", "HATCHBOX", "Hello3D", "IC3D", "IEMAI",
|
||||
"IIID Max", "INLAND", "iProspect", "iSANMATE", "Justmaker",
|
||||
"Keene Village Plastics", "Kexcelled", "LDO", "MakerBot", "MatterHackers",
|
||||
"MIKA3D", "NinjaTek", "Nobufil", "Novamaker", "OVERTURE",
|
||||
"OVVNYXE", "Polymaker", "Priline", "Printed Solid", "Protopasta",
|
||||
"Prusament", "Push Plastic", "R3D", "Re-pet3D", "Recreus",
|
||||
"Regen", "RatRig", "Sain SMART", "SliceWorx", "Snapmaker",
|
||||
"SnoLabs", "Spectrum", "SUNLU", "TTYT3D", "Tianse",
|
||||
"UltiMaker", "Valment", "Verbatim", "VO3D", "Voxelab",
|
||||
"VOXELPLA", "YOOPAI", "Yousu", "Ziro", "Zyltech"};
|
||||
|
||||
static const std::vector<std::string> filament_types = {"PLA", "rPLA", "PLA+", "PLA Tough", "PETG", "ABS", "ASA", "FLEX", "HIPS", "PA", "PACF",
|
||||
"NYLON", "PVA", "PVB", "PC", "PCABS", "PCTG", "PCCF", "PHA", "PP", "PEI", "PET",
|
||||
|
||||
@@ -476,35 +476,8 @@ void PartPlate::calc_gridlines(const ExPolygon& poly, const BoundingBox& pp_bbox
|
||||
step = static_cast<int>(grid_counts.minCoeff() + 1) * 10;
|
||||
}
|
||||
|
||||
if (0) {
|
||||
for (coord_t x = pp_bbox.min(0); x <= pp_bbox.max(0); x += scale_(step)) {
|
||||
Polyline line;
|
||||
line.append(Point(x, pp_bbox.min(1)));
|
||||
line.append(Point(x, pp_bbox.max(1)));
|
||||
|
||||
if ( (count % 5) == 0 )
|
||||
axes_lines_bolder.push_back(line);
|
||||
else
|
||||
axes_lines.push_back(line);
|
||||
count ++;
|
||||
}
|
||||
count = 0;
|
||||
for (coord_t y = pp_bbox.min(1); y <= pp_bbox.max(1); y += scale_(step)) {
|
||||
Polyline line;
|
||||
line.append(Point(pp_bbox.min(0), y));
|
||||
line.append(Point(pp_bbox.max(0), y));
|
||||
axes_lines.push_back(line);
|
||||
|
||||
if ( (count % 5) == 0 )
|
||||
axes_lines_bolder.push_back(line);
|
||||
else
|
||||
axes_lines.push_back(line);
|
||||
count ++;
|
||||
}
|
||||
}
|
||||
|
||||
// ORCA draw grid lines relative to origin
|
||||
for (coord_t x = m_origin.x(); x >= pp_bbox.min(0); x -= scale_(step)) { // Negative X axis
|
||||
for (coord_t x = scale_(m_origin.x()); x >= pp_bbox.min(0); x -= scale_(step)) { // Negative X axis
|
||||
(count % 5 == 0 ? axes_lines_bolder : axes_lines).push_back(Polyline(
|
||||
Point(x, pp_bbox.min(1)),
|
||||
Point(x, pp_bbox.max(1))
|
||||
@@ -512,7 +485,7 @@ void PartPlate::calc_gridlines(const ExPolygon& poly, const BoundingBox& pp_bbox
|
||||
count ++;
|
||||
}
|
||||
count = 0;
|
||||
for (coord_t x = m_origin.x(); x <= pp_bbox.max(0); x += scale_(step)) { // Positive X axis
|
||||
for (coord_t x = scale_(m_origin.x()); x <= pp_bbox.max(0); x += scale_(step)) { // Positive X axis
|
||||
(count % 5 == 0 ? axes_lines_bolder : axes_lines).push_back(Polyline(
|
||||
Point(x, pp_bbox.min(1)),
|
||||
Point(x, pp_bbox.max(1))
|
||||
@@ -520,7 +493,7 @@ void PartPlate::calc_gridlines(const ExPolygon& poly, const BoundingBox& pp_bbox
|
||||
count ++;
|
||||
}
|
||||
count = 0;
|
||||
for (coord_t y = m_origin.y(); y >= pp_bbox.min(1); y -= scale_(step)) { // Negative Y axis
|
||||
for (coord_t y = scale_(m_origin.y()); y >= pp_bbox.min(1); y -= scale_(step)) { // Negative Y axis
|
||||
(count % 5 == 0 ? axes_lines_bolder : axes_lines).push_back(Polyline(
|
||||
Point(pp_bbox.min(0), y),
|
||||
Point(pp_bbox.max(0), y)
|
||||
@@ -528,7 +501,7 @@ void PartPlate::calc_gridlines(const ExPolygon& poly, const BoundingBox& pp_bbox
|
||||
count ++;
|
||||
}
|
||||
count = 0;
|
||||
for (coord_t y = m_origin.y(); y <= pp_bbox.max(1); y += scale_(step)) { // Positive Y axis
|
||||
for (coord_t y = scale_(m_origin.y()); y <= pp_bbox.max(1); y += scale_(step)) { // Positive Y axis
|
||||
(count % 5 == 0 ? axes_lines_bolder : axes_lines).push_back(Polyline(
|
||||
Point(pp_bbox.min(0), y),
|
||||
Point(pp_bbox.max(0), y)
|
||||
|
||||
@@ -999,7 +999,7 @@ Sidebar::Sidebar(Plater *parent)
|
||||
}
|
||||
|
||||
ams_btn = new ScalableButton(p->m_panel_filament_title, wxID_ANY, "ams_fila_sync", wxEmptyString, wxDefaultSize, wxDefaultPosition,
|
||||
wxBU_EXACTFIT | wxNO_BORDER, false, 18);
|
||||
wxBU_EXACTFIT | wxNO_BORDER, false, 16); // ORCA match icon size with other icons as 16x16
|
||||
ams_btn->SetToolTip(_L("Synchronize filament list from AMS"));
|
||||
ams_btn->Bind(wxEVT_BUTTON, [this, scrolled_sizer](wxCommandEvent &e) {
|
||||
sync_ams_list();
|
||||
@@ -10208,6 +10208,8 @@ void Plater::calib_input_shaping_freq(const Calib_Params& params)
|
||||
add_model(false, Slic3r::resources_dir() + (params.test_model < 1 ? "/calib/input_shaping/ringing_tower.stl" : "/calib/input_shaping/fast_tower_test.stl"));
|
||||
auto print_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
|
||||
auto filament_config = &wxGetApp().preset_bundle->filaments.get_edited_preset().config;
|
||||
auto printer_config = &wxGetApp().preset_bundle->printers.get_edited_preset().config;
|
||||
printer_config->set_key_value("machine_max_junction_deviation", new ConfigOptionFloats {0.3});
|
||||
filament_config->set_key_value("slow_down_layer_time", new ConfigOptionFloats { 0.0 });
|
||||
filament_config->set_key_value("slow_down_min_speed", new ConfigOptionFloats { 0.0 });
|
||||
filament_config->set_key_value("slow_down_for_layer_cooling", new ConfigOptionBools{false});
|
||||
@@ -10228,6 +10230,7 @@ void Plater::calib_input_shaping_freq(const Calib_Params& params)
|
||||
print_config->set_key_value("outer_wall_speed", new ConfigOptionFloat(200));
|
||||
print_config->set_key_value("default_acceleration", new ConfigOptionFloat(2000));
|
||||
print_config->set_key_value("outer_wall_acceleration", new ConfigOptionFloat(2000));
|
||||
print_config->set_key_value("default_junction_deviation", new ConfigOptionFloat(0.25));
|
||||
model().objects[0]->config.set_key_value("brim_type", new ConfigOptionEnum<BrimType>(btOuterOnly));
|
||||
model().objects[0]->config.set_key_value("brim_width", new ConfigOptionFloat(3.0));
|
||||
model().objects[0]->config.set_key_value("brim_object_gap", new ConfigOptionFloat(0.0));
|
||||
@@ -10252,6 +10255,8 @@ void Plater::calib_input_shaping_damp(const Calib_Params& params)
|
||||
add_model(false, Slic3r::resources_dir() + (params.test_model < 1 ? "/calib/input_shaping/ringing_tower.stl" : "/calib/input_shaping/fast_tower_test.stl"));
|
||||
auto print_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
|
||||
auto filament_config = &wxGetApp().preset_bundle->filaments.get_edited_preset().config;
|
||||
auto printer_config = &wxGetApp().preset_bundle->printers.get_edited_preset().config;
|
||||
printer_config->set_key_value("machine_max_junction_deviation", new ConfigOptionFloats{0.3});
|
||||
filament_config->set_key_value("slow_down_layer_time", new ConfigOptionFloats { 0.0 });
|
||||
filament_config->set_key_value("slow_down_min_speed", new ConfigOptionFloats { 0.0 });
|
||||
filament_config->set_key_value("slow_down_for_layer_cooling", new ConfigOptionBools{false});
|
||||
@@ -10272,6 +10277,7 @@ void Plater::calib_input_shaping_damp(const Calib_Params& params)
|
||||
print_config->set_key_value("outer_wall_speed", new ConfigOptionFloat(200));
|
||||
print_config->set_key_value("default_acceleration", new ConfigOptionFloat(2000));
|
||||
print_config->set_key_value("outer_wall_acceleration", new ConfigOptionFloat(2000));
|
||||
print_config->set_key_value("default_junction_deviation", new ConfigOptionFloat(0.25));
|
||||
model().objects[0]->config.set_key_value("brim_type", new ConfigOptionEnum<BrimType>(btOuterOnly));
|
||||
model().objects[0]->config.set_key_value("brim_width", new ConfigOptionFloat(3.0));
|
||||
model().objects[0]->config.set_key_value("brim_object_gap", new ConfigOptionFloat(0.0));
|
||||
@@ -10296,6 +10302,8 @@ void Plater::calib_junction_deviation(const Calib_Params& params)
|
||||
add_model(false, Slic3r::resources_dir() + (params.test_model < 1 ? "/calib/input_shaping/ringing_tower.stl" : "/calib/input_shaping/fast_tower_test.stl"));
|
||||
auto print_config = &wxGetApp().preset_bundle->prints.get_edited_preset().config;
|
||||
auto filament_config = &wxGetApp().preset_bundle->filaments.get_edited_preset().config;
|
||||
auto printer_config = &wxGetApp().preset_bundle->printers.get_edited_preset().config;
|
||||
printer_config->set_key_value("machine_max_junction_deviation", new ConfigOptionFloats{1.0});
|
||||
filament_config->set_key_value("slow_down_layer_time", new ConfigOptionFloats { 0.0 });
|
||||
filament_config->set_key_value("slow_down_min_speed", new ConfigOptionFloats { 0.0 });
|
||||
filament_config->set_key_value("slow_down_for_layer_cooling", new ConfigOptionBools{false});
|
||||
@@ -10316,6 +10324,7 @@ void Plater::calib_junction_deviation(const Calib_Params& params)
|
||||
print_config->set_key_value("outer_wall_speed", new ConfigOptionFloat(200));
|
||||
print_config->set_key_value("default_acceleration", new ConfigOptionFloat(2000));
|
||||
print_config->set_key_value("outer_wall_acceleration", new ConfigOptionFloat(2000));
|
||||
print_config->set_key_value("default_junction_deviation", new ConfigOptionFloat(0.0));
|
||||
model().objects[0]->config.set_key_value("brim_type", new ConfigOptionEnum<BrimType>(btOuterOnly));
|
||||
model().objects[0]->config.set_key_value("brim_width", new ConfigOptionFloat(3.0));
|
||||
model().objects[0]->config.set_key_value("brim_object_gap", new ConfigOptionFloat(0.0));
|
||||
|
||||
@@ -793,6 +793,42 @@ void Tab::decorate()
|
||||
tt = &m_tt_white_bullet;
|
||||
}
|
||||
|
||||
if (opt.first == "compatible_prints" || opt.first == "compatible_printers") {
|
||||
bool sys_page = true;
|
||||
bool modified_page = false;
|
||||
if (m_type == Slic3r::Preset::TYPE_PRINTER) {
|
||||
sys_page = m_presets->get_selected_preset_parent() != nullptr;
|
||||
modified_page = false;
|
||||
} else {
|
||||
if (opt.first == "compatible_prints") {
|
||||
get_sys_and_mod_flags("compatible_prints", sys_page, modified_page);
|
||||
// Don't call for "compatible_printers"
|
||||
} else if (opt.first == "compatible_printers") {
|
||||
get_sys_and_mod_flags("compatible_printers", sys_page, modified_page);
|
||||
if (m_type == Slic3r::Preset::TYPE_FILAMENT || m_type == Slic3r::Preset::TYPE_SLA_MATERIAL) {
|
||||
get_sys_and_mod_flags("compatible_prints", sys_page, modified_page);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!sys_page) {
|
||||
is_nonsys_value = true;
|
||||
sys_icon = m_bmp_non_system;
|
||||
sys_tt = m_tt_non_system;
|
||||
|
||||
if (!modified_page)
|
||||
color = &m_default_text_clr;
|
||||
else
|
||||
color = &m_modified_label_clr;
|
||||
}
|
||||
|
||||
if (!modified_page) {
|
||||
is_modified_value = false;
|
||||
icon = &m_bmp_white_bullet;
|
||||
tt = &m_tt_white_bullet;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (option_without_field) {
|
||||
if (Line* line = get_line(opt.first)) {
|
||||
line->set_undo_bitmap(icon);
|
||||
@@ -945,9 +981,20 @@ void Tab::get_sys_and_mod_flags(const std::string& opt_key, bool& sys_page, bool
|
||||
auto opt = m_options_list.find(opt_key);
|
||||
if (opt == m_options_list.end())
|
||||
return;
|
||||
// If the value is empty, clear the system flag
|
||||
if (opt_key == "compatible_printers" || opt_key == "compatible_prints") {
|
||||
auto* compatible_values = m_config->option<ConfigOptionStrings>(opt_key);
|
||||
if (compatible_values && compatible_values->values.empty()) {
|
||||
sys_page = false; // Empty value should NOT be treated as a system value
|
||||
}
|
||||
} else if (sys_page) {
|
||||
sys_page = (opt->second & osSystemValue) != 0;
|
||||
}
|
||||
|
||||
if (sys_page) sys_page = (opt->second & osSystemValue) != 0;
|
||||
modified_page |= (opt->second & osInitValue) == 0;
|
||||
|
||||
//if (sys_page) sys_page = (opt->second & osSystemValue) != 0;
|
||||
//modified_page |= (opt->second & osInitValue) == 0;
|
||||
}
|
||||
|
||||
void Tab::update_changed_tree_ui()
|
||||
@@ -1068,22 +1115,10 @@ void Tab::on_roll_back_value(const bool to_sys /*= true*/)
|
||||
if (m_type != Preset::TYPE_PRINTER && (m_options_list["compatible_printers"] & os) == 0) {
|
||||
to_sys ? group->back_to_sys_value("compatible_printers") : group->back_to_initial_value("compatible_printers");
|
||||
load_key_value("compatible_printers", true/*some value*/, true);
|
||||
|
||||
if (m_compatible_printers.checkbox) {
|
||||
bool is_empty = m_config->option<ConfigOptionStrings>("compatible_printers")->values.empty();
|
||||
m_compatible_printers.checkbox->SetValue(is_empty);
|
||||
is_empty ? m_compatible_printers.btn->Disable() : m_compatible_printers.btn->Enable();
|
||||
}
|
||||
}
|
||||
if ((m_type == Preset::TYPE_FILAMENT || m_type == Preset::TYPE_SLA_MATERIAL) && (m_options_list["compatible_prints"] & os) == 0) {
|
||||
to_sys ? group->back_to_sys_value("compatible_prints") : group->back_to_initial_value("compatible_prints");
|
||||
load_key_value("compatible_prints", true/*some value*/, true);
|
||||
|
||||
if (m_compatible_prints.checkbox) {
|
||||
bool is_empty = m_config->option<ConfigOptionStrings>("compatible_prints")->values.empty();
|
||||
m_compatible_prints.checkbox->SetValue(is_empty);
|
||||
is_empty ? m_compatible_prints.btn->Disable() : m_compatible_prints.btn->Enable();
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const auto &kvp : group->opt_map()) {
|
||||
@@ -1106,6 +1141,17 @@ void Tab::on_roll_back_value(const bool to_sys /*= true*/)
|
||||
// BBS: restore all pages in preset, update_dirty also update combobox
|
||||
update_dirty();
|
||||
|
||||
if (m_compatible_printers.checkbox) {
|
||||
bool is_empty = m_config->option<ConfigOptionStrings>("compatible_printers")->values.empty();
|
||||
m_compatible_printers.checkbox->SetValue(is_empty);
|
||||
is_empty ? m_compatible_printers.btn->Disable() : m_compatible_printers.btn->Enable();
|
||||
}
|
||||
if (m_compatible_prints.checkbox) {
|
||||
bool is_empty = m_config->option<ConfigOptionStrings>("compatible_prints")->values.empty();
|
||||
m_compatible_prints.checkbox->SetValue(is_empty);
|
||||
is_empty ? m_compatible_prints.btn->Disable() : m_compatible_prints.btn->Enable();
|
||||
}
|
||||
|
||||
m_page_view->GetParent()->Layout();
|
||||
}
|
||||
|
||||
@@ -2198,6 +2244,7 @@ void TabPrint::build()
|
||||
optgroup->append_single_option_line("top_surface_jerk");
|
||||
optgroup->append_single_option_line("initial_layer_jerk");
|
||||
optgroup->append_single_option_line("travel_jerk");
|
||||
optgroup->append_single_option_line("default_junction_deviation");
|
||||
|
||||
optgroup = page->new_optgroup(L("Advanced"), L"param_advanced", 15);
|
||||
optgroup->append_single_option_line("max_volumetric_extrusion_rate_slope", "extrusion-rate-smoothing");
|
||||
@@ -2281,13 +2328,13 @@ void TabPrint::build()
|
||||
optgroup->append_single_option_line("wipe_tower_no_sparse_layers");
|
||||
optgroup->append_single_option_line("single_extruder_multi_material_priming");
|
||||
|
||||
optgroup = page->new_optgroup(L("Filament for Features"));
|
||||
optgroup = page->new_optgroup(L("Filament for Features"), L"param_filament_for_features");
|
||||
optgroup->append_single_option_line("wall_filament");
|
||||
optgroup->append_single_option_line("sparse_infill_filament");
|
||||
optgroup->append_single_option_line("solid_infill_filament");
|
||||
optgroup->append_single_option_line("wipe_tower_filament");
|
||||
|
||||
optgroup = page->new_optgroup(L("Ooze prevention"));
|
||||
optgroup = page->new_optgroup(L("Ooze prevention"), L"param_ooze_prevention");
|
||||
optgroup->append_single_option_line("ooze_prevention");
|
||||
optgroup->append_single_option_line("standby_temperature_delta");
|
||||
optgroup->append_single_option_line("preheat_time");
|
||||
@@ -2375,8 +2422,8 @@ page = add_options_page(L("Others"), "custom-gcode_other"); // ORCA: icon only v
|
||||
optgroup->append_single_option_line(option);
|
||||
|
||||
// Orca: hide the dependencies tab for process for now. The UI is not ready yet.
|
||||
// page = add_options_page(L("Dependencies"), "custom-gcode_advanced");
|
||||
// optgroup = page->new_optgroup(L("Profile dependencies"));
|
||||
// page = add_options_page(L("Dependencies"), "param_profile_dependencies"); // icons ready
|
||||
// optgroup = page->new_optgroup(L("Profile dependencies"), "param_profile_dependencies"); // icons ready
|
||||
|
||||
// create_line_with_widget(optgroup.get(), "compatible_printers", "", [this](wxWindow* parent) {
|
||||
// return compatible_widget_create(parent, m_compatible_printers);
|
||||
@@ -3299,7 +3346,7 @@ void TabFilament::build()
|
||||
};
|
||||
|
||||
// Orca: New section to focus on flow rate and PA to declutter general section
|
||||
optgroup = page->new_optgroup(L("Flow ratio and Pressure Advance"), L"param_information");
|
||||
optgroup = page->new_optgroup(L("Flow ratio and Pressure Advance"), L"param_flow_ratio_and_pressure_advance");
|
||||
optgroup->append_single_option_line("pellet_flow_coefficient", "pellet-flow-coefficient");
|
||||
optgroup->append_single_option_line("filament_flow_ratio");
|
||||
|
||||
@@ -3515,7 +3562,7 @@ void TabFilament::build()
|
||||
return sizer;
|
||||
});
|
||||
|
||||
optgroup = page->new_optgroup(L("Toolchange parameters with multi extruder MM printers"));
|
||||
optgroup = page->new_optgroup(L("Toolchange parameters with multi extruder MM printers"), "param_toolchange_multi_extruder");
|
||||
optgroup->append_single_option_line("filament_multitool_ramming");
|
||||
optgroup->append_single_option_line("filament_multitool_ramming_volume");
|
||||
optgroup->append_single_option_line("filament_multitool_ramming_flow");
|
||||
@@ -4122,6 +4169,8 @@ PageShp TabPrinter::build_kinematics_page()
|
||||
append_option_line(optgroup, "machine_max_jerk_" + axis);
|
||||
}
|
||||
|
||||
// machine max junction deviation
|
||||
append_option_line(optgroup, "machine_max_junction_deviation");
|
||||
//optgroup = page->new_optgroup(L("Minimum feedrates"));
|
||||
// append_option_line(optgroup, "machine_min_extruding_rate");
|
||||
// append_option_line(optgroup, "machine_min_travel_rate");
|
||||
@@ -4634,6 +4683,9 @@ void TabPrinter::toggle_options()
|
||||
for (int i = 0; i < max_field; ++i)
|
||||
toggle_option("machine_max_acceleration_travel", gcf != gcfMarlinLegacy && gcf != gcfKlipper, i);
|
||||
toggle_line("machine_max_acceleration_travel", gcf != gcfMarlinLegacy && gcf != gcfKlipper);
|
||||
for (int i = 0; i < max_field; ++i)
|
||||
toggle_option("machine_max_junction_deviation", gcf == gcfMarlinFirmware, i);
|
||||
toggle_line("machine_max_junction_deviation", gcf == gcfMarlinFirmware);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5868,12 +5920,24 @@ wxSizer* Tab::compatible_widget_create(wxWindow* parent, PresetDependencies &dep
|
||||
{
|
||||
deps.btn->Enable(! deps.checkbox->GetValue());
|
||||
// All printers have been made compatible with this preset.
|
||||
if (deps.checkbox->GetValue())
|
||||
if (deps.checkbox->GetValue())
|
||||
this->load_key_value(deps.key_list, std::vector<std::string> {});
|
||||
this->get_field(deps.key_condition)->toggle(deps.checkbox->GetValue());
|
||||
this->update_changed_ui();
|
||||
}) );
|
||||
|
||||
if (m_compatible_printers.checkbox) {
|
||||
bool is_empty = m_config->option<ConfigOptionStrings>("compatible_printers")->values.empty();
|
||||
m_compatible_printers.checkbox->SetValue(is_empty);
|
||||
is_empty ? m_compatible_printers.btn->Disable() : m_compatible_printers.btn->Enable();
|
||||
}
|
||||
|
||||
if (m_compatible_prints.checkbox) {
|
||||
bool is_empty = m_config->option<ConfigOptionStrings>("compatible_prints")->values.empty();
|
||||
m_compatible_prints.checkbox->SetValue(is_empty);
|
||||
is_empty ? m_compatible_prints.btn->Disable() : m_compatible_prints.btn->Enable();
|
||||
}
|
||||
|
||||
deps.btn->Bind(wxEVT_BUTTON, ([this, parent, &deps](wxCommandEvent e)
|
||||
{
|
||||
// Collect names of non-default non-external profiles.
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace Slic3r { namespace GUI {
|
||||
m_printing_img = ScalableBitmap(this, "printer", 16);
|
||||
m_arrow_img = ScalableBitmap(this, "monitor_arrow", 14);
|
||||
|
||||
m_none_printing_img = ScalableBitmap(this, "tab_monitor_active", 24);
|
||||
m_none_printing_img = ScalableBitmap(this, "tab_monitor_active", 20); // ORCA match icon size with exact resolution to fix blurry icon
|
||||
m_none_arrow_img = ScalableBitmap(this, "monitor_none_arrow", 14);
|
||||
m_none_add_img = ScalableBitmap(this, "monitor_none_add", 14);
|
||||
|
||||
|
||||
@@ -1159,7 +1159,6 @@ void Junction_Deviation_Test_Dlg::on_start(wxCommandEvent& event) {
|
||||
} else if (m_params.end > 0.3) {
|
||||
MessageDialog msg_dlg(nullptr, _L("NOTE: High values may cause Layer shift"), wxEmptyString, wxICON_WARNING | wxOK);
|
||||
msg_dlg.ShowModal();
|
||||
return;
|
||||
}
|
||||
|
||||
m_params.mode = CalibMode::Calib_Junction_Deviation;
|
||||
|
||||
@@ -169,12 +169,12 @@ namespace fts {
|
||||
|
||||
// Calculate score
|
||||
if (matched) {
|
||||
static constexpr int sequential_bonus = 15; // bonus for adjacent matches
|
||||
static constexpr int separator_bonus = 10/*30*/; // bonus if match occurs after a separator
|
||||
// static constexpr int camel_bonus = 30; // bonus if match is uppercase and prev is lower
|
||||
static constexpr int first_letter_bonus = 15; // bonus if the first letter is matched
|
||||
static constexpr int sequential_bonus = 75; // bonus for adjacent matches
|
||||
static constexpr int separator_bonus = 10; // bonus if match occurs after a separator
|
||||
// static constexpr int camel_bonus = 30; // bonus if match is uppercase and prev is lower
|
||||
static constexpr int first_letter_bonus = -30; // bonus if the first letter is matched
|
||||
|
||||
static constexpr int leading_letter_penalty = -1/*-5*/; // penalty applied for every letter in str before the first match
|
||||
static constexpr int leading_letter_penalty = -1; // penalty applied for every letter in str before the first match
|
||||
static constexpr int max_leading_letter_penalty = -15; // maximum penalty for leading letters
|
||||
static constexpr int unmatched_letter_penalty = -1; // penalty for every letter that doesn't matter
|
||||
|
||||
|
||||
Reference in New Issue
Block a user