Commit Graph

72 Commits

Author SHA1 Message Date
ec31ef90e9 Refactored PrintObject::m_copies to PrintInstances,
so that the ordering code at G-code export may work directly with
pointers to PrintInstances instead of with pair of <PrintObject, copy idx>.
Also the PrintInstance knows its source ModelInstance, which allows
sorting of PrintInstances for sequential printing in the order
they appear in Plater's object list.
2020-01-23 09:53:06 +01:00
d8fbd2d3f6 Merge remote-tracking branch 'origin/master' into ys_cp_improvements 2020-01-16 15:01:57 +01:00
8e80f72d3c Fix of recent wipe tower / tool ordering refactoring. 2020-01-16 14:59:16 +01:00
1dd5d35948 Merge remote-tracking branch 'origin/master' into ys_cp_improvements 2020-01-16 14:02:19 +01:00
efd6d795e4 Added synonyms to some PrintSteps:
psWipeTower now equals to new psToolOrdering indicating that
the ToolOrdering has been calculated (only if non-sequential mode is active).

psBrim now equals to new psExtrusionPaths
psExtrusionPaths shall be the last step before psWipeTower, indicating
that all the printing extrusions are calculated for the G-code preview
slider to edit the custom per print_z color changes, tool changes etc.
2020-01-15 16:20:16 +01:00
40bc447419 DoubleSlider: Implemented code for check of used extruders for MustiAsSingle mode 2020-01-15 15:35:56 +01:00
836cd78885 Another bugfixes of GCode export after refactoring. 2020-01-14 15:12:45 +01:00
7c0cdc3134 Refactoring of GCode::process_layer().
Refactoring of GCode export of color changes, extruder switches etc,
so that the "color change" like extruder switches are applied first
at the Wipe Tower / G-code export, so that adding / removing
an extruder switch at the G-code preview slider does not invalidate
slicing.
2020-01-14 10:31:18 +01:00
8406b2dafa Refactoring of ToolOrdering (wipe into infill / object)
Refactoring of GCode::_do_export()
Helper lower_bound and search functions similar to std, but without
needing the value object explicitely.
2020-01-10 11:27:04 +01:00
744f1721f6 Fix of "Don't use bridging perimeters on top of elephant-foot compensation #3011"
If the Elephant foot compensation is applied to the 1st object's layer,
the uncompensated 1st object's slice is newly used for calculation
of bridges, overhans, skirt, brim, raft and supports.

Layer::slices were renamed to Layer::lslices to simplify reading
of the code, to differentiate from LayerRegion::slices.
2020-01-03 14:07:31 +01:00
2a60846d46 Merge remote-tracking branch 'origin/master' into ys_color_print_extension 2019-11-28 09:01:14 +01:00
848827494a ENABLE_THUMBNAIL_GENERATOR -> Thumbnails generated using a callback function 2019-11-22 12:39:03 +01:00
d72e7ce245 ExtruderSequenceDialog :
Fixed layouts after the second opening of the dialog.
 (Removing any extruder from the sequence does not cause an incorrect layout)
Validation of entered values added
 (0 is not a valid value)
2019-11-16 02:12:37 +01:00
ac2d912826 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_plater_thumbnail 2019-11-05 13:58:13 +01:00
8492b57e66 Merge branch 'master' of https://github.com/BryanSmithDev/PrusaSlicer into BryanSmithDev-master 2019-11-05 11:37:40 +01:00
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
9fbba6d8bd Implemented custom extruder(tool) change from DoubleSlider 2019-10-15 15:42:30 +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
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
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
bc412ea4aa 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
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
d2c908ef7f Merge branch 'master' into lm_warnings 2019-07-15 13:26:55 +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
fa2cb5d501 Merge branch 'master' of https://github.com/prusa3d/PrusaSlicer into et_color_print_times 2019-07-08 08:45:11 +02:00
96ea3c6de8 Color change time estimates 2019-07-08 08:40:20 +02:00
9bbe65c53e Fixed warnings in libslic3r 2019-06-25 16:04:29 +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
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
e598164d1f Add [total_toolchanges] placeholder for filename and custom gcode sections. 2019-06-05 11:23:44 -04:00
b8fe1fabf3 Fixed unit tests when run with range checks on std::vector
There was a bug in unit tests that led to generating the wipe tower with non-normalized preset.
This caused out-of-bounds access into max_layer_height vector in fill_wipe_tower_partitions.
The problem surfaced in https://github.com/prusa3d/PrusaSlicer/issues/2288.
I quickly patched additional normalization of the preset to prevent this from happening.

Also, an assert in the same function turned out to trip on one of the tests.
This one was commented out for now and will (hopefully) be looked into later.

Function Print::apply_config was renamed to apply_config_perl_tests_only so everyone
sees its current purpose and does not mistake it for the more important Print::apply.
2019-05-22 16:48:20 +02:00
4b6383a512 Changed the G-code export and send to OctoPrint GUI code
to store the G-code next to the project file if it exists,
and to process the project name with the PlaceholderParser.
2019-05-17 16:27:00 +02:00
d8a22aa2d9 Fix of "Variable layer height feature breaks after rotating part #2073"
There was an approximate bounding box used at the GUI, while a snug
bounding box was used at the back end, causing invalidation
of the variable layer height editing profile on rotated objects.

A snug bounding box around the first instance is now cached.
2019-04-13 14:15:54 +02:00
322d2a1fab Reworked the command line interface based on the current state
of the upstream.
Thanks @alexrj, @lordofhyphens for the original code of slic3r.cpp
2019-03-13 15:44:50 +01:00
56daeab54f Implemented clipping of parts of multi-part objects in the order
they are presented in the UI.

Parallelized the slice stealing when splitting regions with modifier meshes.

Rewrote Layer::make_perimeters() to C++11 loops.
2019-03-06 10:21:10 +01:00
49c0f383b6 Fix of caching of the SlicingParamerters at PrintObject 2019-03-05 14:05:58 +01:00
bda2580560 Implemented caching of SlicingParameters by PrintObject 2019-03-04 15:28:04 +01:00
bd4108cd5c Fixed update on reset of the variable layer height profile.
Fixed update of the layer height profile on PrintObject when changing profiles.
Fixed crash due to the layer height editing refactoring & wipe tower.
2019-01-23 14:00:03 +01:00
b76f438975 WIP Restoration of the layer editing. 2019-01-21 10:06:51 +01:00
818e0cde7f Fixed many errors in background processing synchronization and update.
Fixed couple of compiler warnings.
2018-12-22 10:02:42 +01:00
b735a44f05 Fix of SPE-607 2018-12-17 19:46:36 +01:00
ed8d8e30b9 Fix of SPE-607
Part changed to Support enforcer is not sliced with one another part
2018-12-17 18:04:23 +01:00
219e3514dd Print time in output G-code: fill in the time if the file export
dialog is open after the slicing finished.
2018-12-12 15:09:20 +01:00
3cbd0b7867 WIP: Time estimate in file names. 2018-12-12 12:00:45 +01:00
92e6427511 Trigger background processing update when switching to a preview tab.
Implements "Go Direct to the preview screen after slicing #152"
2018-12-11 17:49:31 +01:00
eb4a48c141 WIP: Merged commits from stable between 1.41.2-beta and 1.42.2 final.
Changes in SupportMaterial.cpp, TriangleMesh.cpp and 01_trianglemesh.t
are yet to be merged.

WIP: Refactoring of layer height editing.
Removed layer_height_ranges from PrintObject, as the Print/PrintObject
now hold their copies of Model/ModelObject.
2018-12-11 16:33:43 +01:00
6694db0e0b Fixed a harless assert in PrintObject consturctor.
Fixed a bug in G-code generator regarding the seam hiding.
2018-12-07 11:21:05 +01:00