Commit graph

24729 commits

Author SHA1 Message Date
Noisyfox
98135299e8 Fix compile error 2025-02-08 11:34:53 +08:00
Arthur
dc3938e0ea ENH: reduce organic tree support log level
jira: none
Change-Id: I17b876d88974e632c592bd36f3fea700a51f86be
(cherry picked from commit 97de4e87cfbff84c04c247bdf525ac83119e177f)
2025-02-08 11:34:53 +08:00
jiaxi.chen
393e2f4027 FIX: fix the bug of missing layers in SlimTree and HybridTree
jira: STUDIO-8756
Change-Id: I12c09ec2e3c1a2ee138472ff7c63675d0ee26ba0
(cherry picked from commit 36d80e7b24a4bdcce2d3957e0fd3ea61c8dc6bdc)
(cherry picked from commit 0d1bdab97d7e400fc4dd91dde0b3e8d00d2ee7f7)
2025-02-08 11:34:52 +08:00
Arthur
d41c0a812b FIX: top z distance disappears in some cases
jira: STUDIO-8883
github: #5334
Change-Id: Ie70f6dada19cc17cd74fa6aa116d1ca4fb4a07d7
(cherry picked from commit 849d41576c64527c2b9c0bfffdec37f29ed9b68b)
2025-02-08 11:34:51 +08:00
Arthur
ed9ba7dcb7 FIX: sharp tail miss detection
jira: STUDIO-7973
Change-Id: I76b0dc56fe6cf44bacad4c35874695efee29c2f9
(cherry picked from commit 3fe1728f40e2a09340b061681895e4691bd1a8f7)
(cherry picked from commit 7665aeb69ce53d7f9e1c50857b49985cd6912534)
2025-02-08 11:34:51 +08:00
Arthur
ee1bd704ef FIX: merge support interfaces into a continuous large one
jira: STUDIO-8611
github: #5132
Change-Id: I12ee4a9f88a78304a98f354bfaa92e2a05f19ec2
(cherry picked from commit b7c8c7e8feb199b01f52e1fbfbba4469657db3b7)
(cherry picked from commit c331b61cabd521cacd42d010c2936f8280a2b9f3)
2025-02-08 11:34:50 +08:00
Arthur
d7cf4b2274 FIX: inconsistent infill in hybrid tree support
jira: STUDIO-9058
Change-Id: I62f6225d33708e8a161600930c6e0dff229f5995
(cherry picked from commit f774fda6e67e25bedc89e8ef8b2dfb77436f95f2)
2025-02-08 11:34:50 +08:00
Arthur
35157c9421 FIX: apply xy_expansion after support blocker
jira: STUDIO-9040
Change-Id: I30e09a67047f651a547082bff737524aba940f19
(cherry picked from commit 5e476a1385286246a312b76bdaa836f18715b523)
2025-02-08 11:34:49 +08:00
jiaxi.chen
9e1b856e99 FIX: protect when support_style doesnt match type
jira: STUDIO-8800
Change-Id: I7d42f95ba43b4b3a47a83ae59afaaf9bc94baa5d
(cherry picked from commit d4bc450af6d2381bd5eb891c1395ebd50ca1c322)
2025-02-08 11:34:48 +08:00
Arthur
9f4d9fb463 FIX: normal support missing base interface layers
jira: STUDIO-8642
Change-Id: Ib104fdb195f8766d452138eb85d8b86cbac96981
(cherry picked from commit 4655ec449b9bc86747d4054bbfb20c60f784c8c9)
2025-02-08 11:34:48 +08:00
Arthur
d54d81e89d FIX: 0 top z distance of hybrid tree support not working
1. fix the issue that setting top z distance=0 not working
2. remove too small extrusions of tree support

jira: STUDIO-8578
Change-Id: I8c3face9d6a756698a6fab876fdb1acc0686647c
(cherry picked from commit 4d219266a1f520445bec6ac5a0274dcfec4050e8)
2025-02-08 11:34:47 +08:00
Arthur
c1df01fd8e FIX: hybrid tree support may crash due to empty extrusion entities
jira: none
Change-Id: I521e27e7a4d12189efc77768d10d264d0d6db111
(cherry picked from commit 64ab78298bc0c9a32ea5bcec5beddfc103074f53)
2025-02-08 11:34:46 +08:00
Arthur
1c686b3c04 ENH: improve tree supports
1. speedup organic tree support by using parallel for intersection of bed area
jira: STUDIO-8451
2. add extra wall for hybrid tree support's tall branches
3. disable circle fitting for tree support. This feature produces inconsistent
   circles for tree supports.
4. expose the option tree_support_branch_diameter_angle. Tree supports'
   strength can be improved by increasing this value.

Change-Id: If3688ca895df98a77f6ca538077daf8fe94e53f1
(cherry picked from commit 7697eb3dc8f87204d28e6be9adaf55dfcdadbc74)
2025-02-08 11:34:46 +08:00
Arthur
07c7e2f910 FIX: solve tree support crash
jira: STUDIO-8509
Change-Id: I8658538d7919136efbbf0d48cbf3d366e0621ded
(cherry picked from commit d5b14e5c094fd68426f1be4d78734f7b86888eb2)
2025-02-08 11:34:45 +08:00
Arthur
7a26dde977 ENH: improve shar tail detection of tree support
The expansion was too large and may miss sharp tails near the object.

jira: STUDIO-8400
Change-Id: Iee5bd15cc7c23f16d30365d5f1c9fbcc0a632c19
(cherry picked from commit 05174d07063d8296241de1d35f5b4196bc33a353)
2025-02-08 11:34:45 +08:00
Arthur
36970dd9a2 FIX: hybrid tree support crash in some case
jira: STUDIO-8313
Change-Id: Ide03d8f666232f457305f3dd298bf8151ba9c57b
(cherry picked from commit 35bf682f7938ea6ddfa9525249c6a4cbb1f16071)
2025-02-08 11:34:44 +08:00
Arthur
e6880a468b FIX: tree support crashes when it's too short
jira: STUDIO-8277
Change-Id: I327d9fb7beb6cc2822131ca4954066217b1a5c9b
(cherry picked from commit 00e5e84bbdfb680da74c4861a56ec8f5a867f58d)
2025-02-08 11:34:43 +08:00
Arthur
724d8a12b6 FIX: fix hybrid tree support may go outside plate
1. fix hybrid tree support may go outside plate
github: #4769
2. fix false alarm of empty layer warning
jira: STUDIO-8178

Change-Id: I7bcc3959b06184901cbec946e8840c7a94bc1cab
(cherry picked from commit 647bd4213c363eff6258992f5f607c1f03cbc482)
2025-02-08 11:34:43 +08:00
Arthur
3e7e4df7ce ENH: precise tree support wall count
Change the behavior of "tree support wall count" option, let it control precisely.
0 means auto.

jira: STUDIO-8068
github: 4780
Change-Id: I6d1a64cff9b121f5c0a3e910c5ddbfe6db198687
(cherry picked from commit a557bbe758cd352fa9bb48323995ed2c90737577)
2025-02-08 11:34:42 +08:00
Arthur
e78d50f733 ENH: improve hybrid tree support
1. keep all polygon nodes in drop_nodes
2. prevent generating too small polygon nodes

jira: STUDIO-8107
Change-Id: I1311158ab15097eb10727a8d6884b0bcd8136ef1
(cherry picked from commit 038b92a536a56568b1c6f385ce19ff36331cd46a)
2025-02-08 11:34:41 +08:00
Arthur
59b756acb8 FIX: chain_and_reorder_extrusion_entities crashes
this function crashes if there are empty elements in entities.

jira: STUDIO-7975
Change-Id: I0dbeb6b1151dd089be7617ebc3271691f64ac61e
(cherry picked from commit df30728617a89891c68e36cce771fb6380355b82)
(cherry picked from commit e42aabebb16253b0172fb80a58f58953aec8dda7)
2025-02-08 11:34:41 +08:00
Arthur
f76683e90e FIX: support wall count doesn't work
jira: STUDIO-7975
Change-Id: Ic580d298568fc6eab8b1a2c017fa182869b432bf
(cherry picked from commit 82bcb099e139065cc00c133f507e955d9955b2f4)
(cherry picked from commit 04756bf447f690a071eace1500b150f0b7b4ce02)
2025-02-08 11:34:40 +08:00
Arthur
ae6fadda4d ENH: add vertical support enforcer
Previously painting support enforces on vertical faces doesn't work, as projecting the facets downwards will give empty polygons.
Now we use a different mechanism to enable vertical paint-on enforces, by directly adding contact nodes.
Note: this feature only works with tree support as only tree support has contact nodes.

jira: none
Change-Id: Id171b1665566d142a6427285baccb40c0aa00949
(cherry picked from commit 9c882f61eb37350a4486df58de48f0ae489f2d15)
(cherry picked from commit 68625a6e601e2feef8e56693da1f58372b27b560)
2025-02-08 11:34:40 +08:00
Arthur
5054ee8508 ENH: improve hybrid tree support
1. do not add interface for small overhangs so supports are easier to
   remove
2. calculate avoidance more accurately using real layer height
  jira: STUDIO-6285
3. hybrid nodes won't collide with lower layers
4. calculate max move more accurately
5. do not increase radius if next layer has collision
  jira: STUDIO-2296, STUDIO-7883
6. rewrite plan_layer_heights to prevent support layers overlap.
  Now the tree support layers are completely independent to object layers.
6. increase collision areas for interface. The top layers may be too
close to interface with adaptive layer heights and very small overhang angle

Change-Id: I052c3f66e68afb7663e2d70c846dd09ed7086071
(cherry picked from commit aca511caebfdeec270d4fc0ec6bbbadde77cddc9)
(cherry picked from commit f2fc996652b3b204b4e554f57afed8519feb0397)
2025-02-08 11:34:39 +08:00
Arthur
532dcae37a ENH: add rectilinear interface pattern for organic support
1. add rectilinear interface pattern for organic support
    jira: STUDIO-7181
2. add tree support optgroup

Change-Id: I94882bc34a61c6adc06b8ecbc9f2323f9b039aac
(cherry picked from commit a8142ab3f37e0bd140a31a7e635b8475f471d7e3)
(cherry picked from commit 69cf816b9431bc21ca0187c7db1148e2d2e898ab)
2025-02-08 11:34:38 +08:00
Arthur
f00bdfeca8 FIX: enforcers may not work with contour expansion
To fix this we have to expand the enforcer areas just like organic support.

jira: STUDIO-7538
Change-Id: I8e4e3fd18b0e77db9beb57347d8da895fc83f4b0
(cherry picked from commit 319b3e2247e01e545bb9e4cebea7950d875cd89a)
2025-02-08 11:34:38 +08:00
Arthur
9ee61bb3dd FIX: top z distance inaccurate if it's too large
The top z gap should be split if it's too large.
Also we use same logic for both synced and independent support layer.

jira: STUDIO-7232
github: #4191
Change-Id: Idca792e8fa51a83c2a09441ecac64d40b91d6390
(cherry picked from commit c262a7ea137db09e453c157115b3d5417a32886d)
2025-02-08 11:34:37 +08:00
Arthur
0cfa5f47fe FIX: missing support layers at raft gap
jira: none
Change-Id: I9a7f34c148ee0e228cf2e8e18c85136253f354ad
(cherry picked from commit 615751538a65cdaeb8e398dcc941971c98ec11b8)
(cherry picked from commit da7f1439ce78d92326726be961528d2755d9a6e2)
2025-02-08 11:34:36 +08:00
Arthur
fa11957c17 FIX: do not break bridges in tree support
jira: STUDIO-7424
github: #4318
Change-Id: Icccf56b129c4910f3b0a49d69871b8df1375a6d9
(cherry picked from commit 99211cde5f2114fd64e2724069540577793f889a)
(cherry picked from commit 6a130a19ef2e881a7853183123163ce67d63bc37)
2025-02-08 11:34:36 +08:00
Arthur
2332caa84c FIX: empty first layer of tree support
The raft gap layer should only exist if there are raft layers.

jira: STUDIO-7184

Change-Id: Ia4d2a5b7ddf873fb4ef16c7087648214e6bde806
(cherry picked from commit f13144d6a9c20cfbad11c6907c30b10447d8f8a3)
2025-02-08 11:34:35 +08:00
Arthur
3d70bdc3e1 FIX: top z distance incorrect with adaptive layer height
This bug causes supports difficult to remove.

Rule to remmeber:
    never decrease the top z distance, you can only increase it SLIGHTLY.

jira: STUDIO-7103, STUDIO-7001
Change-Id: I24f71cd67d182d4e2c0902f244a8ca8f4c3ee982
(cherry picked from commit 461af9e8f6f98a8e0b363436276f225183365998)
2025-02-08 11:34:35 +08:00
Arthur
36f2df3339 FIX: blockers not working for sharp tails of tree support
also change default style to tree organic

jira: STUDIO-6801
Change-Id: Iab1d8c6117139c9a7a4c1fa71de0a13bcb356dd5
(cherry picked from commit d2c4efad58f16b23bef49bd47d3b70bf322d6f55)
(cherry picked from commit cd9305e3e061b67903ed8f5cd05d0136d608ee01)
2025-02-08 11:34:34 +08:00
Arthur
6e05d9ef84 FIX: overhang interface may overlap with object
jira: STUDIO-6710
Change-Id: Ie13ec81e07326a2572d698607c03aeb793f119c8
(cherry picked from commit cc49c82793a877c2c4187e6254e4092de9285010)
(cherry picked from commit 39839e37325bd93e73ba069a2ea18cb326911c42)
2025-02-08 11:34:33 +08:00
Arthur
5a8612eb63 FIX: tree supports may generate flying nodes
Previous parallelization has a bug where two adjacent nodes may be deleted at the same time.

jira: none
Change-Id: I99a29dae9f72aa74ed2721eea4421b15eec10732
(cherry picked from commit 91efe67d723652d3f7e4484dd3cdf31638f769a4)
(cherry picked from commit 734a70b493b0347870dc955021b0f7055c76f84b)
2025-02-08 11:34:33 +08:00
Arthur
2577b9b3a6 ENH: improve supporting sharp tails of tree support
1. sharp tails are supported by a sparse set of contact points which are
easier to remove than previously dense surrounding support.
   Organic tree support also has this feature, including all other smart
overhang detection techniques (small overhang and cantilever detection),
with the cost of slightly longer time to detect overhangs.
2. improve supporting overhang contours by adding contact points along
   contours.
  jira: STUDIO-3876
2. remove some redundant data structure.

Change-Id: If7f595348506a14aba2d0132d23f97d3539c1e1f
(cherry picked from commit e3cce09b9db12ced2841045ffd337b1f35494e6c)
(cherry picked from commit 507345deb193d895d0813fc913f00b0def7e62f9)
2025-02-08 11:34:32 +08:00
Arthur
0b671e8852 ENH: speedup tree support generation
1. speedup detect_overhangs by skipping sharp tail and cantilever detection if there are too many overhangs.
   jira: STUDIO-3584, STUDIO-2592
2. drop_nodes with precalculation of avoidance and tbb parallel_for_each for all nodes in each layer.
   jira: STUDIO-1814, STUDIO-2381, STUDIO-2639, STUDIO-5020,
3. don't show too many progress messages

Change-Id: Ia4897089c69c235fb7cd8e5fdcf4690086048b31
(cherry picked from commit 9c08e28b5b5342dfdde2c939fc953f143a42a59b)
(cherry picked from commit 9de69035a029374be477b74e67c96dd8235daafa)
2025-02-08 11:34:32 +08:00
Arthur
19107b5869 FIX: compiling error due to template function deduction
jira: none
Change-Id: Ib2a3f03468b7992defef3ff2298882b4435cabd1
(cherry picked from commit 9efa2ee2e2dcd4d1322afa03c7b7ce05b1d69872)
(cherry picked from commit 40a468be3df9abc35054185ce780ada20902970b)
2025-02-08 11:34:31 +08:00
Arthur
da7eea49c9 FIX: reduce unnecessary small parts of tree supports
1. reduce unnecessary small parts of tree supports
    jira: STUDIO-6506
2. fix the bug that zero height tree support may be generated with synced support layer height.
3. fix the bug that tree nodes' radii may change abruptly
    jira: STUDIO-6326

Change-Id: I38153d136e46bf9d797881cc6ca8803767f46736
(cherry picked from commit 59af0a6c2643169463cf18010ffd75f3aa19b704)
(cherry picked from commit 47440f040cae70f79e430b02d44f6093208ac066)
2025-02-08 11:34:30 +08:00
Arthur
fd3ed419c2 NEW: add support_object_first_layer_gap option
jira: STUDIO-6202
github: #3521

Change-Id: I6f1ce9f5312e9482c0f5bf6ac3215861c501106c
(cherry picked from commit 83027d923a6e67fa0013e5d9f627283c68e996de)
(cherry picked from commit 29da3bc441a194d5b83ce267fe24ebf3f3811133)
2025-02-08 11:34:30 +08:00
Arthur
4ee6d636c7 FIX: blockers are not working correctly with organic supports.
jira: STUDIO-6278
Change-Id: If74e611821db25241dd67dfc4a3e44fac557a10d
(cherry picked from commit 76b9b2b7e856f648082cd3a09386775695c6accb)
(cherry picked from commit cf35d0268fce05308d56b87bc2c50eb822451c02)
2025-02-08 11:34:29 +08:00
Arthur
242a36a262 FIX: several issue of organic support
1. raft under organic trees are not generated
2. Studio may crash when generating organic supports for some objects.

jira: STUDIO-6407
Change-Id: I6e7ff2423b9fee95e4a4a85ccc2844549142f0c8
(cherry picked from commit 00db6c241270f5524bf1618109a2b45872073fd0)
(cherry picked from commit c7d12b703e23a83840f480e2cbb3a80fb00e059d)
2025-02-08 11:34:28 +08:00
Arthur
107551f7b4 ENH: improve the support of blade-shape overhangs
1. reduce the gap between blade-shape overhang and support
   github: #3667
2. improve sharp tail detection of blade-shape overhangs by introducing
   lslices_extrudable.
   github: #2786, #3367
   jira: STUDIO-5065, STUDIO-6038

Change-Id: I4e899eace1aa28b100a6f4ce2b8d740c317f5530
(cherry picked from commit 08328b848e39c345b6c7b64021d1e0f04df24d08)
(cherry picked from commit 22056d5f7e7bef5574b53fc0453781cd365bf0e1)
2025-02-08 11:34:28 +08:00
Arthur
c199730004 FIX: tree support detect overhang inaccurate
Jira: STUDIO-3657
Change-Id: I1ef4ca3ec299b121eb467afc12acee68e0f12b39
(cherry picked from commit 36f8937ae0d0d79c7558662903fffef20b528cb8)
(cherry picked from commit a631e6cb99)
2025-02-08 11:34:27 +08:00
Arthur
715e8e1c32 FIX: improve cantilever detection of tree support
github: #3667
Change-Id: I5fd6d7d5a6e80aaa563f7d033381e6b8cb9093e0
(cherry picked from commit 3f5fdf82dcaa8636d295794a1113aab78f7327af)
(cherry picked from commit 58bba45bc2294ac80c624c0032bfa284228eaa2f)
2025-02-08 11:34:27 +08:00
Arthur
562dc76ab0 FIX: raft of tree support was incorrect
1. Raft was not generated when tree support is selected but enable_support is false.
2. Raft angle and density of tree support was incorrect

github: #3675
Change-Id: Ifd78bf619a28eb03a908e75ad56af4934b6b08b7
(cherry picked from commit 2a448095a2fb4a2abebb0a5c8082a2ddbb635f16)
(cherry picked from commit e7ffe31cb3c6b526268adb4c2349a2623b181c53)
2025-02-08 11:34:26 +08:00
Arthur
31a5f0d523 FIX: Checking support necessity not working
Only early stop detect_overhangs if support is disabled AND not checking support necessity.

jira: STUDIO-6158
Change-Id: I2d9662231d941827d6392d57344f7d911f641e09
(cherry picked from commit b811a6031d1afe0e7b1cb73050fe6391a65411ef)
(cherry picked from commit fa61ee6abdb4b04a2141b3f8ea9e2e8a789b7881)
2025-02-08 11:34:25 +08:00
Arthur
a2e5332eef FIX: z_distance_top==0 not working
jira: STUDIO-6144

Change-Id: I9ddaa237e2d71c8697a41bbbdb86f70d0b1e1452
(cherry picked from commit 38ba45e9cf7f59d2c1de658a56d8f2b109721bcd)
(cherry picked from commit 9d37a31338cf42a285b39daab84af5504e51d009)
2025-02-08 11:34:25 +08:00
Arthur
c7febad548 FIX: raft_first_layer_expansion not working with tree support
jira: STUDIO-6043
github: #3355
Change-Id: Idf2a0053026a6f232a5239c3f504191321feb6ee
(cherry picked from commit 3eb35f5b1a53990d215ae4d3527917611f5083c6)
(cherry picked from commit 0589348c3264e56b9e3a16afea95a5d44983498b)
2025-02-08 11:34:24 +08:00
Arthur
d0868d6711 ENH: accurate top z distance for tree support
1. accurate top z distance for tree support
 Also fix a bug that bottom z and top z distances are misused.
    jira: STUDIO-3000, STUDIO-5990
    github: #1827
2. Change interface pattern to interlaced rectilinear when using
support material.
2. clean up tree support code

Change-Id: Icc8ce1b6844c841a6fbd1d623df707fdc8ed0f7b
(cherry picked from commit da7412a48dfb5767918ef125b9d0fb9718c03a61)
(cherry picked from commit 39ae64fc53abec794d740e36baaa13fd6fb35849)
2025-02-08 11:34:23 +08:00
Arthur
de24d0ac2f FIX: tree support bottom interface layers were not correct
The bottom interface layers were not right when "independent support layer height" is enabled.
This commit ensures there are always 2 bottom interface layers and the gap
is not less than specified. However, the gap may be slightly larger.

Jira: STUDIO-3842, STUDIO-2138
Github: #2127

Change-Id: Ifd8fbc4c7bc6dd92f2534fdd0179458a9e93c79a
(cherry picked from commit edcdad162e)
2025-02-08 11:34:23 +08:00