bubnikv
cb43f19a90
Fixed a variable layer height profile update issue.
...
https://github.com/prusa3d/Slic3r/issues/358
2017-06-15 20:15:53 +02:00
bubnikv
b724d789fd
New feature: Splitting an object into a multi-part volume.
2017-06-15 15:38:15 +02:00
bubnikv
a1f6403463
Fix of a wipe tower - wipe tower shrinking by the amount of material
...
wiped into the zig-zag pattern.
2017-06-15 10:53:37 +02:00
bubnikv
b8369ab19a
gcc and clang did not like throwing std::exceptions with a cstring arugment
2017-06-14 20:33:20 +02:00
bubnikv
2ac981e422
Improved error handling when importing configuration from a G-code.
2017-06-14 20:18:46 +02:00
bubnikv
f7334f58d3
Finalized the config import from a G-code.
2017-06-14 18:53:11 +02:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Luís Andrade
b31edc0be3
Update GCode.cpp
...
Bugfix #3038
2015-08-10 18:03:45 -04:00
Alessandro Ranellucci
5b8ed7367a
Fixed potential hang in PerimeterGenerator.cpp
2015-08-06 10:07:13 +02:00
Alessandro Ranellucci
6ac79e3ed6
Ported make_perimeters() to C++
2015-07-23 16:27:21 +02:00
Alessandro Ranellucci
15d2522f3d
Merge branch 'xs-perimetergenerator'
2015-07-23 15:53:19 +02:00
Alessandro Ranellucci
b4515cf695
Finished porting PerimeterGenerator to C++
2015-07-23 15:53:02 +02:00
Alessandro Ranellucci
9ac4fc9034
Fix compilation on Windows due to lack of setenvt(). #2973
2015-07-10 16:01:45 +02:00
Alessandro Ranellucci
0e18b094d1
More work for porting PerimeterGenerator to XS
2015-07-07 01:17:31 +02:00
Alessandro Ranellucci
b8aecbd56c
Initial work for porting PerimeterGenerator to XS
2015-07-03 22:58:29 +02:00
Alessandro Ranellucci
3e739b87da
Finished porting Slic3r::GCode to XS (speed boost!)
2015-07-02 20:24:16 +02:00
Alessandro Ranellucci
0ad4296aaf
Ported GCode::set_extruders() and GCode::change_layer() to XS
2015-07-02 19:33:08 +02:00
Alessandro Ranellucci
9a17efc480
Use GCodeWriter for path segments (refactoring)
2015-07-02 19:14:55 +02:00
Alessandro Ranellucci
fbd640fdc5
Ported GCode::extrude_path() to XS (speed boost!)
2015-07-02 18:57:40 +02:00
Alessandro Ranellucci
b025efe729
Ported GCode::travel_to() to XS
2015-07-02 15:12:04 +02:00
Alessandro Ranellucci
a6f4c8e567
Ported GCode::set_extruder() and OozePrevention
2015-07-02 15:02:20 +02:00
Alessandro Ranellucci
72355a9500
Use macro in PrintConfig.hpp
2015-07-02 14:35:21 +02:00
Alessandro Ranellucci
ff5747bb60
Macro for readability
2015-07-02 14:31:21 +02:00
Alessandro Ranellucci
b14290b9f6
Make tests happy
2015-07-02 14:29:20 +02:00
Alessandro Ranellucci
5571144c0e
Ported Slic3r::GCode::needs_retraction() to XS
2015-07-01 23:14:40 +02:00
Alessandro Ranellucci
b4019bb438
Ported more Slic3r::GCode methods to XS
2015-07-01 23:00:52 +02:00
Alessandro Ranellucci
801f629fdc
Ported Slic3r::GCode storage to XS
2015-07-01 21:47:17 +02:00
Alessandro Ranellucci
280f3f38d7
Ported Slic3r::GCode::OozePrevention storage to XS
2015-07-01 21:01:42 +02:00
Alessandro Ranellucci
b43dd92766
Ported Slic3r::GCode::Wipe storage to XS
2015-07-01 20:57:16 +02:00
Alessandro Ranellucci
bf9cd1b8e6
Ported Slic3r::GCode::AvoidCrossingPerimeters to XS
2015-07-01 20:14:05 +02:00
Alessandro Ranellucci
580d28d071
Finished porting PlaceholderParser to XS
2015-07-01 19:35:22 +02:00
Alessandro Ranellucci
249088b4f8
Ported Config::setenv() to XS
2015-07-01 18:18:25 +02:00
Alessandro Ranellucci
f361d8ad43
Ported PlaceholderParser::apply_env_variables() to XS
2015-07-01 17:56:38 +02:00
Alessandro Ranellucci
4a39665804
Bugfix: binary ASCII files were not written with the correct fopen() mode. #2928
2015-06-20 14:16:23 +02:00
Alessandro Ranellucci
3cd6c78044
Releasing 1.2.9
2015-06-17 10:38:28 +02:00
Alessandro Ranellucci
be635c69e7
Fixed regression casusing some rare STL files not to parsed correctly because of lack of the solid name. #2914
2015-06-15 17:17:36 +02:00
Alessandro Ranellucci
539cde8d7a
Raise the thickness threshold used for generating thin walls. TODO: don't enforce this at the segment level but consider the average thickness of an entire polyline and compare it to the total length. #2910
2015-06-15 17:00:10 +02:00
Alessandro Ranellucci
38a9e32a28
Limit bridge over sparse infill to areas that can absorb such extrudate. #2899
2015-06-13 19:48:46 +02:00
Alessandro Ranellucci
7a34078f5f
Bump version number
2015-06-13 11:42:37 +02:00
Alessandro Ranellucci
4a91ea817a
Releasing 1.2.8
2015-06-09 17:18:43 +02:00
Alessandro Ranellucci
e715974688
Better validation for speeds (prevent 0mm/s travel speed). #2893
2015-06-09 17:15:01 +02:00
Alessandro Ranellucci
911bed827c
Fixed regression in STL parser. #2886
2015-06-09 14:54:52 +02:00
Alessandro Ranellucci
7b65a35519
Always limit volumetric speed with Max Volumetric Speed (not just when using autospeed). #2810
2015-06-02 11:54:38 +02:00
Alessandro Ranellucci
1fcfdf4718
Added a couple full_label values
2015-06-01 23:22:44 +02:00
Alessandro Ranellucci
6095427926
Fix admesh's STL parser in order to make it more tolerant for broken STL files having multiple 'solid' definitions. Still not the ideal STL parser, but handles the cases that were reported so far. #2471 #2842
2015-06-01 19:49:52 +02:00
Alessandro Ranellucci
f14c0e2183
Bugfix: concave starting points were not correctly detected for slice holes. Includes regression test. #2857
2015-06-01 17:55:51 +02:00
Alessandro Ranellucci
fbea32a81c
Prevent writing empty materials to AMF files. Also add a note about material-id = 0 being reserved by AMF spec. #2871
2015-06-01 11:51:00 +02:00
Alessandro Ranellucci
7f70da97b4
New experimental autospeed feature. #2810
2015-05-31 22:04:32 +02:00
Alessandro Ranellucci
13b7316807
Merge branch 'master' into sender
...
Conflicts:
Build.PL
lib/Slic3r/GUI/MainFrame.pm
2015-05-28 18:05:36 +02:00
Alessandro Ranellucci
aa8b6afe8b
Assign color to filaments
2015-05-26 02:01:43 +02:00
Alessandro Ranellucci
a547645e86
Bump version number
2015-05-24 23:29:59 +02:00
Alessandro Ranellucci
249a48d68d
Releasing 1.2.7
2015-05-24 17:39:27 +02:00
Alessandro Ranellucci
31e0fc7f17
Fixes and improvements to thin wall detection. #2829
2015-05-22 01:46:01 +02:00
Alessandro Ranellucci
70ec433e67
Faster (but less precise) implementation of simplify_by_visibility(), since it was the bottleneck of avoid_crossing_perimeters. #2777
2015-05-18 19:28:59 +02:00
Alessandro Ranellucci
97211f35e7
More robust medial axis pruning. #2800
2015-05-13 20:50:30 +02:00
Alessandro Ranellucci
0d01348acc
Use radians everywhere, including ModelInstance::rotation
2015-05-03 18:40:00 +02:00
Alessandro Ranellucci
79ce094e3a
Bugfix: splitting a rotated object resulted in wrong positions. #2772
2015-05-03 18:28:39 +02:00
Alessandro Ranellucci
bf541a1fed
Refactoring in PlaceholderParser
2015-05-02 21:43:22 +02:00
Alessandro Ranellucci
a16dda0885
Bugfix: changes to the resolution config option didn't trigger reslicing. #2795
2015-04-29 19:22:44 +02:00
Alessandro Ranellucci
d6d7880507
Ported Slic3r::Geometry::arrange() to C++/XS
2015-04-29 19:19:07 +02:00
Alessandro Ranellucci
5eb3bc52ef
Ported ModelObject::rotate() and ModelObject::flip() to XS, as well as axes constants
2015-04-16 21:22:04 +02:00
Alessandro Ranellucci
be2f46ca68
Ported Layer::merge_slices() to XS
2015-04-16 20:44:55 +02:00
Alessandro Ranellucci
1f8ef2a63c
Fixed regression introduced by the recent PerimeterGenerator refactoring causing spiral vase not to be correctly skipped on multi-loop layers. Includes regression test. #2761
2015-04-12 20:16:27 +02:00
Alessandro Ranellucci
8654537e55
Use support material layer height for raft layer instead of object layer height. #2723
2015-03-09 19:36:23 +01:00
Alessandro Ranellucci
d8ee9dd5f5
Limit first object layer height correctly when using a larger support material extruder. #2722
2015-03-09 19:27:57 +01:00
Alessandro Ranellucci
6cab5668e3
Restore correct ordering of concentric infill loops, preventing them from being reordered during G-code generation
2015-03-09 18:28:07 +01:00
Alessandro Ranellucci
d2172b4383
Merge branch 'master' into sender
2015-03-06 22:15:43 +01:00
Alessandro Ranellucci
095391d702
When using raft, validate first layer height against support material extruder only instead of taking other extruders into account, thus potentially allowing larger nozzles to be used for it. #2701
2015-03-06 21:35:00 +01:00
Alessandro Ranellucci
722e94513c
Refactoring: removed the non-idempotent init_extruders() step. Also, infill_extruder was not limited to the available number of extruders when slicing from the plater, and support material extruder was considered also when support material was disabled
2015-03-06 09:56:58 +01:00
Alessandro Ranellucci
1ab8efba7f
Fixed regression causing random failures in bridge direction detection. #2636
2015-02-27 21:55:02 +01:00
Alessandro Ranellucci
e88cf466fe
A couple notes about infill_only_where_needed
2015-02-23 00:55:00 +01:00
Alessandro Ranellucci
2655f3f816
Better and more robust implementation of infill_only_where_needed
2015-02-23 00:44:51 +01:00
Alessandro Ranellucci
edbc11477c
Update to Clipper 6.2.9. Fixes #2639
2015-02-22 15:13:52 +01:00
Alessandro Ranellucci
6413d5dcba
Merge pull request #2630 from lordofhyphens/fix-admesh-warning
...
Fix a warning about unused return value when using freopen in admesh.
2015-02-22 14:48:17 +01:00
Alessandro Ranellucci
ba6ae12635
Change end_program() to postamble()
2015-02-15 17:09:17 +01:00
Alessandro Ranellucci
1180a6d83f
Merge pull request #2508 from strahlex/machinekit-gcode
...
added support Machinekit flavour GCode
2015-02-15 17:00:08 +01:00
Alessandro Ranellucci
32b8eb489c
Updated Clipper to 6.2.8. This fixes several minor issues, including infill paths not being trimmed correctly. #2448
2015-02-15 16:10:04 +01:00
Alexander Rössler
cef1494852
Switched to P parameter instead of S for Machinekit flavour MCode commands
2015-02-10 14:22:23 +01:00
Alessandro Ranellucci
a68fed3938
Bump version number
2015-02-09 10:53:55 +01:00
Alexander Rössler
f2fa8cb63f
added end_program() function to GCodeWriter
2015-02-07 12:36:29 +01:00
Alexander Rössler
32eff40422
added retract and unretract command for Machinekit flavour
2015-02-06 19:16:57 +01:00
Alexander Rössler
d35226b889
added support Machinekit flavour GCode
2015-02-06 18:48:46 +01:00
Joseph Lenox
102785d154
Fix a warning about unused return value when using freopen in admesh. Added another NULL check for safety.
2015-02-05 00:58:27 -06:00
Alessandro Ranellucci
73eb11b395
Releasing 1.2.6
2015-02-01 15:47:29 +01:00
Alessandro Ranellucci
3ae6f2630e
Merge branch 'master' into sender
...
Conflicts:
Build.PL
2015-02-01 14:07:32 +01:00
Alessandro Ranellucci
bb3bf28e59
Ported prepare_fill_surfaces() to XS/C++
2015-02-01 12:43:58 +01:00
Alessandro Ranellucci
07cd25d0ec
New option for customization of infill/perimeters overlap. #2459
2015-02-01 12:08:25 +01:00
Alessandro Ranellucci
84eb37e218
Typo in previous commit
2015-01-31 11:57:18 +01:00
Alessandro Ranellucci
62e418d0fc
Modernize some defaults
2015-01-31 11:38:17 +01:00
Alessandro Ranellucci
059b00a829
New --before-layer-change option and new layer_z placeholder. #2602
2015-01-30 20:08:00 +01:00
Alessandro Ranellucci
8605969dc5
Don't output slic3r:z attribute in SVG for raft layers
2015-01-30 18:45:30 +01:00
Alessandro Ranellucci
e2b1b52679
Added a new Slic3r::Geometry::simplify_polygons() function
2015-01-30 18:33:20 +01:00
Alessandro Ranellucci
9ad5d9bb3d
Fixed minor issue in 3D preview causing single-line toolpaths to miss the cap on one endpoint
2015-01-28 23:35:48 +01:00
Alessandro Ranellucci
7652abdf8d
Merge pull request #2595 from xdissent/deserialize-points
...
Use std::getline to deserialize point list coords, fixes #2318
2015-01-28 21:02:05 +01:00
Greg Thornton
b0b9c17c23
Use std::getline to deserialize point list coords, fixes #2318
2015-01-28 09:08:50 -06:00
Alessandro Ranellucci
b1f1893481
Bugfix: tangent horizontal mesh surfaces were not included in slices under rare circumstances, generating almost invalid polygons that confused Clipper and caused skipped layers. Includes regression test
2015-01-28 13:00:38 +01:00
Alessandro Ranellucci
8a5a0b6726
Minor optimization in TriangleMesh code
2015-01-25 17:30:55 +01:00
Alessandro Ranellucci
c264969962
Bugfix: crash when rendering lines with zero length in 3D preview. #2569
2015-01-25 15:21:45 +01:00
Alessandro Ranellucci
a5c0ffe963
Faster loading of 3D preview and much less memory used
2015-01-24 23:35:29 +01:00
Alessandro Ranellucci
8791f5a493
Cleanup of some method signatures and of XS return types
2015-01-19 18:53:04 +01:00
Alessandro Ranellucci
7b980c1dc9
New option for vertical distance between object and support material, with special handling of the 0 case that disabled bridge flow/speed in order to allow for soluble material. #2491 #2272 #2069 #1942 #2435 #1703
2015-01-19 09:52:24 +01:00
Alessandro Ranellucci
9f0283f808
Minor issue when dealing with files with empty layers at bottom. #2553
2015-01-18 12:35:05 +01:00
Alessandro Ranellucci
4696b46475
Clarified tooltip for First Layer Extrusion Width. #2543
2015-01-18 11:42:19 +01:00
Alessandro Ranellucci
b646b5c98a
Revert "Updated Clipper to 6.2.7"
...
This reverts commit e6c022a61c
.
2015-01-18 01:31:10 +01:00
Alessandro Ranellucci
e6c022a61c
Updated Clipper to 6.2.7
2015-01-18 01:07:23 +01:00
Alessandro Ranellucci
2bbb6c570b
Ported toolpaths rendering to C++
2015-01-18 01:07:22 +01:00
Alessandro Ranellucci
cf4119e169
Populate ExtrusionPath::height correctly in case of bridge
2015-01-18 01:07:22 +01:00
Alessandro Ranellucci
e749f6040f
New +Line::intersection_infinite() method
2015-01-16 16:25:39 +01:00
Alessandro Ranellucci
a616d64971
Bump version number
2015-01-15 22:35:14 +01:00
Alessandro Ranellucci
e0a3d2577c
Initial work for 3D rendering of toolpaths
2015-01-15 20:06:30 +01:00
Alessandro Ranellucci
9a7e5327ab
Support --solid-fill-pattern for legacy. #2527
2015-01-13 23:22:27 +01:00
Alessandro Ranellucci
bb9ceba343
Releasing 1.2.5
2015-01-09 13:44:28 +01:00
Alessandro Ranellucci
02d717b7a3
Don't put any M200 automatically when volumetric mode is selected. Explain how to do it manually in the tooltip. #1746
2015-01-09 12:02:04 +01:00
Alessandro Ranellucci
64c9e3af4b
Bugfix: objects were floating in STL export after rotation and flip. #2512
2015-01-09 00:47:40 +01:00
Alessandro Ranellucci
9ec7b43ca1
Merge branch 'master' into sender
...
Conflicts:
lib/Slic3r/GUI/Tab.pm
2015-01-08 22:47:43 +01:00
Alessandro Ranellucci
79cb350f2d
Fixed segfault in new MotionPlanner code when environments were empty (small islands). #2511
2015-01-08 21:24:51 +01:00
Alessandro Ranellucci
fc47892474
Bump version number
2015-01-08 15:31:59 +01:00
Alessandro Ranellucci
406d045ced
The inwards move after an external loop was still randomly generated outwards in some cases. Perimeters are now generated with a distinct iterator for each slice. Nested islands are also correctly supported too. Various regression tests included. #2253
2015-01-08 15:22:13 +01:00
Alessandro Ranellucci
af92e3d49e
Bugfix: validation for sequential printing was not entirely correct. #2480
2015-01-07 21:57:22 +01:00
Alessandro Ranellucci
1b766f12ca
Minor fix after recent changes in MotionPlanner
2015-01-06 23:30:28 +01:00
Alessandro Ranellucci
21a660c56c
Fix compilation
2015-01-06 21:29:32 +01:00
Alessandro Ranellucci
d4ae734659
Minor improvement to IntersectionLine (now subclasses Line)
2015-01-06 20:58:07 +01:00
Alessandro Ranellucci
8f4cbefd0d
Lots of improvements to MotionPlanner/avoid_crossing_perimeters. Smoother paths and several edge cases now handled better
2015-01-06 20:52:36 +01:00
Alessandro Ranellucci
5e100abe25
Added several drawing methods to Slic3r::SVG
2015-01-06 20:51:48 +01:00
Alessandro Ranellucci
713fcb5e8e
New methods in Slic3r::SVG C++ class
2015-01-06 16:26:15 +01:00
Alessandro Ranellucci
2562070232
Refactored the travel/retract/avoid_crossing_perimeters logic. Several edge cases are now handled correctly. #2498
2015-01-06 14:52:03 +01:00
Alessandro Ranellucci
7e82159620
Fixed one more case where only_retract_when_crossing_perimeters didn't apply. #2498
2015-01-06 11:29:34 +01:00
Alessandro Ranellucci
9fd0637990
Bugfix: artifacts were introduced when perimeters were recalculated through incremental slicing. #2494
2015-01-05 21:00:50 +01:00
Alessandro Ranellucci
47e4e8bb66
Option to use volumetric E values. #1746
2015-01-05 19:39:10 +01:00
Alessandro Ranellucci
6776d6bc00
Bugfix: a bug in Polyline::split_at() caused random loss of perimeter segments. #2495
2015-01-05 15:51:57 +01:00
Alessandro Ranellucci
9af43bee52
Handle log, temperatures. Move controller to main tabpanel. More things
2015-01-04 23:18:23 +01:00
Alessandro Ranellucci
3ab4d4b094
Merge branch 'master' into sender
2015-01-04 19:36:28 +01:00
Alessandro Ranellucci
a6f3e6bfdb
Mark Vibration Limit as deprecated. #2483
2015-01-04 19:32:59 +01:00
Alessandro Ranellucci
92e896c4d1
Prettify infill pattern labels
2015-01-04 19:32:05 +01:00
Alessandro Ranellucci
cbc0e270b7
Nicer configuration fields for USB/Serial connection
2015-01-04 19:14:54 +01:00
Alessandro Ranellucci
16939b80e6
Implemented priority queue
2015-01-04 18:17:15 +01:00
Alessandro Ranellucci
504cbd89db
Fix bug in admesh code that causes random binary STL files not to be read correctly on Windows. #2461
2015-01-04 11:46:58 +01:00
Alessandro Ranellucci
2c0d216c1a
More work on print controller
2015-01-03 23:25:55 +01:00
Alessandro Ranellucci
d8be67c28b
Bugfix: Douglas-Peucker used perpendicular distance instead of shortest distance, thus clipping more than it should. #2474
2015-01-03 15:03:53 +01:00
Alessandro Ranellucci
c06ce3b58c
Initial work for a controller GUI
2014-12-31 19:10:46 +01:00
Alessandro Ranellucci
29d64107de
Merge branch 'master' into sender
2014-12-31 16:25:26 +01:00
Alessandro Ranellucci
fffdbe0abb
Releasing 1.2.4
2014-12-30 14:51:59 +01:00
Alessandro Ranellucci
c4832c5342
Bugfix: early object destruction caused a segfault when splitting. Also fixed a memory leak and restore background processing when split only detected one part. #2466 #2398
2014-12-30 13:16:28 +01:00
Alessandro Ranellucci
494efe65b2
Bugfix: auto-center didn't update the PrintObject copies properly, causing misalignment. #2464
2014-12-29 22:29:24 +01:00
Alessandro Ranellucci
200130bc10
Bump version number
2014-12-29 12:49:49 +01:00
Alessandro Ranellucci
6896e53078
Octoprint -> OctoPrint
2014-12-29 12:49:32 +01:00
Alessandro Ranellucci
13b4237fec
Releasing 1.2.3
2014-12-29 11:45:41 +01:00
Alessandro Ranellucci
fbb3462f5b
Bump version number
2014-12-28 14:58:58 +01:00
Alessandro Ranellucci
efe7d5f857
Integration with Octoprint. #1826
2014-12-28 01:30:05 +01:00
Alessandro Ranellucci
b126f92f41
Finished GCodeSender
2014-12-27 22:58:01 +01:00
Alessandro Ranellucci
8b438dc0de
Merge branch 'master' into sender
2014-12-27 18:10:03 +01:00
Alessandro Ranellucci
9803e2fabf
Releasing 1.2.2
2014-12-27 14:38:55 +01:00
Alessandro Ranellucci
005f138ce7
Merge branch 'master' into sender
2014-12-26 01:30:48 +01:00
Alessandro Ranellucci
70601eeb51
Tell what options were changed when prompting user for saving a modified preset. Also, check whether the preset was actually modified by performing a proper idempotent diff. #2165
2014-12-25 17:35:31 +01:00
Alessandro Ranellucci
5a0f4eac8d
One more retraction optimization
2014-12-25 11:37:54 +01:00
Alessandro Ranellucci
5639132dae
Bugfix: the region_volumes vector was not always extended after creating new regions, causing bad memory access in apply_config(). #2446
2014-12-24 18:35:59 +01:00
Alessandro Ranellucci
4848cb7606
Ported PrintObject::bridge_over_infill() to XS
2014-12-24 10:20:55 +01:00
Alessandro Ranellucci
91bc4d8157
Bugfix: a typo caused wrong loop splitting, thus wrong ordering of perimeters having bridging parts. Includes regression test. #2258
2014-12-24 00:11:29 +01:00
Alessandro Ranellucci
25bc8e6f29
Smarter automatic disabling of GUI fields + reordering of Print Settings pages + minor adjustments to tooltips
2014-12-23 20:47:11 +01:00
Alessandro Ranellucci
64061267c8
Align infill across layers regardless of first-layer-specific extrusion width. Includes a good internal API refactoring and a fix to 3D honeycomb flow
2014-12-22 16:47:35 +01:00
Alessandro Ranellucci
93507bfd49
Bugfix: only_retract_when_crossing_perimeters was not correctly applied on bottom layer when no bottom solid layers were printed
2014-12-22 11:46:16 +01:00
Alessandro Ranellucci
1b582ea66a
Remove the "(slow)" mark on infill patterns that used to be slow in the past
2014-12-22 10:48:05 +01:00
Alessandro Ranellucci
4fc955a0fd
Fixed concave_points() and convex_points() after recent change of ccw_angle()
2014-12-21 23:10:38 +01:00
Alessandro Ranellucci
7253dc699a
Some more work on wireframe
2014-12-21 22:52:18 +01:00
Alessandro Ranellucci
a0dda36df0
Minor fix to BridgeDetector
2014-12-17 01:21:12 +01:00
Alessandro Ranellucci
21ea100d0e
Fixed tests
2014-12-17 01:15:47 +01:00
Alessandro Ranellucci
9264db7ecd
Removed useless thing added in e79aa2e81c
2014-12-17 00:52:01 +01:00
Alessandro Ranellucci
c00061678b
Use perimeter extruder for brim. #618
2014-12-17 00:45:05 +01:00
Alessandro Ranellucci
e79aa2e81c
New --solid-infill-extruder option. Includes a refactoring of the strategy used to order layer extrusions according to their extruder and island; toolchanges and travel moves should be more optimized now. #618
2014-12-17 00:34:00 +01:00
Alessandro Ranellucci
fcfb3b98bc
3D object positioning
2014-12-16 01:12:56 +01:00
Alessandro Ranellucci
a82f95e903
Some initial work for 3D slice rendering
2014-12-15 15:19:42 +01:00
Alessandro Ranellucci
9cd0a63331
Refactoring of PreviewCanvas
2014-12-15 01:28:11 +01:00
Alessandro Ranellucci
2f2ae75529
Some incomplete work for moving objects in 3D plater
2014-12-13 22:18:43 +01:00
Alessandro Ranellucci
133466a6b5
Minor improvements to the Skirt Loops tooltip
2014-12-12 22:50:43 +01:00
Alessandro Ranellucci
360dee862b
Keep model objects aligned to Z = 0 in plater
2014-12-12 22:43:56 +01:00
Alessandro Ranellucci
050f9ff61a
Removed two useless methods in Print
2014-12-12 22:43:56 +01:00
Alessandro Ranellucci
93d9ee9205
Consider extrusion width in Print::total_bounding_box()
2014-12-12 22:43:56 +01:00
Alessandro Ranellucci
e8ab9ac13a
Ported Print::bounding_box(), Print::total_bounding_box(), Print::skirt_flow(), Print:skirt_first_layer_height() to XS
2014-12-12 22:43:56 +01:00
Alessandro Ranellucci
c8596c5c58
Limit "Only retract when crossing perimeters" so that retraction is triggered also when crossing the boundaries of a single region. #2298
2014-12-09 01:08:58 +01:00
Alessandro Ranellucci
d350241da3
Make combine_infill() completely idempotent. Includes unit testing
2014-12-08 21:23:42 +01:00
Alessandro Ranellucci
6ce651eb4a
Fixed wrong implementation of concave_points() and convex_points() in C++. #2384
2014-12-07 19:53:22 +01:00
Alessandro Ranellucci
eb23990d6d
Ported PrintObject::total_layer_count() to XS
2014-12-01 00:00:12 +01:00
Alessandro Ranellucci
c7f5753a28
Ported PrintObject::bounding_box() to XS
2014-12-01 00:00:12 +01:00
Alessandro Ranellucci
1fda9e3d50
Ported concave_points() and convex_points() to XS
2014-12-01 00:00:12 +01:00
Alessandro Ranellucci
e4dd5cf82f
Bugfix: object steps were not invalidated when First layer extrusion width was changed. #2379
2014-12-01 00:00:11 +01:00
Alessandro Ranellucci
e8f242ee3f
Move toolpaths preview to the plater dialog
2014-12-01 00:00:11 +01:00
Alessandro Ranellucci
7a7d00c8d6
Rename solid_fill_pattern to external_fill_pattern and clarify tooltip
2014-11-27 00:38:05 +01:00
Alessandro Ranellucci
11dd67ab34
Initial work for G-code sender and more intensive usage of Boost
2014-11-26 22:30:25 +01:00
Alessandro Ranellucci
ff9b53260d
New experimental feature for pressure management. Credits to @llluis for the original implementation. #1203 #1677 #2018
2014-11-24 18:22:39 +01:00
Alessandro Ranellucci
945567d1f3
Merge pull request #2278 from hroncok/admesh98
...
Updated to admesh 0.98.1
2014-11-24 15:36:26 +01:00
Alessandro Ranellucci
634bc09e2c
Refactoring: renamed all contains_*() methods to contains() in C++
2014-11-23 20:14:13 +01:00
Alessandro Ranellucci
5deadc8f12
Refactoring: removed _islands members in Slic3r::GCode
2014-11-23 20:03:16 +01:00
Alessandro Ranellucci
60a76b8cfa
Fixed regression causing retraction to be skipped when Retract Length was 0 but Use Firmware Retraction was enabled. Includes regression test. #2359
2014-11-23 19:32:06 +01:00
Alessandro Ranellucci
2c64c3dd5b
Bugfix: spiral vase was not working when extrusion axis was not E. #2350
2014-11-23 18:59:18 +01:00
Alessandro Ranellucci
3605289bbc
--spiral-vase now automatically overrides --perimeters, --top-solid-layers and --fill-density instead of throwing incompatibility error. #2360
2014-11-22 23:10:18 +01:00
Alessandro Ranellucci
bf0eb1af0c
Refactored ClipperUtils API for a more consistent arguments convention
2014-11-15 23:44:03 +01:00
Alessandro Ranellucci
28466750e6
Ported some minor methods to XS
2014-11-15 23:06:15 +01:00
Alessandro Ranellucci
379cde30e2
Ported Slic3r::BridgeDetector to XS
2014-11-15 22:41:22 +01:00
Alessandro Ranellucci
33fe53fd7c
Ported three PrintObject methods to XS
2014-11-13 00:34:56 +01:00
Alessandro Ranellucci
a5df9fb795
Ported ModelObject::split() to XS
2014-11-12 23:50:09 +01:00
Alessandro Ranellucci
334086d605
Bugfix: skirt and brim were not recalculated when objects where just moved in plater
2014-11-12 23:28:42 +01:00
Alessandro Ranellucci
a5787cfb04
Merge branch 'xs-reload-object'
...
Conflicts:
lib/Slic3r/Print.pm
2014-11-12 22:51:48 +01:00
harriv
33cdee1ad6
Removed extra ; from Print.cpp
2014-11-11 22:17:02 +02:00
Alessandro Ranellucci
8b6a8e6307
Ported PlaceholderParser::update_timestamp() to XS
...
Note that Slic3r version number is now located in libslic3r.h
2014-11-09 20:41:43 +01:00
Alessandro Ranellucci
ee3fb7caa2
Ported GCodeWriter to XS (faster G-code export!)
2014-11-09 19:02:45 +01:00
Alessandro Ranellucci
b69caff93c
Ported LayerRegion::make_slices() to XS
2014-11-09 16:24:07 +01:00
Alessandro Ranellucci
bad0bd8520
Ported Print::validate() to XS
2014-11-09 15:27:34 +01:00
Alessandro Ranellucci
3e4c572164
Ported some methods including add_model_object() and apply_config() to XS
2014-11-09 12:25:59 +01:00
Alessandro Ranellucci
9c93e52c8f
Workaround Clipper changing point coordinates while performing simplify_polygons(), thus causing a crash in Slic3r. #2306
2014-11-08 12:56:14 +01:00
Alessandro Ranellucci
a78be203aa
Upgrade Clipper to 6.2.1
2014-11-08 12:05:27 +01:00
Alessandro Ranellucci
67f1cdf76f
Bugfix: seam_position = random didn't work with a single perimeter. #2179
2014-11-07 23:53:18 +01:00
Alessandro Ranellucci
c3d401fb41
Limit automatic extrusion width for support material interface as well
2014-11-07 23:35:33 +01:00
Alessandro Ranellucci
d645dabcff
Ported reload_object() to XS
2014-11-07 20:25:05 +01:00
Alessandro Ranellucci
bf3f45604a
Solid infill below area option was not invalidating the correct steps
2014-11-07 00:53:15 +01:00
Alessandro Ranellucci
a4eef93950
Fixed minor regression
2014-11-04 21:07:18 +01:00
Alessandro Ranellucci
366e10d6ec
Added comment
2014-10-25 11:10:44 +02:00
Alessandro Ranellucci
7f57f007cd
Refactoring: moved Slic3r::GCode::Base to Slic3r::GCode::Writer
2014-10-25 10:42:07 +02:00
Alessandro Ranellucci
c2e710d092
Removed --g0
2014-10-21 21:41:11 +02:00
Alessandro Ranellucci
71ec90a1dd
Finish porting the Extruder class to libslic3r
2014-10-21 20:36:52 +02:00
Alessandro Ranellucci
f82e92f498
Merge branch 'gcode-refactoring'
2014-10-21 20:20:28 +02:00
Alessandro Ranellucci
167df0ab87
Refactoring: moved most of the low-level G-code to the Slic3r::GCode::Base class. Cleanup of the retraction and wipe logic.
2014-10-21 20:16:45 +02:00
Alessandro Ranellucci
e521475b7e
Refactoring: moved some low-level G-code generation methods to the new Slic3r::GCode::Base class
2014-10-18 17:41:21 +02:00
Alessandro Ranellucci
6b8f03ff1c
Bugfix: crash in some circumstances when avoid_crossing_perimeters is enabled. #2266
2014-10-15 00:59:26 +02:00
Alessandro Ranellucci
6573ae002a
Bugfix: fix crash in some circumstances caused by Avoid crossing perimeters. #2271
2014-09-23 20:19:47 +02:00
Miro Hrončok
b9f4880b23
Updated to admesh 0.98.1
2014-09-23 14:34:37 +02:00
Alessandro Ranellucci
f3db284e2a
Merge branch 'master' of github.com:alexrj/Slic3r
2014-09-21 14:42:09 +02:00
Alessandro Ranellucci
73b3c06361
Ported more things to XS
2014-09-21 10:51:36 +02:00
Alessandro Ranellucci
fcf65223e1
Make tooltip for toolchange_gcode more precise
2014-08-14 21:50:57 +02:00
Alessandro Ranellucci
5a96bad8c2
Ported some more methods to C++
2014-08-08 21:48:59 +02:00
Alessandro Ranellucci
c0a6b1a9cc
Bugfix: enabling/disabling support material didn't cause skirt to be recalculated
2014-08-08 01:37:39 +02:00
Alessandro Ranellucci
04d2e4124f
Fix numerical issue on Win32
2014-08-04 15:05:36 +02:00
Alessandro Ranellucci
d9f6b0933b
Use istringstream for deserializing config options in order to use the correct locale. #2187
2014-08-04 11:34:53 +02:00
Alessandro Ranellucci
b10917806a
Ported some Model methods to XS
2014-08-03 20:33:16 +02:00
Alessandro Ranellucci
f06566dd3a
Fix error in PrintRegion::flow() port
2014-08-03 20:02:58 +02:00
Alessandro Ranellucci
6adc3477c9
Moved C++ code into new libslic3r directory
2014-08-03 19:42:29 +02:00
Alessandro Ranellucci
b8676241e0
Split Print.cpp and Layer.cpp into multiple compilation units
2014-08-03 19:28:40 +02:00
Alessandro Ranellucci
7ff13c063f
Port PrintRegion::flow() and LayerRegion.flow() to XS
2014-08-03 19:17:23 +02:00
Alessandro Ranellucci
380dd8adfc
Ported some methods to XS
2014-08-03 18:41:09 +02:00
Alessandro Ranellucci
30fa055995
Bugfix: medial axis missed some segments. #2144
2014-08-03 15:03:47 +02:00
Alessandro Ranellucci
f462af20f9
Visual preview for bed shape dialog
2014-08-03 00:20:55 +02:00
Alessandro Ranellucci
3ff613d166
Merge branch 'acp-voronoi'
...
Conflicts:
xs/xsp/my.map
2014-07-26 22:38:35 +02:00
Alessandro Ranellucci
53f2d6bb4b
New 3D Honeycomb infill pattern (credits: David Eccles (gringer)). #1646
2014-07-26 17:07:43 +02:00
Alessandro Ranellucci
c4d70bcb85
Always use a rectangle with semicircles as extrudate shape
2014-07-26 15:29:24 +02:00
Alessandro Ranellucci
7aaf27c0c7
Put skirt outside brim to avoid conflicts. #2157
2014-07-24 23:43:19 +02:00
Alessandro Ranellucci
86bad17abb
Display skirt and brim in toolpaths preview. Also take support material margin into account when sizing the window. #2169
2014-07-24 18:32:07 +02:00
Alessandro Ranellucci
70fb381ecf
Bugfix: some extra spots were added in medial axis
2014-07-23 16:32:31 +02:00
Alessandro Ranellucci
a02ea2842c
Change default layer height to 0.3mm
2014-07-23 14:15:14 +02:00
Alessandro Ranellucci
d9f5fdae72
Bugfix: make_perimeters() was not truly idempotent because prepare_infill() split ->slices into typed surfaces
2014-07-15 19:07:38 +02:00
Alessandro Ranellucci
aacc01a56f
Store object and volume names in the new 'name' property instead of relying on material id
2014-07-12 11:20:57 +02:00
Alessandro Ranellucci
f82a8475a1
Use AMF object and volume metadata for handling per-object and per-volume settings
2014-07-11 20:09:01 +02:00
Alessandro Ranellucci
a06fad9e13
Enable/disable GUI controls according to the others in order to guide the user through option dependency
2014-07-01 18:18:23 +02:00
Alessandro Ranellucci
04b67f0cb0
Refactored OptionsGroup class for cleaner OOP model and cleaner event model
2014-07-01 16:42:12 +02:00
Alessandro Ranellucci
67bf99633e
Fix compilation under 5.20 (untested). #2109
2014-06-25 14:57:06 +02:00
Alessandro Ranellucci
b9e8fbacb7
Put the Default Extruder option in a less confusing position
2014-06-19 20:07:16 +02:00
Alessandro Ranellucci
b263da8d4c
Assign category to dont_support_bridges
2014-06-19 00:14:22 +02:00
Alessandro Ranellucci
928335f186
Removed print_center option (but left --print-center from CLI)
2014-06-16 23:58:45 +02:00
Alessandro Ranellucci
7cc0bce97d
Merge branch 'bedshape'
2014-06-16 22:57:04 +02:00
Alessandro Ranellucci
998a4225de
Finished implementation of bed_shape in plater
2014-06-16 15:18:39 +02:00
Alessandro Ranellucci
7a20c4d52a
More incomplete work for using bed_shape in plater
2014-06-16 14:05:22 +02:00
Alessandro Ranellucci
4fe2128fc4
Initial work for custom bed shape
2014-06-16 01:49:49 +02:00
Alessandro Ranellucci
6fbb6613ee
Remove erroneous min limit from xy_size_compensation definition. #2096
2014-06-15 11:50:52 +02:00
Alessandro Ranellucci
e9910a2c0b
XYZ mirroring from plater
2014-06-14 21:14:33 +02:00
Alessandro Ranellucci
1a5a7dcd36
Added min limits for most numeric options
2014-06-14 15:20:38 +02:00
Y. Sapir
a837e26f51
Translate PlaceholderParser::apply_config to C++.
2014-06-14 00:01:52 +02:00
Alessandro Ranellucci
6eec3440cc
Don't invalidate things if the changed options only affect G-code export
2014-06-13 23:07:46 +02:00
Alessandro Ranellucci
a1bcbea816
Use async timer everywhere
2014-06-13 20:36:45 +02:00
Alessandro Ranellucci
4d76d05bbb
Refactoring: better API for Print/Object steps with explicit dependencies
2014-06-13 20:05:18 +02:00
Alessandro Ranellucci
d9e7a50a6e
Partial work for background processing
2014-06-13 11:19:53 +02:00
Alessandro Ranellucci
97231327e0
Have Print::apply_config() return true if any step was invalidated
2014-06-12 09:29:26 +02:00
Alessandro Ranellucci
6194cbf530
Refactoring: new method in Flow for calculating spacing between extrusions having different width
2014-06-12 09:17:37 +02:00
Alessandro Ranellucci
8ee11b3239
Refactoring: keep height in Flow object and calculate spacing on demand
2014-06-12 01:00:13 +02:00
Alessandro Ranellucci
34750d47fe
Move external_perimeters_first to PrintRegionConfig
2014-06-11 22:15:28 +02:00
Alessandro Ranellucci
e158d1e612
Move bridge_flow_ratio to PrintRegionConfig
2014-06-11 22:10:33 +02:00
Alessandro Ranellucci
7eaba2d132
Move PrintConfigDef::build_def() to .cpp
2014-06-11 22:04:19 +02:00
Alessandro Ranellucci
5dcc1eab79
Bugfix: seam_position = aligned failed in certaim circumstances because of faulty concave points detection. Includes regression test
2014-06-11 21:58:41 +02:00
Alessandro Ranellucci
7ccfd2f024
More work on incremental slicing
2014-06-11 17:51:18 +02:00
Alessandro Ranellucci
d2ca4c1b13
Some initial work for incremental slicing
2014-06-11 00:15:02 +02:00
Alessandro Ranellucci
3f6360ee8f
Finish porting Print classes to XS
2014-06-10 16:01:57 +02:00
Alessandro Ranellucci
ba8148f4ad
Merge branch 'printcpp' of github.com:sapir/Slic3r into sapir-printcpp
...
Conflicts:
lib/Slic3r/GCode.pm
lib/Slic3r/Print.pm
lib/Slic3r/Print/Object.pm
lib/Slic3r/Print/Region.pm
2014-06-10 14:46:40 +02:00
Alessandro Ranellucci
e3e69251cb
New XY Size Compensation option. #581 #56
2014-06-10 13:28:57 +02:00
Alessandro Ranellucci
3599bd0bae
Distinct extrusion width for external perimeters
2014-06-09 21:22:15 +02:00
Alessandro Ranellucci
28695c719c
Fixed regression causing bridge flow to be incorrect when a manual default extrusion width was specified. Includes several regression tests. #2027
2014-06-03 23:59:03 +02:00
Alessandro Ranellucci
f5b9df2413
New implementation of Avoid crossing perimeters using Voronoi diagrams
2014-05-28 10:16:58 +02:00
Alessandro Ranellucci
f018828bfd
Simplify islands before initializing MotionPlanner
2014-05-27 01:11:40 +02:00
Alessandro Ranellucci
7215e66a6a
Merge branch 'master' into visilibity
...
Conflicts:
lib/Slic3r/GCode.pm
xs/MANIFEST
2014-05-27 00:04:53 +02:00
Alessandro Ranellucci
98b8936ee2
Automatically disable retract_layer_change when using spiral_vase
2014-05-26 23:51:58 +02:00
Alessandro Ranellucci
2ac40f9547
Revert "Update Clipper to r468. #2028 "
...
This reverts commit 6a6439576b
.
2014-05-26 20:00:59 +02:00
Alessandro Ranellucci
6a6439576b
Update Clipper to r468. #2028
2014-05-26 17:21:31 +02:00
Alessandro Ranellucci
3d25b9030c
Bugfix: movement between objects in sequential printing mode was going too far away. #2013 #2007
2014-05-26 15:19:13 +02:00
Alessandro Ranellucci
0decbbf910
Revert "Updated Clipper to r467 but it doesn't seem to fix #2028 yet"
...
This reverts commit a62457d6b5
.
2014-05-25 23:27:26 +02:00
Alessandro Ranellucci
a62457d6b5
Updated Clipper to r467 but it doesn't seem to fix #2028 yet
2014-05-25 22:48:58 +02:00
Y. Sapir
19d18bdd84
Attempt to solve conflict with a3bd1b5
by adding id to PrintObject and using that as a hash key.
2014-05-25 03:00:29 +03:00
Y. Sapir
b8b8c746d9
Make clear_regions and delete_region methods private (both Print & Layer), and remove from XSP.
2014-05-25 00:11:17 +03:00
Y. Sapir
22b05cb187
Make read-only constructor parameters - private.
2014-05-24 23:50:45 +03:00
Y. Sapir
0486a7f857
Try to fix _copies_shift scaling.
2014-05-24 23:50:45 +03:00
Y. Sapir
8da0bded1d
Move Print object storage to C++. (along with its subobjects)
2014-05-24 23:50:29 +03:00
Alessandro Ranellucci
88a2e5c791
Typo seal -> seam :-)
2014-05-24 22:10:28 +02:00
Alessandro Ranellucci
70ceb853f1
Update Clipper to last trunk to fix a couple Clipper bugs causing empty intersection results and failure to process polylines with coinciding endpoints. This also caused crashed in some rare circumstances
2014-05-23 23:58:43 +02:00
Alessandro Ranellucci
a3bd1b5302
New seal_position option that replaces randomize_start, start_perimeters_at_concave_points and start_perimeters_at_non_overhang. The two latter options are now always on by default. A new "Aligned" seal position value has been added, that forces starting points to be aligned when not randomized. #1741 #925
2014-05-22 19:34:49 +02:00
Alessandro Ranellucci
c63bd8165d
Fixed minor compilation issue
2014-05-22 13:47:30 +02:00
Alessandro Ranellucci
f2c5e799b1
Enforce seam alignment and blend in spiral vase. #2023
2014-05-22 12:28:12 +02:00
Alessandro Ranellucci
254ab29a97
New Point::projection_onto() methods
2014-05-21 20:08:21 +02:00
Alessandro Ranellucci
874c7a6e8b
One line missing for support_material_interface_speed declaration
2014-05-21 15:53:41 +02:00
Alessandro Ranellucci
5e6ff952df
Fix more regressions in test suite regarding the workaround for Clipper bug
2014-05-21 15:45:16 +02:00
Alessandro Ranellucci
8ca352eb62
Separate speed option for support material interface. #2009
2014-05-21 15:21:20 +02:00
Alessandro Ranellucci
08279ec5d8
Bugfix: thin walls forming a closed loop had overlapping segments at their endpoints. #1948 #1875
2014-05-21 15:03:31 +02:00
Alessandro Ranellucci
ac0a91a162
Move many speed settings to PrintRegionConfig
2014-05-15 18:53:05 +02:00
Alessandro Ranellucci
5fe5021fd7
Implemented avoid_crossing_perimeters with VisiLibity
2014-05-13 20:06:01 +02:00
Alessandro Ranellucci
ee2c1c6127
Refactored the Slic3r::GCode logic for speeds
2014-05-13 08:34:21 +02:00
Alessandro Ranellucci
5d12a03b82
Move Detect Bridging Perimeters to region config
2014-05-12 23:02:33 +02:00
Alessandro Ranellucci
59f0e76da1
Distinct extrusion role for support material interface
2014-05-12 22:59:49 +02:00
Alessandro Ranellucci
69002b8ea2
No tests were covering randomize-start, which was not working anymore after recent ExtrusionLoop refactoring. #2028
2014-05-12 21:49:17 +02:00
Alessandro Ranellucci
27c73f5983
Some fixes after the recent Model refactoring
2014-05-10 16:59:17 +02:00
Alessandro Ranellucci
65b7d27def
Draft for binary representation of G-code commands
2014-05-10 15:08:49 +02:00
Alessandro Ranellucci
7ba08c90cf
Refactoring to Model API for making it stricter and safer
2014-05-09 14:24:35 +02:00
Alessandro Ranellucci
bc023c2d51
Remove new/delete keywords from ClipperUtils.cpp
2014-05-08 15:00:49 +02:00
Alessandro Ranellucci
76a8ec3d9e
Replace to_SV_ref() and to_SV_clone_ref() with templated glue functions
2014-05-08 14:52:48 +02:00
Alessandro Ranellucci
f76e2c2222
Several minor fixes to Model
2014-05-08 13:33:43 +02:00
Alessandro Ranellucci
6e207d3830
Merge branch 'sapir-modelcpp'
2014-05-08 11:13:21 +02:00
Alessandro Ranellucci
c37ef2f18b
New semantics for ExtrusionLoop objects. Early processing of perimeter overhangs for paralellizing such work and making G-code export lighter. Lots of refactoring. This should fix a number of minor bugs, including reversals of perimeter overhangs.
2014-05-08 11:07:37 +02:00
Alessandro Ranellucci
d2d885fc53
Turn ExtrusionLoop into a collection of polylines. Includes some changes to the Polygon API to avoid returning newly allocatd objects
2014-05-07 12:02:09 +02:00
Alessandro Ranellucci
931f3114c0
Fix clear_objects() and clear_volumes()
2014-05-07 01:23:14 +02:00
Alessandro Ranellucci
13af16ea24
Use Pointf for origin_translation and pass const refs whenever possible
2014-05-07 00:58:29 +02:00
Alessandro Ranellucci
54a199919b
Removed StringMap
2014-05-07 00:22:56 +02:00
Y. Sapir
05b2993769
Translate Model class' storage to C++.
...
Some code copied from xs-model branch.
Also:
* Generate ::Ref classes programatically.
* Add separate __REGISTER_CLASS macro
(for use where forward declaration won't work, i.e. typedefs)
2014-05-05 16:30:19 +03:00
Alessandro Ranellucci
cb1527f7ef
Refactoring: move direction math into a single function. Includes some fixes and adjustments
2014-05-02 18:48:11 +02:00
Alessandro Ranellucci
0a88492fdc
Use a more robust parallelism detection
2014-05-02 13:26:59 +02:00
Alessandro Ranellucci
edeb0a90dd
Use poly2tri for triangulation. This fixes some cases where polyPartition couldn't triangulate successfully. Reported as issue #9 in polyPartition repository. Tested with MotorHalter_0.stl cut at 1.2
2014-05-01 12:07:11 +02:00
Alessandro Ranellucci
60f640f100
Remove self-intersections before supplying polygon data to polyPartition and rename triangulate2() to triangulate_pp()
2014-05-01 10:37:38 +02:00
Alessandro Ranellucci
9734a40647
Fix Polygon::contains_point() overflowing on Windows. #1950
2014-04-30 16:55:20 +02:00
Alessandro Ranellucci
581376bf75
Rename EMC to LinuxCNC
2014-04-30 15:05:32 +02:00
Alessandro Ranellucci
98e40d3fe4
Store width and height in ExtrusionEntity objects for debugging purposes
2014-04-29 23:16:16 +02:00
Alessandro Ranellucci
24571612c7
Some minor changes to the newly-ported Extruder class
2014-04-28 22:02:34 +02:00
Alessandro Ranellucci
4c330b6c59
Merge pull request #1968 from sapir/extrudercpp
...
Translate Extruder class to C++
2014-04-28 21:45:53 +02:00
Alessandro Ranellucci
19fdf9b184
Test triangulate2() instead of the faulty triangulate()
2014-04-28 20:19:26 +02:00
Alessandro Ranellucci
2720000a17
New get_trapezoids() implementation. Maybe heavier but it doesn't fail with some versions of GCC like the one provided by Boost.Polygon. #1965
2014-04-28 20:14:20 +02:00
Y. Sapir
e005ff32c4
Replace Extruder::config accessor with Perl wrapper, with C++ option accessors.
2014-04-28 00:49:05 +03:00
Y. Sapir
71b0b211ec
Constify ConfigOptionVector::get_at.
2014-04-28 00:19:03 +03:00
Y. Sapir
d824de6168
Keep pointer to PrintConfig instead of copying it.
2014-04-28 00:03:22 +03:00
Y. Sapir
c2b249d059
Add REGISTER_CLASS call for Extruder class.
2014-04-27 23:53:28 +03:00
Y. Sapir
2565d80679
Replace multitude of Extruder fields with querying a PrintConfig object by id.
2014-04-27 23:43:44 +03:00
Y. Sapir
04fad70cbf
Make C++ gcode generator use C++ Extruder object directly.
2014-04-27 23:43:43 +03:00
Y. Sapir
66d23a2416
Convert Extruder object (mostly) to C++ with lots of fields.
2014-04-27 23:42:59 +03:00
Petr Ledvina
115aa6885f
Implement type checking for XS objects
...
Type handling is mainly done using templates.
Template Slic3r::ClassTraits is used to store info about exported types (perl class name). Currently only perl class name and refference name is used.
Template values are initialized by REGISTER_CLASS macro. This macro is used in .cpp file of class ( it needs to be used exactly for each type).
Ref<type> class is used to return value as perl reference. Operator overloading is used to make c++ and XSpp happy, only pointer value should be possible to return.
Clone<type> class is used to return copy of value ( using new and copy constructor). Copy is created on assigment, this should be probably improved (memory leak on multiple assignments).
It is overloaded to be able to return type, type* and type&.
Typechecking in ExtrusionEntityCollection updated to check all passed types.
2014-04-27 19:38:56 +02:00
Y. Sapir
87eee8eea3
Remove execute permissions for clipper source files.
2014-04-27 13:19:11 +03:00
Alessandro Ranellucci
ce9cf4d964
Don't put supports under bridges and potential bridges
2014-04-26 17:19:50 +02:00
Alessandro Ranellucci
7e3024d6ad
Explain that infill_every_layers can be set to arbitrarily large values in the tooltip
2014-04-25 20:29:37 +02:00
Alessandro Ranellucci
7ac0095018
Fix regression causing default extrusion width to be ignored. #1958
2014-04-25 19:39:27 +02:00
Alessandro Ranellucci
8db4913b04
New option for rotating the lower part resulting from the cut so that the flat surface lies on the print bed
2014-04-25 17:50:03 +02:00
Alessandro Ranellucci
4f17c2b7d1
First working implementation of a GUI for cutting
2014-04-25 17:14:39 +02:00
Alessandro Ranellucci
334bc4c581
Fix cut() test
2014-04-25 13:27:45 +02:00
Alessandro Ranellucci
4f5d9ca795
Finished --cut implementation
2014-04-25 12:40:21 +02:00
Alessandro Ranellucci
fe1691c151
New --cut feature
2014-04-25 10:20:30 +02:00
Alessandro Ranellucci
37c7b958d4
New ExPolygon::triangulate() method
2014-04-24 17:06:16 +02:00
Alessandro Ranellucci
bb0ce3cccd
New Polygon::triangulate_convex() method
2014-04-24 16:59:36 +02:00
Alessandro Ranellucci
ca4d4211c9
Refactored signatures of many C++ methods for more efficient and safer style. Includes a bugfix for Point::nearest_point() which was returning a pointer to freed memory. #1961
2014-04-24 16:40:10 +02:00
Alessandro Ranellucci
6201aacf88
New coverage detection for bridges. Includes implementation of ExPolygon::get_trapezoids()
2014-04-24 13:44:39 +02:00
Alessandro Ranellucci
1fc76b73a4
Merge pull request #1953 from ledvinap/fix-clipper-1834
...
Apply bug fix from upstream clipper. Fixes #1834
2014-04-22 15:39:42 +02:00
Petr Ledvina
c30040b691
Apply bug fix from upstream clipper
...
Clipper fix in commit [r463] for bug repport #92 (http://sourceforge.net/p/polyclipping/code/463/tree//trunk/cpp/clipper.cpp?diff=504b9404fd48f873331e913b:462 )
is applied here.
2014-04-22 15:19:35 +02:00
Alessandro Ranellucci
bc101bd93e
Assume bridge angle is stored in radians in infill generation. #1917
2014-04-21 23:21:15 +02:00
Alessandro Ranellucci
7041ebdd22
Workaround for upstream module bug causing command line option parsing for multi-boolean options like retract-layer-change and wipe
2014-04-19 19:14:41 +02:00
Alessandro Ranellucci
8018eac0f0
Set min temperature to 0
2014-04-19 18:32:04 +02:00
Alessandro Ranellucci
c3bb8a69db
Bugfix: crash when extending an array option by 2+ positions. #1908
2014-04-19 16:38:28 +02:00
Alessandro Ranellucci
f51921a11a
Default extruder wasn't applied to perimeter extruder. Includes regression test. #1868
2014-04-19 11:43:41 +02:00
Alessandro Ranellucci
93a7d87fc6
Bugfix: pillars support material crashed when no overhangs were detected
2014-04-07 16:59:22 +02:00
Alessandro Ranellucci
1c020eda78
Merge pull request #1911 from sapir/speed
...
Rewriting the extrusion path gcode generation in C++
2014-04-07 09:38:21 +02:00
Alessandro Ranellucci
d6d6a51e0d
Fix for incomplete extrusion on solid surfaces
2014-04-05 10:54:24 +02:00
Alessandro Ranellucci
b68c55fec0
Bugfix: the Y coordinate of Point config fields was not correctly validated and lead to a crash when entering non-numeric values. Includes regression test. #1906
2014-04-05 09:40:24 +02:00
Y. Sapir
4deeff995a
Move extrusion path gcode generation to C++ for speed.
2014-04-01 21:11:43 +03:00
Alessandro Ranellucci
bbebcca82c
Set default support material pattern to pillars
2014-03-27 00:05:22 +01:00
Alessandro Ranellucci
071097d3f1
Fix extruder assignment and tests
2014-03-27 00:01:33 +01:00
Alessandro Ranellucci
4540350b66
Specify that extruder indices are 1-based in tooltips
2014-03-26 00:14:45 +01:00
Alessandro Ranellucci
0ff33f47f1
Fix the extruder override logic. All role-based extruder options now default to 0, meaning no override is defined and the default (inherited) extruder is used. The default extruder option does not use the shortcut logic anymore (it was thus moved to be a CLI-specific logic)
2014-03-26 00:08:15 +01:00
Alessandro Ranellucci
432a87e73d
New option for forcing the generation of interface shells. #1847
2014-03-25 01:11:28 +01:00
Alessandro Ranellucci
91799a9e58
Rephrase the tooltip for start G-code to make its position more clear. #1822
2014-03-24 22:06:35 +01:00
Alessandro Ranellucci
9fa2a17136
Better tooltip for top_solid_infill_speed. #1752
2014-03-24 14:25:12 +01:00
Alessandro Ranellucci
4c6f9703df
Fix bad deserialization of extruder_offset = 0x0
2014-03-24 14:16:37 +01:00
Alessandro Ranellucci
7a58457add
Prevent GUI from crashing when invalid values were written in numeric fields. Includes basic validation. #1709
2014-03-24 01:07:30 +01:00
Alessandro Ranellucci
e9620c30b1
Update Clipper to 6.1.3a
2014-03-23 21:40:35 +01:00
Alessandro Ranellucci
d02b64b31b
Bugfix: binary STL export produced corrupt results on Windows. #1814
2014-03-23 19:17:56 +01:00
Alessandro Ranellucci
9f8b5f80d1
Add 0% to fill_density combobox
2014-03-23 16:57:12 +01:00
Alessandro Ranellucci
d75417601e
Make the override panel prettier and prevent the default extruder setting from being deleted since it can't be readded manually
2014-03-23 15:18:08 +01:00
Alessandro Ranellucci
21e6de0e59
Only expand shortcut options in StaticConfig objects. This way we can keep a default extruder value in the parts panel
2014-03-22 20:12:54 +01:00
Alessandro Ranellucci
b5b735c988
ComboBox for fill density values
2014-03-22 17:01:48 +01:00
Alessandro Ranellucci
7421a7bf63
Turn fill_density into percentage
2014-03-22 16:23:33 +01:00
Alessandro Ranellucci
ed8a2f7330
Extend medial axis endpoints to fill the entire length. Includes fix for a minor memory leak caused by usage of old signature for Line::point_at()
2014-03-15 16:53:20 +01:00
Alessandro Ranellucci
52de292a48
Fixed wrong refactoring of perimeter tree traversal. #1832
2014-03-15 02:16:04 +01:00
Alessandro Ranellucci
7f5442265e
Include thin walls in general top-level perimeter sorting to get more efficient paths
2014-03-09 20:19:30 +01:00
Alessandro Ranellucci
2a73ab988f
Recursive pruning. Some more unit tests
2014-03-09 17:46:02 +01:00
Alessandro Ranellucci
33da6adc3c
Better pruning
2014-03-08 11:36:48 +01:00
Alessandro Ranellucci
04d80ca392
Some improvements to pruning and some additions here and there
2014-03-05 18:43:01 +01:00
Alessandro Ranellucci
c2ed6090d3
Fix the max width supplied to medial axis code: it's up to two extrusions
2014-03-05 00:53:51 +01:00
Alessandro Ranellucci
4a894b1e20
Add safety offset to thin wall regions to prevent overlapping geometry and corrupt Voronoi diagram
2014-03-05 00:45:17 +01:00
Alessandro Ranellucci
e1f93fd112
Consider contour thickness when validating medial axis segments
2014-03-05 00:05:26 +01:00
Alessandro Ranellucci
3c77b301a7
Promising approach to medial axis pruning
2014-03-04 23:33:13 +01:00
Alessandro Ranellucci
b49a652736
Rewritten half-edge traversal in a more robust way. Includes first medial axis unit test
2014-03-03 01:48:05 +01:00
Alessandro Ranellucci
eadffe4a9e
Merge branch 'master' into boost-medialaxis
...
Conflicts:
lib/Slic3r/Layer/Region.pm
xs/src/ExPolygon.cpp
xs/src/Point.cpp
xs/src/Point.hpp
xs/src/TriangleMesh.cpp
xs/t/01_trianglemesh.t
2014-03-02 22:36:20 +01:00
Alessandro Ranellucci
691db31da0
Some incomplete work for per-region config
2014-02-14 22:26:00 +01:00
Alessandro Ranellucci
cfc1c5037d
Mark strings as UTF-8 when passing them to Perl
2014-02-14 22:25:59 +01:00
Alessandro Ranellucci
3d483722c6
Perform additional checks before merging solid surfaces (i.e. take flow and fill pattern into account)
2014-02-10 13:19:44 +01:00
Kamil Kwolek
c20489ee40
fix XS build on Windows #1433 #1681
2014-02-01 11:53:45 +01:00
Alessandro Ranellucci
42519174cd
New erase() method for DynamicConfig objects
2014-01-22 21:15:19 +01:00
Alessandro Ranellucci
90194ee581
Fix overflow in Point::ccw() affecting convex hull generation. Includes regression test
2014-01-17 14:49:51 +01:00
Alessandro Ranellucci
0d7f0705f0
Fix overflow in distance_to(Line*). It was affecting Douglas-Peucker causing massive loss of geometry. Includes regression test and a couple wkt() implementations
2014-01-17 14:22:37 +01:00
Alessandro Ranellucci
3a3e53b59b
Fixed some obvious mistakes and applied strict type checking to SurfaceCollections too
2014-01-16 19:02:50 +01:00
Alessandro Ranellucci
a831f5b176
Refactor loop building code to make_loops()
2014-01-16 11:38:17 +01:00
Alessandro Ranellucci
86f91bb3c4
New TriangleMeshSlicer::cut() method
2014-01-16 11:25:26 +01:00
Alessandro Ranellucci
519ed91c68
Refactored mesh slicing code into a new TriangleMeshSlicer class
2014-01-15 20:31:38 +01:00
Alessandro Ranellucci
fcaa3a03c2
Bugfix: incomplete slicing when a horizontal surface was tangent to the slicing plane and it shared an edge with an adjacent volume. #1672
2014-01-13 00:45:19 +01:00
Alessandro Ranellucci
3637ca39df
TriangleMesh::slice() now accepts a vector of floats instead of doubles for consistency with mesh coordinates
2014-01-12 23:56:07 +01:00
Alessandro Ranellucci
69f1f65a8b
Because of numerical instability, lower_bound() was not including a layer having z == 0.8 even if the facet's min_z == 0.8. #1672
2014-01-12 16:01:14 +01:00
Alessandro Ranellucci
bac743a602
Little cleanup to slice(): only used scaled coordinates in slicing instead of mixing them with unscaled
2014-01-12 14:48:51 +01:00
Alessandro Ranellucci
51af10da4f
Some fixes to config API
2014-01-12 12:35:13 +01:00
Alessandro Ranellucci
a51743a8c1
Bugfix: lack of strong type checking when passing arrayref objects to XS caused random lack of infill. Now added strong type checking for all XS entities. Also fixes a potential issue with bridges caused by the same error. #1652
...
Conflicts:
lib/Slic3r/Layer/Region.pm
2014-01-12 00:54:10 +01:00
Alessandro Ranellucci
c0a74780cb
The ratio_over parameter was missing in the definition of first_layer_extrusion_width
2014-01-11 14:48:13 +01:00
Alessandro Ranellucci
7b0decbeb1
Finished implementing Boost.Polygon medial axis. Some cleanup needed
2014-01-10 16:18:55 +01:00
Alessandro Ranellucci
07a4c37c4c
Semi-working Boost.Polygon medial axis. Hangs after perimeters, though. Needs pruning and chaining
2014-01-10 11:47:16 +01:00
Alessandro Ranellucci
f9642786d3
More work to get Boost.Polygon to compile
2014-01-09 19:56:12 +01:00
Alessandro Ranellucci
bf91f3096a
Incomplete work for using Boost.Polygon to compute medial axis
2014-01-09 17:26:39 +01:00
Alessandro Ranellucci
c8a48b4527
Implement modifier volumes and port _merge_loops() to XS
2014-01-07 15:40:38 +01:00
Alessandro Ranellucci
b17d06f9d1
Finished porting BoundingBox to XS
2014-01-07 12:48:09 +01:00
Alessandro Ranellucci
ea47f3b6e7
More fixes to BoundingBox
2014-01-06 19:42:31 +01:00
Alessandro Ranellucci
9c0a6a79d3
Incomplete work for porting BoundingBox to XS
2014-01-06 18:29:10 +01:00
Alessandro Ranellucci
3e93a14912
New support material pattern: pillars!
2014-01-05 16:51:16 +01:00
Alessandro Ranellucci
0bdea60b53
Merge branch 'region-config'
...
Conflicts:
lib/Slic3r/Format/AMF/Parser.pm
2014-01-05 14:59:36 +01:00
Alessandro Ranellucci
036badf932
Ported Flow to XS
2014-01-05 13:16:13 +01:00
Alessandro Ranellucci
07b9b12475
Make tests pass
2014-01-05 00:36:33 +01:00
Alessandro Ranellucci
8ed738d3f7
More incomplete work for Flow/Extruder refactoring
2014-01-03 18:27:46 +01:00
Alessandro Ranellucci
b9793b3f12
Moved first_layer_extrusion_width to PrintConfig
2014-01-03 00:34:30 +01:00
Alessandro Ranellucci
81663215c5
Adapt plater to the new split config
2014-01-02 22:06:58 +01:00
Alessandro Ranellucci
44e7e542c2
Bugfix: overflow causing full object facets reversal when STL file has large coordinates. #1666
2014-01-02 18:52:27 +01:00
Alessandro Ranellucci
bfa2ee2770
Remove scale, rotate, duplicate, duplicate_grid from config (but leave them in CLI)
2014-01-02 18:01:21 +01:00
Alessandro Ranellucci
5bf0942f45
Satisfy test suite and CLI
2014-01-02 17:24:23 +01:00
Miro Hrončok
aad41ee023
Rename some admesh functions to preserve compatibility with oiriginal admesh #1525
2014-01-02 15:10:03 +01:00
Alessandro Ranellucci
e2f1040a76
More work
2014-01-02 10:44:54 +01:00
Alessandro Ranellucci
0883d0f4eb
More work here and there
2014-01-01 17:29:15 +01:00
Alessandro Ranellucci
51b976721d
Split PrintConfig into PrintObjectConfig and PrintRegionConfig
2013-12-31 15:52:37 +01:00
Alessandro Ranellucci
83326845dd
More incomplete work
2013-12-31 14:33:03 +01:00
Alessandro Ranellucci
beb1baa096
Incomplete work for refactoring regions and flows
2013-12-30 18:28:41 +01:00
Alessandro Ranellucci
bd133d9434
Update Clipper to 6.1.2
2013-12-24 12:40:46 +01:00
Alessandro Ranellucci
c5ead0f2a6
Fixes to Config and plater; also refactored the arrange() code
2013-12-24 00:30:51 +01:00
Alessandro Ranellucci
ab25cc4940
Merge branch 'xs-config'
...
Conflicts:
lib/Slic3r/Config.pm
xs/MANIFEST
2013-12-22 01:41:55 +01:00
Alessandro Ranellucci
c0070a8d54
Satisfy test suite with new XS based config
2013-12-22 01:38:10 +01:00
Alessandro Ranellucci
4515d90052
Finished porting Config and option definition to XS
2013-12-22 00:39:03 +01:00
Alessandro Ranellucci
9836e963a5
Incomplete work for adapting the application to the new XS-based Config
2013-12-21 21:06:45 +01:00
Alessandro Ranellucci
e0c0a42a8b
Expose static PrintConfig objects to Perl and test apply()
2013-12-21 16:32:11 +01:00
Alessandro Ranellucci
56d4da2ac7
Decoupled a generic Config implementation from the PrintConfig definitions
2013-12-21 16:15:41 +01:00
Alessandro Ranellucci
b2b67372ad
Inline serialize() and deserialize() for ConfigOptionEnum
2013-12-21 14:48:25 +01:00
Alessandro Ranellucci
872e9bf810
Support for more array config types
2013-12-21 14:27:58 +01:00
Alessandro Ranellucci
bb5bbe191f
Support enum config options
2013-12-21 10:46:43 +01:00
Alessandro Ranellucci
f274287b0e
Support bool options in XS
2013-12-20 21:32:18 +01:00
Alessandro Ranellucci
64e549a46f
More work for XS Config
2013-12-20 20:54:11 +01:00
Alessandro Ranellucci
008f38cf68
More work for porting Config to XS
2013-12-20 16:37:28 +01:00
Alessandro Ranellucci
a6a6a6888b
Ported Slic3r::Print::State to XS
2013-12-20 01:36:42 +01:00
Alessandro Ranellucci
916a0a0e58
Fix compilation and test suite
2013-12-18 16:34:31 +01:00
Alessandro Ranellucci
250608aa52
Move centering outside the Print object
2013-12-15 16:17:12 +01:00
Alessandro Ranellucci
5470fbbebc
Make quick_slice() work with new model handling
2013-12-13 12:18:30 +01:00
Alessandro Ranellucci
0e8a0ef1ca
Refactoring. Use Model class for representing the plate in GUI
2013-12-12 20:19:33 +01:00
Alessandro Ranellucci
f55e057504
More work for refactoring add_model() to add_model_object(). Tests pass
2013-12-09 01:12:37 +01:00
Alessandro Ranellucci
4d066840ba
Initial work for porting Slic3r::Config to XS
2013-12-07 16:14:30 +01:00
Alessandro Ranellucci
e9b87b69df
Bugfix: segfault in SurfaceCollection->group(), fixed with a better implementation. #1566
2013-12-04 00:11:08 +01:00
Alessandro Ranellucci
bd8c430afd
Merge branch 'stable'
...
Conflicts:
lib/Slic3r/Geometry/Clipper.pm
lib/Slic3r/Layer/Region.pm
2013-11-24 22:48:31 +01:00
Alessandro Ranellucci
3fca0956bc
Adapt plater to new convex hull
2013-11-24 22:42:52 +01:00
Alessandro Ranellucci
bed1625d6b
Split objects could not be repositioned in plater. 3D preview and stats were not available too. #1543
2013-11-24 14:28:17 +01:00
Alessandro Ranellucci
9cf138574c
New TriangleMesh::convex_hull()
2013-11-24 01:15:52 +01:00
Alessandro Ranellucci
a93c862338
Ported traverse_pt() to XS
2013-11-23 23:21:59 +01:00
Alessandro Ranellucci
3a5e4931cc
Move Geometry.cpp to Slic3r::Geometry namespace
2013-11-23 21:54:56 +01:00
Alessandro Ranellucci
0516aac715
Ported chained_path() to XS
2013-11-23 21:39:05 +01:00
Alessandro Ranellucci
4d5d003ba7
Ported horizontal_projection() to XS
2013-11-23 19:41:40 +01:00
Alessandro Ranellucci
e75dbf37fa
Never scale TriangleMesh objects
2013-11-23 19:25:33 +01:00
Alessandro Ranellucci
46e3b3180e
Ported Surface->offset() to XS
2013-11-23 18:29:25 +01:00
Alessandro Ranellucci
a331f4d27a
Finished porting group() to XS
2013-11-23 18:15:59 +01:00
Alessandro Ranellucci
67a7e4f769
Change method signature for slice()
2013-11-23 00:15:42 +01:00
Alessandro Ranellucci
878d587196
Ported is_solid() and is_bridge() to XS. Also ported (but not used yet) group() to SurfaceCollection::group()
2013-11-23 00:07:04 +01:00
Alessandro Ranellucci
de9d5403e8
Finished porting convex_hull() to XS and removed dependency on Math::ConvexHull::MonotoneChain
2013-11-22 22:48:07 +01:00
Alessandro Ranellucci
5309e3ef22
More files for convex_hull
2013-11-22 22:38:30 +01:00
Alessandro Ranellucci
4577f0725c
Incomplete work for XS-based convex_hull
2013-11-22 21:43:35 +01:00
Alessandro Ranellucci
132d170f73
Ported simplify() to XS and removed dependency on Boost::Geometry::Utils
2013-11-22 16:01:50 +01:00
Alessandro Ranellucci
df8d889481
More unfinished work
2013-11-22 02:16:10 +01:00
Alessandro Ranellucci
518798beb3
Incomplete work for porting simplify() to XS
2013-11-21 20:25:24 +01:00
Alessandro Ranellucci
5f2b2c90b6
Fix error in contains_point() port
2013-11-21 18:42:16 +01:00
Alessandro Ranellucci
ac88fbcbb0
Ported clip_end(), length(), is_perimeter(), is_fill(), is_bridge() to XS
2013-11-21 18:03:40 +01:00
Alessandro Ranellucci
761f261a68
Ported intersect_expolygons() and subtract_expolygons() to XS
2013-11-21 17:53:50 +01:00
Alessandro Ranellucci
5f81292f3f
Ported encloses_point() to XS and renamed to contains_point()
2013-11-21 16:21:42 +01:00
Alessandro Ranellucci
a225a8b2ef
Ported contains_line() to XS
2013-11-21 15:12:06 +01:00
Alessandro Ranellucci
3025c77675
Use Clipper for line clipping
2013-11-21 14:15:38 +01:00
Alessandro Ranellucci
1d6a18071a
Support the new Clipper API
2013-11-20 15:59:19 +01:00
Alessandro Ranellucci
50c0081d25
Update Clipper to 6.0.0
2013-11-20 11:35:58 +01:00
Alessandro Ranellucci
e62ef35fbf
Bugfix: some binary STL files were not correctly parsed on Windows. #1370 1467
2013-11-12 16:58:26 +01:00
Alessandro Ranellucci
3464e646f7
Use fread() to read facet number
2013-11-12 15:27:42 +01:00
Alessandro Ranellucci
d0d842e24a
Use fread() to read binary STL files
2013-11-12 15:23:48 +01:00
Alessandro Ranellucci
885ab5844e
Ported regular_points() to XS and renamed it to equally_spaced_points()
2013-11-11 20:59:58 +01:00
Alessandro Ranellucci
3ac94bd6d8
Fix a valgrind warning about mismatched free()
2013-11-11 15:07:38 +01:00
Alessandro
e024b08762
Round Perl coordinates instead of truncating them to integers. #1486 #1445 #1464
2013-11-11 13:00:50 +01:00
Alessandro Ranellucci
c133a33ed2
Ported point_line_distance() and removed same_point()
2013-11-06 23:08:03 +01:00
Alessandro Ranellucci
d8e098ab0e
Ported same_line() to XS
2013-11-06 19:38:10 +01:00
Alessandro Ranellucci
b5aaeb9b12
More work on the clipping method for medial axis. Includes Polyline->is_valid()
2013-11-06 19:30:45 +01:00
Nicolas Dandrimont
067cc1a74a
Fix rounding error in clipper.cpp
...
This fixes half of #1486 (test failure in t/geometry.t)
2013-11-03 01:13:23 +01:00
Alessandro Ranellucci
29b83517cb
Ported point_along_segment(), Polyline::length(), Polyline::clip_end() to XS
2013-10-27 22:57:25 +01:00
Alessandro Ranellucci
e6efda4ba4
Bugfix: incomplete slicing when more than two facets shared the same edge. #1483
2013-10-26 14:43:47 +02:00
Alessandro Ranellucci
5988f14b14
Flag for arrows in SVG.cpp
2013-10-26 14:41:37 +02:00
Alessandro Ranellucci
d59e62c9d8
Bugfix: wrong slicing (error in XS port). #1469
2013-10-13 16:00:20 +02:00
Alessandro Ranellucci
ac93e15c98
New class for generating SVG from XS. Includes some minor refactoring to TriangleMesh
2013-10-13 15:59:38 +02:00
Alessandro Ranellucci
9918c1e97d
Minor improvements in debug output
2013-10-13 12:12:03 +02:00
Alessandro Ranellucci
ac5e713323
Fix segfault when calling chained_path() on an ExtrusionPathCollection using no_sort. Includes regression test
2013-09-28 15:30:10 +02:00
Alessandro Ranellucci
91289fad49
Fix compilation on Windows. #1433
2013-09-23 11:27:35 +02:00
Alessandro Ranellucci
b1a3bd65ea
Remove unused variable and add missing define
2013-09-19 16:19:47 +02:00
Alessandro Ranellucci
4fe0675380
Removed ZTable code
2013-09-17 23:55:38 +02:00
Alessandro Ranellucci
0c2bfab5f2
Fix an overflow point causing wrong chained path
2013-09-17 13:04:36 +02:00
Alessandro Ranellucci
4dce461aaf
Minor optimizations
2013-09-13 15:19:15 +02:00
Alessandro Ranellucci
6e22a82e7d
Conditional compilation to exclude all Perl/XS stuff from C++ code
2013-09-13 14:48:40 +02:00
Alessandro Ranellucci
749b8421b0
Merge pull request #1435 from jluis/master
...
Round results when rotating to minimize errors & pass the tests
2013-09-12 02:10:18 -07:00
Alessandro Ranellucci
d660a1de0a
Fix XS STL reader not populating stats.size correctly
2013-09-12 10:29:42 +02:00
Alessandro Ranellucci
d4512a12df
Make plater work with new XS code
2013-09-11 20:00:51 +02:00
Alessandro Ranellucci
11e18f681d
Incomplete work to store TriangleMesh objects in Model objects instead of extracting vertices and facets
2013-09-11 09:49:28 +02:00
Jose Luis Perez Diez
69a92c10f0
Round results when rotating to minimize errors & pass the tests
2013-09-10 17:14:49 +02:00
Alessandro Ranellucci
566d38a472
Replace TriangleMesh with the XS port
2013-09-10 00:40:46 +02:00
Alessandro Ranellucci
311eda7d42
Implemented TriangleMesh->clone
2013-09-10 00:09:56 +02:00
Alessandro Ranellucci
9b12d6037a
Ported TriangleMesh::scale_xyz()
2013-09-09 23:38:49 +02:00
Alessandro Ranellucci
5e34a9cf21
Make Repair() idempotent and lowercase
2013-09-09 23:18:33 +02:00
Alessandro Ranellucci
28b043e9a9
Add unit test for split()
2013-09-09 23:09:56 +02:00
Alessandro Ranellucci
3919ba83d8
Implemented TriangleMesh->merge
2013-09-09 22:45:22 +02:00
Alessandro Ranellucci
27e7c6b9f7
Finished implementation of TriangleMesh->split
2013-09-09 22:27:58 +02:00
Alessandro Ranellucci
93dddb7ee2
Untested implementation of split_mesh()
2013-09-09 21:41:28 +02:00
Alessandro Ranellucci
b6548137de
Move confess_at() to utils.cpp
2013-09-09 21:40:57 +02:00
Alessandro Ranellucci
873762491b
Fix a bad access after recent change about ->p returning objects by reference
2013-09-09 17:10:54 +02:00
Alessandro Ranellucci
dbf739318a
Almost finished porting slice()
2013-09-09 12:18:52 +02:00
Alessandro Ranellucci
46bd407da4
More porting work
2013-09-08 00:44:01 +02:00
Alessandro Ranellucci
5adb187dd2
More porting work
2013-09-07 21:08:53 +02:00
Alessandro Ranellucci
346c17d483
Some initial work for porting slice()
2013-09-07 14:06:09 +02:00
Alessandro Ranellucci
e02ae0d18a
Return Surface objects by reference from SurfaceCollection objects and fix a bug in XS code causing some shell options to be ignored
2013-09-06 18:36:38 +02:00
Anders Sundman
d9646ff6ba
Fixed: Missing include directive
2013-09-04 22:41:25 +02:00
Alessandro Ranellucci
a49dc603cc
Many changes and fixes to remove leaks and return objects by reference
2013-09-03 19:26:58 +02:00
Alessandro Ranellucci
275422fac7
Don't return first_point() and last_point() by reference
2013-09-02 22:33:03 +02:00
Alessandro Ranellucci
c0789506e4
Return objects by reference instead of always cloning
2013-09-02 20:22:20 +02:00
Alessandro Ranellucci
d2e4bba074
Fixed memory leak in ExtrusionPath::Collection and return collection items by reference
2013-08-31 00:37:17 +02:00
Alessandro Ranellucci
1cfdf7e955
Ported Slic3r::Polyline::Collection
2013-08-30 00:06:10 +02:00
Alessandro Ranellucci
bd7b0e2aed
Ported ExtrusionPath::Collection->chained_path
2013-08-29 11:47:59 +02:00
Alessandro Ranellucci
ea1d138c95
Ported ExtrusionLoop->make_counter_clockwise()
2013-08-29 01:40:42 +02:00
Alessandro Ranellucci
5d6fd7f4d9
Optimizations for better usage of XS code
2013-08-29 01:36:42 +02:00
Alessandro Ranellucci
e19c6a1494
Ported Point->distance_to() and Line->length()
2013-08-28 20:41:41 +02:00
Alessandro Ranellucci
fb763b0187
Removed dependency on Math::Clipper
2013-08-27 01:26:44 +02:00
Alessandro Ranellucci
b11b595c97
Ported nearest_point() and nearest_point_index()
2013-08-27 00:52:20 +02:00
Alessandro Ranellucci
9fb14f2119
Ported (and used) ExtrusionPath->first_point
2013-08-26 23:42:00 +02:00
Alessandro Ranellucci
fe42427a54
Ported Polygon->is_valid() and ExPolygon->is_valid()
2013-08-26 23:27:51 +02:00
Alessandro Ranellucci
706851f836
Ported ExPolygon->area()
2013-08-26 22:50:26 +02:00
Alessandro Ranellucci
792fcba7be
Ported Polygon->area
2013-08-26 22:44:40 +02:00
Alessandro Ranellucci
1f734807b9
Ported Polygon->split_at()
2013-08-26 22:39:35 +02:00
Alessandro Ranellucci
f8ac3aa68f
Fix compilation on Windows
2013-08-26 20:56:36 +02:00
Alessandro Ranellucci
9cf831b9c5
Ported union_pt() to XS
2013-08-26 18:37:19 +02:00
Alessandro Ranellucci
443d4e52cb
Fixed everything in the XS port
2013-08-26 17:58:37 +02:00
Alessandro Ranellucci
b6005327d6
Downgrade Clipper to 5.1.5
2013-08-26 15:57:54 +02:00
Alessandro Ranellucci
ee5b999ab0
Initialize no_sort to prevent it from being unexpectedly true
2013-08-25 20:29:45 +02:00
Alessandro Ranellucci
94ca28644e
Ported union() to XS
2013-08-17 12:24:04 +02:00
Alessandro Ranellucci
b38cc2c244
Merge branch 'master' into xsdata
...
Conflicts:
lib/Slic3r.pm
lib/Slic3r/ExPolygon.pm
lib/Slic3r/Fill.pm
lib/Slic3r/Fill/Rectilinear.pm
lib/Slic3r/GCode.pm
lib/Slic3r/GUI/Plater.pm
lib/Slic3r/Geometry/Clipper.pm
lib/Slic3r/Layer/Region.pm
lib/Slic3r/Print.pm
lib/Slic3r/Print/Object.pm
lib/Slic3r/TriangleMesh.pm
t/shells.t
xs/MANIFEST
2013-08-08 02:10:34 +02:00
Alessandro Ranellucci
d881c5ab2f
Ported TriangleMesh->rotate
2013-08-05 19:52:37 +02:00
Alessandro Ranellucci
9402898c58
Ported TriangleMesh->size
2013-08-05 19:39:10 +02:00
Alessandro Ranellucci
9d50616c7d
Ported align_to_origin()
2013-08-05 19:22:33 +02:00
Alessandro Ranellucci
597e9e6c14
Finish porting TriangleMesh->translate
2013-08-05 19:17:13 +02:00
Alessandro Ranellucci
04d5d1bb9b
Incomplete work for porting translate()
2013-08-05 10:48:38 +02:00
Alessandro Ranellucci
515d5707c9
Ported TriangleMesh->scale
2013-08-04 21:34:26 +02:00
Alessandro Ranellucci
a0bd152243
Remove ->ToPerl and add ->vertices and ->facets
2013-08-04 21:23:27 +02:00
Alessandro Ranellucci
1479d6933b
Prevent admesh to reverse all facets twice in some mostly-random situations. Normalizing a null normal should still return a null normal in order to fix it properly later instead of treating it as if it was a true normal and thus reversing the facet (and if that is the first facet, all of the others would be reversed as well). #1362
2013-07-31 00:32:48 +02:00
Alessandro Ranellucci
dd935e2036
Some comments and minor fixes to admesh code by Andy Doucette
2013-07-31 00:01:53 +02:00
Alessandro Ranellucci
995c68b57f
Can't NULL floats...
2013-07-26 17:08:08 +02:00
Alessandro Ranellucci
1b285f3f46
Thread-safe integration of ExtrusionPath::Collection
2013-07-18 22:29:12 +02:00
Alessandro Ranellucci
c030e38908
Ported ExtrusionPath::Collection
2013-07-18 19:09:07 +02:00
Alessandro Ranellucci
0efea9e442
Ported diff() and intersection()
2013-07-17 01:21:30 +02:00
Alessandro Ranellucci
c7b6818ccf
Ported offset() and offset2()
2013-07-17 00:48:29 +02:00
Alessandro Ranellucci
bf8c799685
Ported diff_ex, intersection_ex, union_ex, xor_ex
2013-07-17 00:29:09 +02:00
Alessandro Ranellucci
f7ada2b5db
Ported make_clockwise() and make_counter_clockwise()
2013-07-16 21:09:29 +02:00
Alessandro Ranellucci
fe061b19ad
Ported Polygon->is_counter_clockwise() and rearranged code in .cpp files
2013-07-16 21:04:14 +02:00
Alessandro Ranellucci
bd3fb21cfd
Make offset_ex(), offset2_ex() and diff_ex() available to C++ code
2013-07-16 20:36:27 +02:00
Alessandro Ranellucci
898007fc36
Port offset_ex() and offset2_ex() to XS
2013-07-16 20:09:53 +02:00
Alessandro Ranellucci
9458c7db97
Fix integration of XS containers
2013-07-16 17:13:01 +02:00
Alessandro Ranellucci
339ba9e5c3
Implement split_at_index() and split_at_first_point() in ExtrusionLoop too
2013-07-15 23:56:01 +02:00
Alessandro Ranellucci
0d07a2e4e6
Implemented split_at_index() and split_at_first_point() for Polygon
2013-07-15 23:38:06 +02:00
Alessandro Ranellucci
62e5bd0ee7
Polygon->lines
2013-07-15 23:28:23 +02:00
Alessandro Ranellucci
77c479c127
Add test for polyline lines
2013-07-15 23:23:35 +02:00
Alessandro Ranellucci
439255ca46
Polyline->lines
2013-07-15 23:12:13 +02:00
Alessandro Ranellucci
ab6b3d41a7
XS interface completed, including new Line class
2013-07-15 22:57:22 +02:00
Alessandro Ranellucci
9af2a1c007
Use XS Point everywhere
2013-07-15 20:31:43 +02:00
Alessandro Ranellucci
d0701cdcd4
Implemented Slic3r::ExtrusionLoop
2013-07-15 16:21:09 +02:00
Alessandro Ranellucci
c9749ca3b3
More integration of Slic3r::Point::XS
2013-07-15 16:04:49 +02:00
Alessandro Ranellucci
e485f0b130
Return a reference to the actual item instead of a clone when accessing contents of a SurfaceCollection
2013-07-15 13:50:53 +02:00
Alessandro Ranellucci
f612d4c64e
Ported ExtrusionPath to XS. Failing test for Surface
2013-07-15 12:14:22 +02:00
Alessandro Ranellucci
8c1e1cc3ea
Have Polygon inherit from Polyline
2013-07-14 16:09:54 +02:00
Alessandro Ranellucci
06de21b154
Better polymorphism for ExPolygon::XS->rotate
2013-07-14 16:03:06 +02:00
Alessandro Ranellucci
28a4f1a61e
Move Polygon class to Polygon.hpp
2013-07-14 15:53:53 +02:00
Alessandro Ranellucci
5885be881c
New Slic3r::Surface::Collection class
2013-07-14 14:56:43 +02:00
Alessandro Ranellucci
399bc80899
Ported Slic3r::Surface to XS
2013-07-14 13:05:55 +02:00
Alessandro Ranellucci
b1ad466189
Ported Slic3r::ExPolygon::Collection to XS
2013-07-14 00:38:01 +02:00
Alessandro Ranellucci
31809d473f
Merge branch 'master' into xsdata
...
Conflicts:
lib/Slic3r/GCode.pm
xs/src/Point.hpp
2013-07-13 21:00:19 +02:00
Alessandro Ranellucci
00683195c8
Add two more repair actions and add volume to stats
2013-07-13 19:00:38 +02:00
Alessandro Ranellucci
b709acf10f
New TriangleMesh::XS->stats method
2013-07-13 18:51:49 +02:00
Alessandro Ranellucci
fb7cea3cb9
Make plater work with XS data in single-thread environment
2013-07-11 19:13:43 +02:00
Alessandro Ranellucci
87a5de193d
ExPolygon::XS->rotate()
2013-07-11 18:55:51 +02:00
Alessandro Ranellucci
3037b42b47
New ->translate() method for ExPolygon::XS
2013-07-11 14:13:30 +02:00
Alessandro Ranellucci
e0052b01d3
New ->scale() method for ExPolygon::XS
2013-07-11 14:08:11 +02:00
Alessandro Ranellucci
98726fdef4
Move everything into the Slic3r namespace. #1301
2013-07-07 22:36:14 +02:00
Alessandro Ranellucci
21816acbd7
Merge branch 'master' into xsdata
...
Conflicts:
xs/xsp/ExPolygon.xsp
2013-07-07 16:53:58 +02:00
Alessandro Ranellucci
f4db7625bc
Fix destructors
2013-07-07 16:51:02 +02:00
Alessandro Ranellucci
989e48ede0
Bless arrayref representation into Slic3r classes
2013-07-07 13:34:55 +02:00
Alessandro Ranellucci
d06ac3e31e
Rename _toPerl() to arrayref()
2013-07-07 12:41:54 +02:00
Alessandro Ranellucci
b42333feed
Don't exit when admesh fails to repair a mesh, but continue
2013-07-06 22:17:19 +02:00
Alessandro Ranellucci
4093280566
Remove Point.cpp
2013-07-06 16:39:22 +02:00
Alessandro Ranellucci
5a11d4df89
New Slic3r::ExPolygon::XS class
2013-07-06 16:33:49 +02:00
Alessandro Ranellucci
c50ecfb7f8
New Slic3r::Point::XS class
2013-07-06 15:26:32 +02:00
Alessandro Ranellucci
6373322b84
New ReadFromPerl() method
2013-07-03 11:38:01 +02:00
Alessandro Ranellucci
6e19ac9eda
Removed debugging statements during repair
2013-06-24 20:36:51 +02:00
Alessandro Ranellucci
d30b4f0310
New Slic3r::TriangleMesh::XS->ToPerl() method
2013-06-24 20:11:56 +02:00
Alessandro Ranellucci
f29faf0548
New Slic3r::TriangleMesh::XS class
2013-06-24 19:35:49 +02:00
Alessandro Ranellucci
2a2633da0a
New automatic built-in STL repair
2013-06-23 21:11:46 +02:00
Alessandro Ranellucci
77440b774d
Include admesh code for STL repair
2013-06-23 18:18:38 +02:00
Alessandro Ranellucci
f3a9d41c70
Cache a Z table for layer range search
2013-06-23 17:07:12 +02:00
Alessandro Ranellucci
9d27b5e4a7
New XS framework for C and C++ code
2013-06-22 17:16:45 +02:00