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
bubnikv
5dc899d64e
Reset wipe moves on tool change and on travel.
2017-03-29 17:45:38 +02:00
bubnikv
4bbb1f4b63
Rewrote next_highest_power_of_2 as a template as OSX had issues with
...
the previous implementation.
2017-03-28 18:02:26 +02:00
bubnikv
3ebf0ce7fd
Improved memory allocation efficiency of the 3D path preview generator.
2017-03-28 17:09:57 +02:00
bubnikv
1fb302d480
Reverted due to a failing test t\multi.t
2017-03-28 14:29:27 +02:00
bubnikv
40b75f6cee
Snapped the bottom interface layer print heights to the top interface
...
layer print heights to avoid too thin layer surfaces. The minimum layer
height at the nozzle page is maintained for the support layers.
Base layers are trimmed by the briding bottom surfaces.
2017-03-28 13:46:31 +02:00
bubnikv
9f7a5c7a6f
Some beautification and C++11 adaptation.
2017-03-28 13:25:10 +02:00
bubnikv
640698d28b
Fixing Zero extrusion print moves and overlapping regions in first layer
...
https://github.com/prusa3d/Slic3r/issues/184
No E distances generated when support is selected. bug?
https://github.com/prusa3d/Slic3r/issues/175
2017-03-27 14:34:07 +02:00
bubnikv
67126d6f48
Moved the NVIDIA and AMD hints to the slic3r.exe wrapper.
2017-03-27 09:06:24 +02:00
bubnikv
0dae43e4bc
Bugfix: when the Voronoi diagram contained very large coordinates we need to check whether they are greater than our allowed range and consider the Voronoi edges infinite in those cases, in order to prevent overflows.
...
https://github.com/alexrj/Slic3r/issues/3776
9ad1360e44
2017-03-24 09:32:30 +01:00
bubnikv
53832aff24
Documented the boost libraries required by Slic3r Prusa Edition
...
https://github.com/prusa3d/Slic3r/issues/88
2017-03-23 16:28:23 +01:00
bubnikv
b7d3ed26c6
Link boost & intel Thread Building Blocks statically by default
...
on Windows and OSX, dynamically on Linux.
This could be overidden by an environment variable
SLIC3R_DYNAMIC=1
2017-03-23 15:06:22 +01:00
bubnikv
9e0a690d2e
Simplified the skirt paths.
2017-03-23 12:35:00 +01:00
bubnikv
073d6d2d43
Fixed colors of the path preview.
2017-03-23 12:34:35 +01:00
bubnikv
1b3c651643
Fixed iusses in rendering print paths through VBOs for multiple objects.
2017-03-23 11:10:53 +01:00
bubnikv
3b5d1d0e25
Try to enforce the use of a high performance NVIDIA / ATI GPU
...
on dual graphic card laptops.
2017-03-23 10:28:08 +01:00
bubnikv
1fb3d00932
Fix of parsing ASCII STLs on Visual Studio 2013 with global optimization.
2017-03-22 17:57:27 +01:00
bubnikv
ed495663e8
Support generator parallelized.
2017-03-22 15:35:50 +01:00
bubnikv
04cd474708
Fixed some instance of simplify_polygons() invocation.
...
Geometry::deg2rad() made a template.
Some methods of Layer made inline.
Added a helper template remove_nulls().
2017-03-22 15:35:09 +01:00
bubnikv
039cd0ac5b
new GLShader.cpp,h
2017-03-20 14:48:17 +01:00
bubnikv
045de596e2
Use OpenGL 2.0 shaders for the layer height rendering.
...
Use OpenGL 2.0 shaders for the print path rendering for performance reasons.
2017-03-20 12:05:20 +01:00
bubnikv
56f845f3c1
Fixed the reports given by the build process if BOOST or TBB libraries
...
were not found.
https://github.com/prusa3d/Slic3r/issues/177
2017-03-17 22:49:43 +01:00
bubnikv
8e28bd36a2
Link XS with -framework OpenGL on OSX.
2017-03-16 14:26:16 +01:00
bubnikv
73de247a15
Enabled SLIC3R_GUI by default. This is required to enable the OpenGL 2.0
...
API through C++ GLEW.
2017-03-16 14:09:42 +01:00
bubnikv
7f7d2da5fe
Use Vertex Buffer Objects for rendering of 3D volumes if possible.
2017-03-16 14:02:28 +01:00
bubnikv
c32c7fa1dc
Fixed a typo.
2017-03-15 21:26:46 +01:00
bubnikv
93cab990c7
Fixed some memory allocation issues of the new C++ 3d path preview
...
(reserved memory has to be shrank around the collected data).
Initial implementation of the vertex buffer objects for the 3d path preview.
2017-03-15 20:45:03 +01:00
bubnikv
d18e10c7c9
Rewrote the OpenGL object rendering to indexed triangle / quad sets
...
for lower memory consumption.
Rewrote the print path 3D preview to generate these indexed triangle / quad
sets, possibly with at least as possible duplication of vertices,
with a crease angle of 45 degrees, leading to maximum 8% overshoots
at the corners.
2017-03-15 16:33:25 +01:00
bubnikv
e7a920fe16
Fixed some picking issues after porting GLVolumes to C++.
...
Initial interface for print paths visualization by VBOs.
2017-03-14 10:11:08 +01:00
bubnikv
79e6f23fdc
code beautification, C++11 loops
2017-03-13 16:03:44 +01:00
bubnikv
c96d794604
BoundingBox, Print - methods inlined, added const accessors.
2017-03-13 16:03:11 +01:00
bubnikv
e6fddd364d
Volume rewritten from Perl to C++,
...
generation of vertex arrays from paths rewritten from Perl to C++,
parallelized.
2017-03-13 16:02:17 +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
a956186c76
Parallelized TriangleMeshSlicer::make_expolygons
2017-03-08 21:55:38 +01:00
bubnikv
336f86c101
Fixed a newly introduced memory leak into the Clipper library,
...
made all Clipper interfaces non-virtual.
2017-03-08 20:27:03 +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
bubnikv
f200781436
C++ compiler suppressed default constructor and assignment operator
...
for Surface after the move operators were implemented. Added
those operators manually.
2017-03-08 14:22:49 +01:00
bubnikv
52b76930aa
Simplify_slices rewritten to C++, parallelized.
...
Added some move methods to Surface class.
2017-03-08 13:43:49 +01:00
bubnikv
4331f38912
Fixing of slicing errors ported to C++, parallelized.
2017-03-08 11:56:42 +01:00
bubnikv
73439b7acb
Parallelized PrintObject::_slice(), make_slices() code.
2017-03-08 10:37:47 +01:00
bubnikv
1e6cf0cd98
TriangleMeshSlicer
...
replaced the vectors of vectors by vectors of indices to a continuous memory,
using binary search to get to an index.
2017-03-08 09:47:32 +01:00
bubnikv
edd7cabf68
Trace TriangleMeshSlicer at loglevel debug (nr. 4)
2017-03-07 22:50:32 +01:00
bubnikv
dfba2cb6b2
Parallelized PrintObject::detect_surfaces_type()
2017-03-07 21:46:45 +01:00
bubnikv
65c024f7cf
Parallelize PrintObject::process_external_surfaces()
2017-03-07 17:43:43 +01:00
bubnikv
109013bed7
Yet another fix of the static linking on Windows.
2017-03-07 16:33:36 +01:00
bubnikv
32b0428303
Yet another fix of a static TBB linkage.
2017-03-07 14:50:32 +01:00
bubnikv
a4dea4b7fc
Fix of intel TBB linking.
2017-03-07 14:31:08 +01:00
bubnikv
32ebb1e2c7
Fix of a static library extension of the INtel Thread Building Blocks on OSX/Linux.
2017-03-07 14:13:30 +01:00
bubnikv
cb1a6eae1e
Added dependencies on the Intel Thread Building Blocks.
...
Changed the C++ parallelization code to Intel Thread Building Blocks.
2017-03-07 13:03:14 +01:00
bubnikv
8a42c0ad9f
Implementation of scaling factor of objects into an AMF file.
...
https://github.com/prusa3d/Slic3r/issues/7
2017-03-06 17:35:38 +01:00
bubnikv
c23c0ee7d2
Fix of https://github.com/prusa3d/Slic3r/issues/172 ?
2017-03-06 15:03:31 +01:00
bubnikv
d20a9d73d4
Fix for OSX: clang requires the member operator< and == to be const.
2017-03-05 16:34:16 +01:00
bubnikv
a9a20003c0
Clipper memory optimization: Own memory manager for OutPt objects.
...
Allocate OutPt by chunks of 32, reuse the released OutPt objects.
2017-03-03 23:06:51 +01:00
bubnikv
f24427cd76
Another Clipper optimization. When adding a set of paths
...
to Clipper, allocate the edges in a single continuous vector.
2017-03-03 21:40:40 +01:00
bubnikv
fa4df36963
Fix: Orientation() has been declared inline, therefore not exported.
2017-03-03 20:39:04 +01:00
bubnikv
5580fd64b3
Clipper library:
...
Added some comments,
some methods were made inline, tiny methods moved to the header as inline,
dynamic allocation replaced with std:: containers,
changed some loops to the condensed C++11 syntax.
2017-03-03 20:38:53 +01:00
bubnikv
fddd7c620f
Some optimization of memory allocation, some reduction / inlining of short functions.
2017-03-03 20:38:40 +01:00
bubnikv
1909c75c21
TriangleMeshSlic3r used unordered_map, which was terribly horribly shamelessly
...
slow on mingw. Rewrote using std::vector<>, which is blazing fast.
2017-03-03 17:36:07 +01:00
bubnikv
a219ae3d27
Set boost tracing level on DLL initialization to errors only.
2017-03-03 14:38:25 +01:00
bubnikv
4de33effdc
Tracing of TriangleMesh repair.
2017-03-03 13:31:51 +01:00
bubnikv
930e6752d9
Reverted unification of positive and negative zeros when loaded
...
from an STL file.
2017-03-03 12:54:00 +01:00
bubnikv
4d00aa1800
More tracing of the slicing process.
2017-03-03 12:53:05 +01:00
bubnikv
062a6628e5
Revert "Some optimization of memory allocation, some reduction / inlining of short functions."
...
This reverts commit bc19e97d45
.
2017-03-02 20:44:53 +01:00
bubnikv
473624fcd7
Revert "Clipper library:"
...
This reverts commit 90a415ae10
.
2017-03-02 20:44:43 +01:00
bubnikv
cd7134e6f6
Revert "Fix: Orientation() has been declared inline, therefore not exported."
...
This reverts commit c2ee73d211
.
2017-03-02 20:44:28 +01:00
bubnikv
c2ee73d211
Fix: Orientation() has been declared inline, therefore not exported.
2017-03-02 17:34:53 +01:00
bubnikv
90a415ae10
Clipper library:
...
Added some comments,
some methods were made inline, tiny methods moved to the header as inline,
dynamic allocation replaced with std:: containers,
changed some loops to the condensed C++11 syntax.
2017-03-02 17:11:46 +01:00
bubnikv
4287362aa6
Extended tracing of the slicing process.
2017-03-02 16:52:24 +01:00
bubnikv
d430767fa7
Define a surface type count constant to be able to address a vector
...
with a surface type.
2017-03-02 16:42:26 +01:00
bubnikv
83a80a9b7d
Optimization of LayerRegion::slices_to_fill_surfaces_clipped()
...
Added some run time tracing through boost::log.
2017-03-02 16:41:16 +01:00
bubnikv
73f603d90e
Fix of #117 : A large fractal pyramid takes ages to slice
...
The Clipper library has difficulties processing overlapping polygons.
Namely, the function Clipper::JoinCommonEdges() has potentially a terrible time complexity if the output
of the operation is of the PolyTree type.
This function implmenets a following workaround:
1) Peform the Clipper operation with the output to Paths. This method handles overlaps in a reasonable time.
2) Run Clipper Union once again to extract the PolyTree from the result of 1).
2017-03-02 16:39:43 +01:00
bubnikv
258252cbf3
Shiny Profiler: Disable exponential dumping of the timing data.
2017-03-02 16:35:15 +01:00
bubnikv
349cf841d6
Need to include '-lboost_filesystem' in build #166
2017-03-02 16:33:50 +01:00
bubnikv
07fa15806f
Utility function SVG::export_expolygons() to paint a set of possibly
...
overlapping ExPolygons with attributes.
2017-03-02 16:32:43 +01:00
bubnikv
dff5bda202
The Shiny profiler is not thread safe. Disable parallelization if
...
SLIC3R_PROFILE is enabled.
2017-03-02 16:31:29 +01:00
bubnikv
bc19e97d45
Some optimization of memory allocation, some reduction / inlining of short functions.
2017-03-01 14:27:08 +01:00
Alessandro Ranellucci
6a90fceaaf
Ported expanded_output_filepath() to C++/XS
2017-02-28 10:38:32 +01:00
Alessandro Ranellucci
6f11969257
Restore [input_filename] in custom G-code as well
2017-02-28 10:28:29 +01:00
AndylgTom
4528f35bc0
Update Config.xsp ( #50 )
...
For fix to display Unicode in category
2017-02-28 10:06:03 +01:00
bubnikv
4010dd71f6
Support Prusa Control project files (.PRUS) by the GUI.
2017-02-27 16:09:22 +01:00
bubnikv
c9465cf7fa
Fixed typos in AMF export.
2017-02-27 01:39:20 +01:00
bubnikv
ee619701d8
Got rid of the Perl Format::STL, Format::AMF, Format::OBJ for good.
2017-02-27 01:03:00 +01:00
bubnikv
9ea570ea4e
Fix of a warning in expat parser, which turns to an error
...
on some Perl/XS installations (strawberry Perl 64bit)
2017-02-26 23:35:44 +01:00
bubnikv
2f67a16c6f
Fixing compilation issues.
2017-02-26 23:13:31 +01:00
bubnikv
2c932b1bf4
Fixed a bug in AMF serialization.
2017-02-26 22:59:25 +01:00
Joseph Lenox
1f1b6c8036
Fixed a missing include.
2017-02-26 22:40:10 +01:00
bubnikv
1b89c08bfc
TriangleMesh.cpp/h:
...
New methods: has_multiple_patches(), number_of_patches()
Improved constness of file access methods.
Reduced some memory allocations costs.
Fixed some crashes of the cut() method on invalid meshes, Slic3r crashes on the unstable triangulation now.
Documented.
2017-02-26 22:17:39 +01:00
bubnikv
5b98f1a068
Some utility methods to help loading models from the disk.
...
Not quite sucessfull try to fix the crahes on mesh cut.
2017-02-26 22:03:03 +01:00
bubnikv
efb02f71f0
AdMesh:
...
unify positive and negative zeros in stl_check_facets_exact() and stl_check_facets_nearby()
New function stl_transform() by a 3x4 matrix.
Some constness improvements.
2017-02-26 21:59:09 +01:00
bubnikv
25dfe7278c
Initial rewrite of the file accessors from Perl to C++.
...
This is especially important for the extremely slow AMF parser.
Also there is a new file handler for the Prusa Control 'PRUS' format.
2017-02-26 21:46:33 +01:00
bubnikv
91af2ddd1e
Include expat parser into the Slic3r source code tree.
...
Having the expat parser inside the Slic3r source base makes life easier
on non-Linux systems and it also allows us to configure the Expat
parser for maximum performance by disabling all unneeded features.
2017-02-26 21:42:52 +01:00
bubnikv
82aed45816
Hopefully fixes the aligned seam:
...
https://github.com/prusa3d/Slic3r/issues/74
The way it works now is following:
Slic3r will add some negative penalty to all perimeter points near the last seam.
Once the perimeter point with minimum penalty is found, its penalty is compared
to a point closest to the last seam. If the penalty of the point
closest to the last seam is nearly as good as the minimum penalty,
the point closest to the last seam is picked instead. This heuristics
will hide the seams into corners if possible, but if not possible, it will
strive to align the seams precisely.
2017-02-22 16:35:07 +01:00
bubnikv
523b7f3ebc
Fix of a typo specific to a debugging build.
2017-02-22 16:13:10 +01:00
bubnikv
f7acb20e23
Changed defaults for the perimeter/infill overlap (15-55%)
...
and for the infill pattern (honeycomb->stars)
2017-02-22 16:06:35 +01:00
bubnikv
a4dd6c7ce5
Added missing get_volume() method to the PrintObject Perl interface.
2017-02-22 16:05:14 +01:00
Alessandro Ranellucci
4a84643894
Fixed regression causing slowdown_below_layer_time to be ignored. #3515 #3443
2017-02-22 15:29:14 +01:00
Alessandro Ranellucci
8174c05df4
Command for reloading an object from file. #1466
2017-02-21 17:58:48 +01:00
Alessandro Ranellucci
a8edff1e84
Always retract in bottom layers. #3053 #3618
2017-02-21 16:37:31 +01:00
Joseph Lenox
c575a1f1d6
Added make_sphere, generates a mesh with specified step angle and raidus rho.
2017-02-21 16:29:09 +01:00
Alessandro Ranellucci
ceb72da632
Implement clone() for Fill classes
2017-02-21 16:22:54 +01:00
Joseph Lenox
716dc2e650
Made cube and cylinder static functions of the package, not some specific TriangleMesh object.
2017-02-21 16:11:52 +01:00
Joseph Lenox
f44df28a96
Fixed mesh generation to generate cylinders.
2017-02-21 16:10:54 +01:00
Joseph Lenox
b91b98b21e
Added prototype make_cylinder()
2017-02-21 16:10:38 +01:00
Joseph Lenox
3bb237deee
Added new constructor to TriangleMesh that accepts vectors of Points and make_cube function to make a new simple cube mesh.
2017-02-21 16:10:14 +01:00
Alessandro Ranellucci
a65c9ba083
Ported CoolingBuffer to C++/XS
2017-02-21 14:02:47 +01:00
bubnikv
8aae5bdb28
The variable layer editing shader was made OpenGL 2.0 compatible.
...
Fixed a bug in the scaling of colors for the variable layer editing.
2017-02-21 09:39:28 +01:00
bubnikv
006173342c
Fixes: Infill patterns triangles/stars seem to be mixed-up
...
https://github.com/prusa3d/Slic3r/issues/143
2017-02-20 22:36:34 +01:00
bubnikv
171148d3a6
Changed the platte of the variable layer height visualization,
...
green shall indicate a thin layer.
2017-02-20 22:22:23 +01:00
bubnikv
440a5eb2a0
Fixes an ugly infinite loop issue.
...
https://github.com/prusa3d/Slic3r/issues/142
2017-02-19 21:45:38 +01:00
bubnikv
70229be9bc
Added SystemInfo dialog,
...
a new SLIC3R_BUILD define to be replaced by the build script,
a menu item to open the "New Issue" github page.
2017-02-19 16:04:57 +01:00
bubnikv
3bfa6416d8
Fixed https://github.com/prusa3d/Slic3r/issues/126
...
by re-shuffling the simplification of a path to be extruded.
A non-simplified path was being used for a wipe move before,
causing an extremely detailed path to be exported into a G-code.
2017-02-15 17:51:46 +01:00
bubnikv
4d739c41a0
Improvements of the layer height spline editing close to the top
...
of the object.
2017-02-15 14:39:08 +01:00
bubnikv
d2d7c5bead
Fixed trimming of support volumes by objects for the soluble supports
...
and for the raft contact layer over soluble supports.
https://github.com/prusa3d/Slic3r/issues/120
2017-02-15 13:34:17 +01:00
bubnikv
d67de182a0
fix of C++11 gcc incompatiblity
2017-02-15 11:16:39 +01:00
bubnikv
3d11d1aebf
make_skirt ported to C++
2017-02-15 11:05:52 +01:00
bubnikv
90028e47e9
Added the append templates for std::vector
2017-02-15 11:03:19 +01:00
bubnikv
f5e4026aee
Fixed some of the raft issues introduced in the new C++ supports.
2017-02-14 19:49:30 +01:00
bubnikv
420e387055
new feature: Clip multi-part objects one by the other.
...
This works the same way as if the XY compensation was set to a tiny value
before, but without the overhead of an offset.
2017-02-14 12:36:04 +01:00
bubnikv
8d6acd2aec
Fix of "no support generated" https://github.com/prusa3d/Slic3r/issues/114
...
when a first layer height was set in percents.
2017-02-12 00:51:53 +01:00
Joseph Lenox
abda054720
Cherry-picked Repetier acceleration fixes, thanks to @lordofhyphens
...
e0d8101627
885f27b8ae
Added a printer settings to enable / disable variable layer height editing.
2017-02-10 09:39:19 +01:00
bubnikv
6c4b4f4d12
Compilation fix on gcc,
...
fix of a maximum layer height limit for variable layer height editing.
2017-02-09 17:09:19 +01:00
bubnikv
b30501b411
Limit the maximum support layer height by the maximum layer height
...
value defined at the printer's nozzle.
Internal filtering of empty support layers to avoid generating
unnecessary Z moves.
2017-02-09 16:19:14 +01:00
bubnikv
88e34ff5de
Store / retrieve layer height profile from the AMF file.
...
Reset the layer height profile when changing a print profile to an incompatible one.
Reset button on the layer height bar.
Fixed an update issue on zooming by a scroll wheel.
Fixed an issue when loading an AMF file: Object names are now retained.
2017-02-09 14:56:13 +01:00
Joseph Lenox
61c0ae4e94
Changed filament density to use g/cm^3. Extended tooltip to indicate calculation methods.
2017-02-08 11:40:52 +01:00
Joseph Lenox
203a965b3d
added total cost/weight to Extruder statistics, mocked up addendum to status bar change.
2017-02-08 11:40:01 +01:00
Joseph Lenox
3846d9e734
Add weight/cost output to gcode. On the way to #647
2017-02-08 11:39:45 +01:00
bubnikv
957803e60c
Added min_layer_height, max_layer_height per nozzle settings
...
for controlling the support layer height & variable layer height.
Added an experimental "rear" seam option.
2017-02-07 18:46:02 +01:00
bubnikv
43ac693900
Added a tooltip overlay for the variable layer height edit tool.
...
Short methods of PrintState made inline.
Added layer height profile to a Model class.
2017-02-07 18:17:12 +01:00
bubnikv
7e6390c4b6
Avoid placement of seams on bridging perimeters, if random seam is enabled.
...
https://github.com/alexrj/Slic3r/issues/3526#issuecomment-263125049
2017-02-02 18:49:33 +01:00
bubnikv
4256af22ff
Created a total_lengt() free function for Polygons and Polylines.
...
Modified the "extra perimeters when needed" function to use the new free functions,
extended the tooltip of the "extra perimeters when needed" feature.
2017-02-02 16:03:32 +01:00
bubnikv
c25ae35737
Fix of https://github.com/prusa3d/Slic3r/issues/75
...
Fixed by @alexr 8f0d8f2096
See also https://github.com/alexrj/Slic3r/issues/3613 https://github.com/alexrj/Slic3r/pull/3614
2017-02-02 15:09:22 +01:00
bubnikv
817d827f7a
GCodeWriter - made tiny methods inline.
2017-01-30 19:57:20 +01:00
bubnikv
4ab972b87a
When the support extruders are set to 0, support is printed with the current material without a tool change.
...
A fix of support path generator.
2017-01-30 19:56:46 +01:00
bubnikv
4e90ae9a28
FillRectilinear2:
...
Fix of a degenerate case, where there is a vertical segment on this vertical line and the contour
follows from left to right or vice versa, leading to low,low or high,high intersections.
2017-01-29 00:20:09 +01:00
bubnikv
0ca230a197
Supports - trimming base support layers with the bottom surfaces.
2017-01-26 12:02:10 +01:00
bubnikv
22124e5f61
Multiple bug fixes in the new support generator to guarantee gap
...
between object and support.
2017-01-25 18:33:05 +01:00
bubnikv
a74aaca681
Disable support interface loops by default.
2017-01-25 18:29:10 +01:00
bubnikv
1699864b8a
utility class ClosestPointInRadiusLookup
2017-01-25 18:26:06 +01:00
bubnikv
c5843988c0
ExtrusionEntity - add only valid polylines
2017-01-25 18:25:14 +01:00
bubnikv
40eaf144f0
new function remove_degenerate(Polylines ...)
2017-01-25 18:23:57 +01:00
bubnikv
c46b6ca27e
ExtrusionMultiPath perl binding - polyline() method.
2017-01-25 18:22:29 +01:00
bubnikv
3985f50c5b
Added new file: ExtrusionMultiPath.xsp
...
Fixed a missing copy constructor of ExtrusionPath.
2017-01-20 15:41:50 +01:00
bubnikv
ff25c0ccc2
Improvements of the new support generator:
...
Variable path thickness for all support layers to avoid over-extrusion.
Supports only in grid cells below the top contacts.
Provision for filtering excessively long perimeter pieces of the support infill lines.
2017-01-20 15:21:05 +01:00
bubnikv
08351b5e48
Fix of ExtrusionMultiPath binding to Perl & G-code generator.
2017-01-20 15:17:32 +01:00
bubnikv
29b986fa76
Improvement of the move semantics on various objects:
...
The source object will be empty after the move operation.
2017-01-20 14:39:44 +01:00
bubnikv
d5f9db76b3
Fix of an inconsistent bottom contact layer thickness
...
in case two and more bottom contact layers overlap after their extension.
New method modulate_extrusion_by_overlapping_layers() reduces thickness
of an extrusion path where it overlaps in Z with some other paths.
The same trick has yet to be applied to the layers overlapping in Z with
top contact surfaces.
2017-01-19 13:47:06 +01:00
bubnikv
0b90ebd74e
Move semantics on MultiPoint, Polygon, Polyline.
...
Append methods on Polyline.
squared length function on point->DistanceTo
2017-01-19 13:43:29 +01:00
bubnikv
50cdf8e6d1
Move semantics for ExtrusionEntityCollection
2017-01-19 13:37:15 +01:00
bubnikv
e016c4e423
New extrusion class: ExtrusionMultiPath
...
This is similar to an ExtrusionLoop, but it is open.
It may contain multiple chained paths with differing parameters.
This allows one to have a hierarchy of paths, where the ExtrusionEntityCollection
will be chained by the G-code generator, but ExtrusionMultiPath will not.
2017-01-19 13:35:55 +01:00
bubnikv
e6b441eea4
Merge branch 'master' of https://github.com/prusa3d/Slic3r
2017-01-16 10:57:06 +01:00
bubnikv
4eed07bbab
Fix of the 1st support layer.
2017-01-16 10:56:40 +01:00
Eyal Soha
b851e04c17
Change char to int
...
char might be signed or unsigned but int is definitely signed. This fixes prusa3d/Slic3r#93 .
2017-01-12 11:30:14 +02:00
Eyal Soha
0db4be56a5
use int instead of char
2017-01-12 10:05:59 +02:00
bubnikv
41fbec9063
Only synchronize intermediate layers if explicitely asked for.
2017-01-11 18:05:03 +01:00
bubnikv
f0cf7adf84
Bugfix of a new support - first layer thickness of the support.
2017-01-11 17:22:28 +01:00
bubnikv
c2ba5901e4
Copy / move assign operators for ExPolygon.
2017-01-11 14:38:24 +01:00
bubnikv
c632d08550
Only compile debug output functions for SupportGenerator if SLIC3R_DEBUG is enabled.
2017-01-11 14:37:53 +01:00
bubnikv
87964eb57a
Move semantics for the ExPolygon constructor.
2017-01-11 13:44:11 +01:00
bubnikv
bd3daeed5a
Slightly more efficient PrintObject Layer destruction.
2017-01-11 13:43:33 +01:00
bubnikv
fa1506c833
Bugfix of duplicate support print paths.
2017-01-11 13:42:41 +01:00
bubnikv
d9ea3df85f
Another step to make the new C++ supports working.
...
Added support_material_xy_spacing configuration.
2017-01-05 09:14:59 +01:00
bubnikv
1ba03af2da
Made the config value support_material_xy_spacing relative
...
to the external perimeter width.
2017-01-05 09:12:24 +01:00
bubnikv
bbdaa44acb
Const version of a PrintObject::get_region(). Made get_region() inline.
2017-01-05 09:11:36 +01:00
bubnikv
b42c5d6dfa
Extended the SVG exporting class with export_expolygons()
...
calculating the contour bounds internally.
2017-01-05 09:10:16 +01:00
bubnikv
aad3d4107f
Improved debugging of the EdgeGrid distance field function.
2017-01-05 09:09:26 +01:00
slicer-builder
bb22f1dc8a
prototyping tweakable XY supports;
...
option should be present now in advanced support menu.
Can't figure out what's going on atm; support should be moving but isn't
2017-01-03 11:46:52 +01:00
bubnikv
07dd06c53c
Merge remote-tracking branch 'origin/supports-synchronize-layers'
2017-01-03 10:51:23 +01:00
bubnikv
7a2572a0fb
Improved debugging of "ensure vertical wall thickness" feature.
2017-01-03 10:51:19 +01:00
bubnikv
17db5bff8d
Fix of
...
Number of solid top/bottom layers ignored,
Ensure Vertical Shell Thickness interferes with solid top layer count
https://github.com/prusa3d/Slic3r/issues/79
https://github.com/prusa3d/Slic3r/issues/60
2017-01-02 16:51:43 +01:00
bubnikv
479f716625
Improvements in the manual layer width editor.
2016-12-21 16:00:41 +01:00
bubnikv
955bc957ba
New supports now do rafts at least to the extent the test cases run through.
...
New supports enabled, old supports will go away soon.
2016-12-20 12:19:13 +01:00
bubnikv
6400cec7ae
Merge branch 'master' into dev
2016-12-15 12:54:34 +01:00
bubnikv
c1f4d06be2
define -DBOOST_LOG_DYN_LINK for boost::log
2016-12-15 09:46:41 +01:00
bubnikv
56e87e3bdb
Set BOOST_LOG_DYN_LINK symbol when linking with dynamic boost libraries.
2016-12-14 16:51:27 +01:00
bubnikv
a870b69733
Fixed static linking against boost.
2016-12-14 15:43:26 +01:00
bubnikv
ae2e37b4bd
Added diagnostics of @LIBS, @INCS to the Build.PL
...
Extended MANIFEST with new files.
2016-12-13 22:46:28 +01:00
bubnikv
2cd96cabcd
Another take to get rid of the templates from the ClipperUtil.hpp
...
to compile cleanly on OSX.
2016-12-13 22:13:02 +01:00
bubnikv
852b542913
Had troubles with the template instantiation on OSX, so I reverted
...
them to overloaded functions. This is certainly easier to read and
work with anyway.
2016-12-13 21:30:56 +01:00
bubnikv
ddea33d93a
Fixed compilation of ClipperUtils on GCC, which is more strict
...
than VS2013 compiler.
2016-12-13 19:52:28 +01:00
bubnikv
e64dcf5e59
VS2013 could compile this, let's hope GCC will as well.
2016-12-13 19:39:20 +01:00
bubnikv
6582182e0c
Adapted to the new ClipperUtils.hpp interface by @alexrj
2016-12-13 19:22:23 +01:00
bubnikv
b2a5a1d22f
Added a move constructor / assignment operator to the old Clipper library
...
PolyTree class.
2016-12-13 18:59:18 +01:00
bubnikv
e22d007ab7
Fixed typo, missing class name.
2016-12-12 23:46:50 +01:00
bubnikv
06540f73f7
Try to fix compilation problems due to Perl crazy macros.
2016-12-12 19:13:33 +01:00
bubnikv
ce7717e450
Fix compilation on Linux.
2016-12-12 18:59:35 +01:00
bubnikv
e5b77e08de
Perl crazy macros strike again, they collide with boost threads.
2016-12-12 18:55:04 +01:00
bubnikv
1ea958158a
Support for user definable variable layer thickness, the C++ backend.
2016-12-12 17:53:38 +01:00
bubnikv
2ab86a4895
ConfigOptionVector::get_at(idx)
...
Avoid using exceptons for normal work flow. Assert if the vector is empty.
2016-12-12 15:56:42 +01:00
bubnikv
d775c6c14c
Added methods set/add to SurfaceCollection.
2016-12-12 15:54:37 +01:00
bubnikv
333a0b1c0e
Shortcuts for zero mesh transformations.
2016-12-12 15:52:04 +01:00
bubnikv
933a0db9ed
Minor fix of bridging flow, see @alexrj 3a3b24ec7c803c58919a5401e5804261999875b4
2016-12-12 15:33:14 +01:00
bubnikv
126126cc78
Fixes after the merge of changes by @alexrj.
2016-12-08 19:02:16 +01:00
bubnikv
5d18657ac5
Don't be lazy, use fully qualified Slic3r::Polygon/ExPolygon/Point/Line names
2016-12-08 15:16:09 +01:00
Alessandro Ranellucci
24e0b568b5
Fix compilation, cherry picked from @alexrj fde6e2e61deabd097a3bf565d4948077147b25ab
2016-12-08 15:01:36 +01:00
Alessandro Ranellucci
a26330a292
Try to fix compilation problem with Boost 1.54. #3595
2016-12-08 14:56:13 +01:00
Joseph Lenox
a8930f12cd
Fix perl redefining multiple functions also defined/used by boostlib through the include chain. ( #3593 )
...
Resolved ordering dependency (thanks win32 perl!)
2016-12-08 14:53:52 +01:00
Alessandro Ranellucci
5dc8a0808e
Maybe the Travis CI server has more than 16 cores?
2016-12-08 14:52:42 +01:00
Alessandro Ranellucci
d8082b9db4
Try to fix compilation error about the new threads default
2016-12-08 14:52:15 +01:00
Alessandro Ranellucci
9e8dae817d
Fixes and improvements to the view selection menu, cherry picked from @alexrj a7693c4719c0e0e0129aea7461706d2ed53a52cc
2016-12-08 14:51:35 +01:00
Alessandro Ranellucci
d628764da6
Minor fixes to parallelize code, cherry picked from @alexrj 5242b3e03ab2b195ba9c7c53fba705a8ed1c7abd
2016-12-08 14:44:03 +01:00
Alessandro Ranellucci
73ddd3b438
Refactored parallelization code, cherry picked from @alexrj 36789774471a0bf9a66bb33cc3ab6984f8ede8c6
2016-12-08 14:40:47 +01:00
Alessandro Ranellucci
9fbd135f14
Automatically detect the number of cores and use that as a default for threads number
2016-12-08 14:28:36 +01:00
Alessandro Ranellucci
70a9de085b
Parallelize TriangleMeshSlicer::slice(), cherry picked from @alexrj 83ad123d951c6ee663d2f3b02e095c203ca794e7
2016-12-08 14:28:09 +01:00
Alessandro Ranellucci
e9290252d6
Fixed regression in the _make_perimeters port
2016-12-08 14:25:05 +01:00
Alessandro Ranellucci
86c8207d31
Ported make_perimeters() and infill() to C++/XS, use pure C++ threads, cherry picked from @alexrj 66591bcc556c01572ec7519b1f8cb4ee2d430685
2016-12-08 14:24:40 +01:00
bubnikv
3e8cafa857
Fix of ASCII STL parser. Accept a model even with invalid normals.
2016-12-05 11:39:17 +01:00
bubnikv
26a8017e99
Made the support interface contact loops configurable.
2016-11-30 17:33:55 +01:00
bubnikv
556204fddc
support_material_synchronize_layers configuration value
...
for synchronization of object layers with print layers.
2016-11-30 16:04:15 +01:00
bubnikv
946b36bb4d
Supports using the EdgeGrid simplify_contour
2016-11-29 19:30:59 +01:00
bubnikv
1d44e92a6e
Point dot operator and PointHash object for std unique_xxx functions.
2016-11-29 19:29:24 +01:00
bubnikv
5c23ee504c
EdgeGrid::contours_simplified for supports
2016-11-29 19:28:33 +01:00
bubnikv
ca5ad58ad2
logging of slicing process
2016-11-29 19:27:23 +01:00
bubnikv
85aa802d4b
Fix of the last clipperutil safety_offset modification. Handle safety
...
offset of holes separately, don't forget to reverse them before / after.
2016-11-29 19:26:26 +01:00
bubnikv
792856a505
Bounding Box - new method align_to_grid
2016-11-29 19:25:10 +01:00
Bill Waggoner
50fe691604
Squashed commit of the following:
...
commit 7fc66514bf3fbcc2c2709a4eb94856fa9b3ba523
Author: Bill Waggoner <ctgreybeard@gmail.com>
Date: Mon Nov 28 14:09:09 2016 -0500
Build.pl fails to find boost libraries
commit 3fa66c4970eb2235aa57041a5a318ddcb1910219
Author: Bill Waggoner <ctgreybeard@gmail.com>
Date: Mon Nov 28 14:00:07 2016 -0500
Build.pl fails to find boost correctly
Signed-off-by: Bill Waggoner <ctgreybeard@gmail.com>
2016-11-28 14:28:50 -05:00
bubnikv
bde2ee6a7e
Step forward in the C++ supports.
2016-11-28 17:36:50 +01:00
bubnikv
8b0784f26c
Added a free "cross product" function to Pointf (thinking the Pointf is
...
really a vector in this case).
Made the == operator inline.
2016-11-28 17:34:52 +01:00
bubnikv
695c92fb00
CLIPPER_OFFSET_SCALE was made a power of two, the scaling functions
...
inside ClipperUtils are now using bit shifts instead of multiplication
by doubles, which makes the scaling precise.
Removed the scale parameter from all offset functions.
Modified the safety offset to calculate offset per polygon instead
of over all polygons at once. The old way was not safe and very slow,
sometimes this meant a kiss of death for supports for example.
2016-11-28 17:33:17 +01:00
bubnikv
e93253e270
Extended tracing of Support generator
2016-11-24 15:38:19 +01:00
bubnikv
a5b04d5cf3
Support calculation optimized.
2016-11-24 15:05:05 +01:00
bubnikv
e02755632e
new Utils.hpp
2016-11-24 14:05:06 +01:00
bubnikv
0d20a81354
Log support through boost::log
2016-11-24 13:44:51 +01:00
bubnikv
e67e37c772
Supports: Disabled debugging,fix of bottom surface over print.
2016-11-24 11:29:31 +01:00
bubnikv
14df0717ca
Fix of new suports.
2016-11-24 10:43:47 +01:00
bubnikv
d8be4de6cf
One step further to the C++ Supports.
2016-11-23 15:51:47 +01:00
bubnikv
1a1eaa0810
increased version number.
2016-11-20 23:06:56 +01:00
bubnikv
39679f9518
Missed this one at the last check-in.
2016-11-20 12:59:29 +01:00
bubnikv
ef69474636
Optimized Layer::merge_slices()
...
Don't merge classified pieces of layerm->slices, but use the non-split
islands of a layer. For a single region print, these shall be equal.
Added Slic3r-console.ico windows icon for the console Slic3r.
This is a copy of the big icon, with the big images stripped off.
2016-11-20 12:38:59 +01:00
bubnikv
79f5a16536
Reverted the perimeter generator to not save the perimeter areas.
...
These could be calculated from the fill areas if needed.
On the other side, the non-classified (non-split) fill areas are stored
now for use in the "ensure vertical wall thickness" feature,
also the non-split fill areas are re-used when recalculating the infills.
This is safer than trying to stitch the fill region together from the
classified fragments.
Modified the "ensure vertical wall thickness" feature to use the non-split
fill areas instead of perimeter areas for the calculation
of non-supported regions. This is cheaper as the fill areas contain
roughly half the edges.
2016-11-17 23:22:59 +01:00
bubnikv
2085a482c7
admesh: Fixed a problem in loading an STL when compiled with
...
Visual Studio 2013. Added multiple compile time checks for data
sizes and alignment. The library STL import is not big endian safe, so
added a test for endianity, modified STL export to a faster little endian only.
2016-11-17 16:57:58 +01:00
bubnikv
9772584d78
Tame the Shiny profiler. Make it switchable with define SLIC3R_PROFILE.
2016-11-16 23:11:51 +01:00
bubnikv
3d47c52b47
In "ensure vertical wall thickness", the union_ is called each time
...
a new layer is added to the shell. This is faster than calling union_
over all collected polygons. Also security offset has been disabled.
2016-11-16 22:16:20 +01:00
bubnikv
6a3bdf43dc
ClipperUtils extended with intrusive profiling macros.
...
offset2() was exteded with a shortcut, if both offset directions
are of the same direction.
2016-11-16 22:12:58 +01:00
bubnikv
bcda69c1e5
Extended the Build.PL to understand an environment variable
...
SLIC3R_PROFILE to set the C++ symbol of the same name to enable
Shiny profiler.
2016-11-16 22:10:04 +01:00
bubnikv
c3af189045
Reduced some compiler warnings.
2016-11-16 22:09:00 +01:00
bubnikv
901ec0ad37
Disable includes inside Shiny sources when SLIC3R_PROFILE symbol is not defined.
2016-11-16 22:04:38 +01:00
bubnikv
bfbe85b5c2
Some optimization of the "ensure vertical wall thickness" feature.
2016-11-16 18:04:47 +01:00
bubnikv
e857833a91
Undef seed macro because of crazy perl macro substitutions.
2016-11-16 13:19:48 +01:00
bubnikv
a36cc6491c
Fixed compilation of XS modules by undefinig the "seed" macro
...
redefined crazily by Perl.
2016-11-16 13:14:42 +01:00
bubnikv
1589ffb224
Fix for compilation on Strawberry Perl with C++11 enabled.
2016-11-16 13:06:51 +01:00
bubnikv
68e9ec0d41
Set the C++ version to C++11 for all compilers but Visual Studio C++.
2016-11-16 13:00:36 +01:00
bubnikv
4c407c8a59
Optimization of Model bounding box routines (avoids copying the mesh),
...
optimization of the admesh rotate function (also made numerically more robust).
2016-11-16 11:53:29 +01:00
bubnikv
52de3940fe
Improvements of admesh robustness when loading and fixing STLs.
...
https://github.com/prusa3d/Slic3r/issues/33
2016-11-16 10:33:23 +01:00
bubnikv
d1d6e907c5
Positive and negative zeros are possible in the floats, which are considered equal by the FP unit.
...
When using a memcmp on raw floats, those numbers report to be different.
Unify all +0 and -0 to +0 to make the floats equal under memcmp.
2016-11-16 09:31:18 +01:00
bubnikv
e6d802a5ff
Fixed a 64bit compatiblity in admesh, fixed a typo in TriangleMesh::swap()
2016-11-15 17:22:00 +01:00
bubnikv
9abe07852e
Fixed https://github.com/prusa3d/Slic3r/issues/32
2016-11-12 23:20:49 +01:00
bubnikv
7ebc3b0884
Merge branch 'master' of https://github.com/prusa3d/Slic3r
2016-11-12 19:05:12 +01:00
bubnikv
b116fe287c
Fixes https://github.com/prusa3d/Slic3r/issues/32#issuecomment-260135542
...
Reverts an inadverent bug introduced in 4460b5ce50
2016-11-12 19:04:40 +01:00
Miro Hrončok
ec3aeb1e47
Update the version
...
If this version is not updated, Slic3r shows the old version
in the title bar and status bar and that can be confusing to the user.
2016-11-11 16:46:05 +01:00
bubnikv
c2d5b32ee2
Changed the logic of the "ensure vertical wall thickness" feature
...
slightly by inflating the projected top/bottom/bottom bridge surfaces
before they are added into a surface. This ensures, that the possible
projected infill areas merge with the perimeter supporting areas,
but the perimeter supporting areas will not be inflated on their own,
if there is no touching projection of a top/bottom/bottom bridge
surface.
2016-11-11 11:13:36 +01:00
bubnikv
4460b5ce50
re-wrote PrintObject::detect_surfaces_type() to C++,
...
Fixed some cracks in the fill surfaces created by rounding all surfaces inside detect_surface_type().
Fixed https://github.com/prusa3d/Slic3r/issues/12
Bridging-Angle not optimal
Extended the "Ensure veritcal wall thickness" mode (merged with the original discover_horizontal_shells function), but this a work in progress. Already Slic3r with "ensure vertical wall thickness" produces less spurious infills inside solids.
2016-11-10 19:23:01 +01:00
bubnikv
317e9131e8
New sparse infill: "stars" - David's star shaped infill.
...
This is very similar to a "triangles" infill, but maximum two lines
intersect at a single point.
added utility function get_extents_vector()
2016-11-09 15:39:12 +01:00
bubnikv
eb0ab38618
Fixes https://github.com/prusa3d/Slic3r/issues/26
...
Strange behavior of Extra perimeters and ensure wall thickness
Old behavior is re-enabled when ensure vertical wall thickness is off.
2016-11-09 10:24:45 +01:00
bubnikv
e92501e51e
Use a less aggressive positive offset for top/bottom/bridge surfaces,
...
when enlarging them for better anchoring.
2016-11-08 15:35:08 +01:00
bubnikv
443e900e07
Fixed compilation on Strawberry
2016-11-08 11:23:08 +01:00
bubnikv
5aacc6b015
Extended exit report when catching an exception under a broken
...
Strawberry Perl.
2016-11-08 11:15:09 +01:00
bubnikv
2e53c06159
Finished the SLIC3R_HAS_BROKEN_CROAK magic.
2016-11-08 10:59:43 +01:00
bubnikv
eb61373b69
Compilation with an environment variable SLIC3R_HAS_BROKEN_CROAK set
...
will force the perl confess / croak called from a C++ code to
print an error message and exit. There is a bug in some Strawberry
Perl instalations leading to an interpreter hang up and an exit
with a reasonable message is better than that.
2016-11-08 10:49:32 +01:00
bubnikv
22ca927f12
Reworked the bridge detector to allow searching a single bridging
...
direction over multiple regions. This allows a single bridge to be
drawn over holes, which are too close to each other to allow
for separate bridges.
Fixes Bridging-Angle not optimal
https://github.com/prusa3d/Slic3r/issues/12
Re-allowed adaptive infill line width for solid infills. The adaptive
infill line width works in some circumstances, see Issue #15 ,
but the original implementation often changed the line width too
aggressively. The current implementation limits the line width change
to 20%.
Fixes Gaps between infill and perimeter leads to errors in laydown on following layer
https://github.com/prusa3d/Slic3r/issues/15
2016-11-08 09:59:25 +01:00
bubnikv
5a81731577
Implemented utility functions to operate over lines, polylines, polygons,
...
surfaces.
2016-11-07 22:49:11 +01:00
bubnikv
aac968162b
Unit test to verify whether Slic3r would hang when croaking from
...
a C++ exception handler. This is an unfortunate error in some
Strawberry Perl distributions.
2016-11-06 17:42:36 +01:00
bubnikv
e9e55e7ac3
Fix missing cubic infill line, thanks @KoKuToru for pointing out the problem
...
and proposing a fix.
https://github.com/prusa3d/Slic3r/pull/18
Fixed a slight bug, where the infill did not take the complete area.
2016-11-06 16:03:13 +01:00
bubnikv
bfb336df0c
Refactored Print::validate() method to not throw an exception, but
...
to return a string with an error message instead. This was necessary
to avoid a hang-up on some Strawberry Perl distributions, when
a perl "croak" function is called after a C++ exception is caught.
2016-11-05 02:23:46 +01:00
bubnikv
89cf29080b
Fix of https://github.com/prusa3d/Slic3r/issues/14
...
A to_polygons(SurfacePtrs &&) method does not make sense as
the ownership of the Surfaces stored in the pointer array is not known.
Thanks to @flannelhead for precisely pinpointing this issue.
2016-11-04 17:20:32 +01:00
bubnikv
96a1c74d45
Let's hope to fix compilation on gcc.
2016-11-04 17:09:01 +01:00
bubnikv
a10e9c6573
Fix of https://github.com/prusa3d/Slic3r/issues/13
...
The BoundingBox::defined flag was not set in constructor,
if initialized from min/max corners.
2016-11-04 16:49:08 +01:00
bubnikv
6217622865
Hopefully a fix of https://github.com/prusa3d/Slic3r/issues/11
...
Replaced eval { die } construct with a bool return value indicating
success or failure of an automatic arrangement of parts on the print bed.
Don't know exactly what is happening here, but throwing a "die" inside
a XS function and then catching it inside an eval {} block is suspcious.
2016-11-04 15:03:51 +01:00
bubnikv
3fc57ba8d8
Fixed compilation of the XS module with SLIC3R_GUI compilation flag
...
enabled, leading to a linkage of GL and GLU libraries.
https://github.com/prusa3d/Slic3r/issues/8
2016-11-04 01:06:26 +01:00
bubnikv
61d82b02b5
Improves https://github.com/prusa3d/Slic3r/issues/3
...
Limits the length of an infill connecting segment of a solid infill
to 3x the solid infill spacing.
2016-11-04 00:55:43 +01:00
bubnikv
483a658144
Method ExtrusionEntity::polygons_covered() and derived were split
...
into polygons_covered_by_width() and polygons_covered_by_spacing().
Bugfix of ExtrusionLoop::split_at(const Point &point),
where the split ExtrusionPaths were not initialised correctly.
2016-11-04 00:10:35 +01:00
bubnikv
f278fa454e
Merge pull request #10 from flannelhead/cpp11-fix
...
Fix compilation with C++11 and above
2016-11-03 19:10:45 +00:00
bubnikv
7b6b609df1
ExtrusionEntity and derived classes: Documented, short methods made
...
inline for efficiency and readability, grow() renamed to polygons_covered().
2016-11-03 10:24:32 +01:00
Sakari Kapanen
fad91b86bd
unique_ptr instead of auto_ptr for C++11 and above
2016-11-03 08:18:27 +02:00
Sakari Kapanen
60ea0561ec
Copy and move variants of chained_path functions
2016-11-02 22:31:03 +02:00
Sakari Kapanen
381c88ce0c
Fix typos preventing compilation with CPPVER >= 11
2016-11-02 22:29:59 +02:00
bubnikv
28ccb51f9b
Fixed a crash when accessing a non-existing config value from C++ infill.
...
Disabled a test case of 100% infill coverage. This needs to be
yet improved.
2016-11-02 16:55:56 +01:00
bubnikv
a6cf6afb49
Missing #include <memory>
2016-11-02 11:13:13 +01:00
bubnikv
95ede7c4b8
Rewrote Fill2.pm to C++, deleted Perl infills for good.
...
Removed dependency on Perl Math::PlanePath module.
Fixed compilation with Visual Studio and SLIC3R_DEBUG: Visual Studio older than 2015 does not support the prinf type specifier %zu. Use %Iu instead.
C++11 move semantics enabled.
2016-11-02 10:47:00 +01:00
bubnikv
3a31d37d35
Fix of https://github.com/prusa3d/Slic3r/issues/5 :
...
missing #include <assert.h> in FillBase.hpp
Also disabled the automatic width adjustment in all the infills
by default for now.
2016-11-02 09:00:26 +01:00
bubnikv
36f51ff2bf
Fixed a return value in the Config multi-string parser.
2016-11-01 14:52:44 +01:00
bubnikv
0264381f79
Missing include for memcpy for Linux.
2016-11-01 13:53:28 +01:00
bubnikv
3d3654707b
Added "Notes" page to the filament configuration.
...
Added "filament_max_volumetric_speed", a cap on the maximum volumetric
extrusion role, filament specific. This is very useful when mixing
rigid filament with a soft filament.
Extended the import / export of multi-string values into configuration
values, including the test cases. Multi-line strings will be enclosed
into quotes, quotes escaped using a C-style escape sequences. Single
word strings could still be stored without quotes.
2016-11-01 13:41:24 +01:00
bubnikv
4e66ed81d2
Fixed the fill density for rectilinear, triangular and cubic infills.
...
Initial implementation of the "infill link maximum distance" feature.
Parts of the perimeter connecting two infill lines will be dropped,
if longer than a given threshold.
2016-10-27 17:03:57 +02:00
bubnikv
4524ecf66b
by alexrj: Always convert strings to UTF-8 before passing them to XS
2016-10-24 14:08:22 +02:00
bubnikv
250ff451ba
by alexrj: Fixes in GCodeSender to reset the connection after it breaks.
...
by alexrj: Fix in mouse handling of 2DBed.
by alexrj: ClipperUtils for ExPolygon vs. ExPolygon
2016-10-24 14:07:38 +02:00
bubnikv
cc8b7390ee
Make sure the shells for the "ensure verticall wall thickness" feature
...
are thick enough to be actually filled by the rectilinear fill.
Otherwise gaps would be left in the sparse infill, causing missing
bond to the perimeters.
2016-10-22 22:25:00 +02:00
bubnikv
b28d31d0fe
Fixes gaps created around the 3D honeycomb infill. The bug has been
...
introduced during the C++ porting of the original Perl code.
2016-10-22 21:31:39 +02:00
bubnikv
20cd34a3a5
Cubic infill.
2016-10-21 18:56:55 +02:00
bubnikv
1fb57e439e
Defined the +-* operators on Pointf.
...
Removed the deprecated VibrationLimit feature.
Added triangle infill.
The Prusa3D fork of Slic3r has been marked as "Slic3r Prusa Edition"
with menus pointing to the prusa3d/slic3r github release page
and Prusa3D drivers downloads page.
2016-10-21 16:53:42 +02:00
bubnikv
15d3e94a66
Unified the creation of paths of debugging output files
...
pointing to a predefined output directory.
2016-10-21 10:18:01 +02:00
bubnikv
59f3fed9f2
gcc bailed out on <cstdint>
2016-10-20 18:38:44 +02:00
bubnikv
978fca6f7c
Fixed a compilation problem on OSX.
...
Fixed an inverted assert condition.
2016-10-20 18:34:33 +02:00
bubnikv
9e4edcd8ec
Enabled the C++ fillers for all infills, not just the supports.
...
Made sure the C++ fillers are instantiated at the worker threads,
where there are being released.
Extended the FillRectilinear2 to calculate the contour / line intersection
with exact arithmetics, improved robustness and added error handling
and error reporting, if the contours to be filled are not correct.
2016-10-20 17:44:46 +02:00
bubnikv
f788f50b5a
Disabled asserts in the release build (-DNDEBUG).
...
Added a safe variant of offset(const Slic3r::ExPolygon...), which offsets each loop separately.
New functions "remove_sticks" to remove zero area parts of polygons.
New functions "remove_small" and "remove_degenerate" for polygon clean up.
Extended the C++ supports, those are not finalized yet though.
2016-10-20 13:04:23 +02:00
bubnikv
53907a9cfe
Fix of a crash when setting a viewport over an empty platter.
...
Exported bounding box 'empty' method to perl.
2016-10-18 16:44:05 +02:00
bubnikv
26349b30c5
Fixed a bug in EdgeGrid for horizontal or vertical lines ending at the grid lines.
2016-10-17 18:06:38 +02:00
bubnikv
7fd06ef311
Removed #include <malloc.h> from the Shiny profiler as there is no
...
malloc.h on OSX.
2016-10-17 12:13:30 +02:00
bubnikv
6f4a04c2d7
Fix of compilation on Linux. Disable hopefully finally the Shiny profiler.
2016-10-17 10:33:23 +02:00
bubnikv
52dc18e350
Hopefully fixed compilation of the Shiny profiler on Linux,
...
where the Shiny profiler shall be disabled.
2016-10-17 09:55:42 +02:00
bubnikv
19312d0a1a
Yet another fixes to make SupportMaterial.cpp compile on gcc.
2016-10-17 09:34:48 +02:00
bubnikv
30c1be40da
Fixes of SupportMaterial.cpp
2016-10-17 09:27:20 +02:00
bubnikv
e8f73134e6
Fixed a typo, which broke compilation on GCC.
2016-10-16 23:13:43 +02:00
bubnikv
75ee1baf1d
Another tiny change to support non C++11 compiler.
2016-10-16 23:05:47 +02:00
bubnikv
a7c53c7f5f
Disable C++11 hash feature in C++ Supports to compile on Strawberry.
2016-10-16 22:56:21 +02:00
bubnikv
47cc9687a0
Added a new switch: ensure_vertical_shell_thickness
...
This enables a zig-zag infill similar to Cura or Simplify3D
on overhangs.
2016-10-16 22:11:19 +02:00
bubnikv
7d7f093120
C++ supports sketched, but not finalized yet. Slic3r is still using
...
the old Perl supports, but this time with the C++ fillers.
2016-10-16 16:30:56 +02:00
bubnikv
8f40d9b34e
Initial implementation of C++ supports,
...
some documentation of the existing code.
2016-10-13 16:00:22 +02:00
bubnikv
c16eca0065
Improvements of the C++ RectInfill2 code for supports:
...
Make the contours more continuous.
Some documentation, asserts and such.
2016-10-06 21:41:52 +02:00
bubnikv
5268574ade
Made the sheath around the base support configurable. Without the sheath
...
it is easier to remove the support, but the support is more fragile.
2016-10-04 14:38:13 +02:00
bubnikv
5bb37ad2c4
A new feature "support_material_buildplate_only" implemented.
...
Also a bug has been fixed for zero interface layers. Before
slic3r would put infinite number of interface layers over top surfaces,
if the number of interface layers was set to zero.
2016-10-04 13:54:10 +02:00
bubnikv
b7af7276c9
Instantiate the new C++ filler. It will be used for the supports first.
2016-10-03 16:59:00 +02:00
bubnikv
d2635ab799
Finished merging of bridging regions.
2016-09-30 16:11:19 +02:00
bubnikv
3a81e6bee4
Bugfix of bottom bridges. If close regions shall be closed by bridges,
...
these regions are grown to anchor the bridge lines to the bottom surface.
The grown regions may overlap. In that case the regions are now merged
before the bridging direction is calculated for the merged region.
2016-09-30 15:23:18 +02:00
bubnikv
403329db49
Misc bugfixes.
2016-09-26 13:58:47 +02:00
bubnikv
790b640521
Visualization of fill surfaces.
2016-09-26 13:56:24 +02:00
bubnikv
e0d1aa8a1a
Collect the perimeter surfaces when generating perimeters.
...
The perimeter surfaces are later used for performing infill
below overhangs and to maintan configured vertical wall thickness
at sloping surfaces.
2016-09-26 13:44:23 +02:00
bubnikv
c514e731da
Documented the bridge detector.
2016-09-26 12:53:41 +02:00
bubnikv
feb269c97c
G code generator will include marks for the G-code analyzer, so
...
the path preview will be colored with a fine granularity.
2016-09-26 12:52:40 +02:00
bubnikv
088b0dab90
Bugfix: use Lift-z option for 2. extruder #3385
...
Thanks to https://github.com/platsch
https://github.com/alexrj/Slic3r/pull/3392
2016-09-26 12:49:29 +02:00
bubnikv
edc70e27d9
New routines for debugging visualization of surfaces & infills.
2016-09-26 12:45:23 +02:00
bubnikv
4046552dd1
Documented MultiPoint.
2016-09-26 12:44:45 +02:00
bubnikv
758458e5a0
PressureEqualizer - fixed compiler warnings, documented.
2016-09-26 12:44:03 +02:00
bubnikv
4a13efd081
Surface / Surface Collection - optimization routines for filtering,
...
routines for visualization.
2016-09-26 12:42:44 +02:00
bubnikv
03b1312f2d
G-code analyser, first draft. The G-code analyser will be used
...
for advanced visualization of the printing paths, including
the extrusion types.
2016-09-26 12:37:54 +02:00
bubnikv
459a42aab6
Fixed a bug in conditional compilation of the Shiny profiler.
2016-09-15 00:57:40 +02:00
bubnikv
2a5095a1ea
OpenGL support through GLEW. Only active if compiled with SLIC3R_GUI=1.
2016-09-14 16:31:26 +02:00
bubnikv
266e1c4be1
Initial commit of the GLEW library for calling OpenGL from the C++ code.
2016-09-14 14:07:41 +02:00
bubnikv
b1575b4dcb
Integration of the Shiny lightweight intrusive profiler.
2016-09-14 11:43:38 +02:00
bubnikv
4c67230436
Documented the purpose of various perl modules.
2016-09-14 11:22:41 +02:00
bubnikv
17d9c8c9dd
fixes for gcc: Missing include float.h
2016-09-13 15:59:23 +02:00
bubnikv
7d56827e26
updated for older gcc
2016-09-13 15:29:31 +02:00
bubnikv
f73ca007e6
Fixed compilation on old gcc.
2016-09-13 15:15:44 +02:00
bubnikv
15c1edd552
Configurable volumetric extrusion rate slope.
2016-09-13 15:02:28 +02:00
bubnikv
620c6c7378
Ported from the playground branch. Various documentation and optimization.
2016-09-13 13:30:00 +02:00
bubnikv
a5b7f14dfa
Updates in the C++ infill code.
2016-09-13 11:26:38 +02:00
bubnikv
068f71847e
Some inlining optimizations.
2016-09-13 09:46:41 +02:00
bubnikv
c443f49da3
Fix in splitting the loop at a new point.
2016-09-13 09:44:30 +02:00
bubnikv
f518e0675c
Initial commit of the new Pressure Equalizer, the EdgeGrid
...
signed distance field structure.
The EdgeGrid is used to avoid placing the seams on overhangs.
2016-09-12 16:25:15 +02:00
bubnikv
73cbb4b5dc
some optimizations of Point rotation
2016-09-12 13:52:31 +02:00
bubnikv
9a83d4e8d5
Reverted some now unnecessary changes. Reverted the infill to the original perl implementation.
2016-09-12 13:26:17 +02:00
bubnikv
9fcc8fe9ae
Meged with release_candidate_1_3
2016-09-12 11:29:39 +02:00
bubnikv
ab357c75a5
Updated xs/Build.PL to support Visual Studio compiler suite.
...
Updated xs/Build.PL to understand BOOST_LIBRARY_PATH and
BOOST_INCLUDE_PATH environment variables. This way one may easily
switch between various boost builds.
Some minor tweeks were done to make Slic3r compile with
Visual Studio 2013.
2016-08-21 21:46:17 +02:00
bubnikv
bd23fe9c44
Fixed a crash in a constructor of FullPrintConfig due to an incorrect use
...
of virtual inheritance. Note that an invocation of ConfigBase::optptr()
is routed to FullPrintConfig::optptr() for all classes of the FullPrintConfig
hierarchy. FullPrintConfig::optptr() in turn invokes optptr()
of PrintObjectConfig, PrintRegionConfig, PrintConfig and HostConfig.
Due to the use of virtual inheritance, this all happens, when
PrintObjectConfig gets constructed as part of FullPrintConfig, but
at that time PrintRegionConfig, PrintConfig and HostConfig are not
constructed yet. Accessing them at that time leads to crashes,
when compiled with Visual Studio 2013 compiler. For some reason
the code generated by gcc does not crash, but I believe the behavior
is undefined and it is better to be fixed anyway.
The patch solves the problem by calling set_defaults() by the topmost
object, which not only fixes the crashes, but also avoids repeated
initialization.
2016-08-21 19:09:31 +02:00
Vanessa Ezekowitz
39dfee79c7
Mention anti-ooze sacrificial skirt feature.
2016-06-01 17:47:54 -04:00
Alessandro Ranellucci
9e8022f6f6
More refactoring to medial axis and gap fill, more robust
2016-05-20 17:03:57 +02:00
Joseph Lenox
b068616366
Merge pull request #3120 from Vicious-one/patch-1
...
Fix for #3069
2016-05-18 23:01:19 -05:00
Chow Loong Jin
209b919fe6
Fix cooling not working if !gcode_comments
...
The cooling markers were being passed into GCodeWriter::set_speed() as a
comment which were being ignored if gcode_comments was false.
Fixes : #3325
2016-05-12 23:35:39 +08:00
Vojtech Bubnik
d022493297
Merge remote-tracking branch 'upstream/master'
2016-05-03 22:05:31 +02:00
bubnikv
79c5e0a52d
Optimize remove_duplicate_points.
2016-04-15 18:01:08 +02:00
bubnikv
42d9db04f2
Don't crash, if the number of lines to display is zero.
2016-04-15 17:58:29 +02:00
bubnikv
83166a7ff3
Close SVG file when the object gets deallocated.
2016-04-15 17:57:38 +02:00
bubnikv
f3bda8a57a
Disable optimizations and debug check even in debug mode.
2016-04-14 11:17:44 +02:00
bubnikv
23a5edbd11
Breaking into the debugger from the menu. This may be useful in Windows.
2016-04-13 20:51:03 +02:00
bubnikv
d6b53d18b8
Optimized and improved rectilinear fill.
2016-04-13 20:46:45 +02:00
bubnikv
f767ce816b
Optimized and improved rectilinear fill.
2016-04-13 20:45:44 +02:00
Joseph Lenox
510ca9f9e2
Merge pull request #3303 from hyperair/fix-cooldown
...
Changes to properly detect extrusion moves for "layer cooldown" slowdowns and properly calculate time required to complete moves.
2016-04-12 12:50:43 -05:00
Chow Loong Jin
3d73fbf5fd
Use float for elapsed_time
...
When accumulating elapsed_time from many moves that take less than 1
second, elapsed_time does not get incremented because (unsigned int)0.9
= 0.
2016-04-13 01:13:42 +08:00
Chow Loong Jin
4c622c504f
Account for travel moves in elapsed_time
2016-04-13 01:13:39 +08:00
Alessandro Ranellucci
a54edf8fbc
Support static linking of the Boost libs
2016-04-11 22:14:12 +02:00
bubnikv
3b81bf0e33
Remove some debugging info.
2016-04-11 17:48:27 +02:00
bubnikv
3ba625da22
Revert incorrect checkins.
2016-04-11 17:34:15 +02:00
bubnikv
ed83ff37f8
Simulation of extrusion in a plane, useful for finding out under / over-extruions.
2016-04-11 17:10:13 +02:00
bubnikv
9716ee8eca
Interface to a filler, ported from Perl to C++.
2016-04-11 17:09:15 +02:00
bubnikv
be3e4caf1d
Fills were reimplemented in C++.
...
While reimplementing the FillPlanePath code, the octagon infill was fixed to extrude the right amount of material.
2016-04-11 17:08:30 +02:00
bubnikv
7da68c91a5
Vojtech likes to use Sublime on Windows to get the wheels rolling.
2016-04-11 17:05:58 +02:00
Alessandro Ranellucci
f66585c250
Fixed compilation on OS X
2016-04-11 12:04:54 +02:00
bubnikv
d392858ee3
The chaining and leftmost_point methods were rewritten as static methods, so they may be called on Polylines without having to convert to PolylineCollection first.
2016-04-10 19:32:39 +02:00
bubnikv
6c5c9eddba
Fixed a typo when SLIC3R_DEBUG is active.
2016-04-10 19:13:08 +02:00
bubnikv
bcfbe02c8d
New method to rotate only polygons, not translate.
...
New free function to_polygons. Whithout this function one needs to construct the ExPolygonCollection, which means a deep copy.
2016-04-10 19:12:32 +02:00
bubnikv
023310882f
Added a macro SLIC3R_CPPVER to indicate the C++ language version supported by the compiler.
2016-04-10 19:07:34 +02:00
bubnikv
7d54e28e30
Added optimized methods for point and polyline rotation.
...
Existing methods for rotation were optimized by calculating the sin/cos values once only.
Added an operator- for points.
2016-04-10 19:06:46 +02:00
bubnikv
c8ff517389
New constructors for the bounding box with min/max points were added.
...
empty(bbox) function template was added.
2016-04-10 19:02:00 +02:00
bubnikv
33ddb13e5d
Use CLIPPER_OFFSET_SCALE instead of a numeric value.
2016-04-10 18:58:12 +02:00
Chow Loong Jin
2e2e4e68d3
Fix layer time slowdown
...
The recent GCode writer changes which put the speed changes on a line of
their own have caused the layer time slowdown to be ignored by the regex
in CoolingBuffer.pm.
Fixes : #3134
2016-04-10 16:10:18 +08:00
bubnikv
4156b51c18
Debugging visualization of the gap fills into a SVG format, if SLIC3R_DEBUG is set.
2016-03-27 10:53:59 +02:00
Alessandro Ranellucci
9576973b57
Tune gap fill and thin walls to less extreme values
2016-03-26 18:37:37 +01:00
Alessandro Ranellucci
36d5272f05
Filter gap fill using length relative to the actual width. #2781
2016-03-26 18:10:17 +01:00
Alessandro Ranellucci
660b56acb5
Fixed type error
2016-03-26 12:21:54 +01:00
Alessandro Ranellucci
7041bb5bd9
Rewritten the medial axis algorithm, now more robust (don't just prune MAT from endpoints, but validate all single edges)
2016-03-26 01:45:08 +01:00
Alessandro Ranellucci
b744947711
Missing #include
2016-03-20 01:50:27 +01:00
Alessandro Ranellucci
dd879c3ef2
When loading an AMF file having multiple objects that look like multiple parts of a single object, prompt user and ask how to consider it. #2970
...
Conflicts:
lib/Slic3r/Model.pm
2016-03-19 22:24:20 +01:00
Alessandro Ranellucci
dfb1ec99ac
Variable-width thin walls. Yay!
2016-03-19 19:40:11 +01:00
Alessandro Ranellucci
6dc42ee902
Variable-width gap fill. Yay! #2960
2016-03-19 19:20:04 +01:00
Alessandro Ranellucci
5ff7511a14
Fixed regression in bridging caused by error in porting. Includes regression test. #3175
2016-03-18 22:40:29 +01:00
Mark Walker
92e1f1011a
Fix issue with undefined BOOST_VERSION
...
if BOOST_VERSION < 106000 always succeeds because BOOST_VERSION is
undefined. In order to avoid the code for new boost, we need
<boost/version.hpp>
2016-03-13 23:51:35 -07:00
Alessandro Ranellucci
7aafa54bf0
Raise allowed temperatures to 500°C. #3114
2016-03-14 00:08:08 +01:00
Alessandro Ranellucci
f4a9fa6569
Support incompatible change in Boost 1.60. #3117
2016-03-14 00:06:56 +01:00
Alessandro Ranellucci
38d9acbbfb
Bugfix: memory corruption in BridgeDetector (thanks @JakeQZ for the patch). #3267
2016-03-13 21:13:51 +01:00
Alessandro Ranellucci
d5ff69b1aa
Make GCodeSender more robust (keep more than one sent line) and fix a memory access problem in the asio write buffer
2016-03-13 18:27:02 +01:00
Alessandro Ranellucci
ff0a947364
Merge pull request #3190 from farhaven/master
...
Implement serial port baudrate selection for OpenBSD
2016-03-13 15:37:13 +01:00
Alessandro Ranellucci
6e5938c833
Fixed return value for deserialize() implementations. #3250
2016-03-13 15:26:52 +01:00
wenjie
3acb0514e1
fix a segment fault by admesh
2016-03-12 16:01:16 +08:00
Alessandro Ranellucci
9eabbded2b
Fixed regression in the C++ port of PerimeterGenerator causing gaps to be filled twice
2016-02-20 19:27:00 +01:00
Gregor Best
5a13c4384f
Implement serial port baudrate selection for OpenBSD
...
Signed-off-by: Gregor Best <gbe@unobtanium.de>
2016-01-03 17:35:59 +01:00
Alessandro Ranellucci
83c91a3538
Dump serial messages to file in order to debug communication issues
2015-12-26 11:50:20 +01:00
Alessandro Ranellucci
7c8b71012c
Force the 'nearest' strategy for starting skirt loops
2015-12-21 15:02:39 +01:00
Alessandro Ranellucci
1a286fc906
Fixes and improvements to MotionPlanner, much smarter now
2015-12-21 14:46:35 +01:00
Alessandro Ranellucci
70e8db8a0a
Minor code cleanup here and there
2015-12-19 20:27:04 +01:00
Alessandro Ranellucci
795107dfa2
Bugfix: external details were simplified too much when using default settings at low layer height, because the internal flow was erroneously taken into account. #2807
2015-12-19 16:46:56 +01:00
Alessandro Ranellucci
bab3404b2d
Very minor code improvements
2015-12-19 16:36:07 +01:00
Alessandro Ranellucci
2df750a9c9
Fixed ported code of PerimeterGenerator
2015-12-19 16:35:51 +01:00
Alessandro Ranellucci
667a121ddb
Fixed error in porting causing wrong moves with avoid_crossing_perimeters
2015-12-19 14:49:29 +01:00
Alessandro Ranellucci
a2ea191d84
Fix regression in lift, includes regression test
2015-12-19 12:44:22 +01:00
Alessandro Ranellucci
fd7795da59
One more fix for compilation with older compilers
2015-12-19 10:20:05 +01:00
Alessandro Ranellucci
8138fbf349
New --retract-lift-above and --retract-lift-below options. #763 #3057
2015-12-18 18:36:39 +01:00
Alessandro Ranellucci
562efc1677
Typo
2015-12-18 13:49:22 +01:00
Alessandro Ranellucci
b8f0391934
Fix compilation with GCC
2015-12-18 13:40:57 +01:00
Alessandro Ranellucci
44825d91af
Some changes to DLP projector
2015-12-18 00:56:56 +01:00
Alessandro Ranellucci
3ec3aaf960
Removed debugging statements
2015-12-16 13:11:41 +01:00
Alessandro Ranellucci
e381100812
More efficient syntax for the PrintConfigDef constructor
2015-12-16 13:09:25 +01:00
Alessandro Ranellucci
934bd43e35
More refactoring on Config XS bindings
2015-12-16 12:58:06 +01:00
Alessandro Ranellucci
3c862836f2
Refactored the Config XS bindings
2015-12-16 12:33:19 +01:00
Alessandro Ranellucci
21364b7cd1
Fix one regression in arrange
2015-12-14 00:15:26 +01:00
Alessandro Ranellucci
c0248dea8c
Bugfix: missing include assert.h #3155
2015-12-11 21:36:51 +01:00
Alessandro Ranellucci
e2f2761a00
One more fix for compilation
2015-12-08 11:07:45 +01:00
Alessandro Ranellucci
9f90b2a1bf
Fix compilation
2015-12-08 11:01:12 +01:00
Alessandro Ranellucci
5cfa36f36e
Fix typo #3152
2015-12-08 10:53:57 +01:00
Alessandro Ranellucci
4913e90e10
Remove any Perl related code from libslic3r
2015-12-08 00:39:54 +01:00
Alessandro Ranellucci
3fac8cd77e
Large refactoring of the Config classes
2015-12-07 19:39:49 +01:00
Alessandro Ranellucci
32a333f16a
Import config bundle automatically if found in application directory
2015-12-07 12:17:06 +01:00
Alessandro Ranellucci
7e1fac8f76
Separate libslic3r code from slic3r application code
2015-12-06 12:54:01 +01:00
Alessandro Ranellucci
7eb3a70649
Bump version number
2015-12-06 11:18:27 +01:00
Alessandro Ranellucci
954e2c9bf0
Fix comment stripping in sender
2015-12-06 11:17:58 +01:00
Alessandro Ranellucci
27dcd60c77
Fix compilation on Windows
2015-12-06 11:17:50 +01:00
Alessandro Ranellucci
d0db8914f7
Fix a compilation error on Win32
2015-12-05 11:48:24 +01:00
Alessandro Ranellucci
e2b203ba8d
Disable screensaver while projecting (untested on Windows)
2015-12-04 21:25:45 +01:00
Alessandro Ranellucci
7523550066
Try to fix compilation on older Perls
2015-12-02 19:57:03 +01:00
Alessandro Ranellucci
1bebe6097b
Make test happy
2015-12-02 19:39:16 +01:00
Alessandro Ranellucci
4f8a18bbad
Ported Layer::maker_perimeters() to XS
2015-12-02 19:32:57 +01:00
Alessandro Ranellucci
3a9cf91f83
Ported a couple more methods to XS
2015-12-02 18:29:33 +01:00
Alessandro Ranellucci
ed75219215
Ported mode Model methods to XS
2015-12-02 18:06:18 +01:00
Alessandro Ranellucci
dfce3a3138
Ported _arrange() and arrange_object() to XS
2015-12-01 21:51:16 +01:00
Alessandro Ranellucci
48f1fab49f
Bugfix: an error in porting caused bad perimeter ordering. Includes regression test and more unit tests for PerimeterGenerator
2015-12-01 20:40:00 +01:00
Alessandro Ranellucci
39924ee89c
More small fixes for compilation on Linux
2015-11-19 17:02:01 +01:00
Alessandro Ranellucci
1378562e63
Further improvements for compilation (Ubuntu)
2015-11-19 15:30:27 +01:00
Alessandro Ranellucci
21a5d6e137
Several fixes to GCodeSender, including compilation on older OS X and DTR reset
2015-11-19 13:17:52 +01:00
Alessandro Ranellucci
9febb10bd7
Smoother manual control movements
2015-11-08 10:20:47 +01:00
Alessandro Ranellucci
9a8724cdd0
More compilation changes for Win32
2015-11-06 11:51:24 +01:00
Alessandro Ranellucci
ca48501f91
Remove Boost from distribution and fix some more things for Windows compilation
2015-11-06 11:34:37 +01:00
Alessandro Ranellucci
e7d2be842d
Improve Boost path detection
2015-11-06 11:03:45 +01:00
Alessandro Ranellucci
97bf69ba7f
Fix compilation on Windows
2015-11-06 10:43:11 +01:00
Alessandro Ranellucci
9f9b5afedb
Merge branch 'master' into sender
2015-11-05 11:04:01 +01:00
Alessandro Ranellucci
2e9a0f5590
Added more search paths for Boost on Win32
2015-11-05 11:02:12 +01:00
Alessandro Ranellucci
61f0a9e4da
Replace the flip word with mirror. #3060
2015-11-04 23:11:30 +01:00
Alessandro Ranellucci
f8d2c69713
Fixed compilation warnings and a potential bug in MotionPlanner, as reported in #3054
2015-11-04 20:50:32 +01:00
ntfshard
7c7982d9f3
Fix signed-unsigned compare
2015-11-04 20:49:20 +01:00
ntfshard
c90ecac48e
Addtional check for TPPLPoly::operator=
2015-11-04 20:49:20 +01:00
ntfshard
d62f33b0b4
Removed unused variables
2015-11-04 20:49:20 +01:00
ntfshard
32f5538e0d
Fix for -Wmaybe-uninitialized warninig
2015-11-04 20:49:20 +01:00
ntfshard
40e49613b1
Config: pass value as a reference
2015-11-04 20:49:20 +01:00
ntfshard
ef0050662c
Function arguments passed by reference
2015-11-04 20:49:20 +01:00
ntfshard
e1d663c0ce
Function arguments passed by reference
2015-11-04 20:49:20 +01:00
ntfshard
dbcd1e2df6
Fix: memory leak in ExPolygon::triangulate_p2t
2015-11-04 20:49:20 +01:00
ntfshard
c6ef26a457
std::list::empty faster than std::list::size (for C++03)
2015-11-04 20:49:19 +01:00
ntfshard
dd5c5eb931
Fix: Initializer list, right initialisation order
2015-11-04 20:49:19 +01:00
ntfshard
eb7464ace6
Style fix: const for some functions
2015-11-04 20:49:19 +01:00
ntfshard
f2c4a66e45
Refactoring: prefix inc/dec operators for iterators
2015-11-04 20:49:19 +01:00
Alessandro Ranellucci
06913cc8b8
Merge pull request #3111 from mdebski/temp_comments
...
Fix incorrect comments to bed temperature setting gcode
2015-11-04 20:17:58 +01:00
Alessandro Ranellucci
7a2a1b5446
Merge pull request #3039 from llluis/patch-1
...
Bugfix #3038
2015-11-04 19:47:02 +01:00
Alessandro Ranellucci
b67b903902
Include the option category for first_layer_extrusion_width. #3061
2015-11-04 19:33:49 +01:00
Alessandro Ranellucci
c34430c6c4
Fix G-code checksum
2015-11-04 14:00:37 +01:00
Maciej Dębski
369b99c712
Fix incorrect comments to temperature-setting gcode
2015-11-04 13:55:08 +01:00
Alessandro Ranellucci
1d10e463a3
Bugfix: wrong error handling in GCodeSender
2015-11-03 23:08:16 +01:00
Alessandro Ranellucci
9ee6829ebc
Implemented connection timeout in C++
2015-11-02 20:36:36 +01:00
Alessandro Ranellucci
9438289fc1
Removed debugging statement
2015-11-02 01:44:44 +01:00
Alessandro Ranellucci
b309c61de3
Test button for serial connection
2015-11-02 01:35:28 +01:00
Alessandro Ranellucci
fc1a7471cf
Several improvements to the print job queue
2015-11-02 01:18:05 +01:00
Alessandro Ranellucci
9b21ac877a
Merge branch 'master' into sender
...
Conflicts:
Build.PL
lib/Slic3r.pm
xs/MANIFEST
xs/src/libslic3r/PrintConfig.hpp
2015-11-01 19:12:13 +01:00
Alessandro Ranellucci
2811af349a
Added a new grid infill pattern
2015-11-01 19:03:11 +01:00
Alessandro Ranellucci
889a54e946
Bump version number
2015-10-26 23:25:26 +01:00
Alessandro Ranellucci
9fcec10737
Finished porting LayerRegion to C++
2015-10-26 23:24:46 +01:00
Vicious-one
8e0d458d1d
Fix for #3069
2015-09-30 16:22:49 +03:00