Commit graph

200 commits

Author SHA1 Message Date
bubnikv
0558b53493 WIP: Moved sources int src/, separated most of the source code from Perl.
The XS was left only for the unit / integration tests, and it links
libslic3r only. No wxWidgets are allowed to be used from Perl starting
from now.
2018-09-19 11:02:24 +02:00
bubnikv
3ddaccb641 Replaced CONFESS with throw std::exception in libslic3r, so now
libslic3r should be compilable without Perl.
2018-09-18 10:09:58 +02:00
bubnikv
fe3b92870f Merged with dev 2018-09-17 15:12:13 +02:00
bubnikv
d934b63424 Removed Print.pm,
ported execution of post processing scripts into C++ (WIP, waits for
update of boost::system module on our build server)
Removed other mention of the "Controller".
2018-09-17 12:01:02 +02:00
bubnikv
9d9e4a0f7b WIP: Background processing. 2018-09-14 09:28:00 +02:00
bubnikv
0235f1a821 Merged with dev 2018-09-12 11:59:02 +02:00
bubnikv
41ce69f327 Improved constness of the Print / PrintObject / Layer ...
Split the wipe tower and time statistics data into separate objects.
Initial work in synchronizing the Model with the Print.
2018-09-11 14:04:47 +02:00
Enrico Turri
df320523b1 Merge branch 'master' of https://github.com/prusa3d/Slic3r into dev 2018-09-07 16:07:16 +02:00
Enrico Turri
62894d3f7b Export the first M73 line to gcode before custom gcode 2018-09-07 16:05:10 +02:00
bubnikv
0b5b02e002 Eradicated the Pointf class, replaced with Eigen Vector3d 2018-08-21 21:05:24 +02:00
bubnikv
cb138a20b8 Completely replaced the homebrew Pointf3 class with Eigen Vec3d.
Replaced the unscale macro with a template, implemented templates
for unscaling Eigen vectors.
2018-08-21 17:43:05 +02:00
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