Commit Graph

4764 Commits

Author SHA1 Message Date
PavelMikus
62c3ca5e99 gui integration, overhang angle hack 2022-08-22 11:01:58 +02:00
PavelMikus
14f109e703 refactored local issues to use overhang distance 2022-08-22 11:01:58 +02:00
PavelMikus
ea76977602 Quick fix for invalidation of support spots search 2022-08-22 11:01:58 +02:00
PavelMikus
1d4f41a2fd improved option logic, custom setting for object soe that it uses the painted supports 2022-08-22 11:01:58 +02:00
PavelMikus
2401556193 most extreme fiber is now taken from the current island.. this is not correct, but
from all aproximations it gives best results
2022-08-22 11:01:58 +02:00
PavelMikus
ff73cd253e fix extreme fibre distance calculation 2022-08-22 11:01:58 +02:00
PavelMikus
a6cf309020 updated weakest connection strength estimation,
fixed various issues
2022-08-22 11:01:58 +02:00
PavelMikus
dbe864ea8a refactor to use covariance to best estimate XY variance of the connection and thus second moment of area 2022-08-22 11:01:58 +02:00
PavelMikus
9cfde724f1 fix numerical issues in stability calculations 2022-08-22 11:01:58 +02:00
PavelMikus
90e77f9135 integration into FDM supports painter gizmo 2022-08-22 11:01:58 +02:00
PavelMikus
cdf68039f7 fixed bug with zero area section modulus returning nans 2022-08-22 11:01:58 +02:00
PavelMikus
2808e41238 reworked bed adhesion model to use elastic section modulus
fixed units
updated bed adhesion value
2022-08-22 11:01:58 +02:00
PavelMikus
3f7f5ec0ed Lowered default extrusion conflict force - it probably needs more adjusting,
after the bed adhesion is reworked with elastic section modulus
2022-08-22 11:01:58 +02:00
PavelMikus
50e7cc9d4c fix bug with removed object parts which were still referenced by other islands 2022-08-22 11:01:58 +02:00
PavelMikus
9ff0d49fae Implemented calculation of elastic section modulus 2022-08-22 11:01:58 +02:00
PavelMikus
ed1c4d99a7 Weakest connection break check also implemented.
Tensile force however might be too low approximation.
2022-08-22 11:01:58 +02:00
PavelMikus
3b029cef05 another bulk of fixes
GLOBAL STABILITY check works
2022-08-22 11:01:58 +02:00
PavelMikus
07049b849e fixed various bugs 2022-08-22 11:01:58 +02:00
PavelMikus
8723fb22bb add pivot tree into ObjectPart struct 2022-08-22 11:01:58 +02:00
PavelMikus
3d1f2f0cb6 implemented graph traversal, keeping the segments and the location of the weakest point for each island 2022-08-22 11:01:58 +02:00
PavelMikus
9afb350cdd remove noisy debug info 2022-08-22 11:01:58 +02:00
PavelMikus
1e4b56cc85 fix crashing when extrusion is not assigned island
Add voxel filter grid for supports padding
2022-08-22 11:01:58 +02:00
Pavel Mikus
f311ccbc4c basic implementation should be complete, bugs not fixed, last iteration copied 2022-08-22 11:01:58 +02:00
PavelMikus
3e47b19b86 added computation of stability accors the object graph, but not finished yet 2022-08-22 11:01:58 +02:00
PavelMikus
7743bf2502 store pointer to original extrusion in each line 2022-08-22 11:01:58 +02:00
PavelMikus
619309a1a4 bug fix - external extrusions were cleaned out before use 2022-08-22 11:01:58 +02:00
PavelMikus
0a8f70c1ba inital phase of refactoring, segmentation should now build graph of connected sections 2022-08-22 11:01:58 +02:00
PavelMikus
263e16ca92 draft mode of recon_thin_islands, but not working properly 2022-08-22 11:01:58 +02:00
PavelMikus
91ec455fa3 remove unnecesary randomization 2022-08-22 11:01:58 +02:00
PavelMikus
0187ed855e do not consider concave angles for curling, they actually improve the issue 2022-08-22 11:01:58 +02:00
PavelMikus
8e5cdf29ba improve curling model parameters,
other small improvements
2022-08-22 11:01:58 +02:00
PavelMikus
cf94c44fd5 add voxel grid cache to suppress accumulation of stability support points 2022-08-22 11:01:58 +02:00
PavelMikus
6a971b462d estimation of malformed and curled segments, increase extruder conflict power accordingly 2022-08-22 11:01:58 +02:00
PavelMikus
8e2e4154bd description of the functions 2022-08-22 11:01:58 +02:00
PavelMikus
864c85d47e replace convex hull computation with KDTree, improve sticking centroid estimation 2022-08-22 11:01:58 +02:00
PavelMikus
9294d5e604 improved triangle tracking in triangle selector - if not hit registered, nearest triangle is taken instead 2022-08-22 11:01:58 +02:00
PavelMikus
d5a584a2c2 fixed bug with base layers merging to single accumulator 2022-08-22 11:01:58 +02:00
PavelMikus
eaffb14921 Improved stability supports - now accounts for base convex hull, decreases area of points if too close. 2022-08-22 11:01:58 +02:00
PavelMikus
8dc3956b64 bug fixes, raycasting to find good support spot 2022-08-22 11:01:58 +02:00
PavelMikus
bef26fee2b Bugfixing and refactoring 2022-08-22 11:01:58 +02:00
PavelMikus
08071d85ee integration of the simple physical model into the refactored version 2022-08-22 11:01:58 +02:00
PavelMikus
30f072457f Refactored version without voxel grid, init commit 2022-08-22 11:01:58 +02:00
PavelMikus
51d738c564 refactored algorithm to use AABB tree instead of edge grid 2022-08-22 11:01:58 +02:00
PavelMikus
ad4502d96e implemented AABBTree version for lines 2022-08-22 11:01:58 +02:00
PavelMikus
e39d14bf98 finished base for curling stability tests
added comments
2022-08-22 11:01:58 +02:00
PavelMikus
4144b73ccd curling estimation improvements 2022-08-22 11:01:58 +02:00
PavelMikus
609f42fb18 refactoring, pressure points extracted but not accounted for 2022-08-22 11:01:58 +02:00
PavelMikus
68243edc65 vastly improved computational time by optimizing the convex hull computations 2022-08-22 11:01:58 +02:00
PavelMikus
49e6d15a67 vastly improved curling detection, 3d histogram of curled height now corresponds
with real prints
2022-08-22 11:01:58 +02:00
Godrak
9b290bd211 debug info, problem with random freezing, also support point downward projection still has issues 2022-08-22 11:01:58 +02:00
Godrak
91a4047586 Fixed various problems with support placement. 2022-08-22 11:01:58 +02:00
PavelMikus
6f6a0e7efd Another bulk of bug fixes. Some problems however persist, support points are still placed on weird spots 2022-08-22 11:01:58 +02:00
PavelMikus
6caec6926c TON of bugfixes, balancing still does not work 2022-08-22 11:01:58 +02:00
Godrak
824e3f111e extended model with balance checking - centroids of segments, bed adhesion, supports adhesion, model stability 2022-08-22 11:01:58 +02:00
Godrak
5cc9bd380b Compilation fixes after rebase 2022-08-22 11:01:58 +02:00
Godrak
148b24bd93 accumulators given base height;
object base split to separate islands by connectivity
2022-08-22 11:01:58 +02:00
PavelMikus
d9bd1080da UNFINISHED!
refactoring of algorithm to bottom up propagation of support islands
Added CentroidAccumulators for balance issues checking
2022-08-22 11:01:58 +02:00
PavelMikus
f0bdf2760c improved voxelization - fixed bugs with sinking objects.
testing version of flooding the weight matrix
2022-08-22 11:01:58 +02:00
PavelMikus
cfe9b27a6d refactoring,
initial work on weight distribution matrix
2022-08-22 11:01:58 +02:00
PavelMikus
a46e1dc79c initial works on EdgeGrid alternative 2022-08-22 11:01:58 +02:00
PavelMikus
c14b4a5d2e quick search simplified, removed expensive layer estimators
added explanations and comments
2022-08-22 11:01:58 +02:00
PavelMikus
1955cd066e include external_perimeters_first option, change paramters accordingly 2022-08-22 11:01:58 +02:00
PavelMikus
d41b20547d greatly upgraded the algorithm for support placement -
added dynamic splitting of long paths,
included flow width of current and previous layer,
refactored and renamed parameters
2022-08-22 11:01:58 +02:00
PavelMikus
e516ba0dd0 Moved TriangleSelectorWrapper methods to cpp file, added comment describing problems with FacetsAnnotations/TriangleSelector
structure
2022-08-22 11:01:58 +02:00
PavelMikus
706cd63e61 Beta version of the algorithm
Implemented long unsupported segments detection, which considers also curvature
Implemented detection of curved segments at the edge of the previous layer - danger of warping/curling
2022-08-22 11:01:57 +02:00
PavelMikus
adf39805bc work in progress:
hooked in new step: posSupportableIssuesSearch
created layout of the processing
2022-08-22 11:01:57 +02:00
Lukáš Hejl
8c0db761c1 Fix #8716, #8717, and #8718: The pressure equalizer was producing a malformed GCode that caused underextrusion. 2022-08-19 15:07:11 +02:00
Vojtech Bubnik
781a9535db Fixed performance issue at backgorund processing update
with a large number of modifier meshes:
Bounding box of a chain of modifier meshes overlapping with
an object bounding box was not correctly calculated (bounding boxes
were unioned instead of intersected).
2022-08-19 15:03:39 +02:00
Lukáš Hejl
f95a6e3d33 Follow-up to 263b23fb46: Fixed an assert. 2022-08-19 09:09:59 +02:00
Lukáš Hejl
263b23fb46 Follow-up to 6f5813a849: Recalculate infill surfaces when infill_only_where_needed is enabled while switching from the Lightning infill to another infill or vice versa. 2022-08-18 21:17:39 +02:00
PavelMikus
be9cae74a0 Random seam fix - pseudorandom generator instead of rand() 2022-08-18 17:19:58 +02:00
PavelMikus
d746ece41a fix performance problem in seam placer - do not generate merged islands for each layer; use lslices insted
affects also overhang estiamtion and thus other params
2022-08-18 17:19:58 +02:00
Lukáš Hejl
952a6c882c Fixed an issue that the wipe was shorter when it was located where extrusion width was changing. 2022-08-18 17:00:28 +02:00
Vojtech Bubnik
55835aa050 Optimization of GCodeViewer vertex buffer generator:
Rounding by round_to_bin() is now 2x faster on MSVC.
2022-08-18 13:32:30 +02:00
enricoturri1966
c497306a60 Disabled tech ENABLE_OPENGL_ES before merging branch et_opengl_es_rebase into master 2022-08-18 13:22:10 +02:00
enricoturri1966
2b996158d2 Merge branch 'master' of https://github.com/Prusa-Development/PrusaSlicerPrivate into et_opengl_es_rebase 2022-08-18 12:51:55 +02:00
Lukáš Hejl
499c2253bb Fix of #8704 - Travels in spiral vase mode when Arachne is used.
Now Arachne is used just for bottom layers, and for spiralizer layers is used Classic perimeter generator.
2022-08-18 11:22:47 +02:00
Lukáš Hejl
6f5813a849 Fix of #8648 - Lightning infill wasn't connected to perimeters when it was combined with the option "Only infill where needed".
Now Lightning infill will ignore this setting and treat it as off. Because Lightning infill and "Only infill where needed" do a similar thing, and their combination doesn't make much sense.
2022-08-18 11:22:45 +02:00
Lukáš Hejl
2115b40728 Fixed incorrectly computed starting position in Concentric infill when Arachne is used. 2022-08-18 11:22:39 +02:00
Vojtech Bubnik
c03085a1f6 Performance improvement in G-code export for support material
in suppression of retracts when traveling over support regions.
2022-08-18 10:45:18 +02:00
Vojtech Bubnik
a93620621d Performance improvement of GCodeProcessor:
Replaced std::string with std::string_view for constant parameters
Replaced boost:istarts_with() with boost::starts_with()
2022-08-18 10:33:26 +02:00
Vojtech Bubnik
01031779b7 Performance improvement of GCodeProcessor:
Replaced std::string with std::string_view for constant parameters
Replaced boost:istarts_with() with boost::starts_with()
2022-08-18 10:30:20 +02:00
Lukas Matena
e9f0f4bd0d Fix error message (related to #8703) 2022-08-17 22:21:09 +02:00
Vojtech Bubnik
42b546ae9c WIP TreeSupports: Refactored TreeModelVolumes for clarity 2022-08-16 11:54:30 +02:00
Lukas Matena
43315fc1a1 Fixed missing retractions for travels crossing support islands
The bug was introduced in 576c167 (GCode.cpp)
2022-08-15 17:22:45 +02:00
Lukas Matena
deac513faa Fixed conflicts after merge 2022-08-15 15:23:59 +02:00
Lukas Matena
bce2b148f4 Merged 2.5.0-beta1 into master (NO CONFLICTS FIXED) 2022-08-15 13:41:40 +02:00
Vojtech Bubnik
85e9ae75bb WIP Tree Supports: Enabled support enforcers / blockers 2022-08-15 10:16:16 +02:00
Vojtech Bubnik
0cdc482615 Optimization: Replaced lrint() with round() as lrint() cannot be
inlined, at least not on MSVC.
2022-08-15 08:42:25 +02:00
Vojtech Bubnik
af7108f792 WIP Tree Supports: Bunch of fixes and optimizations 2022-08-15 08:41:24 +02:00
Lukáš Hejl
17e7b182ee Follow-up to 0161a59a93: Too big epsilon created tiny unconnected extrusions, so epsilon was changed to the smallest value that allows resolving rounding issues after division by two. 2022-08-12 09:48:34 +02:00
Lukáš Hejl
4fa76b2d8b Reconnected endpoints of closed polyline when PolylineStitcher produced an open polyline mark as closed. 2022-08-12 09:48:34 +02:00
Lukáš Hejl
f60b88ba3e Fix of #8597 - Assert on Windows about decrementing of std::vector::begin() in a specific case. 2022-08-12 09:48:34 +02:00
Lukáš Hejl
e838acdcd1 Added a lot of debugging outputs (SVG) into SkeletalTrapezoidation. 2022-08-12 09:48:34 +02:00
Lukas Matena
661bb522cf Fixed compiler warnings 2022-08-12 09:40:19 +02:00
Lukas Matena
ea0a68a073 Merge branch lm_tm_step_sq into master_250 2022-08-11 16:51:32 +02:00
Lukas Matena
41f5bd006a STEP: Improved error reporting on Linux 2022-08-11 16:49:13 +02:00
Lukas Matena
620b89d1c6 Add STEP into menu label, enable drag and drop 2022-08-11 16:49:13 +02:00
tamasmeszaros
aff337067b Switch to statically linked OCCTWrapper on Apple.
Due to dmg notarization issues
2022-08-11 16:49:13 +02:00
tamasmeszaros
3f8979c95f Use prusa-slicer executable dir to search for occt shared lib 2022-08-11 16:49:13 +02:00
tamasmeszaros
1fd4659f0e Use resources dir for occt shared lib 2022-08-11 16:49:13 +02:00
Prusa Research a.s
7d3f0b4b32 Fixes on MacOS 2022-08-11 16:49:13 +02:00
tamasmeszaros
88ba89dbbc STEP: Implementation ported from BambuStudio:
CMake handling is different

STEP: Removed preprocessing stage

STEP: Small refactoring

STEP: Bigger refactoring

STEP: Changed naming on loaded object and volumes:
If the STEP contains exactly one named volume, the object and its first
volume will both have that name. Otherwise, filename w/o suffix is used
as object name and volumes are named using names from the STEP (if there
is none, untranslated "PartN" string is used).

STEP: Load the libraries dynamically on Win

wip
2022-08-11 16:49:13 +02:00
PavelMikus
d39d35cc83 better curling fix, removed resamping, fixed the feature disable from previous commit 2022-08-11 15:30:51 +02:00
PavelMikus
8812036c25 slowly decreasing angle seam placement feature disabled 2022-08-11 15:30:51 +02:00
PavelMikus
0479387b20 reduce wavy seams for all layer heights, improve painting 2022-08-11 15:30:51 +02:00
PavelMikus
06084b0bc5 lower segment count on smooth parts 2022-08-11 15:30:51 +02:00
PavelMikus
3f36187101 increase segments count for smooth long strings 2022-08-11 15:30:51 +02:00
PavelMikus
52b9325f7c improving dynamic segmentation, simplifications in snapping angle logic 2022-08-11 15:30:51 +02:00
PavelMikus
44a388d560 prefer enforcers over blockers, lower the threshold distance,
dynamic modification of segments count in alignment based on smoothnes
2022-08-11 15:30:51 +02:00
PavelMikus
a41435d044 fixed overhang estimation correclty 2022-08-11 15:30:51 +02:00
PavelMikus
af95b6ecbd fix issue with enforced patches
refactor end_index to mark index after the last point
hackfix issue with overhang seem placement
2022-08-11 15:30:51 +02:00
PavelMikus
cb3678e1e2 fix bug in seam string weight - use seam string length as quality score 2022-08-11 15:30:51 +02:00
Lukáš Hejl
7dac30714b Follow-up to 394494b3ac: Fixed deceleration/acceleration issue also for gap-fill. Also, deceleration before bridge infill is now working. 2022-08-09 13:59:56 +02:00
Lukáš Hejl
c9ddf7315e Replaced parameters wall_add_middle_threshold and wall_split_middle_threshold with automatic computation based on extrusion width.
That allows computed better values in cases when the extrusion width of the first layer or for the infill differs from the extrusion width for perimeters.

Parameters min_feature_size and wall_transition_length now can be set in percentages, and then they will be calculated based on nozzle size. Old profiles with default values are forced to replace old default values with new default values in percentages.
2022-08-08 10:21:55 +02:00
Vojtech Bubnik
b0af552455 WIP TreeSupports: Little optimization - don't use std::function,
don't make unnecessary copies of Polygons
2022-08-03 09:40:30 +02:00
Vojtech Bubnik
fd0c84319e WIP Tree Supports: Fixed one integer overflow. 2022-08-02 14:09:44 +02:00
Vojtech Bubnik
167125a813 Fixed disabling of TBB parallelization on newer TBB 2022-08-02 13:39:20 +02:00
Vojtech Bubnik
f971c392fe WIP TreeSupports: Some fixes, some clang specific workarounds,
some debugging code.
2022-08-02 13:36:05 +02:00
Vojtech Bubnik
6bf335409f FillBase: Use logging instead of printf 2022-08-02 13:23:30 +02:00
Lukáš Hejl
1b934518b3 Modified text drawing methods in debugging visualization (SVG) to support changing font size. 2022-08-02 13:21:39 +02:00
Lukáš Hejl
caf3e258b8 Fixed compiler warnings. 2022-08-02 13:21:39 +02:00
Lukáš Hejl
0161a59a93 Fix of #8472: The middle perimeter was missing for some specific configurations due to numeric rounding errors. 2022-08-02 13:21:39 +02:00
Lukáš Hejl
756eaeeb6d Updated the comment about the missing twin edge in the post-processed Voronoi diagram. 2022-08-02 13:21:39 +02:00
Lukáš Hejl
7060f3d1b3 Fixed an issue that when wall_transition_filter_deviation contained a non-percent value, then it contained the wrong value. 2022-08-02 13:21:39 +02:00
Lukáš Hejl
2317e9c2b9 Added information that the concentric infill is also affected by the selected perimeter generator. 2022-08-02 13:21:39 +02:00
Vojtech Bubnik
5868028a7e WIP Tree supports: It compiles and it produced first trees. 2022-07-29 13:15:01 +02:00
tamasmeszaros
b45bb84fa6 Another fix to find_merge_pt 2022-07-29 13:05:39 +02:00
tamasmeszaros
a55be29568 Fix failing tests for merge point search
Improvements and comments to find_merge_pt
2022-07-29 13:05:39 +02:00
tamasmeszaros
f3d4a90721 Fixes to compile on MSVC 2022-07-29 13:05:39 +02:00
tamasmeszaros
bf1303b9cf Fix double parallelization 2022-07-29 13:05:39 +02:00
tamasmeszaros
064e9935d1 Fix dangling pinheads 2022-07-29 13:05:39 +02:00
tamasmeszaros
2cb74013be Remove junk 2022-07-29 13:05:39 +02:00
tamasmeszaros
de3cbd483d Try to increase query size with each failed attempt
TODO: check performance gain
2022-07-29 13:05:39 +02:00
tamasmeszaros
e6d49b75de Make branching tree algorithm cancellable 2022-07-29 13:05:39 +02:00
tamasmeszaros
725f5c05e3 Change build_tree return value to void as its not used anywhere 2022-07-29 13:05:39 +02:00
tamasmeszaros
36ec731adf Replace KDTreeIndirect with boost::rtree for queries of PointCloud
- rtree can be populated with junction points gradually
- Use repeated queries of 5 nearest reachable points in branching tree alg
2022-07-29 13:05:39 +02:00
tamasmeszaros
d7c5243300 Further increase widening scale 2022-07-29 13:05:39 +02:00
tamasmeszaros
1a8cf3b029 Change UNQUEUED to Unqueued to keep convensions 2022-07-29 13:05:39 +02:00
tamasmeszaros
63a58ce1ad Require higher values for widening factor to have the same effect 2022-07-29 13:05:39 +02:00
tamasmeszaros
95374f9ed4 Fix some crashes
Fix minor bugs
2022-07-29 13:05:39 +02:00
tamasmeszaros
688c9c644f Prevent merging with node being lower than closest point 2022-07-29 13:05:39 +02:00
tamasmeszaros
91c0741f61 Minor performance optimization 2022-07-29 13:05:39 +02:00
tamasmeszaros
8a78428d10 Add tests to find_merge_pt and make them pass 2022-07-29 13:05:39 +02:00
tamasmeszaros
371da354a0 Adjust configuration layer to better reflect tree strategies. 2022-07-29 13:05:39 +02:00
tamasmeszaros
6523bfdf99 Enable ground facing only option for branching tree
Essentially discards mesh nodes
2022-07-29 13:05:39 +02:00
tamasmeszaros
5d6d1f5234 Apply branch length setting from UI for branching tree 2022-07-29 13:05:39 +02:00
tamasmeszaros
4c3ba3f6bf Fix tree struts piercing model body
Free path between the anchor and the last bridge was not verified
2022-07-29 13:05:39 +02:00
tamasmeszaros
7705ecd5aa Fix indexing of heads after duplicate removal 2022-07-29 13:05:39 +02:00
tamasmeszaros
792779f2de Fix creation of unchecked diffbridge in branching tree 2022-07-29 13:05:39 +02:00