Merge branch 'main' into dev/p2s-pr
# Conflicts: # src/slic3r/GUI/DeviceErrorDialog.cpp
This commit is contained in:
@@ -708,7 +708,7 @@ void PrintConfigDef::init_common_params()
|
||||
|
||||
def = this->add("preferred_orientation", coFloat);
|
||||
def->label = L("Preferred orientation");
|
||||
def->tooltip = L("Automatically orient stls on the Z axis upon initial import.");
|
||||
def->tooltip = L("Automatically orient STL files on the Z axis upon initial import.");
|
||||
def->sidetext = u8"°"; // degrees, don't need translation
|
||||
def->max = 360;
|
||||
def->min = -360;
|
||||
@@ -1964,7 +1964,7 @@ void PrintConfigDef::init_fff_params()
|
||||
"then the external perimeter and, finally, the first internal perimeter. "
|
||||
"This option is recommended against the Outer/Inner option in most cases.\n\n"
|
||||
"Use Outer/Inner for the same external wall quality and dimensional accuracy benefits of Inner/Outer/Inner option. "
|
||||
"However, the z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface.\n\n ");
|
||||
"However, the Z seams will appear less consistent as the first extrusion of a new layer starts on a visible surface.");
|
||||
def->enum_keys_map = &ConfigOptionEnum<WallSequence>::get_enum_values();
|
||||
def->enum_values.push_back("inner wall/outer wall");
|
||||
def->enum_values.push_back("outer wall/inner wall");
|
||||
@@ -2290,14 +2290,16 @@ void PrintConfigDef::init_fff_params()
|
||||
def->set_default_value(new ConfigOptionInts{1});
|
||||
|
||||
def = this->add("physical_extruder_map",coInts);
|
||||
// internal use only, don't need translation
|
||||
def->label = "Map the logical extruder to physical extruder";
|
||||
def->tooltip = "Map the logical extruder to physical extruder.";
|
||||
def->mode = comDevelop;
|
||||
def->set_default_value(new ConfigOptionInts{0});
|
||||
|
||||
def = this->add("filament_map_mode", coEnum);
|
||||
def->label = L("filament mapping mode");
|
||||
def->tooltip = ("Filament mapping mode used as plate param.");
|
||||
def = this->add("filament_map_mode", coEnum);
|
||||
// internal use only, don't need translation
|
||||
def->label = "filament mapping mode";
|
||||
def->tooltip = "Filament mapping mode used as plate param.";
|
||||
def->enum_keys_map = &ConfigOptionEnum<FilamentMapMode>::get_enum_values();
|
||||
def->enum_values.push_back("Auto For Flush");
|
||||
def->enum_values.push_back("Auto For Match");
|
||||
@@ -2441,10 +2443,9 @@ void PrintConfigDef::init_fff_params()
|
||||
def = this->add("filament_shrink", coPercents);
|
||||
def->label = L("Shrinkage (XY)");
|
||||
// xgettext:no-c-format, no-boost-format
|
||||
def->tooltip = L("Enter the shrinkage percentage that the filament will get after cooling (94% if you measure 94mm instead of 100mm)."
|
||||
" The part will be scaled in xy to compensate."
|
||||
" Only the filament used for the perimeter is taken into account."
|
||||
"\nBe sure to allow enough space between objects, as this compensation is done after the checks.");
|
||||
def->tooltip = L("Enter the shrinkage percentage that the filament will get after cooling (94% if you measure 94mm instead of 100mm). "
|
||||
"The part will be scaled in XY to compensate. Only the filament used for the perimeter is taken into account.\n"
|
||||
"Be sure to allow enough space between objects, as this compensation is done after the checks.");
|
||||
def->sidetext = "%";
|
||||
def->ratio_over = "";
|
||||
def->min = 50;
|
||||
@@ -3288,7 +3289,7 @@ void PrintConfigDef::init_fff_params()
|
||||
// BBS
|
||||
def = this->add("precise_z_height", coBool);
|
||||
def->label = L("Precise Z height");
|
||||
def->tooltip = L("Enable this to get precise z height of object after slicing. "
|
||||
def->tooltip = L("Enable this to get precise Z height of object after slicing. "
|
||||
"It will get the precise object height by fine-tuning the layer heights of the last few layers. "
|
||||
"Note that this is an experimental parameter.");
|
||||
def->mode = comAdvanced;
|
||||
@@ -4719,8 +4720,9 @@ void PrintConfigDef::init_fff_params()
|
||||
def->set_default_value(new ConfigOptionEnumsGeneric{RetractLiftEnforceType ::rletAllSurfaces});
|
||||
|
||||
def = this->add("extruder_type", coEnums);
|
||||
def->label = L("Type");
|
||||
def->tooltip = ("This setting is only used for initial value of manual calibration of pressure advance. Bowden extruder usually has larger pa value. This setting doesn't influence normal slicing.");
|
||||
// internal use only, don't need translation
|
||||
def->label = "Type";
|
||||
def->tooltip = "This setting is only used for initial value of manual calibration of pressure advance. Bowden extruder usually has larger PA value. This setting doesn't influence normal slicing.";
|
||||
def->enum_keys_map = &ConfigOptionEnum<ExtruderType>::get_enum_values();
|
||||
def->enum_values.push_back("Direct Drive");
|
||||
def->enum_values.push_back("Bowden");
|
||||
@@ -4731,8 +4733,9 @@ void PrintConfigDef::init_fff_params()
|
||||
|
||||
//BBS
|
||||
def = this->add("nozzle_volume_type", coEnums);
|
||||
def->label = L("Nozzle Volume Type");
|
||||
def->tooltip = ("Nozzle volume type.");
|
||||
// internal use only, don't need translation
|
||||
def->label = "Nozzle Volume Type";
|
||||
def->tooltip = "Nozzle volume type for extruders.";
|
||||
def->enum_keys_map = &ConfigOptionEnum<NozzleVolumeType>::get_enum_values();
|
||||
def->enum_values.push_back(L("Standard"));
|
||||
def->enum_values.push_back(L("High Flow"));
|
||||
@@ -4742,8 +4745,9 @@ void PrintConfigDef::init_fff_params()
|
||||
def->set_default_value(new ConfigOptionEnumsGeneric{ NozzleVolumeType::nvtStandard });
|
||||
|
||||
def = this->add("default_nozzle_volume_type", coEnums);
|
||||
def->label = L("Default Nozzle Volume Type.");
|
||||
def->tooltip = ("Default Nozzle volume type for extruders in this printer.");
|
||||
// internal use only, don't need translation
|
||||
def->label = "Default Nozzle Volume Type.";
|
||||
def->tooltip = "Default Nozzle volume type for extruders in this printer.";
|
||||
def->enum_keys_map = &ConfigOptionEnum<NozzleVolumeType>::get_enum_values();
|
||||
def->enum_values.push_back(L("Standard"));
|
||||
def->enum_values.push_back(L("High Flow"));
|
||||
@@ -4753,40 +4757,47 @@ void PrintConfigDef::init_fff_params()
|
||||
def->set_default_value(new ConfigOptionEnumsGeneric{ NozzleVolumeType::nvtStandard });
|
||||
|
||||
def = this->add("extruder_variant_list", coStrings);
|
||||
// internal use only, don't need translation
|
||||
def->label = "Extruder variant list";
|
||||
def->tooltip = "Extruder variant list.";
|
||||
def->set_default_value(new ConfigOptionStrings { "Direct Drive Standard" });
|
||||
def->cli = ConfigOptionDef::nocli;
|
||||
|
||||
def = this->add("extruder_ams_count", coStrings);
|
||||
def->label = "Extruder ams count";
|
||||
def->tooltip = "Ams counts of per extruder.";
|
||||
// internal use only, don't need translation
|
||||
def->label = "Extruder AMS count";
|
||||
def->tooltip = "AMS counts per extruder.";
|
||||
def->set_default_value(new ConfigOptionStrings { });
|
||||
|
||||
def = this->add("printer_extruder_id", coInts);
|
||||
// internal use only, don't need translation
|
||||
def->label = "Printer extruder id";
|
||||
def->tooltip = "Printer extruder id.";
|
||||
def->set_default_value(new ConfigOptionInts { 1 });
|
||||
def->cli = ConfigOptionDef::nocli;
|
||||
|
||||
def = this->add("printer_extruder_variant", coStrings);
|
||||
// internal use only, don't need translation
|
||||
def->label = "Printer's extruder variant";
|
||||
def->tooltip = "Printer's extruder variant.";
|
||||
def->set_default_value(new ConfigOptionStrings { "Direct Drive Standard" });
|
||||
def->cli = ConfigOptionDef::nocli;
|
||||
|
||||
def = this->add("master_extruder_id", coInt);
|
||||
// internal use only, don't need translation
|
||||
def->label = "Master extruder id";
|
||||
def->tooltip = "Default extruder id to place filament.";
|
||||
def->set_default_value(new ConfigOptionInt{ 1 });
|
||||
|
||||
def = this->add("print_extruder_id", coInts);
|
||||
// internal use only, don't need translation
|
||||
def->label = "Print extruder id";
|
||||
def->tooltip = "Print extruder id.";
|
||||
def->set_default_value(new ConfigOptionInts { 1 });
|
||||
def->cli = ConfigOptionDef::nocli;
|
||||
|
||||
def = this->add("print_extruder_variant", coStrings);
|
||||
// internal use only, don't need translation
|
||||
def->label = "Print's extruder variant";
|
||||
def->tooltip = "Print's extruder variant.";
|
||||
def->set_default_value(new ConfigOptionStrings { "Direct Drive Standard" });
|
||||
@@ -4799,12 +4810,14 @@ void PrintConfigDef::init_fff_params()
|
||||
def->cli = ConfigOptionDef::nocli;*/
|
||||
|
||||
def = this->add("filament_extruder_variant", coStrings);
|
||||
// internal use only, don't need translation
|
||||
def->label = "Filament's extruder variant";
|
||||
def->tooltip = "Filament's extruder variant.";
|
||||
def->set_default_value(new ConfigOptionStrings { "Direct Drive Standard" });
|
||||
def->cli = ConfigOptionDef::nocli;
|
||||
|
||||
def = this->add("filament_self_index", coInts);
|
||||
// internal use only, don't need translation
|
||||
def->label = "Filament self index";
|
||||
def->tooltip = "Filament self index.";
|
||||
def->set_default_value(new ConfigOptionInts { 1 });
|
||||
@@ -5167,7 +5180,7 @@ void PrintConfigDef::init_fff_params()
|
||||
|
||||
def = this->add("spiral_mode", coBool);
|
||||
def->label = L("Spiral vase");
|
||||
def->tooltip = L("Spiralize smooths out the z moves of the outer contour. "
|
||||
def->tooltip = L("Spiralize smooths out the Z moves of the outer contour. "
|
||||
"And turns a solid model into a single walled print with solid bottom layers. "
|
||||
"The final generated model has no seam.");
|
||||
def->mode = comSimple;
|
||||
@@ -5382,7 +5395,7 @@ void PrintConfigDef::init_fff_params()
|
||||
def->set_default_value(new ConfigOptionEnum<SupportType>(stNormalAuto));
|
||||
|
||||
def = this->add("support_object_xy_distance", coFloat);
|
||||
def->label = L("Support/object xy distance");
|
||||
def->label = L("Support/object XY distance");
|
||||
def->category = L("Support");
|
||||
def->tooltip = L("XY separation between an object and its support.");
|
||||
def->sidetext = "mm"; // milimeters, don't need translation
|
||||
@@ -5682,7 +5695,7 @@ void PrintConfigDef::init_fff_params()
|
||||
def = this->add("independent_support_layer_height", coBool);
|
||||
def->label = L("Independent support layer height");
|
||||
def->category = L("Support");
|
||||
def->tooltip = L("Support layer uses layer height independent with object layer. This is to support customizing z-gap and save print time. "
|
||||
def->tooltip = L("Support layer uses layer height independent with object layer. This is to support customizing Z-gap and save print time. "
|
||||
"This option will be invalid when the prime tower is enabled.");
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionBool(true));
|
||||
@@ -9557,7 +9570,7 @@ CLIActionsConfigDef::CLIActionsConfigDef()
|
||||
|
||||
def = this->add("uptodate", coBool);
|
||||
def->label = L("UpToDate");
|
||||
def->tooltip = L("Update the configs values of 3mf to latest.");
|
||||
def->tooltip = L("Update the config values of 3MF to latest.");
|
||||
def->cli = "uptodate";
|
||||
def->set_default_value(new ConfigOptionBool(false));
|
||||
|
||||
@@ -9575,7 +9588,7 @@ CLIActionsConfigDef::CLIActionsConfigDef()
|
||||
|
||||
def = this->add("min_save", coBool);
|
||||
def->label = L("Minimum save");
|
||||
def->tooltip = L("export 3mf with minimum size.");
|
||||
def->tooltip = L("Export 3MF with minimum size.");
|
||||
def->cli_params = "option";
|
||||
def->set_default_value(new ConfigOptionBool(false));
|
||||
|
||||
@@ -9909,44 +9922,45 @@ CLIMiscConfigDef::CLIMiscConfigDef()
|
||||
def->set_default_value(new ConfigOptionBool(false));
|
||||
|
||||
def = this->add("skip_modified_gcodes", coBool);
|
||||
def->label = L("Skip modified G-code in 3mf");
|
||||
def->tooltip = L("Skip the modified G-code in 3mf from Printer or filament Presets.");
|
||||
def->label = L("Skip modified G-code in 3MF");
|
||||
def->tooltip = L("Skip the modified G-code in 3MF from printer or filament presets.");
|
||||
def->cli_params = "option";
|
||||
def->set_default_value(new ConfigOptionBool(false));
|
||||
|
||||
def = this->add("makerlab_name", coString);
|
||||
def->label = L("MakerLab name");
|
||||
def->tooltip = L("MakerLab name to generate this 3mf.");
|
||||
def->tooltip = L("MakerLab name to generate this 3MF.");
|
||||
def->cli_params = "name";
|
||||
def->set_default_value(new ConfigOptionString());
|
||||
|
||||
def = this->add("makerlab_version", coString);
|
||||
def->label = L("MakerLab version");
|
||||
def->tooltip = L("MakerLab version to generate this 3mf.");
|
||||
def->tooltip = L("MakerLab version to generate this 3MF.");
|
||||
def->cli_params = "version";
|
||||
def->set_default_value(new ConfigOptionString());
|
||||
|
||||
def = this->add("metadata_name", coStrings);
|
||||
def->label = L("metadata name list");
|
||||
def->tooltip = L("metadata name list added into 3mf.");
|
||||
def->label = L("Metadata name list");
|
||||
def->tooltip = L("Metadata name list added into 3MF.");
|
||||
def->cli_params = "\"name1;name2;...\"";
|
||||
def->set_default_value(new ConfigOptionStrings());
|
||||
|
||||
def = this->add("metadata_value", coStrings);
|
||||
def->label = L("metadata value list");
|
||||
def->tooltip = L("metadata value list added into 3mf.");
|
||||
def->label = L("Metadata value list");
|
||||
def->tooltip = L("Metadata value list added into 3MF.");
|
||||
def->cli_params = "\"value1;value2;...\"";
|
||||
def->set_default_value(new ConfigOptionStrings());
|
||||
|
||||
def = this->add("allow_newer_file", coBool);
|
||||
def->label = L("Allow 3mf with newer version to be sliced");
|
||||
def->tooltip = L("Allow 3mf with newer version to be sliced.");
|
||||
def->label = L("Allow 3MF with newer version to be sliced");
|
||||
def->tooltip = L("Allow 3MF with newer version to be sliced.");
|
||||
def->cli_params = "option";
|
||||
def->set_default_value(new ConfigOptionBool(false));
|
||||
|
||||
def = this->add("allow_mix_temp", coBool);
|
||||
// internal use only, don't need translation
|
||||
def->label = "Allow filaments with high/low temperature to be printed together";
|
||||
def->tooltip = "Allow filaments with high/low temperature to be printed together";
|
||||
def->tooltip = "Allow filaments with high/low temperature to be printed together.";
|
||||
def->cli_params = "option";
|
||||
def->set_default_value(new ConfigOptionBool(false));
|
||||
}
|
||||
@@ -10134,7 +10148,7 @@ ObjectsInfoConfigDef::ObjectsInfoConfigDef()
|
||||
def->label = L("Scale per object");
|
||||
def->tooltip = L("Contains a string with the information about what scaling was applied to the individual objects. "
|
||||
"Indexing of the objects is zero-based (first object has index 0).\n"
|
||||
"Example: 'x:100% y:50% z:100'.");
|
||||
"Example: 'x:100% y:50% z:100%'.");
|
||||
|
||||
def = this->add("input_filename_base", coString);
|
||||
def->label = L("Input filename without extension");
|
||||
@@ -10148,8 +10162,8 @@ DimensionsConfigDef::DimensionsConfigDef()
|
||||
{
|
||||
ConfigOptionDef* def;
|
||||
|
||||
const std::string point_tooltip = L("The vector has two elements: x and y coordinate of the point. Values in mm.");
|
||||
const std::string bb_size_tooltip = L("The vector has two elements: x and y dimension of the bounding box. Values in mm.");
|
||||
const std::string point_tooltip = L("The vector has two elements: X and Y coordinate of the point. Values in mm.");
|
||||
const std::string bb_size_tooltip = L("The vector has two elements: X and Y dimension of the bounding box. Values in mm.");
|
||||
|
||||
def = this->add("first_layer_print_convex_hull", coPoints);
|
||||
def->label = L("First layer convex hull");
|
||||
|
||||
@@ -229,7 +229,7 @@ void BedShapePanel::build_panel(const Pointfs& default_pt, const std::string& cu
|
||||
Line line{ "", "" };
|
||||
line.full_width = 1;
|
||||
line.widget = [this](wxWindow* parent) {
|
||||
Button* shape_btn = new Button(parent, _L("Load shape from STL ..."));
|
||||
Button* shape_btn = new Button(parent, _L("Load shape from STL..."));
|
||||
shape_btn->SetStyle(ButtonStyle::Regular, ButtonType::Expanded);
|
||||
|
||||
wxSizer* shape_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
|
||||
@@ -175,10 +175,10 @@ void DeviceErrorDialog::init_button_list()
|
||||
init_button(PROBLEM_SOLVED_RESUME, _L("Problem Solved and Resume"));
|
||||
init_button(TURN_OFF_FIRE_ALARM, _L("Got it, Turn off the Fire Alarm."));
|
||||
init_button(RETRY_PROBLEM_SOLVED, _L("Retry (problem solved)"));
|
||||
init_button(CANCLE, _L("Cancle"));
|
||||
init_button(CANCLE, _L("Cancel"));
|
||||
init_button(STOP_DRYING, _L("Stop Drying"));
|
||||
init_button(PROCEED, _L("Proceed"));
|
||||
init_button(DBL_CHECK_CANCEL, _L("Cancle"));
|
||||
init_button(DBL_CHECK_CANCEL, _L("Cancel"));
|
||||
init_button(DBL_CHECK_DONE, _L("Done"));
|
||||
init_button(DBL_CHECK_RETRY, _L("Retry"));
|
||||
init_button(DBL_CHECK_RESUME, _L("Resume"));
|
||||
|
||||
@@ -142,15 +142,15 @@ wxString Slic3r::get_stage_string(int stage)
|
||||
case 35:
|
||||
return _L("Pause (nozzle clog)");
|
||||
case 36:
|
||||
return _L("Measuring motion percision");
|
||||
return _L("Measuring motion precision");
|
||||
case 37:
|
||||
return _L("Enhancing motion percision");
|
||||
return _L("Enhancing motion precision");
|
||||
case 38:
|
||||
return _L("Measure motion accuracy");
|
||||
case 39:
|
||||
return _L("Nozzle offset calibration");
|
||||
case 40:
|
||||
return _L("high temperature auto bed levelling");
|
||||
return _L("high temperature auto bed leveling");
|
||||
case 41:
|
||||
return _L("Auto Check: Quick Release Lever");
|
||||
case 42:
|
||||
|
||||
@@ -63,7 +63,7 @@ FilamentMapManualPanel::FilamentMapManualPanel(wxWindow *p
|
||||
|
||||
top_sizer->Add(drag_sizer, 0, wxALIGN_CENTER | wxEXPAND);
|
||||
|
||||
m_tips = new Label(this, _L("Tips: You can drag the filaments to reassign them to different nozzles."));
|
||||
m_tips = new Label(this, _L("Tip: You can drag the filaments to reassign them to different nozzles."));
|
||||
m_tips->SetFont(Label::Body_14);
|
||||
m_tips->SetForegroundColour(TextNormalGreyColor);
|
||||
top_sizer->AddSpacer(FromDIP(20));
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
#include "DailyTips.hpp"
|
||||
#include "FilamentMapDialog.hpp"
|
||||
|
||||
#include "slic3r/GUI/CameraUtils.hpp"
|
||||
#include "slic3r/GUI/Gizmos/GLGizmoPainterBase.hpp"
|
||||
#include "slic3r/Utils/UndoRedo.hpp"
|
||||
#include "slic3r/Utils/MacDarkMode.hpp"
|
||||
@@ -4694,6 +4695,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
|
||||
|
||||
m_camera_movement = true;
|
||||
m_mouse.drag.start_position_2D = pos;
|
||||
m_mouse.drag.move_start_threshold_position_2D = pos;
|
||||
}
|
||||
}
|
||||
else if ((evt.LeftUp() || evt.MiddleUp() || evt.RightUp()) ||
|
||||
@@ -9376,12 +9378,18 @@ Vec3d GLCanvas3D::_mouse_to_3d(const Point& mouse_pos, float* z)
|
||||
if (m_canvas == nullptr)
|
||||
return Vec3d(DBL_MAX, DBL_MAX, DBL_MAX);
|
||||
|
||||
const Camera& camera = wxGetApp().plater()->get_camera();
|
||||
|
||||
if (z == nullptr) {
|
||||
const SceneRaycaster::HitResult hit = m_scene_raycaster.hit(mouse_pos.cast<double>(), wxGetApp().plater()->get_camera(), nullptr);
|
||||
const SceneRaycaster::HitResult hit = m_scene_raycaster.hit(mouse_pos.cast<double>(), camera, nullptr);
|
||||
return hit.is_valid() ? hit.position.cast<double>() : _mouse_to_bed_3d(mouse_pos);
|
||||
}
|
||||
// Orca: Handling of the particular case, if we want to get the position for Z = 0
|
||||
else if (is_approx(static_cast<double>(*z), 0.)) {
|
||||
Vec2d position = CameraUtils::get_z0_position(camera, Vec2d(mouse_pos.x(), mouse_pos.y()));
|
||||
return Vec3d(position.x(), position.y(), *z);
|
||||
}
|
||||
else {
|
||||
const Camera& camera = wxGetApp().plater()->get_camera();
|
||||
const Vec4i32 viewport(camera.get_viewport().data());
|
||||
Vec3d out;
|
||||
igl::unproject(Vec3d(mouse_pos.x(), viewport[3] - mouse_pos.y(), *z), camera.get_view_matrix().matrix(), camera.get_projection_matrix().matrix(), viewport, out);
|
||||
@@ -10068,7 +10076,7 @@ void GLCanvas3D::_set_warning_notification(EWarning warning, bool state)
|
||||
std::string objName2 = m_gcode_viewer.m_conflict_result.value()._objName2;
|
||||
double height = m_gcode_viewer.m_conflict_result.value()._height;
|
||||
int layer = m_gcode_viewer.m_conflict_result.value().layer;
|
||||
text = (boost::format(_u8L("Conflicts of G-code paths have been found at layer %d, z = %.2lf mm. Please separate the conflicted objects farther (%s <-> %s).")) % layer %
|
||||
text = (boost::format(_u8L("Conflicts of G-code paths have been found at layer %d, Z = %.2lfmm. Please separate the conflicted objects farther (%s <-> %s).")) % layer %
|
||||
height % objName1 % objName2)
|
||||
.str();
|
||||
prevConflictText = text;
|
||||
@@ -10134,7 +10142,7 @@ void GLCanvas3D::_set_warning_notification(EWarning warning, bool state)
|
||||
text += (boost::format(_u8L("Filament %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s.")) %filaments %extruder_name %extruder_name).str();
|
||||
}
|
||||
else {
|
||||
text += (boost::format(_u8L("Filaments %s is placed in the %s, but the generated G-code path exceeds the printable range of the %s.")) %filaments %extruder_name %extruder_name).str();
|
||||
text += (boost::format(_u8L("Filaments %s are placed in the %s, but the generated G-code path exceeds the printable range of the %s.")) %filaments %extruder_name %extruder_name).str();
|
||||
}
|
||||
}
|
||||
error = ErrorType::SLICING_LIMIT_ERROR;
|
||||
@@ -10186,7 +10194,7 @@ void GLCanvas3D::_set_warning_notification(EWarning warning, bool state)
|
||||
if (error_iter->second.size() == 1) {
|
||||
text += (boost::format(_u8L("Filament %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s.")) % filaments % extruder_name % extruder_name).str();
|
||||
} else {
|
||||
text += (boost::format(_u8L("Filaments %s is placed in the %s, but the generated G-code path exceeds the printable height of the %s.")) % filaments % extruder_name % extruder_name).str();
|
||||
text += (boost::format(_u8L("Filaments %s are placed in the %s, but the generated G-code path exceeds the printable height of the %s.")) % filaments % extruder_name % extruder_name).str();
|
||||
}
|
||||
}
|
||||
if (!text.empty()) {
|
||||
|
||||
@@ -3783,7 +3783,7 @@ void GUI_App::load_project(wxWindow *parent, wxString& input_file) const
|
||||
{
|
||||
input_file.Clear();
|
||||
wxFileDialog dialog(parent ? parent : GetTopWindow(),
|
||||
_L("Choose one file (3mf):"),
|
||||
_L("Choose one file (3MF):"),
|
||||
app_config->get_last_dir(), "",
|
||||
file_wildcards(FT_PROJECT), wxFD_OPEN | wxFD_FILE_MUST_EXIST);
|
||||
|
||||
@@ -3796,9 +3796,9 @@ void GUI_App::import_model(wxWindow *parent, wxArrayString& input_files) const
|
||||
input_files.Clear();
|
||||
wxFileDialog dialog(parent ? parent : GetTopWindow(),
|
||||
#ifdef __APPLE__
|
||||
_L("Choose one or more files (3mf/step/stl/svg/obj/amf/usd*/abc/ply):"),
|
||||
_L("Choose one or more files (3MF/STEP/STL/SVG/OBJ/AMF/USD*/ABC/PLY):"),
|
||||
#else
|
||||
_L("Choose one or more files (3mf/step/stl/svg/obj/amf):"),
|
||||
_L("Choose one or more files (3MF/STEP/STL/SVG/OBJ/AMF):"),
|
||||
#endif
|
||||
from_u8(app_config->get_last_dir()), "",
|
||||
file_wildcards(FT_MODEL), wxFD_OPEN | wxFD_MULTIPLE | wxFD_FILE_MUST_EXIST);
|
||||
@@ -3822,7 +3822,7 @@ void GUI_App::load_gcode(wxWindow* parent, wxString& input_file) const
|
||||
{
|
||||
input_file.Clear();
|
||||
wxFileDialog dialog(parent ? parent : GetTopWindow(),
|
||||
_L("Choose one file (gcode/3mf):"),
|
||||
_L("Choose one file (GCODE/3MF):"),
|
||||
app_config->get_last_dir(), "",
|
||||
file_wildcards(FT_GCODE), wxFD_OPEN | wxFD_FILE_MUST_EXIST);
|
||||
|
||||
|
||||
@@ -2873,10 +2873,10 @@ void GLGizmoEmboss::draw_advanced()
|
||||
|
||||
m_imgui->disabled_end(); // allowe_surface_distance
|
||||
|
||||
// slider for Clock-wise angle in degress
|
||||
// slider for Clockwise angle in degress
|
||||
// stored angle is optional CCW and in radians
|
||||
// Convert stored value to degress
|
||||
// minus create clock-wise roation from CCW
|
||||
// minus create clockwise roation from CCW
|
||||
float angle = current_style.angle.value_or(0.f);
|
||||
float angle_deg = static_cast<float>(-angle * 180 / M_PI);
|
||||
float def_angle_deg_val =
|
||||
@@ -2886,7 +2886,7 @@ void GLGizmoEmboss::draw_advanced()
|
||||
&def_angle_deg_val : nullptr;
|
||||
if (rev_slider(tr.rotation, angle_deg, def_angle_deg, _u8L("Undo rotation"),
|
||||
limits.angle.min, limits.angle.max, u8"%.2f °",
|
||||
_L("Rotate text Clock-wise."))) {
|
||||
_L("Rotate text Clockwise."))) {
|
||||
// convert back to radians and CCW
|
||||
double angle_rad = -angle_deg * M_PI / 180.0;
|
||||
Geometry::to_range_pi_pi(angle_rad);
|
||||
|
||||
@@ -619,7 +619,7 @@ void GLGizmoMmuSegmentation::on_render_input_window(float x, float y, float bott
|
||||
m_imgui->text(m_desc["height_range"] + ":");
|
||||
ImGui::SameLine(height_max_width);
|
||||
ImGui::PushItemWidth(sliders_width);
|
||||
std::string format_str = std::string("%.2f") + I18N::translate_utf8("mm", "Heigh range," "Facet in [cursor z, cursor z + height] will be selected.");
|
||||
std::string format_str = std::string("%.2f") + I18N::translate_utf8("mm", "Height range," "Facet in [cursor z, cursor z + height] will be selected.");
|
||||
m_imgui->bbl_slider_float_style("##cursor_height", &m_cursor_height, CursorHeightMin, CursorHeightMax, format_str.data(), 1.0f, true);
|
||||
ImGui::SameLine(drag_left_width + height_max_width);
|
||||
ImGui::PushItemWidth(1.5 * slider_icon_width);
|
||||
|
||||
@@ -1504,7 +1504,7 @@ void GLGizmoSVG::draw_filename(){
|
||||
m_volume_shape.svg_file = svg_file_new; // clear data
|
||||
}
|
||||
} else if (ImGui::IsItemHovered()) {
|
||||
tooltip = _u8L("Change to another .svg file");
|
||||
tooltip = _u8L("Change to another SVG file.");
|
||||
}
|
||||
|
||||
std::string forget_path = _u8L("Forget the file path");
|
||||
@@ -1586,7 +1586,7 @@ void GLGizmoSVG::draw_filename(){
|
||||
|
||||
}
|
||||
} else if (ImGui::IsItemHovered()) {
|
||||
tooltip = _u8L("Save as '.svg' file");
|
||||
tooltip = _u8L("Save as SVG file.");
|
||||
}
|
||||
|
||||
//draw(get_icon(m_icons, IconType::save));
|
||||
@@ -1885,13 +1885,13 @@ void GLGizmoSVG::draw_rotation()
|
||||
ImGui::SameLine(m_gui_cfg->input_offset);
|
||||
ImGui::SetNextItemWidth(m_gui_cfg->input_width);
|
||||
|
||||
// slider for Clock-wise angle in degress
|
||||
// slider for Clockwise angle in degress
|
||||
// stored angle is optional CCW and in radians
|
||||
// Convert stored value to degress
|
||||
// minus create clock-wise roation from CCW
|
||||
// minus create clockwise roation from CCW
|
||||
float angle = m_angle.value_or(0.f);
|
||||
float angle_deg = static_cast<float>(-angle * 180 / M_PI);
|
||||
if (m_imgui->slider_float("##angle", &angle_deg, limits.angle.min, limits.angle.max, u8"%.2f °", 1.f, false, _L("Rotate text Clock-wise."))){
|
||||
if (m_imgui->slider_float("##angle", &angle_deg, limits.angle.min, limits.angle.max, u8"%.2f °", 1.f, false, _L("Rotate text Clockwise."))){
|
||||
// convert back to radians and CCW
|
||||
double angle_rad = -angle_deg * M_PI / 180.0;
|
||||
Geometry::to_range_pi_pi(angle_rad);
|
||||
|
||||
@@ -105,7 +105,7 @@ void OAuthJob::process(Ctl& ctl)
|
||||
|
||||
// Handle timeout
|
||||
if (!received && ctl.was_canceled()) {
|
||||
_data.result->error_message = _u8L("User cancelled.");
|
||||
_data.result->error_message = _u8L("User canceled.");
|
||||
} else {
|
||||
// Wait a while to ensure the response has sent
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(1500));
|
||||
|
||||
@@ -2514,7 +2514,7 @@ void MainFrame::init_menubar_as_editor()
|
||||
append_menu_item(export_menu, wxID_ANY, _L("Export all objects as STLs") + dots, _L("Export all objects as STLs"),
|
||||
[this](wxCommandEvent&) { if (m_plater) m_plater->export_stl(false, false, true); }, "menu_export_stl", nullptr,
|
||||
[this](){return can_export_model(); }, this);
|
||||
append_menu_item(export_menu, wxID_ANY, _L("Export Generic 3MF") + dots/* + "\t" + ctrl + "G"*/, _L("Export 3mf file without using some 3mf-extensions"),
|
||||
append_menu_item(export_menu, wxID_ANY, _L("Export Generic 3MF") + dots/* + "\t" + ctrl + "G"*/, _L("Export 3MF file without using some 3mf-extensions."),
|
||||
[this](wxCommandEvent&) { if (m_plater) m_plater->export_core_3mf(); }, "menu_export_sliced_file", nullptr,
|
||||
[this](){return can_export_model(); }, this);
|
||||
// BBS export .gcode.3mf
|
||||
|
||||
@@ -83,7 +83,7 @@ MediaFilePanel::MediaFilePanel(wxWindow * parent)
|
||||
m_button_video = new ::Button(m_type_panel, _L("Video"), "", wxBORDER_NONE);
|
||||
m_button_video->SetToolTip(_L("Switch to video files."));
|
||||
m_button_model = new ::Button(m_type_panel, _L("Model"), "", wxBORDER_NONE);
|
||||
m_button_video->SetToolTip(_L("Switch to 3mf model files."));
|
||||
m_button_video->SetToolTip(_L("Switch to 3MF model files."));
|
||||
for (auto b : {m_button_timelapse, m_button_video, m_button_model}) {
|
||||
b->SetBackgroundColor(background);
|
||||
b->SetCanFocus(false);
|
||||
|
||||
@@ -548,7 +548,7 @@ void DeleteConfirmDialog::on_dpi_changed(const wxRect &suggested_rect) {}
|
||||
|
||||
|
||||
Newer3mfVersionDialog::Newer3mfVersionDialog(wxWindow *parent, const Semver *file_version, const Semver *cloud_version, wxString new_keys)
|
||||
: DPIDialog(parent ? parent : nullptr, wxID_ANY, wxString(SLIC3R_APP_FULL_NAME " - ") + _L("Newer 3mf version"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX)
|
||||
: DPIDialog(parent ? parent : nullptr, wxID_ANY, wxString(SLIC3R_APP_FULL_NAME " - ") + _L("Newer 3MF version"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX)
|
||||
, m_file_version(file_version)
|
||||
, m_cloud_version(cloud_version)
|
||||
, m_new_keys(new_keys)
|
||||
@@ -584,15 +584,15 @@ wxBoxSizer *Newer3mfVersionDialog::get_msg_sizer()
|
||||
wxBoxSizer * horizontal_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
wxString msg_str;
|
||||
if (file_version_newer) {
|
||||
text1 = new wxStaticText(this, wxID_ANY, _L("The 3mf file version is in Beta and it is newer than the current OrcaSlicer version."));
|
||||
text1 = new wxStaticText(this, wxID_ANY, _L("The 3MF file version is in Beta and it is newer than the current OrcaSlicer version."));
|
||||
wxStaticText * text2 = new wxStaticText(this, wxID_ANY, _L("If you would like to try Orca Slicer Beta, you may click to"));
|
||||
wxHyperlinkCtrl *github_link = new wxHyperlinkCtrl(this, wxID_ANY, _L("Download Beta Version"), "https://github.com/bambulab/BambuStudio/releases");
|
||||
horizontal_sizer->Add(text2, 0, wxEXPAND, 0);
|
||||
horizontal_sizer->Add(github_link, 0, wxEXPAND | wxLEFT, 5);
|
||||
|
||||
} else {
|
||||
text1 = new wxStaticText(this, wxID_ANY, _L("The 3mf file version is newer than the current Orca Slicer version."));
|
||||
wxStaticText *text2 = new wxStaticText(this, wxID_ANY, _L("Update your Orca Slicer could enable all functionality in the 3mf file."));
|
||||
text1 = new wxStaticText(this, wxID_ANY, _L("The 3MF file version is newer than the current OrcaSlicer version."));
|
||||
wxStaticText *text2 = new wxStaticText(this, wxID_ANY, _L("Updating your OrcaSlicer could enable all functionality in the 3MF file."));
|
||||
horizontal_sizer->Add(text2, 0, wxEXPAND, 0);
|
||||
}
|
||||
Semver app_version = *(Semver::parse(SLIC3R_VERSION));
|
||||
|
||||
@@ -163,7 +163,7 @@ bool ObjColorDialog::Show(bool show) {
|
||||
ObjColorDialog::ObjColorDialog(wxWindow *parent, Slic3r::ObjDialogInOut &in_out, const std::vector<std::string> &extruder_colours)
|
||||
: DPIDialog(parent ? parent : static_cast<wxWindow *>(wxGetApp().mainframe),
|
||||
wxID_ANY,
|
||||
_(L("Obj file Import color")),
|
||||
_(L("OBJ file import color")),
|
||||
wxDefaultPosition,
|
||||
wxDefaultSize,
|
||||
wxDEFAULT_DIALOG_STYLE /* | wxRESIZE_BORDER*/)
|
||||
@@ -199,12 +199,12 @@ ObjColorDialog::ObjColorDialog(wxWindow *parent, Slic3r::ObjDialogInOut &in_out,
|
||||
|
||||
wxStaticText *error_mtl_title = new wxStaticText(this, wxID_ANY, _L("Some faces don't have color defined."));
|
||||
if (!in_out.lost_material_name.empty()) {
|
||||
error_mtl_title->SetLabel(_L("mtl file exist error,could not find the material:") + " " + in_out.lost_material_name + ".");
|
||||
error_mtl_title->SetLabel(_L("MTL file exist error, could not find the material:") + " " + in_out.lost_material_name + ".");
|
||||
}
|
||||
error_mtl_title->SetFont(Label::Head_12);
|
||||
error_mtl_sizer->Add(error_mtl_title, 0, wxALIGN_LEFT | wxBOTTOM | wxTOP, FromDIP(5));
|
||||
|
||||
wxStaticText *tip_title = new wxStaticText(this, wxID_ANY, _L("Please check obj or mtl file."));
|
||||
wxStaticText *tip_title = new wxStaticText(this, wxID_ANY, _L("Please check OBJ or MTL file."));
|
||||
tip_title->SetFont(Label::Head_12);
|
||||
error_mtl_sizer->Add(tip_title, 0, wxALIGN_LEFT | wxBOTTOM | wxTOP, FromDIP(5));
|
||||
|
||||
|
||||
@@ -3159,7 +3159,7 @@ void Sidebar::sync_ams_list(bool is_from_big_sync_btn)
|
||||
wxGetApp().app_config ->set("ams_filament_ids", p->ams_list_device, ams_filament_ids);
|
||||
if (!unknowns.empty()) {
|
||||
MessageDialog dlg(this,
|
||||
_L("There are some unknown or uncompatible filaments mapped to generic preset.\nPlease update Orca Slicer or restart Orca Slicer to check if there is an update to system presets.") + detail,
|
||||
_L("There are some unknown or incompatible filaments mapped to generic preset.\nPlease update Orca Slicer or restart Orca Slicer to check if there is an update to system presets.") + detail,
|
||||
_L("Sync filaments with AMS"), wxOK);
|
||||
dlg.ShowModal();
|
||||
}
|
||||
@@ -5508,14 +5508,14 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_
|
||||
// do not reset the model config
|
||||
load_config = false;
|
||||
if(load_type != LoadType::LoadGeometry)
|
||||
show_info(q, _L("The 3mf is not supported by OrcaSlicer, load geometry data only."), _L("Load 3mf"));
|
||||
show_info(q, _L("The 3MF is not supported by OrcaSlicer, loading geometry data only."), _L("Load 3MF"));
|
||||
}
|
||||
// else if (load_config && (file_version.maj() != app_version.maj())) {
|
||||
// // version mismatch, only load geometries
|
||||
// load_config = false;
|
||||
// if (!load_model) {
|
||||
// // only load config case, return directly
|
||||
// show_info(q, _L("The Config cannot be loaded."), _L("Load 3mf"));
|
||||
// show_info(q, _L("The Config cannot be loaded."), _L("Load 3MF"));
|
||||
// q->skip_thumbnail_invalid = false;
|
||||
// return empty_result;
|
||||
// }
|
||||
@@ -5526,9 +5526,9 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_
|
||||
// q->select_plate(0);
|
||||
// if (load_type != LoadType::LoadGeometry) {
|
||||
// if (en_3mf_file_type == En3mfType::From_BBS)
|
||||
// show_info(q, _L("The 3mf is generated by old Orca Slicer, load geometry data only."), _L("Load 3mf"));
|
||||
// show_info(q, _L("The 3MF was generated by an old OrcaSlicer, loading geometry data only."), _L("Load 3MF"));
|
||||
// else
|
||||
// show_info(q, _L("The 3mf is not supported by OrcaSlicer, load geometry data only."), _L("Load 3mf"));
|
||||
// show_info(q, _L("The 3MF is not supported by OrcaSlicer, loading geometry data only."), _L("Load 3MF"));
|
||||
// }
|
||||
// for (ModelObject *model_object : model.objects) {
|
||||
// model_object->config.reset();
|
||||
@@ -5562,7 +5562,7 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_
|
||||
|
||||
} else if (load_config && (file_version > app_version)) {
|
||||
if (config_substitutions.unrecogized_keys.size() > 0) {
|
||||
wxString text = wxString::Format(_L("The 3mf's version %s is newer than %s's version %s, found following unrecognized keys:"),
|
||||
wxString text = wxString::Format(_L("The 3MF file version %s is newer than %s's version %s, found the following unrecognized keys:"),
|
||||
file_version.to_string(), std::string(SLIC3R_APP_FULL_NAME), app_version.to_string());
|
||||
text += "\n";
|
||||
bool first = true;
|
||||
@@ -5580,21 +5580,21 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_
|
||||
context += "\n\n";
|
||||
// context += into_u8(append);
|
||||
context += append;
|
||||
show_info(q, context, _L("Newer 3mf version"));
|
||||
show_info(q, context, _L("Newer 3MF version"));
|
||||
}
|
||||
else {
|
||||
//if the minor version is not matched
|
||||
if (file_version.min() != app_version.min()) {
|
||||
wxString text = wxString::Format(_L("The 3mf's version %s is newer than %s's version %s, Suggest to upgrade your software."),
|
||||
wxString text = wxString::Format(_L("The 3MF file version %s is newer than %s's version %s, we suggest to upgrade your software."),
|
||||
file_version.to_string(), std::string(SLIC3R_APP_FULL_NAME), app_version.to_string());
|
||||
text += "\n";
|
||||
show_info(q, text, _L("Newer 3mf version"));
|
||||
show_info(q, text, _L("Newer 3MF version"));
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (load_config && config_loaded.empty()) {
|
||||
load_config = false;
|
||||
show_info(q, _L("The 3mf is generated by old OrcaSlicer, load geometry data only."), _L("Load 3mf"));
|
||||
show_info(q, _L("The 3MF file was generated by an old OrcaSlicer version, loading geometry data only."), _L("Load 3MF"));
|
||||
}
|
||||
else if (!load_config) {
|
||||
// reset config except color
|
||||
@@ -5689,7 +5689,7 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << ":" << __LINE__ << boost::format("%1%: %2%")%it->first %it->second;
|
||||
//
|
||||
NotificationManager *notify_manager = q->get_notification_manager();
|
||||
std::string error_message = L("Invalid values found in the 3mf:");
|
||||
std::string error_message = L("Invalid values found in the 3MF:");
|
||||
error_message += "\n";
|
||||
for (std::map<std::string, std::string>::iterator it=validity.begin(); it!=validity.end(); ++it)
|
||||
error_message += "-" + it->first + ": " + it->second + "\n";
|
||||
@@ -5780,8 +5780,8 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_
|
||||
for (std::set<std::string>::iterator it=modified_gcodes.begin(); it!=modified_gcodes.end(); ++it)
|
||||
warning_message += "-" + *it + "\n";
|
||||
warning_message += "\n";
|
||||
//show_info(q, _L("The 3mf has the following modified G-code in filament or printer presets:") + warning_message + _L("Please confirm that all modified G-code is safe to prevent any damage to the machine!"), _L("Modified G-code"));
|
||||
MessageDialog dlg(q, _L("The 3mf has the following modified G-code in filament or printer presets:") + warning_message + _L("Please confirm that all modified G-code is safe to prevent any damage to the machine!"), _L("Modified G-code"));
|
||||
//show_info(q, _L("The 3MF has the following modified G-code in filament or printer presets:") + warning_message + _L("Please confirm that all modified G-code is safe to prevent any damage to the machine!"), _L("Modified G-code"));
|
||||
MessageDialog dlg(q, _L("The 3MF has the following modified G-code in filament or printer presets:") + warning_message + _L("Please confirm that all modified G-code is safe to prevent any damage to the machine!"), _L("Modified G-code"));
|
||||
dlg.show_dsa_button();
|
||||
auto res = dlg.ShowModal();
|
||||
if (dlg.get_checkbox_state())
|
||||
@@ -5793,8 +5793,8 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_
|
||||
for (std::set<std::string>::iterator it=modified_gcodes.begin(); it!=modified_gcodes.end(); ++it)
|
||||
warning_message += "-" + *it + "\n";
|
||||
warning_message += "\n";
|
||||
//show_info(q, _L("The 3mf has the following customized filament or printer presets:") + warning_message + _L("Please confirm that the G-code within these presets is safe to prevent any damage to the machine!"), _L("Customized Preset"));
|
||||
MessageDialog dlg(q, _L("The 3mf has the following customized filament or printer presets:") + from_u8(warning_message)+ _L("Please confirm that the G-code within these presets is safe to prevent any damage to the machine!"), _L("Customized Preset"));
|
||||
//show_info(q, _L("The 3MF has the following customized filament or printer presets:") + warning_message + _L("Please confirm that the G-code within these presets is safe to prevent any damage to the machine!"), _L("Customized Preset"));
|
||||
MessageDialog dlg(q, _L("The 3MF has the following customized filament or printer presets:") + from_u8(warning_message)+ _L("Please confirm that the G-code within these presets is safe to prevent any damage to the machine!"), _L("Customized Preset"));
|
||||
dlg.show_dsa_button();
|
||||
auto res = dlg.ShowModal();
|
||||
if (dlg.get_checkbox_state())
|
||||
@@ -5982,7 +5982,7 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_
|
||||
if (!isUtf8StepFile) {
|
||||
const auto no_warn = wxGetApp().app_config->get_bool("step_not_utf8_no_warn");
|
||||
if (!no_warn) {
|
||||
MessageDialog dlg(nullptr, _L("Name of components inside step file is not UTF8 format!") + "\n\n" + _L("The name may show garbage characters!"),
|
||||
MessageDialog dlg(nullptr, _L("Name of components inside STEP file is not UTF8 format!") + "\n\n" + _L("The name may show garbage characters!"),
|
||||
wxString(SLIC3R_APP_FULL_NAME " - ") + _L("Attention!"), wxOK | wxICON_INFORMATION);
|
||||
dlg.show_dsa_button(_L("Remember my choice."));
|
||||
dlg.ShowModal();
|
||||
@@ -11410,7 +11410,7 @@ void Plater::import_model_id(wxString download_info)
|
||||
int res = 0;
|
||||
std::string http_body;
|
||||
|
||||
msg = _L("prepare 3mf file...");
|
||||
msg = _L("prepare 3MF file...");
|
||||
|
||||
//gets the number of files with the same name
|
||||
std::vector<wxString> vecFiles;
|
||||
|
||||
@@ -1193,7 +1193,7 @@ void PreferencesDialog::create_items()
|
||||
|
||||
std::vector<wxString> projectLoadSettingsBehaviourOptions = {_L("Load All"), _L("Ask When Relevant"), _L("Always Ask"), _L("Load Geometry Only")};
|
||||
std::vector<string> projectLoadSettingsConfigOptions = { OPTION_PROJECT_LOAD_BEHAVIOUR_LOAD_ALL, OPTION_PROJECT_LOAD_BEHAVIOUR_ASK_WHEN_RELEVANT, OPTION_PROJECT_LOAD_BEHAVIOUR_ALWAYS_ASK, OPTION_PROJECT_LOAD_BEHAVIOUR_LOAD_GEOMETRY };
|
||||
auto item_project_load = create_item_combobox(_L("Load behaviour"), _L("Should printer/filament/process settings be loaded when opening a .3mf?"), SETTING_PROJECT_LOAD_BEHAVIOUR, projectLoadSettingsBehaviourOptions, projectLoadSettingsConfigOptions);
|
||||
auto item_project_load = create_item_combobox(_L("Load behaviour"), _L("Should printer/filament/process settings be loaded when opening a 3MF file?"), SETTING_PROJECT_LOAD_BEHAVIOUR, projectLoadSettingsBehaviourOptions, projectLoadSettingsConfigOptions);
|
||||
g_sizer->Add(item_project_load);
|
||||
|
||||
auto item_max_recent_count = create_item_input(_L("Maximum recent files"), "", _L("Maximum count of recent files"), "max_recent_count", [](wxString value) {
|
||||
@@ -1359,13 +1359,13 @@ void PreferencesDialog::create_items()
|
||||
//// ASSOCIATE > Extensions
|
||||
g_sizer->Add(create_item_title(_L("Associate files to OrcaSlicer")), 1, wxEXPAND);
|
||||
|
||||
auto item_associate_3mf = create_item_checkbox(_L("Associate .3mf files to OrcaSlicer"), _L("If enabled, sets OrcaSlicer as default application to open .3mf files") , "associate_3mf");
|
||||
auto item_associate_3mf = create_item_checkbox(_L("Associate 3MF files to OrcaSlicer"), _L("If enabled, sets OrcaSlicer as default application to open 3MF files.") , "associate_3mf");
|
||||
g_sizer->Add(item_associate_3mf);
|
||||
|
||||
auto item_associate_stl = create_item_checkbox(_L("Associate .stl files to OrcaSlicer"), _L("If enabled, sets OrcaSlicer as default application to open .stl files") , "associate_stl");
|
||||
auto item_associate_stl = create_item_checkbox(_L("Associate STL files to OrcaSlicer"), _L("If enabled, sets OrcaSlicer as default application to open STL files.") , "associate_stl");
|
||||
g_sizer->Add(item_associate_stl);
|
||||
|
||||
auto item_associate_step = create_item_checkbox(_L("Associate .step/.stp files to OrcaSlicer"), _L("If enabled, sets OrcaSlicer as default application to open .step files"), "associate_step");
|
||||
auto item_associate_step = create_item_checkbox(_L("Associate STEP files to OrcaSlicer"), _L("If enabled, sets OrcaSlicer as default application to open STEP files."), "associate_step");
|
||||
g_sizer->Add(item_associate_step);
|
||||
|
||||
//// ASSOCIATE > WebLinks
|
||||
|
||||
@@ -19,8 +19,8 @@ namespace GUI {
|
||||
|
||||
static wxString PUBLISH_STEP_STRING[STEP_COUNT] = {
|
||||
_L("Slice all plate to obtain time and filament estimation"),
|
||||
_L("Packing project data into 3mf file"),
|
||||
_L("Uploading 3mf"),
|
||||
_L("Packing project data into 3MF file"),
|
||||
_L("Uploading 3MF"),
|
||||
_L("Jump to model publish web page")
|
||||
};
|
||||
|
||||
@@ -136,7 +136,7 @@ void PublishDialog::cancel()
|
||||
{
|
||||
m_was_cancelled = true;
|
||||
m_btn_cancel->Enable(false);
|
||||
m_text_progress->SetLabelText(_L("Publish was cancelled"));
|
||||
m_text_progress->SetLabelText(_L("Publish was canceled"));
|
||||
wxCloseEvent evt;
|
||||
this->on_close(evt);
|
||||
}
|
||||
|
||||
@@ -965,7 +965,7 @@ void EditDevNameDialog::on_edit_name(wxCommandEvent &e)
|
||||
|
||||
if (m_valid_type == Valid && new_dev_name.length() > 32)
|
||||
{
|
||||
info_line = _L("The name is not allowed to exceeds 32 characters.");
|
||||
info_line = _L("The name is not allowed to exceed 32 characters.");
|
||||
m_valid_type = NoValid;
|
||||
}
|
||||
|
||||
|
||||
@@ -1299,7 +1299,7 @@ wxPanel* SendMultiMachinePage::create_page()
|
||||
|
||||
//m_table_head_sizer->Add(m_task_status, 0, wxALIGN_CENTER_VERTICAL, 0);
|
||||
|
||||
m_ams = new Button(m_table_head_panel, _L("Ams Status"), "toolbar_double_directional_arrow", wxNO_BORDER, ICON_SINGLE_SIZE, false);
|
||||
m_ams = new Button(m_table_head_panel, _L("AMS Status"), "toolbar_double_directional_arrow", wxNO_BORDER, ICON_SINGLE_SIZE, false);
|
||||
m_ams->SetBackgroundColor(head_bg);
|
||||
m_ams->SetCornerRadius(0);
|
||||
m_ams->SetFont(TABLE_HEAD_FONT);
|
||||
|
||||
@@ -728,7 +728,7 @@ bool SendSystemInfoDialog::send_info(wxString& message)
|
||||
if (job_done) // UI thread wants us to cancel.
|
||||
cancel = true;
|
||||
if (cancel)
|
||||
//result = { Result::Cancelled, _L("Sending system info was cancelled.") };
|
||||
//result = { Result::Cancelled, _L("Sending system info was canceled.") };
|
||||
result = {Result::Cancelled, wxEmptyString};
|
||||
})
|
||||
.perform_sync();
|
||||
|
||||
@@ -3532,14 +3532,14 @@ void StatusPanel::update_ams_control_state(std::string ams_id, std::string slot_
|
||||
for (auto ext : obj->GetExtderSystem()->GetExtruders()) {
|
||||
if (ext.GetSlotNow().ams_id == ams_id && ext.GetSlotNow().slot_id == slot_id)
|
||||
{
|
||||
load_error_info = _L("Current slot has alread been loaded");
|
||||
load_error_info = _L("Current slot has already been loaded");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (auto ext : obj->GetExtderSystem()->GetExtruders()) {
|
||||
if (ext.GetSlotNow().ams_id == ams_id && ext.GetSlotNow().slot_id == slot_id)
|
||||
{
|
||||
load_error_info = _L("Current slot has alread been loaded");
|
||||
load_error_info = _L("Current slot has already been loaded");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1720,14 +1720,14 @@ void Tab::on_value_change(const std::string& opt_key, const boost::any& value)
|
||||
wxString msg_text;
|
||||
if (!is_soluble_filament(interface_filament_id)) {
|
||||
msg_text = _L("When using support material for the support interface, we recommend the following settings:\n"
|
||||
"0 top Z distance, 0 interface spacing, interlaced rectilinear pattern and disable independent support layer height");
|
||||
"0 top Z distance, 0 interface spacing, interlaced rectilinear pattern and disable independent support layer height.");
|
||||
msg_text += "\n\n" + _L("Change these settings automatically?\n"
|
||||
"Yes - Change these settings automatically\n"
|
||||
"No - Do not change these settings for me");
|
||||
} else {
|
||||
msg_text = _L("When using soluble material for the support interface, We recommend the following settings:\n"
|
||||
"0 top z distance, 0 interface spacing, interlaced rectilinear pattern, disable independent support layer height \n"
|
||||
"and use soluble materials for both support interface and support base");
|
||||
msg_text = _L("When using soluble material for the support interface, we recommend the following settings:\n"
|
||||
"0 top Z distance, 0 interface spacing, interlaced rectilinear pattern, disable independent support layer height\n"
|
||||
"and use soluble materials for both support interface and support base.");
|
||||
msg_text += "\n\n" + _L("Change these settings automatically? \n"
|
||||
"Yes - Change these settings automatically\n"
|
||||
"No - Do not change these settings for me");
|
||||
|
||||
@@ -784,7 +784,7 @@ void FanControlPopupNew::UpdatePartSubMode()
|
||||
m_cooling_filter_switch_panel->Bind(EVT_FANCTRL_SWITCH, [this] (wxCommandEvent& evt)
|
||||
{
|
||||
if (m_obj && m_obj->is_in_printing()) {
|
||||
MessageDialog msg_wingow(nullptr, _L("Enabling filtration during printing may reduce cooling and affect print qulity. Please choose carefully"), "", wxICON_WARNING | wxCANCEL | wxOK);
|
||||
MessageDialog msg_wingow(nullptr, _L("Enabling filtration during printing may reduce cooling and affect print quality. Please choose carefully."), "", wxICON_WARNING | wxCANCEL | wxOK);
|
||||
msg_wingow.SetButtonLabel(wxID_OK, _L("Change Anyway"));
|
||||
if (msg_wingow.ShowModal() != wxID_OK) { return; }
|
||||
}
|
||||
|
||||
@@ -116,7 +116,7 @@ void FilamentLoad::SetFilamentStep(FilamentStep item_idx, FilamentStepType f_typ
|
||||
}
|
||||
}
|
||||
|
||||
wxString slot_info = L"Ams-";
|
||||
wxString slot_info = L"AMS-";
|
||||
slot_info = slot_info + std::to_string(m_ams_id);
|
||||
slot_info = slot_info + L'-';
|
||||
slot_info = slot_info + std::to_string(m_slot_id);
|
||||
|
||||
@@ -53,7 +53,7 @@ extern "C"{
|
||||
|
||||
namespace Slic3r {
|
||||
|
||||
static std::string saving_failed_str = L("Saving objects into the 3mf failed.");
|
||||
static std::string saving_failed_str = L("Saving objects into the 3MF failed.");
|
||||
|
||||
HMODULE s_hRuntimeObjectLibrary = nullptr;
|
||||
FunctionRoInitialize s_RoInitialize = nullptr;
|
||||
@@ -372,7 +372,7 @@ bool fix_model_by_win10_sdk_gui(ModelObject &model_object, int volume_idx, GUI::
|
||||
mo->add_instance();
|
||||
if (!Slic3r::store_3mf(path_src.string().c_str(), &model, nullptr, false, nullptr, false)) {
|
||||
boost::filesystem::remove(path_src);
|
||||
throw Slic3r::RuntimeError(L("Exporting 3mf file failed"));
|
||||
throw Slic3r::RuntimeError(L("Exporting 3MF file failed"));
|
||||
}
|
||||
model.clear_objects();
|
||||
model.clear_materials();
|
||||
@@ -388,15 +388,15 @@ bool fix_model_by_win10_sdk_gui(ModelObject &model_object, int volume_idx, GUI::
|
||||
bool loaded = Slic3r::load_3mf(path_dst.string().c_str(), config, config_substitutions, &model, false);
|
||||
boost::filesystem::remove(path_dst);
|
||||
if (! loaded)
|
||||
throw Slic3r::RuntimeError(L("Import 3mf file failed"));
|
||||
throw Slic3r::RuntimeError(L("Import 3MF file failed"));
|
||||
if (model.objects.size() == 0)
|
||||
throw Slic3r::RuntimeError(L("Repaired 3mf file does not contain any object"));
|
||||
throw Slic3r::RuntimeError(L("Repaired 3MF file does not contain any object"));
|
||||
if (model.objects.size() > 1)
|
||||
throw Slic3r::RuntimeError(L("Repaired 3mf file contains more than one object"));
|
||||
throw Slic3r::RuntimeError(L("Repaired 3MF file contains more than one object"));
|
||||
if (model.objects.front()->volumes.size() == 0)
|
||||
throw Slic3r::RuntimeError(L("Repaired 3mf file does not contain any volume"));
|
||||
throw Slic3r::RuntimeError(L("Repaired 3MF file does not contain any volume"));
|
||||
if (model.objects.front()->volumes.size() > 1)
|
||||
throw Slic3r::RuntimeError(L("Repaired 3mf file contains more than one volume"));
|
||||
throw Slic3r::RuntimeError(L("Repaired 3MF file contains more than one volume"));
|
||||
meshes_repaired.emplace_back(std::move(model.objects.front()->volumes.front()->mesh()));
|
||||
}
|
||||
for (size_t i = 0; i < volumes.size(); ++ i) {
|
||||
|
||||
Reference in New Issue
Block a user