62 Commits

Author SHA1 Message Date
remi durand
2df72fd324 Fix an "External Perimeter First" that extrude each perimeter in double if only one of the two selected.
supermerill/SuperSlicer#2267
2022-01-30 17:42:08 +01:00
supermerill
7c59e501f1 Fix enforce_full_fill_volume for smooth pattern, when it splits from the half-offset.
Changed the way the surface to fill is computed (more work) to ensure there isn't problem anymore anywhere.
FIXME: enforce_full_fill_volume isn't really compatible with filament_max_overlap right now
2021-11-20 21:52:51 +01:00
supermerill
0d25f9b266 bridge_overlap fix & redesign
* now has a min setting.
 * the density can be chosen between the two values, with the highest density possible.
 * remove the hardcoded 87.5% density modifier. Replaced by a max of 90% and a min of 80%
 * try to place the bridge at the right position (only works if the shape is simple).

FIXME: bridge can be printed on top of the previous one (if began in the wrong direction, or it has a odd number and need to go back to the same side)
try to mitigate that.
2021-11-18 01:05:09 +01:00
supermerill
6832dab603 Better bridge angle computation, and ready for tweaking weights
(currently 70% coverage, 15% median length, 15% max length, 5% bonus for following a perimeter)
Fix: Now consider bridge as full fill whatever the bridge_overlap is
supermerill/SuperSlicer#565
supermerill/SuperSlicer#234
supermerill/SuperSlicer#149
2021-10-28 19:47:40 +02:00
supermerill
003a0dba07 set the ironing pattern first pass to use filled monotonic instead of filled rectilinear.
also allow half overlap for the first pass.
supermerill/SuperSlicer#1708
2021-10-26 22:50:20 +02:00
supermerill
58c73b1023 dense_infill (automatic) rework
* better coverage
 * now print in the right sequence
 * fixed overlap (20% of bridge width) with everything for a good grip
supermerill/SuperSlicer#1657
2021-10-22 19:59:06 +02:00
supermerill
088b92917c Add filament_max_overlap, to control the line spacing via filament setting
It allows to control the spacing vs width (10%% fill vs a bit less)
The 'enforce 100% fill volume' is also adjusted to take that into account
Note that if you're using multiple extruders/filament everywhere (and spacing setting for width setting),
  the result may be a bit unexpected, as the gui can't display all the interactions,
  also some features (like support) may revert to default overlap value, if printed with multiple filaments.
supermerill/SuperSlicer#1590
2021-09-26 13:51:05 +02:00
remi durand
519bcaf1a2 #922 Infill bridge issues 2021-03-19 12:36:38 +01:00
supermerill
8d5688a751 Merge remote-tracking branch 'remotes/prusa/master' : Opengl crash 2020-11-28 18:18:32 +01:00
supermerill
9f7f558816 #718 fix ironing post-process double the fills. 2020-11-26 20:52:01 +01:00
Vojtech Bubnik
62bdc192d8 Fix of [2.3.0-alpha4] Crash - several models cause crash when slicing #5208
Fixed some issues in internal anchors of the Adaptive Cubic infill.
The ugly and dangerous implicit casting operators in Line, MultiPoint,
Polyline and Polygon were made explicit.
2020-11-24 16:01:08 +01:00
supermerill
7a10e8220c Fill "connect" update
* re-add the 2.2 algo
 * allow to choose connection method also for solid/top/bottom
2020-11-23 23:26:47 +01:00
supermerill
1a19b023f0 Merge remote-tracking branch 'remotes/prusa/master'
note: new infill connect, maybe a good idea to get the previous one in case it's better (no useless lines)
note2: fillline overextrude, tofix
2020-11-23 00:28:47 +01:00
Vojtech Bubnik
8d1e13fccd Anchoring of sparse infills can now be disabled. 2020-11-20 13:36:58 +01:00
Vojtech Bubnik
db05f00860 Fixing compilation issues. 2020-11-16 13:11:58 +01:00
Vojtech Bubnik
e9fa36ea7d Fillers: Removal of old FillRectilinear, using of "override" instead
of "virtual" where applicable.
2020-11-16 11:16:44 +01:00
Vojtech Bubnik
4280fdb5f2 Reworked connection of infill lines to perimeter lines.
Added a new "infill_anchor" parameter.
2020-11-16 10:54:00 +01:00
supermerill
a9675a3f0b fix compile 2020-11-08 23:49:02 +01:00
supermerill
e3dde4b384 change monotonic from monotonous 2020-11-08 17:09:29 +01:00
supermerill
c3dcf9864a Merge remote-tracking branch 'remotes/remi/master' into dev 2020-11-06 02:29:30 +01:00
supermerill
27196d34ea #414 #591 overhang speed separate from bridge speed
And separate speed for "inner bridge" (the ones over sparse infill)
2020-11-05 19:08:46 +01:00
Vojtech Bubnik
239d588c5d 1) Implemented anchoring of infill lines to perimeters with length
limited anchors, while before a full perimeter segment was always
   taken if possible.
2) Adapted the line infills (grid, stars, triangles, cubic) to 1).
   This also solves a long standing issue of these infills producing
   anchors for each sweep direction independently, thus possibly
   overlapping and overextruding, which was quite detrimental
   in narrow areas.
3) Refactored cubic adaptive infill anchroing algorithm
   for performance and clarity.
2020-11-05 17:32:40 +01:00
Vojtech Bubnik
414fdaefc5 Merge remote-tracking branch 'remotes/origin/master' into lh_adaptive_infill_hooks 2020-11-03 15:07:38 +01:00
supermerill
7560c7d955 fix fill
also protect spacing in case of.
2020-10-26 15:47:21 +01:00
supermerill
6fdd615b6e Merge remote-tracking branch 'remotes/prusa/master' into dev 2020-10-18 00:27:32 +02:00
Vojtech Bubnik
7fbdda9080 Renamed monotonous infill to monotonic. 2020-10-05 16:38:28 +02:00
Lukáš Hejl
7a9aec2b0b Connect infill with perimeters using hooks 2020-10-02 11:15:55 +02:00
supermerill
89ec89e682 #393 don't connect now differentiate with holes & outer perimeters
but it works only for half of rectilinear2: because it go over a new polyline start always from the same direction.
So it needs a difficult to do change to rectilinear2. (TODO)
2020-09-21 23:12:02 +02:00
Vojtech Bubnik
7e756b20e6 Adaptive infill: Reshuffled the namespaces. 2020-09-18 10:53:50 +02:00
Vojtech Bubnik
37c5fe9923 Refactoring of adaptive cubic / support cubic:
1) Octree is built directly from the triangle mesh by checking
   overlap of a triangle with an octree cell. This shall produce
   a tighter octree with less dense cells.
2) The same method is used for both the adaptive / support cubic infill,
   where for the support cubic infill the non-overhang triangles are
   ignored.
The AABB tree is no more used.
3) Optimized extraction of continuous infill lines in O(1) instead of O(n^2)
2020-09-17 18:39:28 +02:00
Vojtech Bubnik
067cde85f1 WIP Refactoring of exceptions:
1) All slicer's exceptions are now derived from Slic3r::Exception.
2) New exceptions are defined for slicing errors.
3) Exceptions are propagated to the Plater to show.
It remains to modify the slicing back-end to throw the new SlicingError
exceptions instead of std::runtime_error and to show the other exceptions
by a message dialog instead of a notification.
2020-09-14 18:03:22 +02:00
Lukáš Hejl
f49144a9ef Move support cubic infill to separate class.
Support infill is enabled in the GUI.
2020-09-10 16:53:08 +02:00
Lukáš Hejl
0d26df3cf6 Preparation for new infill 2020-09-09 14:34:04 +02:00
supermerill
f48ed5091c Add monotonous infill thanks to @bubnikv and @wavexx
also the rectilinear2.cpp rework that go along
use of monotonous in ironing
use of monotonous instead of rectilinear of "filled" in top & bottom
reduce gap fill area from rectilinearWGapFill to the area with no overlap
fix flatten(): don't put everything in a no_sort collection but correctly recreate the hierarchy of no_sort, sort, no_sort of collections.
2020-09-06 16:02:58 +02:00
Lukas Matena
48c186331a Includes cleanup:
GUI_App.hpp      (should not include) MainFrame.hpp
MainFrame.hpp    Plater.hpp
ModelArrange.hpp Model.hpp
Slicing.hpp      PrintConfig.hpp
FillBase.hpp     PrintConfig.hpp
GUI_App.hpp      PrintConfig.hpp
OptionsGroup.hpp GUI_App.hpp
2020-05-27 14:01:47 +02:00
bubnikv
033548a568 Introduction of Monotonous infill type. Fill no-sort only for monotonous
and ironing infills.
2020-04-25 08:15:04 +02:00
bubnikv
03eb5ffcd5 WIP: Reworking of FillRectilinear2 to support monotonous infill
with ant colony optimization and 3-opt flips.
2020-04-22 10:54:11 +02:00
bubnikv
10110ed307 WIP: Ironing over top surfaces. 2020-04-14 11:53:28 +02:00
supermerill
9e2b819880 fix fill (override keyword added to avoid this bug in the future) 2019-12-12 14:31:40 +01:00
supermerill
dda438c74b Merge commit '5e3e5492487690fb48cd7c4bb0b7e0e019e30a5c' (wip) 2019-12-05 20:53:02 +01:00
bubnikv
afa72da9d1 Fix of infill connecting along perimeter lines,
new 3-opt iterative improvement of infill path (currently disabled,
it is extremely slow)
2019-12-02 15:01:52 +01:00
supermerill
9c6008e5e0 Review of spacing & volume compute, add a test for that.
Change a bit the fill api, to allow a bit safer spacing init and ensure nothing erase a parameter in mid-compute.
2019-11-16 08:16:01 +01:00
bubnikv
f2dd49a905 Merged pull request "Gyroid improvements" #2730
by @supermerill and @wavexx

WIP: The function Fill::connect_infill() is being rewritten
to utilize spatial structures wherever possible for lower CPU load
and less dynamic memory allocation.
2019-11-07 14:28:30 +01:00
supermerill
51bcae96ea #110 remove use_bridge from infills
force bridge on "denser infill" layer (as it's removed from the infill now)
2019-10-29 17:00:45 +01:00
bubnikv
76c4eaf19a Ported test_fill from upstream Slic3r, thanks @lordofhyphens 2019-10-16 17:43:43 +02:00
supermerill
89b2e62381 add parameters: fill_top_flow_ratio & fill_smooth_width
bugfix flow inaccuracies in FillSmooth.
TODO: do something about surface too small to be printed, particularly when 'only one perimeter top' -> don't extract them or use gapfill
2019-10-07 18:55:11 +02:00
supermerill
2f042e030c Merge remote-tracking branch 'remotes/prusa/master'
not merged: fill.cpp, perimeter_generator, because they ahve been reworked and need to be understand fully before adding my extensive modifications.
To verify: glcanvas: maybe filament color selection is deleted (or the other one i added?)
2019-09-26 13:14:01 +02:00
bubnikv
d146a0237e WIP: Reworked the infill generator to merge areas with the same
properties.

Note for Vojtech:
Review src/libslic3r/Fill/Fill.cpp once again,
add test for G-code generator properties (extrusion speed, cooling?)

Fixes Modifier slice/move efficiency #1005
2019-09-04 16:11:16 +02:00
supermerill
b6936a46e3 bugfix "connected lines" for gyroid & 3Dhoney 2019-08-07 16:45:52 +02:00
supermerill
86fbb9a095 gyroid & 3Dhoneycomb: now 'connected lines' follow the perimeters 2019-08-07 16:45:22 +02:00