Skip to content

Commit

Permalink
Merge branch 'merill-merge'
Browse files Browse the repository at this point in the history
  • Loading branch information
remi durand committed Jul 10, 2021
2 parents 3c2be64 + 6071cd7 commit e017b76
Show file tree
Hide file tree
Showing 11 changed files with 91 additions and 39 deletions.
4 changes: 2 additions & 2 deletions resources/calibration/filament_flow/fr_filament_flow.html
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,9 @@ <h4>Deuxi&egrave;me &eacute;tape, &agrave; partir de +20%.:</h4>
<td style="text-align: center;">Bon</td>
</tr>
</table>
<p>Ici, nous pouvons voir que la boucle n'est pas tr&egrave;s bonne dans les -8 et -6. Le -4 est presque rond mais pas tout &agrave; fait, il indique donc que la buse a perdu de la pression. Le -2 est presque bon mais le 0 est le seul qui peut &ecirc;tre consid&eacute;r&eacute; comme "bon", et m&ecirc;me ainsi la boucle n'est pas parfaite. </p>
<p>Ici, nous pouvons voir que le cercle n'est pas tr&egrave;s bon dans les mod&egrave;les -8 et -6. Le -4 est presque rond mais pas tout &agrave; fait, il indique donc que la buse a perdu de la pression. Le -2 est presque bon mais le 0 est le seul qui peut &ecirc;tre consid&eacute;r&eacute; comme "bon", et m&ecirc;me ainsi le cercle n'est pas parfaite. </p>
<h2>Comment r&eacute;gler votre imprimante</h2>
<p>Vous devez modifier le multiplicateur d'extrusion pour le filament pour lequel vous calibrez (et le sauvegarder). Formule pour le nouveau multiplicateur d'extrusion : new_multiplier = ( (100 + nombre_choisi) / 100 ) * old_multiplier<br />
<p>Vous devez modifier le multiplicateur d'extrusion pour le filament pour lequel vous calibrez (et le sauvegarder). Formule pour le nouveau multiplicateur d'extrusion : nouveau_multiplicateur = ( (100 + nombre_choisi) / 100 ) * ancien_multiplicateur<br />
Exemple : premi&egrave;re &eacute;tape, je choisis le -10, donc j'ai ((100-10)/100) * 1 = (0.9) * 1 = 0.9<br />
deuxi&egrave;me &eacute;tape, je choisis +5, donc j'ai ((100+5)/100) * 0.9 = (1.05) * 0.9 = 0.945
</p>
Expand Down
Binary file added resources/icons/PrusaSlicer_256_icns.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added resources/icons/Slic3r_256_icns.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added resources/icons/SuperSlicer_256_icns.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 12 additions & 8 deletions resources/localization/fr/Slic3r.po
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: Slic3r\n"
"POT-Creation-Date: 2021-06-26 00:00\n"
"PO-Revision-Date: 2021-06-26 00:00\n"
"POT-Creation-Date: 2021-07-10 00:00\n"
"PO-Revision-Date: 2021-07-10 00:00\n"
"Last-Translator: 5axes\n"
"Language-Team:5axes, supermerill\n"
"MIME-Version: 1.0\n"
Expand Down Expand Up @@ -1440,6 +1440,9 @@ msgstr ""
"Peut être utile pour éviter que les engrenages bondtech ne déforment les pointes encore un peu chaudes,"
" mais ce n'est généralement pas nécessaire."

msgid "Can't process the repetier return message: missing field '%s'"
msgstr "Impossible d'interpréter le message retourné par Repetier: champ '%s' manquant"

msgid "Cancel"
msgstr "Annuler"

Expand Down Expand Up @@ -2039,7 +2042,9 @@ msgid ""
"Cracks smaller than 2x gap closing radius are being filled during the "
"triangle mesh slicing. The gap closing operation may reduce the final print "
"resolution, therefore it is advisable to keep the value reasonably low."
msgstr "Les fentes d'une taille inférieure à 2x le rayon de fermeture de l'espacement sont remplies au cours du tranchage par maillage triangulaire. L'opération de fermeture de l'espacement peut réduire la résolution de l'impression finale, aussi est-il conseillé de conserver une valeur relativement basse."
msgstr ""
"Les fentes d'une taille inférieure à 2x le rayon de fermeture de l'espacement sont remplies au cours du tranchage du maillage triangulaire."
" L'opération de fermeture de l'espacement peut réduire la résolution de l'impression finale, aussi est-il conseillé de conserver une valeur relativement basse."

msgid "CRC-32 check failed"
msgstr "Échec du test CRC-32"
Expand Down Expand Up @@ -3620,7 +3625,7 @@ msgid "Filament notes"
msgstr "Notes du filament"

msgid "Filament Overrides"
msgstr "Annulations de Filament"
msgstr "Rétractions de Filament"

msgid "Filament parking position"
msgstr "Position d'attente du filament"
Expand Down Expand Up @@ -4440,7 +4445,6 @@ msgstr ""
"* Si vous voulez seulement sauvegarder les valeurs, choisissez l'option ‘Utiliser aussi pour l'estimation du temps’ et écrivez vous-même les limites dans la section G-Code personnalisé.\n"
"* L’option ‘Utiliser uniquement pour sauvegarde’ ne fera d’écrire les données dans les paramètres sauvegardés du G-Code."


msgid ""
"How to compute the vertical z-distance.\n"
"From filament: it uses the nearest bit of the filament. When a bridge is "
Expand Down Expand Up @@ -5685,7 +5689,7 @@ msgid "Material Settings Tab"
msgstr "Onglet de réglages du matériau"

msgid "material_correction"
msgstr "material_correction"
msgstr "Correction matière"

msgid "Materials"
msgstr "Matériaux"
Expand Down Expand Up @@ -8508,7 +8512,7 @@ msgid "Sequential printing"
msgstr "Impression séquentielle"

msgid "Sequential slider applied only to top layer"
msgstr "Barre de défilement séquentielle appliquée uniquement à la couche du dessus"
msgstr "Barre de défilement séquentielle appliquée uniquement à la couche active"

msgid "Serial port:"
msgstr "Port série :"
Expand Down Expand Up @@ -9181,7 +9185,7 @@ msgid "Slice a file into a G-code, save as"
msgstr "Découper un fichier en G-Code, enregistrer sous"

msgid "Slice gap closing radius"
msgstr "Découper le rayon de fermeture de l'espacement"
msgstr "Distance de fermeture des faces disjointes"

msgid "Slice now"
msgstr "Découper maintenant"
Expand Down
2 changes: 1 addition & 1 deletion resources/profiles
Submodule profiles updated 2 files
+1 −0 Artillery.idx
+3 −3 Artillery.ini
39 changes: 39 additions & 0 deletions src/libslic3r/MedialAxis.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1579,6 +1579,28 @@ MedialAxis::taper_ends(ThickPolylines& pp)
}
}

double
check_circular(ExPolygon& expolygon, coord_t max_variation) {
if (expolygon.holes.size() > 0) return 0;

//test if convex
if (expolygon.contour.concave_points().empty() && expolygon.contour.points.size() > 3) {
// Computing circle center
Point center = expolygon.contour.centroid();
double radius_min = std::numeric_limits<float>::max(), radius_max = 0;
for (int i = 0; i < expolygon.contour.points.size(); ++i) {
double dist = expolygon.contour.points[i].distance_to(center);
radius_min = std::min(radius_min, dist);
radius_max = std::max(radius_max, dist);
}
// check with max_variation to be sure it's round enough
if (radius_max - radius_min < max_variation) {
return radius_max;
}
}
return 0;
}

void
MedialAxis::build(ThickPolylines &polylines_out)
{
Expand All @@ -1603,6 +1625,23 @@ MedialAxis::build(ThickPolylines &polylines_out)
if (this->expolygon.area() < this->min_width * this->min_width) this->expolygon = this->surface;
if (this->expolygon.area() < this->min_width * this->min_width) return;

//check for circular shape
double radius = check_circular(this->expolygon, this->min_width/4);
if (radius > 0) {
ExPolygons miniPeri = offset_ex(this->expolygon.contour, -radius / 2);
if (miniPeri.size() == 1 && miniPeri[0].holes.size() == 0) {
ThickPolyline thickPoly;
thickPoly.points = miniPeri[0].contour.points;
thickPoly.endpoints.first = false;
thickPoly.endpoints.second = false;
for (int i = 0; i < thickPoly.points.size(); i++) {
thickPoly.width.push_back(radius);
}
polylines_out.insert(polylines_out.end(), thickPoly);
return;
}
}

//std::cout << "simplify_polygon_frontier\n";
// compute the Voronoi diagram and extract medial axis polylines
ThickPolylines pp;
Expand Down
4 changes: 3 additions & 1 deletion src/libslic3r/Print.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2338,8 +2338,10 @@ void Print::_make_brim_ears(const Flow &flow, const PrintObjectPtrs &objects, Ex
Points points = poly.contour.points;
points.push_back(points.front());
points = MultiPoint::_douglas_peucker(points, scale_(object->config().brim_ears_detection_length.value));
if(points.size()>1)
if (points.size() > 1) {
points.erase(points.end() - 1);
decimated_polygon.points = points;
}
}
for (const Point &p : decimated_polygon.convex_points(brim_config.brim_ears_max_angle.value * PI / 180.0)) {
pt_ears.push_back(p);
Expand Down
2 changes: 1 addition & 1 deletion src/slic3r/GUI/MainFrame.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_S
default:
case GUI_App::EAppMode::Editor:
m_taskbar_icon = std::make_unique<PrusaSlicerTaskBarIcon>(wxTBI_DOCK);
m_taskbar_icon->SetIcon(wxIcon(Slic3r::var(SLIC3R_APP_KEY "_128px.png"), wxBITMAP_TYPE_PNG), SLIC3R_APP_KEY);
m_taskbar_icon->SetIcon(wxIcon(Slic3r::var(SLIC3R_APP_KEY "_256_icns.png"), wxBITMAP_TYPE_PNG), SLIC3R_APP_KEY);
break;
case GUI_App::EAppMode::GCodeViewer:
m_taskbar_icon = std::make_unique<GCodeViewerTaskBarIcon>(wxTBI_DOCK);
Expand Down
46 changes: 25 additions & 21 deletions src/slic3r/GUI/PhysicalPrinterDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -271,31 +271,35 @@ void PhysicalPrinterDialog::update_printers()

wxArrayString printers;
Field* rs = m_optgroup->get_field("printhost_port");
if (!host->get_printers(printers)) {
std::vector<std::string> slugs;
try {
if (!host->get_printers(printers)) {
std::vector<std::string> slugs;

Choice* choice = dynamic_cast<Choice*>(rs);
choice->set_values(slugs);
Choice* choice = dynamic_cast<Choice*>(rs);
choice->set_values(slugs);

rs->disable();
} else {
std::vector<std::string> slugs;
for (int i = 0; i < printers.size(); i++) {
slugs.push_back(printers[i].ToStdString());
}
rs->disable();
} else {
std::vector<std::string> slugs;
for (int i = 0; i < printers.size(); i++) {
slugs.push_back(printers[i].ToStdString());
}

Choice* choice = dynamic_cast<Choice*>(rs);
choice->set_values(slugs);
boost::any val = choice->get_value();
boost::any any_string_type = std::string("");
auto value_idx = std::find(slugs.begin(), slugs.end(), m_config->opt<ConfigOptionString>("printhost_port")->value);
if ((val.empty() || (any_string_type.type() == val.type() && boost::any_cast<std::string>(val) == "")) && !slugs.empty() && value_idx == slugs.end()) {
change_opt_value(*m_config, "printhost_port", slugs[0]);
choice->set_value(slugs[0],false);
} else if(value_idx != slugs.end() ){
choice->set_value(m_config->option<ConfigOptionString>("printhost_port")->value, false);
Choice* choice = dynamic_cast<Choice*>(rs);
choice->set_values(slugs);
boost::any val = choice->get_value();
boost::any any_string_type = std::string("");
auto value_idx = std::find(slugs.begin(), slugs.end(), m_config->opt<ConfigOptionString>("printhost_port")->value);
if ((val.empty() || (any_string_type.type() == val.type() && boost::any_cast<std::string>(val) == "")) && !slugs.empty() && value_idx == slugs.end()) {
change_opt_value(*m_config, "printhost_port", slugs[0]);
choice->set_value(slugs[0], false);
} else if (value_idx != slugs.end()) {
choice->set_value(m_config->option<ConfigOptionString>("printhost_port")->value, false);
}
rs->enable();
}
rs->enable();
} catch (HostNetworkError error) {
show_error(this, error.what());
}
}

Expand Down
13 changes: 8 additions & 5 deletions src/slic3r/Utils/Repetier.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,14 @@ bool Repetier::test(wxString &msg) const
std::stringstream ss(body);
pt::ptree ptree;
pt::read_json(ss, ptree);

const auto text = ptree.get_optional<std::string>("name");
res = validate_version_text(text);
if (! res) {
msg = GUI::from_u8((boost::format(_u8L("Mismatched type of print host: %s")) % (text ? *text : "Repetier")).str());

res = ptree.get_optional<std::string>("name").has_value();
if (!res)
msg = GUI::from_u8((boost::format(_u8L("Can't process the repetier return message: missing field '%s'")) % ("name")).str());
else {
res = ptree.get_optional<std::string>("printers").has_value();
if (!res)
msg = GUI::from_u8((boost::format(_u8L("Can't process the repetier return message: missing field '%s'")) % ("printers")).str());
}
}
catch (const std::exception &) {
Expand Down

0 comments on commit e017b76

Please sign in to comment.