583 Commits

Author SHA1 Message Date
Vojtech Bubnik
c01c863d8b Merge branch 'master' into master_262 2023-08-31 17:16:20 +02:00
Vojtech Bubnik
014953c864 Merge branch 'et_spe_1784_binary_gcode' into master_262 2023-08-30 12:52:02 +02:00
Vojtech Bubnik
015a24133a Fixed some compilation warnings. 2023-08-30 12:51:35 +02:00
tamasmeszaros
0482f79dd8 3rd try for fixing tests on RPI 2023-08-30 11:45:02 +02:00
tamasmeszaros
8e875242ae Another try for fixing tests on RPI 2023-08-30 09:35:57 +02:00
Vojtech Bubnik
3cfe2f4a3a Merge branch 'vb_arc_welder' into master_262 2023-08-28 15:50:00 +02:00
tamasmeszaros
c159451efe Merge branch 'tm_arrange_overflows' 2023-08-21 15:20:27 +02:00
tamasmeszaros
b2d43c8719 Fix arrange in fff tests 2023-08-18 16:50:35 +02:00
tamasmeszaros
3277b5ee06 Fix compilation on in VS 2019 in certain environments
MSVC crashes when compiling
Thanks to @enricoturri1966 for reporting and fixing
2023-08-17 19:31:19 +02:00
Filip Sykala - NTB T15p
0c9cb02cf1 Merge branch 'master' into fs_dir_per_glyph_SPE-1597
# Conflicts:
#	src/libslic3r/Polygon.hpp
2023-08-17 15:46:25 +02:00
tamasmeszaros
aea278ab55 Fix failing tests
still the arrange is broken
2023-08-16 18:52:05 +02:00
tamasmeszaros
be9bbb7552 Follow up fix for ctest slow test filter expression 2023-08-16 16:53:42 +02:00
tamasmeszaros
90a7bc929c Exclude tests marked as Slow from ctests 2023-08-16 16:47:47 +02:00
tamasmeszaros
c613669718 Follow-up, get rid of even more NOMINMAX warnings 2023-08-16 14:15:38 +02:00
tamasmeszaros
9bb5bdb80f Fixing crashes with objects residing at large world coordinate values
fixes issue SPE-1844
2023-08-16 09:59:10 +02:00
tamasmeszaros
0c0a1af1e9 Temporarily disable rotations for wipe tower when arranging
It is problematic due to varying interpretation of rotation in arrange and slicer's wipe tower handling 
fixes SPE-1787
2023-08-16 09:59:10 +02:00
tamasmeszaros
2224ce0ca7 Rename WritableItemTraits to MutableItemTraits
makes more sense, avoids confusion with WritableDataStore
2023-08-16 09:59:10 +02:00
tamasmeszaros
ace6cb1f78 Complete test for vbed involvement 2023-08-16 09:59:10 +02:00
tamasmeszaros
08e10ec98f Add test involving simple arrange on vbeds 2023-08-16 09:59:10 +02:00
tamasmeszaros
e4a1df0add Fix failing tests 2023-08-16 09:59:10 +02:00
tamasmeszaros
2730d2e14f Remove unneeded check from fill bed test 2023-08-16 09:59:10 +02:00
tamasmeszaros
0b31ef6e1e Beginning of arrange gen2 2023-08-16 09:59:10 +02:00
Vojtech Bubnik
3d439c617c ArcWelder: Fixed warnings in unit tests. 2023-07-17 19:12:10 +02:00
Vojtech Bubnik
594e36c70a ArcWelder bugfixes 2023-07-17 14:18:56 +02:00
Vojtech Bubnik
9fe36fc300 WIP Arc interpolation bugfixes 2023-07-15 12:31:55 +02:00
Vojtech Bubnik
3df8da662e WIP Arc discretization, arc interpolation and unit tests. 2023-07-14 11:20:55 +02:00
Vojtech Bubnik
19062b4d5f ArcWelder path interpolation based on the work by Brad Hochgesang @FormerLurker.
WIP GCode/SmoothPath.cpp,hpp cache for interpolating extrusion path with arches.
Removed Perl test t/geometry.t, replaced with C++ tests.
Refactored ExtrusionEntity and derived classes to hold extrusion attributes in new ExtrusionFlow/ExtrusionAttributes classes.
Reworked path ordering in G-code export to never copy polylines, but to work with a new "flipped" attribute.
Reworked G-code export to interpolate extrusion paths with smooth paths and to extrude those smooth paths.
New parameters: arc_fitting, arc_fitting_tolerance
Renamed GCode class to GCodeGenerator
Moved GCodeWriter.cpp/hpp to GCode/
Moved Wipe from from GCode.cpp,hpp to GCode/Wipe.cpp,hpp
Moved WipeTowerIntegration from GCode.cpp,hpp to GCode/WipeTowerIntegration.cpp,hpp
New variant of douglas_peucker() to simplify range of iterators in place.
Refactored wipe in general and wipe on perimeters / hiding seams.

WIP: Convert estimate_speed_from_extrusion_quality() and its application to smooth paths.
WIP: Cooling buffer to process G2G3, disable arc fitting for filters that cannot process it.
2023-07-13 11:54:42 +02:00
Filip Sykala - NTB T15p
bca6b7811d Merge branch 'master' into fs_dir_per_glyph
# Conflicts:
#	src/slic3r/GUI/GLCanvas3D.cpp
2023-05-17 12:58:53 +02:00
PavelMikus
827230174f Fix tests for new ensuring under bridges 2023-05-12 10:32:14 +02:00
tamasmeszaros
d4ad9deb94 Archive format registration refactored
Fix tests
2023-05-10 14:08:11 +02:00
Filip Sykala - NTB T15p
5a517e71de Merge branch 'master' into fs_dir_per_glyph 2023-05-09 13:01:08 +02:00
Filip Sykala - NTB T15p
b7549ae414 Add TextLines to add per glyph transformation 2023-04-28 15:42:55 +02:00
Vojtech Bubnik
b67ad6434d Follow-up to 9cde96993e9f996b44f417570ba05455472efa08
use tbb::scallable_allocator for Polygons and ExPolygon::holes
to better scale on multiple threads
2023-04-20 14:30:52 +02:00
Vojtech Bubnik
9cde96993e Reworked the ClipperLib / Polygon types to use
the tbb::scallable_allocator to better scale on multiple threads.
2023-04-20 11:31:44 +02:00
PavelMikus
68d0f2da2b Improve bridge over infill filtering, fix tests 2023-04-06 15:54:16 +02:00
Vojtech Bubnik
c2baa9ad4f PlaceholderParser: Throw if valid or invalid UTF-8 sequence
is encountered inside a code block.
2023-04-06 13:30:29 +02:00
Vojtech Bubnik
030cfaf4b3 Fix of SPE-1630 crash when referencing an invalid variable name
using the old placeholder parser syntax.
Also implemented unescaping of \r\n\"\\ in string syntax.
2023-04-06 10:40:20 +02:00
Lukáš Hejl
9ed97abdb0 Fix of #10034 (SPE-1608): Fixed crash inside Arachne caused by degenerated Voronoi diagram.
Boost Voronoi diagram produced degenerated Voronoi diagram. This Voronoi diagram was detected by our method for detection of those types of degeneration. But rotation by PI / 6 wasn't able to fix it.
So now, when the Voronoi diagram is still degenerated after the first rotation, then we try another rotation by different angles to fix the degenerated Voronoi diagram.
2023-03-29 14:38:22 +02:00
Vojtech Bubnik
f591c2503a PlaceholderParser: changed the syntax of if inside a {} block to
{if condition then block elsif}
The "then" keyword is now mandatory.
On the other hand, "then" keyword must NOT be used using old syntax:
{if condition}...{endif}
2023-03-27 15:36:14 +02:00
PavelMikus
0eb2a2cf04 Disable "infill only where needed" option
Note: only commented out for now.
2023-03-27 13:27:57 +02:00
Vojtech Bubnik
a53070f5e6 PlaceholderParser: Simpler if / elsif / else / endif syntax.
{if cond1}{expr1}{elsif cond2}{expr2}{else}{expr3}{endif}
could be written as
{if cond1;expr1;elsif cond2;expr2;else;expr3;endif}
the first semicolon after else is not manadtory, thus the following is valid
{if cond1;expr1;elsif cond2;expr2;else expr3;endif}
each expression could be also empty or contain multiple expressions:
{if cond1;elsif cond2;else endif}
2023-03-24 16:35:53 +01:00
Vojtech Bubnik
5b115b7972 PlaceholderParser: Implemented skipping of inactive if / else / endif
and ternary operator branches, thus missing variables or addressing
outside of the variable range in an inactive branch will not trigger
an error.
2023-03-24 13:55:58 +01:00
Vojtech Bubnik
9cb50e6586 PlaceholderParser: added size() and empty() functions over vector variables. 2023-03-23 17:51:37 +01:00
Vojtech Bubnik
929a0eba2c PlaceholderParser: replaced the new "array" operator with "repeat",
simplified the parser a bit more.
2023-03-23 17:08:56 +01:00
Vojtech Bubnik
e46891fa8c PlaceholderParser: Fixed compilation issues, added integration test
with FDM slicing process.
2023-03-23 09:23:20 +01:00
Vojtech Bubnik
c28585ab7f WIP PlaceholderParser: Support for local and global variables.
Implements #4048 #7196

Syntax:

(global|local) variable_name =
	(scalar_expression|vector_variable|array_expr|initializer_list)

array_expr := array(repeat, value)
initializer_list := (value, value, value, ...)

The type of the newly created variable is defined by the type
of the right hand side intitializer.

Newly declared variable must not override an existing variable.
Variable may be assigned with global|local expression, but its type
must not be changed.

Newly the assignment operator also accepts the same right hand expressions
as the global|local variable definition.
2023-03-22 17:46:57 +01:00
Vojtech Bubnik
963ca415d4 PlaceholderParser: new interpolate_table() "function"
interpolate_table(x, (x0, y0), (x1, y1), (x2, y2), ...)
interpolates a table at position x.
2023-03-22 17:46:57 +01:00
Vojtech Bubnik
7afabcde95 PlaceholderParser: Implemented one_of() matching function:
1st parameter is the text to match against,
the rest of the parameters are pattern to be matched:
either strings, then the match is exact,
or regex enclosed in //
or regex string starting with ~

For example
one_of("a", "a", "b")
	finds a in "a", "b"
one_of("abc", /.*a.*/)
	matches "abc" using regular expression /.*a.*/
2023-03-20 15:55:18 +01:00
Vojtech Bubnik
b9d8fe7118 WIP: PlaceholderParser support for writable output variables. 2023-03-20 07:48:38 +01:00
tamasmeszaros
1154f51aab Fix failing libnest2d tests
Fix the test itself
2023-03-13 13:52:21 +01:00