Commit graph

188 commits

Author SHA1 Message Date
bubnikv
9e7634b6e8 Merged with master 2018-08-17 18:07:45 +02:00
bubnikv
65011f9382 Removed the x(), y(), z() Point/Pointf/Point3/Pointf3 accessors. 2018-08-17 15:53:43 +02:00
bubnikv
1ba64da3fe Removed Point::scale(),translate(),coincides_with(),distance_to(),
distance_to_squared(),perp_distance_to(),negative(),vector_to(),
translate(), distance_to() etc,
replaced with the Eigen equivalents.
2018-08-17 14:14:24 +02:00
bubnikv
3b89717149 Changing the internal representation of Point / Pointf / Point3 / Pointf3 to Eigen Matrix types:
Changed the Point3 / Pointf3 to derive from the Eigen Vec3crd / Vec3d.
Replaced the Point::concide_with() method calls with == operator.
Reduced some compiler warnings.
2018-08-15 13:51:40 +02:00
bubnikv
86da661097 Changing the internal representation of Point / Pointf / Point3 / Pointf3 to Eigen Matrix types, first step 2018-08-14 18:33:26 +02:00
bubnikv
4f52601081 Minor tweaks of UI texts,
optimization of the wipe tower invalidation,
show collisions of the wipe tower with known dimensions.
2018-08-06 16:31:51 +02:00
bubnikv
71b1e09af9 T1 and M702 C are now evaluated by the time estimator to add the new
"filament_load_time" and "filament_unload_time" values to match
the MK3 MMU2 behavior.

Emitting of the remaining times into the output G-code was made optional
through a new "remaining_times" configuration value, so the firmware
flavors and versions, which do not know the M73 code, will not complain.

Configuration changes:

The wipe tower default position was shifted inwards after the wipe tower
coordinate reference point was changed from the center to the left front
corner.

Added the "filament_load_time" and "filament_unload_time" values
to the MK3 MMU filament profiles.

Enabled "remaining_times" for the MK2.5, MK3 and MK3MMU2 printers.
2018-08-04 17:38:25 +02:00
bubnikv
6a9bd540c1 Merge remote-tracking branch 'origin/lm_wipe_tower_block_improvements_merged' 2018-08-03 22:34:53 +02:00
bubnikv
0454adc194 Added support for the upstream Marlin interpretation of the M204 code.
Fix of https://github.com/prusa3d/Slic3r/issues/1089

M204 S.. T..:
T is interpreted by the firmware and Slic3r time estimator the old way
(as acceleration when retracting) only if an S code is found at the same line.
This allows PrusaResearch to interpret the legacy G-codes generated
by our older Slic3r with older Slic3r profiles.

M204 P.. R.. T..:
T is ignored, P is interpreted as acceleration when extruding,
R is interpreted as acceleration when retracting.
This will be the format the Slic3r 1.41.0 will produce from
the Machine Limits page.
In the future both MK3 firmware and Slic3r will likely be extended
to support the separate travel acceleration.

This change is in sync with the Prusa3D firmware:
dd4c4b39b4

Slic3r will now export
M204 P[machine_max_acceleration_extruding] R[machine_max_acceleration_retracting] T[machine_max_acceleration_extruding]
before the custom start G-code, which will be correctly interpreted
by both the new Prusa3D firmware and the Slic3r's time estimator.

To support our legacy MK2 firmware before we merge the commit above, we may
just insert the following line into the custom start G-code section to override
the block inserted by Slic3r automatically before the custom start G-code:
M204 S[machine_max_acceleration_extruding] T[machine_max_acceleration_retracting]
2018-08-03 16:26:28 +02:00
Lukas Matena
f694600054 Merge branch 'lm_wipe_tower_block_improvements' into lm_wipe_tower_block_improvements_merged 2018-08-02 13:29:39 +02:00
Lukas Matena
d5f042b4b8 Wipe tower postprocessing, wipe tower block on 3D plate improved.
- it renders red with one egde as indeterminate, the front edge is where the wipe tower will start
- changing width changes depth of the block (as requested)
- the block shows the brim of the wipe tower
- after slicing, the block is rendered in usual dark green and takes the exact shape of the tower (also with brim)
- moving or rotationg the block after slicing does not invalidate the wipe tower (and hence the exact block dimensions are preserved)
- changing anything that invalidates the wipe tower reverts the block back to the "indeterminate" shape
- the block is not shown after slicing, if the wipe tower is not actually generated (printing single color object with the wipe tower enabled)

This required changes in the wipe tower generator, which now generates the tower
at origin with no rotation. Resulting gcode is postprocessed and transformed during
gcode export. This means the wipe tower needs not be invalidated when it is moved or rotated.
2018-08-02 11:04:04 +02:00
bubnikv
db8ba5fb76 New parameter "single_extruder_multi_material_priming" to be able
to suppress the MM priming towers.
The PrusaResearch.ini was modified for the MMU2 printers to
correctly prime the initial extruder when
single_extruder_multi_material_priming is disabled.
2018-07-27 22:19:46 +02:00
Enrico Turri
dd724e9dab M73 lines emitted to gcode only for Marlin firmare. Fixes #1071 2018-07-25 09:19:20 +02:00
Enrico Turri
cac4b29153 Fixed crash when generating gcode of multimaterial objects with some object out of the bed 2018-07-23 15:58:08 +02:00
Enrico Turri
4b8e10a05c Slightly faster time estimation 2018-07-20 12:05:08 +02:00
Enrico Turri
b69e23ce73 Merge branch 'master' of https://github.com/prusa3d/Slic3r into scene_manipulators 2018-07-18 14:49:09 +02:00
bubnikv
f7390c7ad6 The acceleration G-codes (M204 Sxxx) emited for Marlin are now
clamped by the maximum acceleration when extruding.

The machine envelope values are only set at the time estimator
from the Printer parameters for the Marlin firmware.
2018-07-18 14:00:42 +02:00
bubnikv
9d027a558e Implemented clamping of the acceleration when extruding for the Marlin
firmware, both for the G-code export and the time estimator.
2018-07-18 11:58:02 +02:00
Enrico Turri
d672a69554 Slice only objects contained into the print volume 2018-07-18 09:37:25 +02:00
bubnikv
0660862058 For the Marlin firmware, the machine envelope G-code is emitted
based on the Slic3r printer profile.

Also the bundled config has been updated, so that the machine envelope
G-code values were removed and the new Slic3r printer profile values
were updated with the former G-code values.

Slic3r version has been bumped up to 1.41.0-alpha for the configuration
files to work.
2018-07-17 19:37:24 +02:00
Enrico Turri
5c90746914 Merge with master + resolved conflicts 2018-07-17 10:44:23 +02:00
bubnikv
c7f59aca7d Merge remote-tracking branch 'remotes/origin/wipe_tower_improvements' 2018-07-17 09:20:19 +02:00
Enrico Turri
8175c9d306 Merge with master 2018-07-17 08:54:17 +02:00
Enrico Turri
75cf4e0947 Generate M73 lines for silent mode only for MK3 printers 2018-07-13 11:32:50 +02:00
Lukas Matena
1a2223a0a5 WipingExtrusions functions now don't need a reference to LayerTools 2018-07-11 14:46:13 +02:00
Lukas Matena
e44480d61f Supports were printed twice if synchronized with object layers, added always-on settings in ObjectSettingDialog 2018-07-10 13:02:43 +02:00
Lukas Matena
bb80774e74 Infill purging - added fifth extruder into default setttings, cosmetic changes 2018-07-09 13:44:41 +02:00
Lukas Matena
5bf795ec6f Overriddable infills that were not overridden are now printed according to infill_first 2018-06-29 12:26:22 +02:00
bubnikv
26b003073b Renamed the "compatible_printers_condition" and "inherits" vectors
to "compatible_printers_condition_cummulative" and "inherits_cummulative"
when storing to AMF/3MF/Config files.

Improved escaping of strings stored / loaded from config files.
2018-06-28 20:13:01 +02:00
Enrico Turri
dc25df7b32 Faster remaining times export 2018-06-28 13:57:28 +02:00
Enrico Turri
7ff22b9413 Time estimate emitted to gcode at requested interval 2018-06-27 15:35:47 +02:00
Lukas Matena
f8388abe17 'Dontcare' extrusions now don't force a toolchange + code reorganization 2018-06-26 14:12:25 +02:00
bubnikv
22463343a7 Fixed integration tests. 2018-06-26 13:22:24 +02:00
bubnikv
1175dc95f6 Storing and recovering the "compatible_printers_condition"
and "inherits" fields from / to the AMF/3MF/Config files.
The "compatible_printers_condition" are collected over all active profiles
(one print, possibly multiple filament, and one printer profile)
into a single vector.
2018-06-26 10:50:50 +02:00
bubnikv
082ed95a94 Activate existing projects after loading AMF/3MF/Config: Initial implementation. 2018-06-22 14:17:03 +02:00
Enrico Turri
f420ced581 Time estimators use initial data from config 2018-06-22 14:01:27 +02:00
Enrico Turri
f8982c0ca1 Merge branch 'machine-limits-config' of https://github.com/prusa3d/Slic3r into time_estimate 2018-06-22 12:30:15 +02:00
Lukas Matena
bc5bd1b42b Assigning of wiping extrusions improved 2018-06-21 10:16:52 +02:00
bubnikv
6b2b970b9a Added machine evelope configuration parameters
(the MachineEnvelopeConfig class).
Added localization support for libslic3r through a callback
(the callback is not registered yet, so the localization does nothing).
Localized the Print::validate() error messages.
2018-06-20 13:57:37 +02:00
Lukas Matena
8a47852be2 Refactoring of perimeters/infills wiping (ToolOrdering::WipingExtrusions now takes care of the agenda)
Squashed commit of the following:

commit 931eb2684103e8571b4a2e9804765fef268361c3
Author: Lukas Matena <lukasmatena@seznam.cz>
Date:   Wed Jun 20 12:50:27 2018 +0200

    ToolOrdering::WipingExtrusions now holds all information necessary for infill/perimeter wiping

commit cc8becfbdd771f7e279434c8bd6be147e4b321ee
Author: Lukas Matena <lukasmatena@seznam.cz>
Date:   Tue Jun 19 10:52:03 2018 +0200

    Wiping is now done as normal print would be (less extra code in process_layer)

commit 1b120754b0691cce46ee5e10f3840480c559ac1f
Author: Lukas Matena <lukasmatena@seznam.cz>
Date:   Fri Jun 15 15:55:15 2018 +0200

    Refactoring: ObjectByExtruder changed so that it is aware of the wiping extrusions

commit 1641e326bb5e0a0c69d6bfc6efa23153dc2e4543
Author: Lukas Matena <lukasmatena@seznam.cz>
Date:   Thu Jun 14 12:22:18 2018 +0200

    Refactoring: new class WipingExtrusion in ToolOrdering.hpp
2018-06-20 12:52:00 +02:00
Lukas Matena
29dd305aaa Wiping into perimeters - bugfix (wrong order of perimeters and infills) 2018-06-13 11:48:43 +02:00
Lukas Matena
b6455b66bd Wiping into infill/objects - invalidation of the wipe tower, bugfixes 2018-06-07 16:19:57 +02:00
Lukas Matena
73452fd79d More progress on 'wipe into dedicated object' feature (e.g. new value in object settings) 2018-06-06 18:24:42 +02:00
Enrico Turri
71d750c1b8 Remaining time gcode line exported only for Marlin firmware 2018-06-06 12:21:24 +02:00
Lukas Matena
4830593cac Started to work on the 'wipe into dedicated object feature' 2018-06-05 12:50:34 +02:00
Lukas Matena
7c9d594ff6 Fixed behaviour of infill wiping for multiple copies of an object 2018-06-04 12:15:59 +02:00
Lukas Matena
bdaa1cbdfd Wiping into infill - no infills are now inadvertedly printed twice (hopefully) 2018-06-01 15:43:22 +02:00
Lukas Matena
2d24bf5f73 Wipe into infill - copies of one object are properly processed 2018-05-31 16:21:10 +02:00
Enrico Turri
5a8d1ffdba Prototype for exporting estimated remaining time into gcode for default and silent mode 2018-05-30 12:08:03 +02:00
Lukas Matena
c72ecb382d Reduction is now correctly calculated for each region, soluble filament excluded from infill wiping 2018-05-28 15:33:19 +02:00