Commit Graph

119 Commits

Author SHA1 Message Date
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
bubnikv
ac72cd779f Replaced Point3 with Eigen Vec3crd, removed Point3 from the Perl binding. 2018-08-21 22:14:47 +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
86da661097 Changing the internal representation of Point / Pointf / Point3 / Pointf3 to Eigen Matrix types, first step 2018-08-14 18:33:26 +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
Lukas Matena
167060e470 Added some profilling macros into GCodeTimeEstimator 2018-07-20 16:14:23 +02:00
Enrico Turri
d805c8ac3b Disable slicing when one object crosses the print volume boundary 2018-07-18 14:26:42 +02:00
Enrico Turri
d672a69554 Slice only objects contained into the print volume 2018-07-18 09:37:25 +02:00
Lukas Matena
2454c566ff Changing number of copies invalidates the wipe tower (and thus forces recalculation of the purging extrusions) 2018-07-10 15:39:47 +02:00
Lukas Matena
4dae6cbf60 Merge branch 'master' into wipe_tower_improvements 2018-06-26 12:58:04 +02:00
Enrico Turri
0faaef76e8 C++ code cleanup 2018-06-12 12:18:16 +02:00
Lukas Matena
b6455b66bd Wiping into infill/objects - invalidation of the wipe tower, bugfixes 2018-06-07 16:19:57 +02:00
Enrico Turri
30a3b2179b 3DScene timer and _variable_layer_thickness_action method moved to c++ 2018-05-30 15:18:45 +02:00
bubnikv
651c4ab0ae Fixed a typo in AppConfig 2018-05-18 08:46:33 +02:00
bubnikv
33e1108f65 Background processing in C++, WIP. 2018-03-28 17:05:31 +02:00
bubnikv
8639df1cfd Removed an incorrectly placed status line update, causing stack
overflow in unit tests.
2018-03-26 11:21:53 +02:00
bubnikv
e931f75010 Work in progress: Good bye, Perl Threads! 2018-03-23 11:41:20 +01:00
bubnikv
d65835f89b Improvement of region classification numerical stability.
The Clipper library is not stable when calcuating offsets of contours
with holes. Replaced a single call of offset2 with offset_ex(offset_ex()).
This is not the most efficient solution, but it fixes this problem.
Fixes https://github.com/prusa3d/Slic3r/issues/456
2017-12-14 13:26:44 +01:00
bubnikv
cd084a33c6 Fixed a regression bug, which was made during the porting of
discover_horizontal_shells() fron Perl to C++, where
the already calculated bridge direction was being lost.

Improved constness of the debug methods
    void export_region_slices_to_svg(const char *path) const;
    void export_region_fill_surfaces_to_svg(const char *path) const;
2017-09-14 13:15:32 +02:00
bubnikv
98408bbed0 Fixed a crash when slicing leads to no print.
Fixed a bug in TriangleMesh::bounding_box().
2017-09-12 16:48:44 +02:00
bubnikv
777023c7a8 Ported PrintObject::prepare_infill & combine_infill from Perl to C++. 2017-08-02 14:24:32 +02:00
bubnikv
71f99423c5 New feature: Bridging angle override through a bridge_angle config
variable. When set to zero, the usual automatic bridge detection applies.
The bridging angle override may be set at the Infill->Advanced settings,
or through a modifier mesh.
2017-07-31 16:23:52 +02:00
bubnikv
8160db23cc Implementation of "XY size Compensation for first layer"
https://github.com/prusa3d/Slic3r/issues/190
2017-06-26 16:28:10 +02:00
bubnikv
cb43f19a90 Fixed a variable layer height profile update issue.
https://github.com/prusa3d/Slic3r/issues/358
2017-06-15 20:15:53 +02:00
bubnikv
8a2a9abbd4 Fix of "Raft and support dont work together"
https://github.com/prusa3d/Slic3r/issues/314
There was an issue with raft & soluble support.
Also there was a bug, where the support was not generated correctly
after a change of the support Z gap.
2017-06-13 19:29:15 +02:00
bubnikv
958c6553e7 Hopefully a fix of
"Layer editing does not trigger reslicing with Background Processing enabled"
https://github.com/prusa3d/Slic3r/issues/293
2017-06-09 13:27:35 +02:00
bubnikv
dd41406a55 Fixed regression in invalidation of slicing steps. 2017-06-08 17:46:28 +02:00
bubnikv
ef73bb404b Fixed compilation on gcc. 2017-06-01 16:43:21 +02:00
bubnikv
02592378e2 Improved "ensure vertical wall thickness" feature for multi material:
If the "interface_shells" feature is disabled, the "ensure vertical wall thickness"
feature will not add full infill over internal shells.

Fixed some issues with delayed loading of 3d scenes.
2017-06-01 16:31:29 +02:00
bubnikv
556f40bf00 Clean-up of print step invalidation. 2017-05-31 17:02:23 +02:00
bubnikv
c8b934f8d3 Yet more refactoring of Print / PrintObject in regard to
C++11 loops, configuration and step invalidation.
2017-05-31 12:55:59 +02:00
bubnikv
102329c54d Further refactoring, C++11 conversion and code simplification. 2017-05-30 20:09:34 +02:00
bubnikv
e1ca1a82fb Fixed a regression bug from the last commit. Some more code simplification
and inlining.
2017-05-30 18:33:17 +02:00
bubnikv
41a4df0a38 Print, PrintObject: Invalidation of steps, when chained, will now return
a correct invalidated / not invalidated flag.
Rewrote the step valid state from std::set to a fixed array for performance
reasons.
2017-05-30 17:17:26 +02:00
bubnikv
e000b22578 Implemented wipe tower print path preview. 2017-05-25 22:27:53 +02:00
bubnikv
5126c5018a Provision for disabling TBB parallelization for debugging purposes. 2017-04-05 09:53:24 +02:00
bubnikv
1fb302d480 Reverted due to a failing test t\multi.t 2017-03-28 14:29:27 +02:00
bubnikv
9f7a5c7a6f Some beautification and C++11 adaptation. 2017-03-28 13:25:10 +02:00
bubnikv
79e6f23fdc code beautification, C++11 loops 2017-03-13 16:03:44 +01:00
bubnikv
50976e1b5a Parallelized slices_to_fill_surfaces_clipped() 2017-03-08 23:02:27 +01:00
bubnikv
720459183e Parallelized detection of extra perimeters. 2017-03-08 22:38:08 +01:00
bubnikv
4426e47e2a Fixed a race condition in the parallelization
of the "ensure vertical wall thickness" feature.
2017-03-08 18:10:39 +01:00
bubnikv
20796b89c1 Improved debugging of slicing. 2017-03-08 15:58:40 +01:00
bubnikv
798bca561b Parallelized the slow discover_vertical_shells() 2017-03-08 14:54:04 +01:00