Commit Graph

132 Commits

Author SHA1 Message Date
c0efcd46c6 ENABLE_THUMBNAIL_GENERATOR -> Allow for multiple thumbnails into gcode and sl1 files 2019-10-25 13:59:13 +02:00
f9ce06effd ENABLE_THUMBNAIL_GENERATOR -> Code cleanup 2019-10-24 10:25:40 +02:00
5cfcfb62db ENABLE_THUMBNAIL_GENERATOR -> WIP: Refactoring and preparation for adding thumbnails to exported gcode and 3mf files 2019-10-23 13:31:24 +02:00
f9f9202a24 Simplified inclusion of the wipe tower into skirt calculation 2019-10-08 14:12:40 +02:00
5fac2ef70e Wipe tower brim width is now part of WipeTowerData class, so it can be used wherever needed 2019-10-08 13:50:51 +02:00
e355c13dfb Include wipe tower in skirt 2019-10-08 11:06:55 +02:00
d72d96a1fe FDM Print refactoring:
Layer newly remembers bounding boxes of slices,
the bounding boxes are used by G-code generator & newly the support
generator.
Slices are stored as ExPolygons, not ExPolygonCollection.
2019-10-01 17:17:08 +02:00
7128cae12a Print::validate() - check for empty print has been moved at the beginning of the function
This prevents a crash when the print is empty and the wipe tower enabled - validation of the wipe tower attempted to access extruders().front(), which was empty.
No other checks need to be done with the empty print anyway.
2019-10-01 12:48:58 +02:00
30f0e9b4d3 Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-09-27 09:52:57 +02:00
702c06d4b6 Reworked Traveling Salesman Problem code for simplicity and robustness.
The TSP algorithm is newly used for planning of the printing order
of objects AND their instances.
2019-09-26 16:39:50 +02:00
a34a1341c5 Whitespace changes to supress misleading indentation warnings
These appear in newer gcc when spaces and tabs are mixed
2019-09-24 16:01:01 +02:00
2cfcc15c81 Fixed layer profile equality check for wipe tower validation (fixup of b43003d) 2019-09-20 10:53:50 +02:00
6c4e6ccd90 Merge branch 'master' into dev 2019-09-13 16:19:35 +02:00
be2845f6a2 Introduction of ClipperLib_Z: The Clipper library compiled with support
of the Z coordinate, compiled in the ClipperLib_Z namespace.

Update of Lukas's new brim clipping:
All the brim contours are now clipped by the ClipperLib_Z library
in one shot.
2019-09-13 16:16:37 +02:00
7fbbcea1c7 Merge remote-tracking branch 'remotes/origin/lm_brimskirt' 2019-09-12 15:53:20 +02:00
adecac0261 Fixed layer height equality check needed in order to enable the wipe tower
The change was needed because enabling the new layer-height-modifier made the validation fail, even if there was no real layer height modification
2019-08-29 16:13:04 +02:00
8809ef3a0c Fixes of the wipe tower
- added an extra travel move after a toolchange
- wipe tower only sets temperatures with single extruder MM printers
- ooze prevention does not work with the wipe tower - added a check into Print::validate()
2019-08-28 16:28:22 +02:00
e819bbe36a Fix of an update of support extruders when changing number
of printer extruders.
2019-08-21 14:05:32 +02:00
7b93e84307 Fixing issues in Print / PrintObject / PrintRegion reporting
a list of printing extruders.
2019-08-21 13:49:37 +02:00
03e1b87837 Fix of "spiral vase printable for a single region object only" check. 2019-08-21 13:08:26 +02:00
2a8d48ac4c Fix of Excessive external_perimeter_extrusion_width error #2784
Increased the perimeter_extrusion_width check limit to 3x nozzle diameter.
2019-08-21 09:28:32 +02:00
2b27771bb4 Merge remote-tracking branch 'remotes/origin/lm_circular_priming' 2019-08-20 09:34:45 +02:00
3dcf0d8aa0 Allowed the skirt to intersect brim (https://github.com/prusa3d/PrusaSlicer/issues/724)
Brim lines are split at the intersection so there is no overextrusion.
2019-08-15 12:27:49 +02:00
3f1926f984 Print::validate: added epsilon checks on nozzle and filament diameter validation (https://github.com/prusa3d/PrusaSlicer/issues/2737)
Changed messagebox text after changing extruder diameter with single extruder printers so it is more obvious why it shows

In case nozzle diameters differ and someone checks 'single_extruder_mm', PrusaSlicer asks whether all diameters should be unified. Answering NO did not undo the SEMM check. It does now.
2019-08-15 10:43:17 +02:00
1117042adb Multimaterial initial priming for non-Prusa printers (https://github.com/prusa3d/PrusaSlicer/issues/1121)
The initial priming now does not assume anything about bed width and always uses the space it has
In case of circular beds it places the priming lines along the diameter
Custom beds are not supported (they are treated as circular with no extra checks whether it is sane)
Slight refactoring of the WipeTower class (constructor now gets reference to PrintConfig and not the individual values, same with set_extruder). This was legacy from times when the wipe tower was meant to be abstract and independent on the rest)
2019-08-15 01:41:46 +02:00
1c119b7ba4 Only validate support_material_extrusion_width with supports
or raft enabled.
2019-08-09 09:58:05 +02:00
80f3de1e65 Fix of the previous commit: zero extrusion width parameter is
always valid, it is replaced with an "auto" value.
2019-08-06 15:36:16 +02:00
c711a72e2a Improved handling of excessive extrusion width values (too small
or too big).
Fixes std: bad_alloc #2715
2019-08-06 15:11:46 +02:00
313ad7bf00 Followup of 6ab1cec - empty layers are ok if there are only other empty layers on top of them
Also fixed a possible crash in Print.cpp when preparing the wipe tower layers
2019-08-04 22:57:59 +02:00
108926abec Fixed the Perl bindings, made Print::m_placeholder_parser protected,
removed the non-const accessor method to m_placeholder_parser.
2019-07-25 17:08:31 +02:00
80eb232df2 Merge remote-tracking branch 'remotes/origin/master' into vb_filament_overrides 2019-07-25 14:40:54 +02:00
f5e17835d6 Reworked the FFF Print::update() to process the filament retract
override values and to store them into the output G-code.
2019-07-25 14:39:19 +02:00
55dbcce4d0 Fixed is_nil() method on ConfigOptions.
PlaceholderParser was extended to support external config.
The external config has a lowest priority when looking up a variable.
2019-07-24 12:39:01 +02:00
2c590e9dad WIP: Nullable configuration value concept, implemented for
ConfigOptionFloatsNullable, ConfigOptionIntsNullable,
ConfigOptionPercentsNullable, ConfigOptionBoolsNullable.

retract override values were added to the Filament profile:
vector of floats: "retract_length", "retract_lift", "retract_lift_above",
	"retract_lift_below", "retract_speed", "deretract_speed",
	"retract_restart_extra", "retract_before_travel",
vector of bools: "retract_layer_change", "wipe"
vector of percents: "retract_before_wipe"
2019-07-23 14:15:42 +02:00
a2739dbdbc Wipe tower now supports filaments with diameters different from 1.75 mm 2019-07-23 14:02:20 +02:00
d2c908ef7f Merge branch 'master' into lm_warnings 2019-07-15 13:26:55 +02:00
e8e35579dd Merge remote-tracking branch 'remotes/origin/vb_undo_redo' 2019-07-15 11:34:18 +02:00
ff69c030d7 Merge branch 'lm_improving_wipe_tower'. Summary of changes:
- wipe tower respects max volumetric flow, slowing down with PVA etc is not hardcoded anymore
- wipe tower is now allowed for multiple-extruder printers. single extruder stuff is not used in that case (ramming, cooling, etc.)
- start/end filament and toolchange custom gcodes are now inserted differently than before - see 41164a9
- some refactoring, e.g. the abstract WipeTower class was eradicated
2019-07-15 10:25:38 +02:00
8953e0980c Fixed merge issues. 2019-07-04 20:49:46 +02:00
d98aa0f91d Merge remote-tracking branch 'origin/master' into vb_undo_redo 2019-07-04 20:22:15 +02:00
07e2066dd3 WIP Undo / Redo: Serializing the configs of ModelObject / ModelVolume
/ ModelMaterial as separate objects to conserve memory.
2019-07-03 13:43:54 +02:00
7a614088ae WIP Undo / Redo: ModelID / ModelBase renamed to ObjectID / ObjectBase 2019-06-27 11:02:45 +02:00
9bbe65c53e Fixed warnings in libslic3r 2019-06-25 16:04:29 +02:00
786602bfd3 Fixed compilation on clang / OSX (missing float.h) 2019-06-20 21:07:26 +02:00
c5d69bcd74 Fix for C++11 2019-06-20 20:40:17 +02:00
be350a00f0 Reworked the Perl unit / integration tests to use the same Print
interface that the application is using. Old interface used just
for the integration tests was removed.
2019-06-20 20:23:05 +02:00
436b9c40fe Integrated the new layer height spans with configs into the backend.
Fixed some compiler warnings.
2019-06-20 16:15:09 +02:00
426fda26f7 Wipe tower - refactoring (removed the abstract WipeTower class)
- abstract class WipeTower and its descendant WipeTowerPrusaMM were merged into a single (non-abstract) WipeTower class
- all uses of WipeTower::xy struct were replaced by Eigen Vec2f (it is no longer necessary to be independent on libraries that PrusaSlicer uses)
- the WipeTowerPrusaMM.hpp/.cpp will be renamed in the next commit (hopefully it will retain its git history that way)
2019-06-17 10:16:07 +02:00
73615df334 Wipe tower - removed the obsolete material_type enum
no longer necessary because the speed overrides that the enum controlled were recently removed
the comment in gcode is now just about appending the config string
2019-06-14 14:44:22 +02:00
cc5a47d96c Changed handling of priming extrusions to allow injection of filament and toolchange custom gcodes
The priming extrusions were handled separately from the rest of the wipe tower toolchanges. In order to be able to use the logic from previous commit for them (custom toolchange gcodes etc), some unpleasant code shuffling was needed
2019-06-14 14:42:07 +02:00