Commit Graph

2408 Commits

Author SHA1 Message Date
f5d48d90a7 Fix of G-code path planning: Infill lines were incorrectly ordered
for islands with another islands in their holes.

Improvement of chaining of infill lines for 3D honeycomb, Gyroid and
Honeycomb infill: New TSP chaining algorithm is used.
2019-09-27 09:51:07 +02:00
5e0e360e07 WIP: Consolidation of shortest path calculations,
various chaining algorithms are replaced with the improved TSP
algorithm.
2019-09-26 17:30:03 +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
515c7e3baf Implemented possibility to set a resin cost 2019-09-26 16:36:31 +02:00
030f84734a Merge branch 'dev' of https://github.com/Prusa3d/PrusaSlicer into dev 2019-09-26 09:44:53 +02:00
8a8894e172 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
2fa1094b4e Fixed erroneous use of logical OR where bitwise OR was meant
Also, PrintBase::SlicingStatus enum had two entries assigned to 0 - removed the one that was never used
2019-09-25 12:18:30 +02:00
f7bd47c845 PRUS.cpp: Fixed an always-true condition in extract_model_from_archive
SupportMaterial.cpp: Simplified one condition (also solves a -Wmaybe-uninitialized warning on gcc)
2019-09-24 18:09:48 +02:00
2fbc4c37fc Fixed memsetting non-trivially-copyable types
Types stl_stats, stl_normal and SurfaceFillParams should not be zeroed by memset
This is not correct and also triggered warnings on gcc
2019-09-24 17:09:07 +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
03507f9b7d ENABLE_ENHANCED_RELOAD_FROM_DISK set as default 2019-09-23 15:35:49 +02:00
dd503c328f #2922 - Port of commit: f42edd35ce by jschuh 2019-09-23 14:56:27 +02:00
c9a6461b03 ENABLE_ENHANCED_RELOAD_FROM_DISK -> Fixed export/import to/from .amf to keep compatibility with 3rd part software. 2019-09-23 13:54:49 +02:00
7b60670971 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_reload_from_disk 2019-09-23 12:34:18 +02:00
4ea782deb0 ENABLE_ENHANCED_RELOAD_FROM_DISK -> Fixed export/import to/from .3mf to keep compatibility with 3rd part software. 2019-09-23 12:33:21 +02:00
7fb5dae326 Fix arrange crash with incorrect geometries. Guard the case with tests. 2019-09-23 11:59:44 +02:00
a3a01c5b62 Replace "mm3/s" with "mm³/s" in preview legend for a "Volumetric flow rate" 2019-09-23 11:11:43 +02:00
b4046dd27e Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_reload_from_disk 2019-09-23 08:27:01 +02:00
be71ec207a Added a config option to not print sparse layers on the wipe tower 2019-09-20 10:54:20 +02:00
55e70da486 Wipe tower now doesn't print sparse layers, it is instead lower than the object 2019-09-20 10:54:20 +02:00
2cfcc15c81 Fixed layer profile equality check for wipe tower validation (fixup of b43003d) 2019-09-20 10:53:50 +02:00
5918bbf2b6 ENABLE_ENHANCED_RELOAD_FROM_DISK
1) Modified .zip.amf import/export to save/load volume matrices and source data

2) Incremented .zip.amf version to 3
2019-09-19 12:39:59 +02:00
d04feb6afe Merge remote-tracking branch 'remotes/origin/dev' into vk-materials 2019-09-19 11:49:49 +02:00
0c461f6db6 Added tech ENABLE_ENHANCED_RELOAD_FROM_DISK
1) Reworked void Plater::priv::reload_from_disk() to be more general

2) Added source data to class ModelVolume

3) Modified .3mf import/export to save/load volume matrices and source data

4) Incremented .3mf version to 2
2019-09-19 09:09:11 +02:00
3af3f73997 Add material_type config option for SLA materials, use in Wizard 2019-09-17 13:20:06 +02:00
1f5048731c Filaments and materials selection/installation 2019-09-17 13:20:06 +02:00
3f69832925 Refactored ExtrusionEntityCollection::flatten() 2019-09-16 16:35:08 +02:00
d9add70dc0 Merge branch 'dev' of https://github.com/prusa3d/PrusaSlicer into et_reload_from_disk 2019-09-16 08:26:06 +02:00
806ef99ca0 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_reload_from_disk 2019-09-16 08:25:57 +02:00
ce8bf4d52d Merge remote-tracking branch 'remotes/origin/master' into dev 2019-09-13 18:58:39 +02:00
0e8ac9c17e Fix of a regression in wipe tower generator:
Return to the known position after custom tool change G-code.
2019-09-13 18:56:37 +02:00
6c4e6ccd90 Merge branch 'master' into dev 2019-09-13 16:19:35 +02:00
fac032239b Merge branch 'master' of https://github.com/Prusa3d/PrusaSlicer 2019-09-13 16:17:23 +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
c4aad781b7 Fixup of 4f89672 + allowing negative support_contact_z 2019-09-13 15:47:00 +02:00
136f6a59f6 Fixed false positives of missing layers due to support layer snapping
to avoid layers thinner than min_layer height, and possibly due to
the fact, that empty support extrusions may get generated
for support layers with non-empty support polygons.

Fix of Empty layers detection added to GCode.cpp (6ab1cec)
2019-09-13 15:18:42 +02:00
7fbbcea1c7 Merge remote-tracking branch 'remotes/origin/lm_brimskirt' 2019-09-12 15:53:20 +02:00
0eea5fc0ac Merge remote-tracking branch 'remotes/origin/master' into dev 2019-09-12 10:19:09 +02:00
aae988279f 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
b1cdd65b8a Add new config values to SL1 zip file config.ini
All requested config values are written into SL1 ini file inside the zip

* TIme.hpp and Time.cpp is now part of libslic3r instead of libslic3r_gui
* Updated time manipulation function: separate timestamp_local_str and timestamp_utc_str
* timestamp_utc_str is used in header_slic3r_generated(). Gcode now contains UTC timestamps
2019-09-11 13:10:23 +02:00
7d01475c87 Fixed typo in comments 2019-09-11 11:38:17 +02:00
f03611672f Refactoring of PerimeterGenerator:
header interface was reduced,
compiler warnings removed.
2019-09-11 11:37:48 +02:00
1a7484e001 Follow-up of 44c3493f7d -> error message logged only for multi-extruder printers 2019-09-11 10:02:27 +02:00
96e743bc19 Merge branch 'dev' of https://github.com/prusa3d/PrusaSlicer into et_reload_from_disk 2019-09-11 09:01:44 +02:00
1d84bc1993 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_reload_from_disk 2019-09-11 09:01:34 +02:00
c60bf6f654 Added missing include 2019-09-11 08:51:36 +02:00
2f3edd2387 GCodeAnalyzer: Fixed a crash when encountering an invalid toolchange 2019-09-11 08:39:29 +02:00
1f56b081cc Merge remote-tracking branch 'remotes/origin/master' into dev 2019-09-10 19:09:41 +02:00
58d0830b6b Some C++11 refactoring 2019-09-10 19:09:37 +02:00
02b3fe2e36 Fix of previous infill refactoring. 2019-09-10 19:08:04 +02:00