Commit Graph

1329 Commits

Author SHA1 Message Date
bubnikv
93dce7a2d3 Ported config load / stored to C++, thanks @alexrj
Implemented import of config values from the G-code.
2017-06-14 17:51:14 +02:00
bubnikv
c61e098066 Integrated the not yet accepted boost::nowide library, thanks @alexrj. 2017-06-14 16:24:49 +02:00
bubnikv
c431bf5982 Fixed missing default_region_config values exported into the g-code. 2017-06-14 15:16:43 +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
6cb7583756 Reverted the "set_and_wait_temperatures" configuration to match
the behavior of the @alexrj slic3r.
2017-06-13 13:46:04 +02:00
bubnikv
f7831240e1 Fixed compilation on OSX 2017-06-13 12:09:49 +02:00
bubnikv
a4992602ee Auto arrange: Do at least something if the objects do not fit the bed.
Thans @alexr
https://github.com/prusa3d/Slic3r/issues/336
2017-06-13 11:43:25 +02:00
bubnikv
5cae4cc614 Fix of https://github.com/prusa3d/Slic3r/issues/285
Refactored Model.cpp/hpp to C++x11 loops,
simplified the mesh / bbox handling.
2017-06-13 11:35:24 +02:00
bubnikv
21ddcb8487 Fix of a layer height test to allow / disable the wipe tower. 2017-06-12 14:33:33 +02:00
bubnikv
f408f08850 Disabled the new Slic3r version check until we have a server set up
for the Slic3r Prusa Edition.

Hopefully a fix of https://github.com/prusa3d/Slic3r/issues/258
by moving the 2D thumbnail generation to the main thread and
forcing the simple 2D convex hull for even the small objects.
2017-06-12 14:25:35 +02:00
bubnikv
881a5c531b Fix of the last commits:
1) FLT_MAX replaced with limits,
2) apply_config is called by the test case harness to update layer height profile.
2017-06-09 14:24:00 +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
2bbcd49278 Fix of a crash in pressure equlizer filter.
https://github.com/prusa3d/Slic3r/issues/339
2017-06-08 20:28:21 +02:00
bubnikv
dd41406a55 Fixed regression in invalidation of slicing steps. 2017-06-08 17:46:28 +02:00
bubnikv
89dcd3e8b1 Implemented raft support for the wipe tower
https://github.com/prusa3d/Slic3r/issues/324

Implemented a correct layer height preview for the wipe tower layers,
if the wipe tower layer height is not constant due to the application
of raft.
2017-06-08 16:58:29 +02:00
bubnikv
f9f0940297 Implemented rotation of the support structure. 2017-06-08 14:02:37 +02:00
bubnikv
a15e6127cf Relaxed the requirements on the layer height for the Wipe Tower to
the span of 0.15mm to 0.35mm.
2017-06-08 12:10:34 +02:00
bubnikv
8b5f7f0fb2 Limit the object movement to the vincinity of the print bed. 2017-06-08 11:02:29 +02:00
bubnikv
53d08d1883 New BoundingBox3 class. 2017-06-06 19:12:46 +02:00
bubnikv
baf27ff021 Fix of View menu not working https://github.com/prusa3d/Slic3r/issues/307 2017-06-06 13:39:50 +02:00
bubnikv
3e764ada0c For the wipe tower to work, verify that all objects are sliced
with the same layer heights.
Also enforce layer synchronization for soluble supports.
2017-06-06 11:40:35 +02:00
bubnikv
72f348658f Testing for the required parameter combinations before enabling the wipe tower.
The wipe tower needs to be made more general in the future to overcome
these limitations.
2017-06-06 10:36:14 +02:00
bubnikv
88c9ae6ca6 Fix of
https://github.com/prusa3d/Slic3r/issues/315
a crash if the max_layer_height is left to a default value of zero.
2017-06-05 12:02:26 +02:00
bubnikv
ad3be1a69e Implemented filament start / g-codes.
https://github.com/prusa3d/Slic3r/issues/265
https://github.com/prusa3d/Slic3r/issues/319
Based on the implementation by @lordofhyphens
19eea19d91
2017-06-05 11:30:57 +02:00
bubnikv
b5f38dd23f Fixed the "avoid crossing perimeters" bug introduced in Slic3r 1.34.1.24
https://github.com/prusa3d/Slic3r/issues/311
https://github.com/prusa3d/Slic3r/issues/317
https://github.com/prusa3d/Slic3r/issues/323
2017-06-02 13:33:19 +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
0a692cc497 Regression fix of percent config values serialization. 2017-05-30 21:29:43 +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
efb1fd2066 Fixed order of loading the configs into Print / PrintObjects
and loading the 3d print path preview.
2017-05-30 17:24:50 +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
e32632b9d9 Config.cpp/h - inlined short functions, converted loops to C++11,
fixed some constness issues.
2017-05-30 17:04:36 +02:00
bubnikv
2178180a19 Wipe tower: Wipe less than usual amount of material if the wipe
is followed by the final sparse zig-zag tower section.
2017-05-30 10:51:38 +02:00
bubnikv
0120f3ed92 Fix of the final purge over the wipe tower. 2017-05-30 09:25:34 +02:00
bubnikv
3d6c997012 fixed compilation on Windows 2017-05-25 22:54:42 +02:00
bubnikv
2f4ff6577a With single_extruder_multi_material enabled,
don't append a tool selection (Txx) to the extruder temperature
settings (M104 and M109).
2017-05-25 22:52:28 +02:00
bubnikv
e000b22578 Implemented wipe tower print path preview. 2017-05-25 22:27:53 +02:00
bubnikv
7d64c465c0 New config field extruder_color for preview of extruder assignment. 2017-05-24 15:20:20 +02:00
bubnikv
2713aa1772 When generating a g-code for a layer, collect layers of multiple objects
with not exactly the same print_z, but support a slight deviation.
2017-05-23 17:09:43 +02:00
bubnikv
ca590cb559 Refactored ToolOrdering to a class,
layers with print_z closer than EPSILON are merged and printed together.
2017-05-23 15:00:01 +02:00
bubnikv
aad9f61bad Wipe Tower: Fixed some ordering issue in the G-code writer. 2017-05-22 20:56:42 +02:00
bubnikv
c9c4105289 Fixed an excessive retract / derectract length
with the new retract_before_wipe value set to nonzero.
2017-05-22 18:16:35 +02:00
bubnikv
ff9d565ba7 Implemented UI for ordering volumes
https://github.com/prusa3d/Slic3r/issues/277
2017-05-20 22:02:04 +02:00
bubnikv
dfc4717308 Fixes for Multi Material ramming, increased separation of wipe lines. 2017-05-20 18:59:05 +02:00
bubnikv
a99b006b98 Implemented https://github.com/prusa3d/Slic3r/issues/199
by merging the work by @lordofhyphens done on https://github.com/alexrj/Slic3r/issues/3268
2017-05-20 15:29:25 +02:00
bubnikv
70db88dd90 Improved retract handling on bowden extruders:
Separated deretract speed from a retract speed,
allowed a partial retract before wipe.
2017-05-19 19:24:21 +02:00
bubnikv
8bd3dec331 Extrude brim of the wipe tower before any other objects. 2017-05-18 21:22:48 +02:00
bubnikv
11307eb350 typo in default ramming sequence. 2017-05-18 19:49:55 +02:00
bubnikv
c28e4cb0f7 Increased extruder driver current for ramming over the multi material
wipe tower.
2017-05-18 19:05:44 +02:00
bubnikv
81701b400c Prusa Multi Material: Improved path planning when jumping to the wipe tower. 2017-05-18 16:53:19 +02:00
bubnikv
e75d851bc4 Updated MANIFEST,
fixed some compiler warnings.
2017-05-17 20:06:33 +02:00
bubnikv
fdff937cb2 Fixed tool ordering for sequential prints. 2017-05-17 19:25:36 +02:00
bubnikv
34747b2015 Added ABS material to the Prusa Multi Material wipe tower. 2017-05-17 18:14:47 +02:00
bubnikv
66b619dfa4 Bugfix of tool ordering. 2017-05-17 17:21:55 +02:00
bubnikv
f27ec3f226 Prusa Multi Material wipe tower: Do an unretract before doing
the wipe tower things.
2017-05-17 16:59:56 +02:00
bubnikv
cb0a66b743 Initial implementation of a wipe tower preview UI. 2017-05-17 16:53:40 +02:00
bubnikv
7b6c9b3b3c Fixes of the Prusa Multi Material wipe tower. 2017-05-17 16:45:37 +02:00
bubnikv
4bc827d1da WipeTowerPrusaMM: Added some documentation, fixed minor issues. 2017-05-17 10:42:39 +02:00
bubnikv
7b152919a6 Changed handling of extruder temperatures
for single_extruder_multi_material printers.
Fixed some compilation errors on OSX.
Disabled re-slicing on change of new G-code only parameters.
2017-05-16 16:02:52 +02:00
bubnikv
21be680ac2 Fixes of G-code multi-tool ordering. 2017-05-16 15:30:03 +02:00
bubnikv
c22b6edeeb Initial integration of the Prusa MultiMatrial Wipe Tower. 2017-05-16 13:45:28 +02:00
bubnikv
74346efccb Fix of a multi-material g-code export. 2017-05-15 16:42:29 +02:00
bubnikv
60c65f6da7 Fixed crashes intruduced recently into G-code generator.
Added a template sort_remove_duplicates.
2017-05-15 11:32:59 +02:00
bubnikv
89e34ae1d6 Missing include for OSX. 2017-05-12 14:22:20 +02:00
bubnikv
ff0412b417 Support material - Fixed some compilation warnings, added new debbuging
SVG file outputs.
2017-05-12 11:18:32 +02:00
bubnikv
3b5f40710c Support Generator: Fixed initial indices in search caches.
Changed the interface layer infill type to concentric for soluble supports.
2017-05-12 11:14:25 +02:00
bubnikv
46e8259b99 Fixing some missing layers with support material. 2017-05-12 11:09:24 +02:00
bubnikv
805179b9da Wipe tower refactored to remove renundancies,
added comments.
2017-05-12 10:44:56 +02:00
bubnikv
b92aa20cef Include <strings.h> on linux. 2017-05-10 16:15:14 +02:00
bubnikv
146039f402 Added Prusa MultiMaterial Wipe Tower. Now it is time to integrate it
into the G-code generator.
2017-05-10 15:54:59 +02:00
bubnikv
2f57ee60d1 Improved G-code generator for multi-material prints
to minimize tool switches.
2017-05-10 11:25:57 +02:00
bubnikv
18bb3c3244 Added Notes Tab to Printer Settings #210 2017-05-05 11:59:51 +02:00
bubnikv
60528c5c2a Performance improvements of the MotionPlanner
(rewrote the Dijkstra shortest path algorithm to use a binary priority
heap instead of a dumb O(n^2) algorithm, added some bounding box tests
to avoid expensive in-polygon tests if possible).
2017-05-05 09:59:56 +02:00
bubnikv
0adc6cc65e Provide own implementation of std::make_unique for older compilers. 2017-05-03 18:57:33 +02:00
bubnikv
867619fa40 missing include <memory> 2017-05-03 18:35:55 +02:00
bubnikv
e90279c513 Ported the G-code generator from Perl to C++.
Removed GCode.pm
Removed the Perl bindigns for AvoidCrossingPerimeters, OozePrevention, SpiralVase, Wipe
Changed the std::set of extruder IDs to vector of IDs.
Removed some MSVC compiler warnings, removed obnoxious compiler warnings when compiling the Perl bindings.
2017-05-03 18:28:22 +02:00
bubnikv
72ae3585e4 Removed a broken Arc Fitting feature.
Removed the questionable Pressure Advance feature. It is better to use the Pressure Advance implemented into a firmware.
Added a C++ implementation of GCodeReader and SpiralVase, thanks to @alexrj
Added a C++ implementation of GCodeTimeEstimator, thanks to @lordofhyphens
2017-04-26 14:24:31 +02:00
bubnikv
69c0f55679 Fixes loading of multi-part ASCII STLs.
https://github.com/prusa3d/Slic3r/issues/255
2017-04-18 10:53:31 +02:00
bubnikv
23be6233c8 Finalized the experimental "synchronize support layers with object layers"
feature (the support_material_synchronize_layers settings).
The feature is now enabled for the soluble supports only
(with support_material_contact_distance > 0).

Fixes https://github.com/prusa3d/Slic3r/issues/197
2017-04-10 12:00:07 +02:00
bubnikv
688fe3e2b2 Fixed some rare support issues connected with the 1st print layer.
Fixed support issue, where the XY gap was ignored for the top contact layers
and a fixed 50% was used instead.
2017-04-07 17:44:51 +02:00
bubnikv
ed2ee2f6f3 Merged support_fills with support_interface_fills.
When extruding supports, the support is interleaved with interface
if possible (when extruded with the same extruder).
Otherwise the base is extruded first.
2017-04-07 17:37:30 +02:00
bubnikv
7ffb3590c4 Finalized the Prusa Control project file format import. 2017-04-05 14:45:43 +02:00
bubnikv
f9023c0603 Removed some unused code. 2017-04-05 13:50:59 +02:00
bubnikv
6f5700a3a6 Fix of
https://github.com/prusa3d/Slic3r/issues/66
https://github.com/prusa3d/Slic3r/issues/181

Implemented filtering of the support structures expanded into a grid,
where the support parts leaked through the object wall are removed
after the fact.
2017-04-05 09:56:59 +02:00
bubnikv
5126c5018a Provision for disabling TBB parallelization for debugging purposes. 2017-04-05 09:53:24 +02:00
bubnikv
74b95e9152 Adapted BoundingBox get_extents(const ExPolygons &expolygons)
to work even with empty polygons.
2017-04-05 09:52:06 +02:00
bubnikv
555560f63c Simplification, C++11 beautification. 2017-04-05 09:51:03 +02:00
bubnikv
ef2cfdb0d1 C++11 beautification of loops. 2017-04-05 08:59:03 +02:00
bubnikv
47543cf82a Operator< for Point 2017-04-05 08:57:59 +02:00
bubnikv
329f0b9cf4 Debugging output and asserts for TriangleMeshSlicer::slice(). 2017-04-05 08:57:37 +02:00
bubnikv
bd9ee88e2f Fix of https://github.com/prusa3d/Slic3r/issues/214
Dent in perimeters around a hole

Clipper Offset has been extended to remove tiny edges before the offset.
This is important as the tiny edges pose difficulty
for normal calculation, leading to various adverse effects like
kinks and dents in the offsetted contour.
2017-04-04 11:17:25 +02:00
bubnikv
70fcedb113 Fix of https://github.com/prusa3d/Slic3r/issues/232
Single layer of sparse support above dense support before model
2017-04-04 09:57:54 +02:00
bubnikv
1719952f49 Fixing "opening an obj file causes Slic3r to become stuck and use 100% on one core" #221
Extended the OBJ parser to triangulate quads. Higher order polygons are not supported though.
2017-04-03 10:05:22 +02:00
bubnikv
8ac1d37b10 Fixed crashes on OpenGL < 2 due to printing null pointers returned
by glGetString().
2017-03-31 15:29:34 +02:00
bubnikv
36416d77b8 Fixes of VBO rendering on Linux with wxWidgets & GTK 2017-03-30 10:25:52 +02:00
bubnikv
b60ae4745f Fixed missing #include<assert.h> 2017-03-29 19:57:11 +02:00
bubnikv
3e347c33dc Bundled Eigen library. 2017-03-29 18:19:57 +02:00