44 Commits

Author SHA1 Message Date
supermerill
c5fbfae095 remove layer_height_adaptive, because prusa has created a new one.
bugfix "move inwards before travel" when extruding perimeter clockwise
bugfix too thin overhang detection
bugfix basic ini (duplicate key)
2020-01-09 15:04:30 +01:00
supermerill
9191ef8e78 fix only_one_perimeter_on_top 2019-12-12 14:30:56 +01:00
supermerill
4e8a7b0e9e fix merge 2019-12-11 15:55:29 +01:00
supermerill
805e0b91b8 merge wip 2019-12-11 12:03:27 +01:00
supermerill
e0a5bbdcc5 Merge remote-tracking branch 'remotes/supermerill/master' 2019-12-07 16:37:54 +01:00
supermerill
38f1f0da49 bugfix only_one_perimeter_top & solid margin 'anchor" 2019-12-07 16:36:15 +01:00
supermerill
dda438c74b Merge commit '5e3e5492487690fb48cd7c4bb0b7e0e019e30a5c' (wip) 2019-12-05 20:53:02 +01:00
supermerill
43c13a8168 1) change only_one_perimeter_top to respect external_infill_margin. Old behavior can be reproduced by setting external_infill_margin to 0
2) change first_layer_height from % of layer_height to % of the diameter of the nozzle of the first extruder. It's safer and more logical that way.
2019-11-18 13:20:26 +01:00
supermerill
351d7d437a new option: Overlapping perimeters, for when you don't care and don't want to use MedialAxis algo
#116
2019-11-16 08:16:21 +01:00
supermerill
6064dfe2c7 Update on the spacing of perimeters.
#113
2019-11-02 02:28:54 +01:00
supermerill
5c46a60f33 more perimeters on overhangs: don't allow on top of holes
#46 #112
2019-11-02 00:43:34 +01:00
supermerill
004ec5480d alternate extra wall: on odd layers
#89
2019-10-29 19:12:54 +01:00
supermerill
fd26796cb1 overhangs_width threshold #99 2019-10-14 17:31:26 +02:00
supermerill
8d04e48ff0 #90 : gap fiull min surface setting 2019-09-30 19:33:14 +02:00
bubnikv
331c187b39 Rest of the path chaining has been replaced with the new algorithm.
PolylineCollection.cpp/hpp was removed, use Polylines instead.
Various first_point() / last_point() now return references, not copies.
2019-09-27 18:17:21 +02:00
bubnikv
41495a932a Introduction of a greedy Traveling Salesman Problem algorithm,
producing better shortest path estimate than the "closest next neighbor"
heuristics. The new greedy algorithm utilizes KD tree for closest
end point search, and builds a graph to detect loops.

PerimeterGenerator newly uses the optimized TSP algorithm.

ExtrusionEntity has been refactored / simplified.
2019-09-26 09:44:38 +02:00
bubnikv
15c8b579b2 Refactoring of ExtrusionEntity / ExtrusionEntityCollection:
Iterator loops replaced with C++11 loops.
Fixed clone() methods to return an ExtrusionEntity*.
PerimeterGenerator now uses move semantics on ExtrusionEntity a little
bit more.
2019-09-11 13:25:50 +02:00
bubnikv
0989cb8296 Refactoring of PerimeterGenerator:
header interface was reduced,
compiler warnings removed.
2019-09-11 11:37:48 +02:00
bubnikv
246dc64c99 Fix of "Bridging and gap fill are parsed incorrectly when infill is set to 0" #1476
The gap fill was disabled for zero infill.
Now the gap fill is enabled in between the perimeters, but disabled between
the inner-most perimeter and infill in case the infill is set to zero.

Also in case there are multiple infill regions inside a perimeter,
the mutliple infills are considered as non-zero if at least one infill
is non-zero, therefore the gap fill will be added inside the inner-most
perimeter.
2019-09-10 19:03:37 +02:00
supermerill
773972cc2c Merge remote-tracking branch 'remotes/prusa/master'
WIP, in particular, have to review the custom beds svg/stl
2019-07-31 18:22:49 +02:00
supermerill
0ce30559b9 Don't overextrude perimeters, put bigger gapfill instead 2019-07-12 19:24:07 +02:00
Lukas Matena
cb916c4dda Fixed warnings in libslic3r 2019-06-25 16:04:29 +02:00
supermerill
26d17e03ee change elepehant foot direction (again)
use reference in medial axis
add comments in medial axis
2019-06-08 15:04:27 +02:00
supermerill
a3bdc74045 gap fill : only if perimeters aren't touching
medial axis: concatenate_polylines_with_crossing fixed
2019-04-08 20:10:54 +02:00
supermerill
41c5d32744 clipperutil.offset params go from float to double
As clipper used doubl anyway, it shouldn't impact anything,
just avoiding int64->float->double destructive conversion.
2019-04-08 20:10:40 +02:00
supermerill
c03564f218 restore most loop orientation to ccw.
add test_model and test_print tests. Work is needed for them
2019-04-08 20:10:00 +02:00
supermerill
063924458f bugfix #58 2019-03-29 11:39:28 +01:00
supermerill
b3157c5b1e no perimeters on bridged area : algo changed, more options and less settings. 2019-03-01 19:46:52 +01:00
supermerill
9454415e6d Flags for surface_type
simplify the dense_infill algo. TODO: use a flag instead of the field.

TODO: use the flags (without creating bugs)
2019-02-25 18:42:37 +01:00
supermerill
9219781ce0 perf improvement for extra_periemters 2019-02-18 17:01:29 +01:00
supermerill
e62d9aff3b bugfix "extra perimeters" (regression from the little speed optimization) 2019-02-13 17:43:11 +01:00
supermerill
2fbccad771 Only extrude gapfill between perimeters. 2019-02-12 16:39:11 +01:00
supermerill
d7fb3ea14f little speed optimization for overhangs detection in "extra perimeters" 2019-02-12 15:05:52 +01:00
supermerill
7d4f090786 medial_axis width bugfix (at least enough for the outer "lobes")
assert bugfix in thin walls (edge case)
2 bugfix in overlap
2019-02-11 14:03:06 +01:00
supermerill
75775bc909 Thin_wall / medial axis:
- reworked thin_variable_width (discretization into segments of constant width)
 - bugfix taper_ends
 - add setting thin_walls_overlap to control the perimeter/thin wall overlap
2019-02-07 18:25:42 +01:00
supermerill
f49af26123 cleaning warnings, add % for support interface gap 2019-01-30 15:52:30 +01:00
supermerill
cfab40943f alpha4 merge fixs
- text
 - std::
 - parameters now check alias in any cases.
 - add some aliases
2019-01-30 12:17:03 +01:00
supermerill
29d2d80202 reforged support z distance:
- choice between "from filament, from plane, soluble
 - different settings for top & bottom.
2019-01-25 19:35:49 +01:00
supermerill
a48e190137 medial axis: now grows the extrusion to nozzle diameter if it's lower than that. Add a parameter to define the min width (default to 33% of nozzle diameter). 2019-01-03 19:57:00 +01:00
supermerill
86d73b9a2a Merge branch 'master_slic3rPE_PR' into masterPE 2018-12-19 18:22:51 +01:00
supermerill
a658ae653e Merge branch 'master' into masterPE (renaming) 2018-12-19 18:18:18 +01:00
supermerill
a36142d258 merge complete 2018-12-19 17:14:11 +01:00
supermerill
a11db7a227 Merge tag 'mass_rename' into master_slic3rPE_PR
# "resolved" Conflicts:
#	lib/Slic3r/GUI/Plater.pm
#	lib/Slic3r/GUI/Plater/2DToolpaths.pm
#	lib/Slic3r/GUI/Plater/ObjectCutDialog.pm
#	lib/Slic3r/GUI/Plater/ObjectPartsPanel.pm
#	lib/Slic3r/GUI/Plater/ObjectSettingsDialog.pm
#	lib/Slic3r/GUI/Plater/OverrideSettingsPanel.pm
#	src/libslic3r/EdgeGrid.cpp
#	src/libslic3r/EdgeGrid.hpp
#	src/libslic3r/ExPolygon.cpp
#	src/libslic3r/ExtrusionEntity.hpp
#	src/libslic3r/ExtrusionEntityCollection.hpp
#	src/libslic3r/Fill/Fill.cpp
#	src/libslic3r/Fill/FillBase.cpp
#	src/libslic3r/Flow.cpp
#	src/libslic3r/GCode.cpp
#	src/libslic3r/GCode/ToolOrdering.cpp
#	src/libslic3r/GCode/WipeTowerPrusaMM.cpp
#	src/libslic3r/Geometry.cpp
#	src/libslic3r/LayerRegion.cpp
#	src/libslic3r/Model.cpp
#	src/libslic3r/MultiPoint.cpp
#	src/libslic3r/MultiPoint.hpp
#	src/libslic3r/PerimeterGenerator.cpp
#	src/libslic3r/PerimeterGenerator.hpp
#	src/libslic3r/Polyline.cpp
#	src/libslic3r/Polyline.hpp
#	src/libslic3r/Print.cpp
#	src/libslic3r/PrintConfig.cpp
#	src/libslic3r/PrintConfig.hpp
#	src/libslic3r/PrintObject.cpp
#	src/libslic3r/SupportMaterial.cpp
#	src/libslic3r/TriangleMesh.cpp
#	src/libslic3r/TriangleMesh.hpp
#	src/libslic3r/Utils.hpp
#	src/libslic3r/utils.cpp
#	src/slic3r/AppController.hpp
#	src/slic3r/AppControllerWx.cpp
#	src/slic3r/GUI/3DScene.cpp
#	src/slic3r/GUI/GUI.cpp
#	src/slic3r/GUI/GUI.hpp
#	src/slic3r/GUI/Preset.cpp
#	src/slic3r/GUI/ProgressIndicator.hpp
#	src/slic3r/GUI/Tab.hpp
#	xs/CMakeLists.txt
#	xs/src/libslic3r/Layer.hpp
#	xs/src/libslic3r/Line.cpp
#	xs/src/libslic3r/Line.hpp
#	xs/src/libslic3r/Point.hpp
#	xs/src/libslic3r/Print.hpp
#	xs/src/libslic3r/PrintRegion.cpp
#	xs/src/slic3r/AppController.cpp
#	xs/xsp/AppController.xsp
#	xs/xsp/GUI.xsp
#	xs/xsp/Print.xsp
2018-12-17 15:42:50 +01:00
bubnikv
0558b53493 WIP: Moved sources int src/, separated most of the source code from Perl.
The XS was left only for the unit / integration tests, and it links
libslic3r only. No wxWidgets are allowed to be used from Perl starting
from now.
2018-09-19 11:02:24 +02:00