diff --git a/resources/profiles/Anycubic.idx b/resources/profiles/Anycubic.idx index 929e600be..5d6b70641 100644 --- a/resources/profiles/Anycubic.idx +++ b/resources/profiles/Anycubic.idx @@ -1,4 +1,5 @@ min_slic3r_version = 2.3.0-beta2 +0.0.5-susi remove resolution to use default 0.0.5 Updated end g-code. min_slic3r_version = 2.3.0-alpha2 0.0.4 Fixed predator output filaname format, infill overlap. diff --git a/resources/profiles/Anycubic.ini b/resources/profiles/Anycubic.ini index 3cf93824f..0b9aa4f9b 100644 --- a/resources/profiles/Anycubic.ini +++ b/resources/profiles/Anycubic.ini @@ -5,7 +5,7 @@ name = Anycubic # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 0.0.5 +config_version = 0.0.5-susi # Where to get the updates from? config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Anycubic/ # changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1% @@ -120,7 +120,6 @@ perimeter_speed = 45 post_process = print_settings_id = raft_layers = 0 -resolution = 0 seam_position = nearest single_extruder_multi_material_priming = 0 skirts = 2 @@ -502,7 +501,6 @@ perimeter_extrusion_width = 0.45 post_process = print_settings_id = raft_layers = 0 -resolution = 0 seam_position = nearest single_extruder_multi_material_priming = 1 skirts = 2 @@ -1170,7 +1168,6 @@ wipe_tower_rotation_angle = 0 wipe_tower_bridging = 10 interface_shells = 0 bridge_flow_ratio = 0.8 -resolution = 0 xy_size_compensation = 0 elefant_foot_compensation = 0.2 clip_multipart_objects = 1 diff --git a/resources/profiles/BIBO.idx b/resources/profiles/BIBO.idx index 010ad4fd0..7b707f922 100644 --- a/resources/profiles/BIBO.idx +++ b/resources/profiles/BIBO.idx @@ -1,8 +1,7 @@ min_slic3r_version = 2.3.0-beta2 -0.0.3 Removed obsolete host keys. -min_slic3r_version = 2.2.0-alpha3 - -0.0.5 General print quality improvements (??)0.0.4 superslicer: remove top_fan_speed +0.0.5-susi remove resolution to use default +0.0.5 General print quality improvements (??) +0.0.4 superslicer: remove top_fan_speed 0.0.3 slic3r++ adaptation: overlapping & top pattern. 0.0.2 changed flow ratio from float to % 0.0.1 Multiple Print models were unified into a single one. diff --git a/resources/profiles/BIBO.ini b/resources/profiles/BIBO.ini index 7cf6d0472..b1b1f62df 100644 --- a/resources/profiles/BIBO.ini +++ b/resources/profiles/BIBO.ini @@ -5,7 +5,7 @@ name = BIBO # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 0.0.5 +config_version = 0.0.5-susi # Where to get the updates from? config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/BIBO/ @@ -79,7 +79,6 @@ perimeter_extrusion_width = 0.45 post_process = print_settings_id = raft_layers = 0 -resolution = 0 seam_position = aligned single_extruder_multi_material_priming = 0 skirts = 3 diff --git a/resources/profiles/Basic.ini b/resources/profiles/Basic.ini index 5288639ef..ef1d845b1 100644 --- a/resources/profiles/Basic.ini +++ b/resources/profiles/Basic.ini @@ -5,7 +5,7 @@ name = Custom # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the Slic3r configuration to be downgraded. -config_version = 0.1.3 +config_version = 0.1.4 # Where to get the updates from? config_update_url = @@ -287,7 +287,6 @@ perimeter_extruder = 1 post_process = print_settings_id = raft_layers = 0 -resolution = 0 seam_position = hidden skirts = 0 skirt_distance = 3 diff --git a/resources/profiles/Creality.idx b/resources/profiles/Creality.idx index 684e7b50e..9c785009f 100644 --- a/resources/profiles/Creality.idx +++ b/resources/profiles/Creality.idx @@ -1,4 +1,5 @@ min_slic3r_version = 2.3.0-beta2 +0.1.8-susi remove resolution to use default 0.0.8 Slight end g-code improvements and spool weights. min_slic3r_version = 2.3.0-alpha2 0.1.8 Fix G92 that mess up not-relative printer. diff --git a/resources/profiles/Creality.ini b/resources/profiles/Creality.ini index c29d962f8..81da998ec 100644 --- a/resources/profiles/Creality.ini +++ b/resources/profiles/Creality.ini @@ -5,7 +5,7 @@ name = Creality # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 0.1.8 +config_version = 0.1.8-susi # Where to get the updates from? config_update_url = # https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Creality/ @@ -219,7 +219,6 @@ perimeter_speed = 40 post_process = print_settings_id = raft_layers = 0 -resolution = 0 seam_position = near seam_travel_cost = 20% single_extruder_multi_material_priming = 1 diff --git a/resources/profiles/LulzBot.idx b/resources/profiles/LulzBot.idx index 62dfd7f32..52e3e5a98 100644 --- a/resources/profiles/LulzBot.idx +++ b/resources/profiles/LulzBot.idx @@ -1,4 +1,5 @@ min_slic3r_version = 2.1.0 +0.0.3-susi remove resolution to use default 0.0.3 slic3r++ adaptation: overlapping & top pattern. 0.0.2 changed flow ratio from float to % 0.0.1 Initial version diff --git a/resources/profiles/LulzBot.ini b/resources/profiles/LulzBot.ini index 0d3f702dd..76ac4362b 100644 --- a/resources/profiles/LulzBot.ini +++ b/resources/profiles/LulzBot.ini @@ -3,7 +3,7 @@ [vendor] # Vendor name will be shown by the Config Wizard. name = LulzBot -config_version = 0.0.3 +config_version = 0.0.3-susi config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/LulzBot/ [printer_model:MINI_AERO] @@ -81,7 +81,6 @@ perimeter_speed = 60 perimeters = 3 post_process = raft_layers = 0 -resolution = 0 seam_position = hidden single_extruder_multi_material_priming = 1 skirt_distance = 3 @@ -118,7 +117,7 @@ support_material_synchronize_layers = 0 support_material_threshold = 0 support_material_with_sheath = 1 support_material_xy_spacing = 50% -thin_perimeters = 0 +thin_perimeters = 1 thin_walls = 1 thin_walls_min_width = 50% thin_walls_overlap = 50% diff --git a/resources/profiles/PrusaResearch.idx b/resources/profiles/PrusaResearch.idx index a241842f0..902bc3727 100644 --- a/resources/profiles/PrusaResearch.idx +++ b/resources/profiles/PrusaResearch.idx @@ -1,4 +1,5 @@ min_slic3r_version = 2.3.0-beta2 +1.2.0-susi remove resolution to use default 1.2.0-beta1 Updated end g-code. Added full_fan_speed_layer values. min_slic3r_version = 2.3.0-beta0 1.2.1-beta0 remove G92 in layer change, as it's not understand by the slicer. diff --git a/resources/profiles/PrusaResearch.ini b/resources/profiles/PrusaResearch.ini index 4fcfbd62e..0f5b8dffc 100644 --- a/resources/profiles/PrusaResearch.ini +++ b/resources/profiles/PrusaResearch.ini @@ -9,7 +9,7 @@ technologies = FFF; SLA # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 1.2.0-beta1 +config_version = 1.2.0-susi # Where to get the updates from? config_update_url = changelog_url = @@ -191,7 +191,6 @@ perimeter_extrusion_width = 0.45 post_process = print_settings_id = raft_layers = 0 -resolution = 0 seam_position = near seam_travel_cost = 20% single_extruder_multi_material_priming = 1 diff --git a/resources/profiles/TriLAB.idx b/resources/profiles/TriLAB.idx index 2f7d5ff1a..5e17a24e9 100644 --- a/resources/profiles/TriLAB.idx +++ b/resources/profiles/TriLAB.idx @@ -1,5 +1,5 @@ min_slic3r_version = 2.3.0-alpha3 - +0.0.5-susi remove resolution to use default 0.0.5 Removed obsolete host keys.0.0.4-1 remove g92 0.0.4 Added PLA, PETG profiles for 0.8 nozzle, update print materials 0.0.3 Added DeltiQ 2, DeltiQ 2 Plus printers, 0.10mm, 0.20mm FLEX print profiles, updated print materials, flexprint extension support diff --git a/resources/profiles/TriLAB.ini b/resources/profiles/TriLAB.ini index 30fa315ab..e30fe7131 100644 --- a/resources/profiles/TriLAB.ini +++ b/resources/profiles/TriLAB.ini @@ -6,7 +6,7 @@ name = TriLAB # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 0.0.5 +config_version = 0.0.5-susi # Where to get the updates from? config_update_url = https://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/TriLAB/ # changelog_url = https://files.prusa3d.com/?latest=slicer-profiles&lng=%1% @@ -160,7 +160,6 @@ perimeters = 2 post_process = print_settings_id = raft_layers = 0 -resolution = 0 seam_position = nearest single_extruder_multi_material_priming = 0 skirt_distance = 3 diff --git a/resources/profiles/Voron.idx b/resources/profiles/Voron.idx index 125e060b5..459f6eba0 100644 --- a/resources/profiles/Voron.idx +++ b/resources/profiles/Voron.idx @@ -1,4 +1,5 @@ min_slic3r_version = 2.2.0 +0.0.5 remove resolution to use default, disable fan_mover 0.0.4 2.3 adaptation (seam, thumbanils, ...) 0.0.3 superslicer: remove top_fan_speed 0.0.2 Update from DocJeeves settings, adding afterburner / mobius difference diff --git a/resources/profiles/Voron.ini b/resources/profiles/Voron.ini index b4d82c86c..0eeacfb00 100644 --- a/resources/profiles/Voron.ini +++ b/resources/profiles/Voron.ini @@ -5,7 +5,7 @@ name = Voron # Configuration version of this file. Config file will only be installed, if the config_version differs. # This means, the server may force the PrusaSlicer configuration to be downgraded. -config_version = 0.0.4 +config_version = 0.0.5 # Where to get the updates from? config_update_url = @@ -152,7 +152,6 @@ end_gcode = print_end ;end script from macro extruder_colour = #FFE3CA extruder_offset = 0x0 gcode_flavor = klipper -fan_speedup_time = 0 layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z] machine_max_acceleration_e = 10000 machine_max_acceleration_extruding = 1500 @@ -579,7 +578,6 @@ perimeter_speed = 100 post_process = print_settings_id = raft_layers = 0 -resolution = 0 seam_position = near seam_travel_cost = 20% single_extruder_multi_material_priming = 1 @@ -614,7 +612,7 @@ support_material_synchronize_layers = 0 support_material_threshold = 30 support_material_with_sheath = 0 support_material_xy_spacing = 0.6 -thin_perimeters = 0 +thin_perimeters = 1 thin_walls = 1 thin_walls_min_width = 50% thin_walls_overlap = 50% diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index 0067a7652..adfee7f14 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -3151,7 +3151,7 @@ std::string GCode::extrude_loop(const ExtrusionLoop &original_loop, const std::s // extrude along the path std::string gcode; for (ExtrusionPaths::iterator path = paths.begin(); path != paths.end(); ++path) { - path->simplify(SCALED_RESOLUTION); + //path->simplify(SCALED_RESOLUTION); //should already be simplified gcode += this->_extrude(*path, description, speed); } @@ -3246,7 +3246,7 @@ std::string GCode::extrude_multi_path(const ExtrusionMultiPath &multipath, const // extrude along the path std::string gcode; for (ExtrusionPath path : multipath.paths) { - path.simplify(SCALED_RESOLUTION); + //path.simplify(SCALED_RESOLUTION); //should already be simplified gcode += this->_extrude(path, description, speed); } if (m_wipe.enable) { @@ -3332,7 +3332,10 @@ std::string GCode::extrude_path(const ExtrusionPath &path, const std::string &de } m_last_too_small.polyline.points.clear(); } - simplifed_path.simplify(this->config().min_length.value != 0 ? scale_(this->config().min_length) : SCALED_RESOLUTION); + if (this->config().min_length.value > 0) { + simplifed_path.simplify(scale_(this->config().min_length)); + } + //else simplifed_path.simplify(SCALED_RESOLUTION); //should already be simplified if (this->config().min_length.value != 0 && simplifed_path.length() < scale_(this->config().min_length)) { m_last_too_small = simplifed_path; return ""; diff --git a/src/libslic3r/Milling/MillingPostProcess.cpp b/src/libslic3r/Milling/MillingPostProcess.cpp index 37228c504..4e40ce553 100644 --- a/src/libslic3r/Milling/MillingPostProcess.cpp +++ b/src/libslic3r/Milling/MillingPostProcess.cpp @@ -108,14 +108,16 @@ namespace Slic3r { for (const Surface& surf : slices->surfaces) { ExPolygons surf_milling = offset_ex(surf.expolygon, milling_diameter/2, ClipperLib::jtRound); for (const ExPolygon& expoly : surf_milling) - expoly.simplify(SCALED_RESOLUTION, &milling_lines); +// expoly.simplify(SCALED_RESOLUTION, &milling_lines); // should already be done + milling_lines.push_back(expoly); } milling_lines = union_ex(milling_lines); ExPolygons secured_points = offset_ex(milling_lines, milling_diameter / 3); ExPolygons entrypoints; for (const ExPolygon& expoly : secured_points) - expoly.simplify(SCALED_RESOLUTION, &entrypoints); +// expoly.simplify(SCALED_RESOLUTION, &entrypoints); // should already be done + entrypoints.push_back(expoly); entrypoints = union_ex(entrypoints); Polygons entrypoints_poly; for (const ExPolygon& expoly : secured_points) @@ -150,7 +152,8 @@ namespace Slic3r { for (const Surface& surf : slices->surfaces) { ExPolygons surf_milling = offset_ex(surf.expolygon, milling_radius, ClipperLib::jtRound); for (const ExPolygon& expoly : surf_milling) - expoly.simplify(SCALED_RESOLUTION, &milling_lines); +// expoly.simplify(SCALED_RESOLUTION, &milling_lines); // should already be done + milling_lines.push_back(expoly); surfaces.push_back(surf.expolygon); } union_ex(milling_lines, true); @@ -166,7 +169,8 @@ namespace Slic3r { ExPolygons safe_umillable = diff_ex(offset_ex(exact_unmillable_area, safety_offset), surfaces, true); ExPolygons safe_umillable_simplified; for (const ExPolygon& expoly : safe_umillable) - expoly.simplify(SCALED_RESOLUTION, &safe_umillable_simplified); +// expoly.simplify(SCALED_RESOLUTION, &safe_umillable_simplified); // should already be done + safe_umillable_simplified.push_back(expoly); return union_ex(safe_umillable_simplified, true); } diff --git a/src/libslic3r/PerimeterGenerator.cpp b/src/libslic3r/PerimeterGenerator.cpp index aa54d3e88..7c32c1009 100644 --- a/src/libslic3r/PerimeterGenerator.cpp +++ b/src/libslic3r/PerimeterGenerator.cpp @@ -332,7 +332,9 @@ void PerimeterGenerator::process() //this var store infill surface removed from last to not add any more perimeters to it. ExPolygons top_fills; ExPolygons fill_clip; - ExPolygons last = union_ex(surface.expolygon.simplify_p(SCALED_RESOLUTION)); + // simplification already done at slicing + //ExPolygons last = union_ex(surface.expolygon.simplify_p(SCALED_RESOLUTION)); + ExPolygons last = union_ex(surface.expolygon); if (loop_number >= 0) { diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index b954b462b..f3d550fbf 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -2642,13 +2642,13 @@ void PrintConfigDef::init_fff_params() def->label = L("'As bridge' speed threshold"); def->full_label = L("Overhang bridge speed threshold"); def->category = OptionCategory::perimeter; - def->tooltip = L("Minimum unsupported width for an extrusion to apply the bridge speed & fan to this overhang." + def->tooltip = L("Minimum unsupported width for an extrusion to apply the bridge fan & overhang speed to this overhang." " Can be in mm or in a % of the nozzle diameter." " Set to 0 to deactivate."); def->ratio_over = "nozzle_diameter"; def->min = 0; def->mode = comExpert; - def->set_default_value(new ConfigOptionFloatOrPercent(50,true)); + def->set_default_value(new ConfigOptionFloatOrPercent(55,true)); def = this->add("overhangs_width", coFloatOrPercent); def->label = L("'As bridge' flow threshold"); @@ -2860,11 +2860,12 @@ void PrintConfigDef::init_fff_params() "the slicing job and reducing memory usage. High-resolution models often carry " "more detail than printers can render. Set to zero to disable any simplification " "and use full resolution from input. " - "\nNote: slic3r simplify the geometry with a treshold of 0.0125mm and has an internal resolution of 0.0001mm."); + "\nNote: SuperSlicer has an internal resolution of 0.000001mm." + "\nInfill & Thin areas are simplified up to 0.0125mm."); def->sidetext = L("mm"); def->min = 0; def->mode = comExpert; - def->set_default_value(new ConfigOptionFloat(0)); + def->set_default_value(new ConfigOptionFloat(0.0125)); def = this->add("retract_before_travel", coFloats); def->label = L("Minimum travel after retraction"); diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index 262ee9dc5..361f31659 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -126,8 +126,8 @@ void PrintObject::slice() if (! warning.empty()) BOOST_LOG_TRIVIAL(info) << warning; // Simplify slices if required. - if (m_print->config().resolution) - this->simplify_slices(scale_(this->print()->config().resolution)); + if (m_print->config().resolution.value > 0) + this->simplify_slices(scale_(this->print()->config().resolution.value)); //create polyholes this->_transform_hole_to_polyholes(); @@ -2455,7 +2455,7 @@ void PrintObject::_slice(const std::vector &layer_height_profile) BOOST_LOG_TRIVIAL(debug) << "Slicing modifier volumes - stealing " << region_id << " end"; } } - + BOOST_LOG_TRIVIAL(debug) << "Slicing objects - removing top empty layers"; while (! m_layers.empty()) { const Layer *layer = m_layers.back(); @@ -2771,7 +2771,7 @@ ExPolygons PrintObject::_smooth_curves(const ExPolygons & input, const PrintRegi ExPolygons new_polys; for (const ExPolygon &ex_poly : input) { ExPolygon new_ex_poly(ex_poly); - new_ex_poly.contour.remove_collinear(SCALED_RESOLUTION); + new_ex_poly.contour.remove_collinear(SCALED_EPSILON * 10); new_ex_poly.contour = _smooth_curve(new_ex_poly.contour, PI, conf.curve_smoothing_angle_convex.value*PI / 180.0, conf.curve_smoothing_angle_concave.value*PI / 180.0, @@ -2779,7 +2779,7 @@ ExPolygons PrintObject::_smooth_curves(const ExPolygons & input, const PrintRegi scale_(conf.curve_smoothing_precision.value)); for (Polygon &phole : new_ex_poly.holes){ phole.reverse(); // make_counter_clockwise(); - phole.remove_collinear(SCALED_RESOLUTION); + phole.remove_collinear(SCALED_EPSILON * 10); phole = _smooth_curve(phole, PI, conf.curve_smoothing_angle_convex.value*PI / 180.0, conf.curve_smoothing_angle_concave.value*PI / 180.0, diff --git a/src/libslic3r/TriangleMesh.cpp b/src/libslic3r/TriangleMesh.cpp index 1b5ae3170..8c35081c9 100644 --- a/src/libslic3r/TriangleMesh.cpp +++ b/src/libslic3r/TriangleMesh.cpp @@ -1767,7 +1767,7 @@ void TriangleMeshSlicer::make_expolygons(const Polygons &loops, ExPolygons* slic // p_slices = diff(p_slices, *loop); //} - //remove point in the same plane (have to do that before the safety offset to avoid workgin on a distored polygon) + //remove point in the same plane (have to do that before the safety offset to avoid working on a distored polygon) Polygons filered_polys = loops; if (this->model_precision > 0){ for (Polygon &hole : filered_polys){ diff --git a/src/libslic3r/libslic3r.h b/src/libslic3r/libslic3r.h index 732e2ef95..0701e1ac3 100644 --- a/src/libslic3r/libslic3r.h +++ b/src/libslic3r/libslic3r.h @@ -31,7 +31,7 @@ using coord_t = int32_t; #else //FIXME At least FillRectilinear2 and std::boost Voronoi require coord_t to be 32bit. -typedef int64_t coord_t; +using coord_t = int64_t; #endif using coordf_t = double; @@ -47,9 +47,13 @@ static constexpr double EPSILON = 1e-4; // int32_t fits an interval of (-2147.48mm, +2147.48mm) // with int64_t we don't have to worry anymore about the size of the int. static constexpr double SCALING_FACTOR = 0.000001; +static constexpr double UNSCALING_FACTOR = 1 / SCALING_FACTOR; // RESOLUTION, SCALED_RESOLUTION: Used as an error threshold for a Douglas-Peucker polyline simplification algorithm. -#define RESOLUTION 0.0125 -#define SCALED_RESOLUTION (RESOLUTION / SCALING_FACTOR) +//#define RESOLUTION 0.0125 +//#define SCALED_RESOLUTION 12500 +//#define SCALED_RESOLUTION (RESOLUTION / SCALING_FACTOR) +static constexpr coordf_t RESOLUTION = 0.0125; +static constexpr coord_t SCALED_RESOLUTION = 0.0125 * UNSCALING_FACTOR; //for creating circles (for brim_ear) #define POLY_SIDES 24 #define PI 3.141592653589793238 @@ -92,9 +96,9 @@ inline T unscale(Q v) { return T(v) * T(SCALING_FACTOR); } inline double unscaled(double v) { return v * SCALING_FACTOR; } inline coordf_t unscale_(coord_t v) { return v * SCALING_FACTOR; } -inline coord_t scale_t(coordf_t v) { return (coord_t)(v / SCALING_FACTOR); } -inline double scale_d(coordf_t v) { return (v / SCALING_FACTOR); } -inline double scale_d(coord_t v) { return ((double)v / SCALING_FACTOR); } +inline coord_t scale_t(coordf_t v) { return (coord_t)(v * UNSCALING_FACTOR); } +inline double scale_d(coordf_t v) { return (v * UNSCALING_FACTOR); } +inline double scale_d(coord_t v) { return (double(v) * UNSCALING_FACTOR); } enum Axis { X=0,