Commit Graph

3726 Commits

Author SHA1 Message Date
3216448bbc PlaceholderParser: implemented round(), digits() and zdigits() macros.
round() rounds to an integer.
This is a popular request, for example #3472

digits(value, num_digits, num_decimals) rounds to num_digits and
	num_decimals, left filled with spaces.
digits(value, num_digits) the same as digits(value, num_digits, 0)
    Neither decimal separator nor any decimals after decimal separator
    are emitted.
zdigits(...) is the same as digits(...) only left filled with zeros.
If the result does not fit num_digits, the result is never trimmed.
2021-10-29 13:36:26 +02:00
0f145920d9 Fixed conditional G-code int(...), which did not accept an expression,
just a variable, constant or an expression enclosed in double braces (())
Mentioned for example in #3472
2021-10-29 10:45:33 +02:00
b6c4e94d81 Fixing projection of bottom surfaces in MM segmentation and for
support blockers / enforcers.

All slicing functions shall produce consistent results with the same mesh, same transformation matrix and slicing parameters.
Namely, slice_mesh_slabs() shall produce consistent results with slice_mesh() and slice_mesh_ex() in the sense, that projections made by
slice_mesh_slabs() shall fall onto slicing planes produced by slice_mesh().

Before this commit, slice_mesh_slabs() projected bottom facing faces upwards to its coplanar slicing plane,
which is different from how slice_mesh() or slice_mesh_ex() work, leading to ignored support enforcer / blocker strokes.
2021-10-28 15:07:29 +02:00
93e91bcacb Fixing compilation on GCC 2021-10-27 17:36:47 +02:00
bc1737c0da Yet another bugfix for gcc where MSVC was happy with non-conformant code 2021-10-27 16:16:49 +02:00
ad2dfe345d Fixed typo in an unused template code, where MSVC does not complain,
but GCC does.
2021-10-27 16:07:23 +02:00
e87f90af9f Fixed typo in CMake 2021-10-27 16:04:58 +02:00
cf7b6fb19a Extracted MedialAxis code from Geometry.cpp/hpp, moved to its own
files to Geometry/
Moved other Voronoi files to Geometry/
2021-10-27 16:03:04 +02:00
497905406b New code for minimum enclosing circle by randomized Welzl algorithm.
Split the circle code from Geometry.cpp/hpp to Geometry/Circle.cpp,hpp
2021-10-27 15:12:29 +02:00
d57cfa981e Construct supports using the trimmed mesh. To solve issues with supports within the cavity hanging in the air. This still doesn't solve the issue with undrilled holes.
To solve issues with supports within the cavity hanging in the air. This still doesn't solve the issue with undrilled holes.
2021-10-27 10:05:09 +02:00
145f0489b8 Fixed crash when a part of a multipart object is completely below the printbed 2021-10-27 08:56:10 +02:00
cd13af59f4 Follow-up to 79eb59b9f2
Fix of #7168: Crash when layer count exceeds 4095
This time the crash was fixed for top / bottom propagation of
multi-material segmentation.
2021-10-26 16:21:07 +02:00
28de7f5504 Support generator: Merging of bottom contacts with top contacts and
interface layers if possible. This should always be possible with
soluble supports and it should have been done long time ago.
For non-soluble supports, it may or may not be possible to merge
these layers: They will only be merged if they are extruded without
bridging and with the same layer height.
Fixes Support enforcer interfaces not generated as needed. #6784
or at least some of the issues reported.

Experimental: Added experimental filtering of propagated support columns
to two extrusions, overlapping by maximum 20%.
This filtering step will remove spurious columns that do not support
anything, but the filtering step may remove supports supporting tiny
islands. Those supports would likely not be printable anyways without
the user intervention (extending the supported area by painting).
2021-10-26 12:09:46 +02:00
00c444f8c8 Tiny optimization of slice_mesh_slabs() with mirrored objects. 2021-10-26 10:03:41 +02:00
79eb59b9f2 Fix of #7168: Crash when layer count exceeds 4095 2021-10-26 09:56:49 +02:00
3d87904e66 Fixed the bottom layer of multi-material painted objects sunken below the print bed (#7107). 2021-10-25 14:59:05 +02:00
014bef382a #6999 - Fixed variable layer height editing not working when raft layers > 0 2021-10-25 14:47:13 +02:00
19387186a5 #7110 - Fixed calculation of estimated times for layers 2021-10-25 12:31:19 +02:00
10f24119d0 Fixed the propagation of painted top and bottom layers for mirrored objects in multi-material segmentation. 2021-10-25 08:43:30 +02:00
0bc2448e22 Documented the new print bed collision detection algorithm requirements:
Only convex print bed is supported.
Optimization of collision detection by precomputing the print bed shape type.
2021-10-23 15:29:18 +02:00
36baae05f1 Commented out unused and expensive printbed_collision_state() 2021-10-23 15:29:18 +02:00
be236eda85 Renamed Geometry::intersect() to Geometry::convex_polygons_intersect()
to convey its true meaning.
2021-10-23 15:29:18 +02:00
22f3682c0f Fix of #7155 (broken loading of configs from <=1.41.3) 2021-10-22 17:04:08 +02:00
3021a6f57f Fixing previous commit for QHull configured for doubles, not floats. 2021-10-22 15:20:40 +02:00
b15db6fdb7 Fixed previous commit, which broke debug compilation. 2021-10-22 15:11:51 +02:00
e07a2434d3 Merge branch 'lm_seam_fixes2' 2021-10-22 14:52:01 +02:00
d34c9cec9a Follow-up of decdaa82d3 - Use normalized vectors 2021-10-22 14:29:56 +02:00
d43ae66eca reduced copy / paste redudancy by extracting a new function
to produce convex hull: its_convex_hull()
2021-10-22 14:02:53 +02:00
decdaa82d3 Modified implementation of Line::parallel_to(const Line& line) and Line::perpendicular_to(const Line& line) 2021-10-22 13:51:33 +02:00
00dfb8f69c Make sure that we have the lower_layer_edge_grid when placing seams 2021-10-22 13:16:08 +02:00
19eb984d72 SeamPlacer: one more heuristic to get rid of long travels 2021-10-22 13:16:08 +02:00
59502e7861 Seam placement improvements 2021-10-22 13:16:08 +02:00
0791a2b3ed Fix of #7104 (dimples in perimeters after multi-material segmentation) 2021-10-22 11:58:46 +02:00
767f401ada Brim generator: Using pftNonZero instead of pftEvenOdd for intersection / difference. 2021-10-21 13:35:29 +02:00
dc588e2db5 Pass previously set arc tolerance to concave hull 2021-10-21 12:22:15 +02:00
3f1fc8329b Follow-up to 482841b, see also #6743:
The validation is now counterproductive, both the backend and the UI can
handle the situation well enough.
2021-10-21 11:38:10 +02:00
69721123db [fuzzy skin] Use "walls" instead of "perimeters" in option
"Perimeters" has a specific meaning within Prusa Slicer, but fuzzy skin
uses "perimeters" to mean "walls" which can be confusing
2021-10-21 10:30:58 +02:00
d8a0d0523f Allowed painting in the FDM supports, seam, and multi-material gizmo to only triangles not clipped by a clipping plane. 2021-10-21 08:49:24 +02:00
482841b39e Disable acceleration control if default_acceleration is zero 2021-10-20 21:33:34 +02:00
6887fa829e Another warning fix for gcc 11 2021-10-20 15:48:39 +02:00
39a6c13c81 Use proper morphological closing for pad creation. 2021-10-20 14:34:22 +02:00
2c0815f537 Fixed conflicts after merge with master and ported changes into gouraud shaders to gouraud_mod shaders 2021-10-19 11:27:11 +02:00
5e735a59d0 Fixed planning of support interface layers with rafts and
larger Z gap for supports than for the raft.
2021-10-19 09:19:53 +02:00
c12eff19d8 Fixed a possible deadlock:
The thread counter should be modified under a mutex, atomic is not enough here
2021-10-18 16:24:15 +02:00
c313e6793a Follow-up to 1ca24f0bd0
Fixed visualization of G-code in G-code viewer after 07e7e11590
The line end positions were not extracted correctly from G-code
imported into a stand-alone G-code viewer.
2021-10-18 15:46:23 +02:00
32ebfa66e9 Fix of M106 on every new layer #7094
after parallelization of CoolingBuffer:
Remember the last fan speed emitted at the previous layer.
2021-10-18 14:56:02 +02:00
556e0c53c7 Some more refactoring of ClipperLib / closing() / opening() 2021-10-18 14:51:30 +02:00
f494ad565b Fix some builds that fail with cgal 5.2.3 2021-10-18 14:38:55 +02:00
4d47e9a184 Allow travels processed by the avoid crossing perimeters move further away from the outer perimeter. 2021-10-18 12:51:20 +02:00
6f6f6de506 Added an option to limit painting to triangles only highlighted by "Highlight by angle" in the support painting gizmo. 2021-10-18 10:54:31 +02:00