349 Commits

Author SHA1 Message Date
Filip Sykala - NTB T15p
5da14c491e Merge branch 'master' into fs_svg_SPE-1517 2023-09-26 13:34:28 +02:00
Martin Šach
6164051d60 Use proper formula for second moment of area.
SupportSpotsGenerator originally used a heuristic formula. Current
formula is properly derived using known properties of
second moment of area. Several tests of this formula are added.
2023-09-22 13:30:05 +02:00
Filip Sykala - NTB T15p
1b62121c97 Fix of Point coord overflow(double scaled int) in test
Should fix MAC build
2023-09-15 09:46:19 +02:00
Filip Sykala - NTB T15p
255081e342 Merge branch 'master' into fs_svg_SPE-1517 2023-09-13 21:53:59 +02:00
Filip Sykala - NTB T15p
3421a9298a Remove depricated variable
+ read old staff in separate 3mf function
2023-09-13 11:56:37 +02:00
Filip Sykala - NTB T15p
e40b798ef6 Fix scale in test 2023-09-05 14:32:09 +02:00
Filip Sykala - NTB T15p
96618d684f Emboss Stroke(contour of paths from svg)
Do not support yet:
 - Markers(start sybol, end symbol, middle symbols)
 - Dashes
2023-08-31 16:41:21 +02:00
Vojtech Bubnik
3cfe2f4a3a Merge branch 'vb_arc_welder' into master_262 2023-08-28 15:50:00 +02:00
Filip Sykala - NTB T15p
57141aa61a Merge branch 'master' into fs_svg
# Conflicts:
#	src/slic3r/GUI/Gizmos/GLGizmoEmboss.hpp
2023-08-22 16:20:42 +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
c613669718 Follow-up, get rid of even more NOMINMAX warnings 2023-08-16 14:15:38 +02:00
tamasmeszaros
0b31ef6e1e Beginning of arrange gen2 2023-08-16 09:59:10 +02:00
Filip Sykala - NTB T15p
d530831e35 Add icons(refresh and burn) to svg emboss
Add NSVG image to shape
2023-07-19 12:02:28 +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
b71cb25163 Run able fix after merge(still issue with scale for per glyph transformation) 2023-06-07 11:19:28 +02:00
Filip Sykala - NTB T15p
e831255018 Merge branch 'fs_dir_per_glyph_SPE-1597' into fs_svg
# Conflicts:
#	src/libslic3r/Emboss.cpp
#	src/libslic3r/Format/3mf.cpp
#	src/libslic3r/TextConfiguration.hpp
#	src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp
#	src/slic3r/GUI/Gizmos/GLGizmoEmboss.hpp
#	src/slic3r/GUI/Jobs/EmbossJob.cpp
#	src/slic3r/GUI/Jobs/EmbossJob.hpp
2023-06-07 11:18:26 +02:00
Filip Sykala - NTB T15p
5de06a9ef8 Merge branch 'master' into fs_svg 2023-06-02 10:53:47 +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
Filip Sykala - NTB T15p
5a60f5f6a8 Fix for test 2023-04-19 08:43:01 +02:00
Filip Sykala - NTB T15p
92115754c4 Merge branch 'master' into fs_svg 2023-04-06 16:09:19 +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
Filip Sykala - NTB T15p
382a0fe1e3 Merge branch 'master' into fs_svg
# Conflicts:
#	src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp
#	src/slic3r/GUI/Gizmos/GLGizmoEmboss.hpp
#	src/slic3r/GUI/Jobs/EmbossJob.cpp
#	src/slic3r/GUI/Jobs/EmbossJob.hpp
#	src/slic3r/GUI/SurfaceDrag.cpp
2023-04-06 08:25:20 +02:00
Filip Sykala - NTB T15p
da2d0282b1 Store text fix matrix, param use_surface and emboss 'depth'(size in emboss direction) by emboss Shape to 3mf
Do not store distance and angle to 3mf

Missing implementation for store ExPolygons to .3mf
2023-04-04 15:45:31 +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
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
Filip Sykala - NTB T15p
916baa9ef8 Merge branch 'master' into fs_svg 2023-03-22 18:14:16 +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
Filip Sykala - NTB T15p
6540681e92 Merge branch 'master' into fs_svg
# Conflicts:
#	src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp
#	src/slic3r/GUI/SurfaceDrag.cpp
2023-03-22 09:39:54 +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
Filip Sykala - NTB T15p
574df48f85 Reorganize data structures 2023-03-16 18:21:48 +01:00
Filip Sykala - NTB T15p
c2f348ee19 ReWork DataBase for embossing to prepare for SVG.
Remove dependency on Emboss inside of Object list
Hide variable SHAPE_SCALE to one .cpp file only
2023-03-10 15:22:29 +01:00
Filip Sykala - NTB T15p
0716666706 Merge branch 'fs_emboss' into fs_svg 2023-03-08 07:38:10 +01:00
Filip Sykala - NTB T15p
ae0f4a7c8b Add emboss SVG configuration to model
add Cereal serialization of Polygons and ExPolygons
2023-03-07 09:20:52 +01:00
Vojtech Bubnik
65ab83d6a9 Fix of Build failed with CGAL 5.5: UserVisitor’ {aka ‘struct priv::Visitor’}
has no member named ‘start_filtering_intersections’
Fixes #9582
Co-authored-by: @hexane360
2023-03-03 13:07:41 +01:00
PavelMikus
5b0c270b30 Merge remote-tracking branch 'origin/master' into pm_anchor_bridges_on_sparse_infill 2023-03-01 16:45:26 +01:00
Vojtech Bubnik
55533397f9 PlaceholderPareser: new is_null() function to test whether a variable
has a "nil" value or not.
Implements SPE-1539
2023-02-28 18:30:04 +01:00