Commit Graph
100 Commits
Author SHA1 Message Date
Arthur 92a740a112 FIX: disordered support interfaces in tree support
Can't delete nodes with no children, otherwise the parent-child relations may be corrupted.

Jira: STUDIO-3737, MAK-1557

Change-Id: I1de39e182bac4a55a8739c00e59fdf7b9b5e4dfb
(cherry picked from commit 8ad53b9fc16362e5bac1f649b53f4f0eba1edc1d)
2023-08-15 21:39:50 +08:00
Arthur a1bc4b3a57 FIX: tree support's enforcers inside a hole were wrong
Previously holes of enforcer_polygons was taken as contours,
which caused enforcers inside a hole were too large.

Jira: STUDIO-3877
Change-Id: If38c34e2469b822012a2ed0b082783563fe99228
2023-08-11 20:50:03 +08:00
Arthur c364dc733b FIX: tree support's enforcers inside a hole were wrong
Previously holes of enforcer_polygons was taken as contours,
which caused enforcers inside a hole were too large.

Jira: STUDIO-3877
Change-Id: If38c34e2469b822012a2ed0b082783563fe99228
2023-08-08 10:41:55 +08:00
椰子 030aab5068 FIX: Revert "FIX: Smooth timelapse in common profile was wrong"
This reverts commit 31c0fc89e3f70b0fa110fa715586c2a597e0929a.

Reason for revert: X1 not working

Change-Id: I9b634e61b37aa3294aa133458d257bc2035b8d48
2023-08-01 22:09:01 +08:00
Arthur d694409b86 FIX: Smooth timelapse in common profile was wrong
Remember C10 is for traditional timelapse, C11 is smooth timelapse.

The mother profile of all machines should be right.

Change-Id: Ia941f743d2a81ef4b5b4fa08a37ca654eb86d0d7
2023-07-31 14:29:15 +08:00
Arthur 9d9673116d FIX: tree support didn't work with enforcer
Enforcers should also subtract the lower polygons to get overhang areas.

Jira: STUDIO-3692
Github: #2045
Change-Id: I70f4aaae13826efc624e9bc942d2d11e9b1df1a1
(cherry picked from commit fc3d9b24ac1eb14e259488c94fca3469f319b368)
2023-07-31 14:29:15 +08:00
Arthur 44fdfe8fff FIX: tree(manual) didn't support well
1. We have a logic to add supports at corners for tree(auto), now I extend
it to tree(manual) also.
2. Only show support_critical_regions_only option to tree(auto).

Github: #2008
Change-Id: I161444da93464fd2ef0e0f3b40a0c5852beba351
(cherry picked from commit af4efb4aadc2a4d16de3eea881c6610955985fff)
2023-07-31 14:29:15 +08:00
Arthur fcda0e5f2c FIX: mesh boolean may take forever with CGAL
Only use MCut to do boolean, with a little modification to allow input
mesh to have multiple components.

Jira: STUDIO-3167

Change-Id: I4f53010f76fbcacfe966c2ef48e465f97d6516fe
(cherry picked from commit 92d0eb11744820466ee2f67c02d4764e496b7e60)
2023-07-07 17:52:43 +08:00
Arthur 96e03a6aa3 ENH: update nonprefered_regions to new extrusion cali pattern
Change-Id: I90565150c74be7ff3065dc373874c38eb4468db4
(cherry picked from commit 1156d8eb88a4708064169fd9422b32c3f0d67ab9)
2023-07-07 17:52:43 +08:00
Arthur 04bfe7e405 ENH: ease removal of tree supports
Previously tree supports are harder to remove than normal
supports. We learn from normal supports and improve the gap between
object and supports.

Jira: STUDIO-3530

Change-Id: I229a7b869b334bdf4c5aba96c9450213b83457f2
2023-07-07 17:52:43 +08:00
Arthur ecfffca12d FIX: raft contact distance should not trigger warning
Jira: STUDIO-3344
Change-Id: I1d0e7431cad468acaf4830caf002a47c6a33be41
(cherry picked from commit f2a926da614443fdf8631f4412f70fa741a8bf11)
2023-07-07 17:52:43 +08:00
Arthur 0cad88309c FIX: fitst layer bbox was wrong for multiple plates
brim bounding box is now shifted w.r.t. plate origin, need to modify the
no-brim shift the same way.

Change-Id: Iefa7287e2848aadbfc4a468bca394ecec48a1e7c
2023-07-07 17:52:43 +08:00
Arthur 40b8d9b87f ENH: improve mesh boolean
1. Don't use mcut on splitable volumes
2. If MCut fails, try again with CGAL.

Change-Id: I55d352b166633db9e4548b5c9e6913cf931f5f8f
(cherry picked from commit c1bde5358524d2291db6efa584ff072308ed9d20)
2023-07-07 17:52:43 +08:00
Arthur 501e73913c FIX: empty layer replacement may crash
When there are multiple empty layers needs to be replaced, error_msg is
assigned multiple times simutaneously by tbb, which causes problem.

Jira: STUDIO-3320
Change-Id: I52a48c9fe284d15aeb8e4e9e5d1db7e0c3321ad6
(cherry picked from commit fba54c063637a1bab4d835e2e5f8558b2affa4e6)
2023-07-07 17:29:08 +08:00
Arthur 4e5f4ee366 FIX: FillBed crashes when accessing unset print config option
1. When the option is not set, print.full_print_config() is empty, so we
can't access opt_bool("scan_first_layer") or opt_bool("enable_support").
Should use wxGetApp().preset_bundle->full_config() instead.
Jira: STUDIO-3264
2. Allow different object having different brim_width to encode support's brim width.
In this way the arranging logic is simpler and more objects can be arranged in a plate.

Change-Id: Ic7178652147b0519d50b2eb9ceb214b4ef4c0251
(cherry picked from commit 0f163d59b40009cd29b8b1e32f730258ad0786dc)
2023-07-07 17:29:08 +08:00
Arthur 9ad9ba213a FIX: fill in bed may shift objects outside bed
Do not do final align for filling in bed.

Jira: STUDIO-3265
Change-Id: I2ce2ebed575ba05b1d78ec89923f8e91c4de6648
(cherry picked from commit 581aa4fd0ff1c6f64026d7b934d4bd8a79b803ae)
2023-07-07 17:29:08 +08:00
Arthur 6c41c6cd1a ENH: turn off flow calibration on PEI plate by default
Flow calibration on PEI plate may fail. To reduce users' confusion, let it be off by default.

Change-Id: Ic31f18b5fd378ac8b20e4d1461ed3dbfbae1ae4b
(cherry picked from commit bc8b4cb082f20984207f44e63104be9a603a2332)
2023-07-07 17:29:08 +08:00
Arthur b9abdbe4f8 ENH: add context menu "Mesh boolean"
Apply boolean operation on parts. No need to export stl to apply.

Change-Id: I14479d0977e5ec6f5f80f55b22ed02974b8271c7
(cherry picked from commit 14fe96b2b7529380832007a3d3eb93eb8b9a5217)
2023-07-07 17:29:08 +08:00
Arthur c7ed4e7e14 ENH: revert boolean tool to mcut
Change-Id: I1aca763869e107a996519cb74e025043407005f2
(cherry picked from commit f7865828cf4b7b3ab8987bf0fc3d45efad2f08fe)
2023-07-07 17:29:08 +08:00
Arthur 0ce835dcd4 ENH: add option "remove_small_overhang"
Let the user choose remove or not.

Github issue: #1810
Jira: STUDIO-2992

Change-Id: I9c5e087d171d16d8d7318b36efe825a6cbc29c33
2023-07-07 17:29:08 +08:00
Arthur 8a7d3f36a8 ENH: ignore C4305 warning
Change-Id: I291d7e9686a85b38bcbb75875abd766af36a681d
(cherry picked from commit 1de5069bd09599f693dbe37a627fa93d5dcfae74)
2023-07-07 17:29:08 +08:00
Arthur 2e0a8dcf30 FIX: reduce normal node in buildplate_only mode
If support_on_buildplate_only is enabled, and a node will fall into the object,
this node should not be a normal node.

Jira: STUDIO-3047
Change-Id: I65dc6d69d28729732907111c3b34b4d32edff806
(cherry picked from commit d04dc35d45c171e20899cb391d3b192fa123c10e)
2023-07-07 17:29:08 +08:00
Arthur 3c1f7f9e16 ENH: improve small overhang detection
Small overhang diameter threshold is reduced,
and use bounding box size instead of area for final decision.

Github: issue 1681
Change-Id: Iabbb49dfc47345bb609214749104c808608c4d65
2023-07-07 17:25:51 +08:00
Arthur 12d0a51362 FIX: do not merge overhangs when buildplate_only is on
Jira: STUDIO-3024
Change-Id: I87f73a556945d1b1640c515336ca108f65b88bdf
(cherry picked from commit 1c09513324bb965647bbb157be1cacaf9371ce07)
2023-07-07 17:25:51 +08:00
Arthur a4eaf65b77 ENH: remove popup dialog of tree slim
This popup dialog was introduced to promote tree slim
style. Now it's time to remove it.

Change-Id: I34c0be56b4dc613e6e991dd87ab22eb4eaa1feb3
(cherry picked from commit 827c692a1877bfec914ef8f5a55c7357ed6e94d2)
2023-07-07 17:25:51 +08:00
Arthur 523c91c605 ENH: add job positions in README
Change-Id: Idb979ed499aa848e5586e7923a78fb6ede77de1b
2023-07-07 17:25:51 +08:00
Arthur 7c5e96a43a NEW: add boolean in export stl
Change-Id: Ibeab33f27ad7a2531bb256edd0e3f853cf8def7c
(cherry picked from commit 6cfb4371a1b9053b54569d91a9c29af97a753c0e)
2023-07-07 17:25:51 +08:00
Arthur 9dd33e599f ENH: add cn translation for fill in bed
Change-Id: I8bc9a62bb759c3f1193133f8d6a672e2ef4d8824
2023-07-07 17:25:51 +08:00
Arthur 3d1f61c7ed NEW: add tree_support_brim_width option
Jira: STUDIO-2921

Change-Id: Id5fddc0b6f5ffe3beb9afb0be5f81a766fc5b21e
(cherry picked from commit 86d7b6016e48143aad03744a58d44042ff0a0b4c)
2023-07-07 17:25:51 +08:00
Arthur 55a1141e67 FIX: sharp tail detection misses some sharp tails
1. Previously if there are multiple sharp tails in a layer, some will be
 missed. To fix this, we should not skip if the current layer is already
 detected as sharp tails.
2. Do not mistakenly detect sharp horns as sharp tails by only detecting
 the overhang areas larger than half of the extrusion line width.

Github: #1578
Jira: STUDIO-2659
Change-Id: If7ba5c9ae547d3051551aa6fa34eb6214d01a46d
2023-07-07 17:25:51 +08:00
Arthur 3d8383f127 ENH: upgrade some deps libraries
CGAL to 5.4
 TBB to 2021.5
 OpenVDB to 8.2

Change-Id: I08992fce104e6f56001643c3c5dbf6c3f59ffc3d
(cherry picked from commit 1571f176fc37dda1c3e889776e13fa49bba4ae42)
2023-07-07 17:25:51 +08:00
Arthur 81319b6a9e FIX: normal support crashes when only raft enabled
Github: #1786
Change-Id: I349fab71953b6eb77fbb1f70b00f37c1e450a562
(cherry picked from commit e961e05c5cc8644398d5bba7eac8527b34759354)
2023-07-07 17:25:51 +08:00
Arthur 826f27089e ENH: improve multi-material arranging
Multi-material arranging is more compact by redefining same_color_with_previous_items:
if the colors of previous items are a subset of current object's colors, or vice versa.
Either of the two cases will not increase the total number of colors of the plate.

Jira: STUDIO-2871
Change-Id: I7cbe0835408d306084490b4849d03bb9fb617d2b
(cherry picked from commit d58702e9c0db54bcd123739298ce6dc03f5ca1a5)
2023-07-07 17:25:51 +08:00
Arthur e7a21ce0e1 FIX: support blockers in tree support not working after mirroring
This is caused by the inverse-order polgyons after mirroring. Adding
a union_ before offset_ex fixes this bug.

Github: #1621
Jira: 2738
Change-Id: I885a3ca6af4e5fadb2158d913cf67525bfffa91e
(cherry picked from commit 4ea95d89e7ec058ac21218e1839cfe16b486893a)
2023-07-07 17:25:51 +08:00
Arthur ef109ca170 FIX: tree support may generate floating circles
Github: #1687
Change-Id: Ib762bd2f43e1a3671404a85e234c51a0f159d919
(cherry picked from commit adf84cb6e618b60eff57c66c9f4d2fc703a87cae)
2023-07-07 17:25:51 +08:00
Arthur da7353dd6b FIX: contact_polygons were not accurate and interface missing
In normal support, contact_polygons were slightly larger than allowed region, so sampling to the wrong points, which were then removed when "on buildplate only" was turned on.

Jira: STUDIO-2742
Github: issue 1352
Change-Id: I2f131bac48eb30997f37818f312da3386516a5ea
(cherry picked from commit ed25a89c0e8c5358ea803344fbce482be172d2ee)
2023-07-07 17:25:51 +08:00
Arthur 611b2812d3 FIX: do not redo slicing after changing support params
This reverts part of the commit d4490af, because redo slicing is unacceptable after changing support params.

Known issue:
Bottom surface type depends on support parmas, that's why we add the steps dependency of slicing against support params in commit d4490af.
With this commit, bottom surface type may not be right with the initial params, and the user can't do anything to make it better.

Change-Id: Iff079c4d1205b8a07468be6396990fe87634a3fe
(cherry picked from commit c663a844629c07dd40973832df4e4d1e1827235a)
2023-07-07 17:25:51 +08:00
Arthur 62b4be7341 FIX: close conflict notification after move obj
Jira: STUDIO-2720

Change-Id: Icb7bc2ed76aa28c7b8227a219cb57da412aab12d
(cherry picked from commit 47e04a1bd7118de95c4a964fea38d8c09f53a200)
2023-07-07 17:25:51 +08:00
Arthur f793254e16 NEW: add icon of rectilinear_interlaced pattern
Change-Id: I2b91167a7efbdd239e0d46fb9643529144c04107
2023-04-24 09:11:01 +08:00
Arthur 0f61902c8e ENH: add cn translation for conflict check
Change-Id: Id2c034567dbbf8878a601af1af16f1c8d24d1033
2023-04-17 15:39:02 +08:00
Arthur 1a7b12fa38 FIX: auto-arranging result may fail clearance check
We add 0.001mm tolerance.

Change-Id: I630cc680db0a3a65a6a44e177de686fbac1e1f15
(cherry picked from commit 170f9c2a89d03060f9a9aa43952c0759ffbe7c1f)
2023-04-17 15:39:02 +08:00
Arthur 719f273fa2 ENH: improve smoothness of tree supports
1. Instead of smoothing top-down, now we smooth tree branches bottom-up, and do not stop at merged nodes.
2. Fix a bug where some nodes don't have child. This is critical for bottom-up smoothing.

Change-Id: Iac0fecd81dac541ca390bcf5cbdfe7fd66cfd3a2
(cherry picked from commit 536a8a4f0ef76fa0358f4b4b181c4c7e7fff8bc7)
2023-04-17 15:39:02 +08:00
Arthur fbbfb06f6b ENH: make tree support much smoother
We increase the smooth iterations from 1 to 50.

Change-Id: Iba883fd67d7a9a71c92b364dcc9b76e00fc45820
(cherry picked from commit 945fba20a5629148bfd8cee47f492d42c50f9824)
2023-04-17 15:39:02 +08:00
Arthur 1d4a25ed20 FIX: bring back Tree Strong style
Tree Strong is too similar to Tree Slim and people don't like it.

Jira: STUDIO-2660
Github: #1579
Change-Id: I52d7e8e674f0fc332e4ab2813261ffbc4b4cfb7a
(cherry picked from commit 9eb209b4c1737d2f10b9b8bd78c9f876f3d32bce)
2023-04-17 15:39:02 +08:00
Arthur 87abd65ea4 FIX: do not allow support thresh angle to be 90 degrees
tan(90\degrees) is too large and will make detect_overhangs very slow.

Jira: STUDIO-2620
Change-Id: I55901a6bc1b56216549f66e1a7e77c0da680997b
(cherry picked from commit e58cc8a4665808580e84107f54661447000d64f3)
2023-04-17 15:39:02 +08:00
Arthur 3d710609d9 ENH: improve cantilever detection's speed and accuracy
Cantilever detection should be done layer by layer, instead of using
merged_poly of clusters.

Jira: STUDIO-2198

Change-Id: Ifea017fc4c13425a944ee80f7dedb603a8e14cc2
(cherry picked from commit 0803a439a458ffeb9c6d91e90344a5b78794a6bd)
2023-04-17 15:39:02 +08:00
Arthur 74d558e612 FIX: tree support crashes when lower_layer is null
Change-Id: I942bdf1dfc253be5ebf659274f230290c5260d63
(cherry picked from commit 05b033cd0dfacadab9ea3e725e364a6156d068f2)
2023-04-17 15:39:02 +08:00
Arthur 15ba872d1c ENH: only draw infill in normal nodes of hybrid support
1. Only draw infill in normal nodes of hybrid support.
  Previously when hybrid support was selected, all nodes would have
  infill including the circle nodes which don't need infill. Now we draw
  infill only when there are normal nodes.
2. Move remove_bridge after small overhang removal because the trimmed
  bridge may be detected as small overhangs.
3. Only split circle nodes in draw_circles to prevent floating circles.
4. Fix the issue where tree support infills may not be aligned,
   which is caused by the changing spacing of filler.
5. Fix a bug where lightning infill in tree support may crash.
   Note: it is still not prepared to set lightning infill as default,
   as for some models the generation time of lightning infill is still
   too long.

Change-Id: I556e5097041d09afae1e2957d4dc9914d4610149
(cherry picked from commit 4c0849a81b60cde0c3b8ca54f03f63ea7c62dcd9)
2023-04-17 15:39:02 +08:00
Arthur cf556814ce ENH: translate missing entries
Jira: STUDIO-2577, STUDIO-2581,STUDIO-2582,STUDIO-2585

Change-Id: I560635756f7d0a9b27e4827920fe84c724d09f01
2023-04-17 15:39:02 +08:00
Arthur 6facd65530 FIX: sharp tail detection in normal support was wrong
1. Fix sharp tail detection in normal support.
The not operator in front of overlaps was missing.
2. Fix bridge removal.
After adopting Prusa's smart bridge direction detection, the bridge
angle may be pi, so our previous method (comparing angle to 0 and pi/2)
was not right. Now we simply check if the bridge direction normal vector
is aligned to x-axis or y-axis.

Change-Id: I4e1fd937e432aca97cdd374ba66a0d869794126e
(cherry picked from commit c0d82003a5e4c44345219294072c54051fc5711a)
2023-04-17 15:39:02 +08:00
Arthur 0c2ba2b0a2 ENH: improve sharp detection for small regions
1. improve sharp detection for small regions.
   When the region is around 1 extrsion width, previous method may miss some sharp tails.
Now we reduce the width threshold to 0.1*extrusion_width for sharp
tails.
   When checking "nothing below", need to expand the poly a little. Example:
benchy.
2. improve is_support_necessary.
   Only popup warning for sharp tail and large cantilever (longer than 6mm).

Jira: STUDIO-2567
Change-Id: I5e977e7766b35409891d1b41e36278e3f07fa372
(cherry picked from commit c9d8a7c1c3bbd4367c7fc44408c67e5c534167f4)
2023-04-17 15:39:02 +08:00
Arthur af0fca211b ENH: add grid & rectilinear_interlaced interface pattern
Github: #1018, #1221
Jira: STUDIO-2534

Change-Id: I8c766b5b934364253c0344e39f474e4ac3b81add
(cherry picked from commit e7d46fe60856ab511905b46799943bfde8a71826)
2023-04-17 15:39:02 +08:00
Arthur 1ac8013fa5 ENH: improve normal support's efficiency
Similar to tree support, make as many steps parallel as possible.
Jira: STUDIO-2525

Change-Id: Iee310bbf6911d8d3e4262ee8ed6bd133d09670a9
(cherry picked from commit 3798f1a3ecb85bbfb81925b3702fb4384e18994d)
2023-04-17 15:39:02 +08:00
Arthur Tang 617cb5490b ENH: tree support style default to Tree Hybrid
1. tree support style default to Tree Hybrid
2. fix an assert bug with MedialAxis::build:
    assert(polyline.width.size() == polyline.points.size() * 2 - 2)
  This is caused by the incorrect clear function of ThickPolyline.

Change-Id: I8d6507ad366d253493e2749e0cbac8d3d837ee8a
(cherry picked from commit bd31e962c11e82005944bef40b17471075e79898)
2023-04-17 15:39:02 +08:00
arthur.tang 6c489808a7 ENH: boost is_support_necessary's performance
1. Parallelize the majority of overhang detection, leaving only a small
part of sharp tail detection as sequential. This strategy makes
is_support_necessary 10 times faster.
2. Use the overlaps function to detect overlapping, instead of using
intersection().empty()
3. Control the max recursion depth to prevent crashing due to too deep
recursion.

Jira: STUDIO-2445, STUDIO-2458
Change-Id: I35283da3e4a22d7afe251b804ce30b90a9d754df
(cherry picked from commit 1a6fedd1a0c82906f1807234ea1b816247ca6fd7)
2023-04-17 15:39:02 +08:00
Arthur 246ff2653d ENH: improve bridge direction detection
Thanks to Prusa.
Jira: STUDIO-2453

Change-Id: Iadcc59df44d5abc552f5d558a500fd9bcd66d43f
(cherry picked from commit c19156fd037df4231f3e0cb1e9a899c9b7525372)
2023-04-17 15:39:02 +08:00
Arthur e4f6315da0 FIX: update_sequential_clearance may crash due to clipper's bug
m_hull_2d_cache must be set since later on we'll use its point number, which is a very large number when not inited.
This will cause a fatal out-of-memory error.

Jira: STUDIO-2452
Change-Id: I9b397a53bdcdf555eccf745f1b96786010ebe309
(cherry picked from commit 6802be53709649e75a1562d29e14559c766d427b)
2023-04-17 15:39:02 +08:00
Arthur aebbe807f2 FIX: update_sequential_clearance may crash due to clipper's bug
offset may give empty results.
The previous patch solved the issue that the studio crashes immediately when selecting by-object printing.
This patch solves the issue that the studio crashes when moving objects with mouse after selecting by-object printing.

Jira: STUDIO-2452
Change-Id: Iacd69e67386b0750f24e5af2799ff9c0da130e88
(cherry picked from commit 8ea4379d0b6d61e91bd6704e4b1e8309cb42b924)
2023-04-17 15:39:02 +08:00
Arthur f227a8f8da FIX: sequential_print_clearance_valid may crash due to clipper's bug
offset may give empty results.

Jira: STUDIO-2452
Change-Id: I4da9689dc3e22afcb2340ce0f9956237e4aab434
(cherry picked from commit 3f33979a79c720fcaddb5b850ec278b3deaf2417)
2023-04-17 15:39:02 +08:00
Arthur 017707e575 FIX: sharp tail detection may fail
1. In small overhang detection, some sharp tail cases are missed because
  the max_layer was not compared.
2. In normal support, previously the lower layer's expolys were not right,
  should only keep the ones that won't vanish when extruding.

Jira: STUDIO-1977, STUDIO-2200
Change-Id: Ia09ff1ab4870b7e3c199a827932536867644c76c
(cherry picked from commit e3ba3a3114821e951d6eb00b4c95e6e63ffe00d4)
2023-04-17 15:39:02 +08:00
Arthur 2616479489 FIX: fix possible toolhead shake by adding 300ms delay
1. It seems there are a lot of buffered frames in IP CAM. Have to
   wait enough time untill all buffers are flushed.
2. From watermellon's suggestion, increase travel speed duing layer
   change, to save time and reduce oozing.

JIRA: STUDIO-2167
Change-Id: Ia2ec0bde216e90207897c00c395f7e02ea2fe342
(cherry picked from commit 9c85a7c68617b1628e1698912da20f1ebc69ec16)
2023-02-24 09:23:57 +08:00
Arthur a981d3ac2c ENH: reduce possible toolhead shake in smooth timelapse
It's not necessary to pause before photo-shooting, but after it.
Pausng by 50ms should be enough.

Jira: STUDIO-2167

Change-Id: I88ba5db1d6cce390ae5e26ac03533b0ee277b5bd
(cherry picked from commit ae34c0b9e875d1e52798a5359b0cce2151942fb8)
2023-02-22 20:09:17 +08:00
Arthur bf8f163b5a ENH: improve tree support and fix a bug
1. use tree slim's merge strategy in hybrid support
2. do not break bridge in hybrid support
3. fix "support on buildplate only" not working. The cause is: with
   independent support layer height, contact_nodes are not synced with
   object layers, so the previous way of accessing contact nodes in
   unsupported_branch_leaves no longer works. To fix that, we add
   obj_layer_nr.
   Jira: STUDIO-2250

Change-Id: Idfc9b0bb10425de6414f7eae2cf5467cedf1d669
(cherry picked from commit 8780d5a7e92e298cbbccbb3bd1825197d387a340)
2023-02-22 20:09:17 +08:00
Arthur 3a14acba99 FIX: support styles were not translated
Field labels are translated when being appended to combo box, so need to
add _ symbol.

Change-Id: Ib5207c4d357c3b9cd797264f872e2f6fb8859e6e
2023-02-22 20:09:17 +08:00
Arthur 92022bd809 ENH: translate "No layers" and others
Change-Id: I654490a5e4049dbeb61ef7499adfddfe94bcbcf6
2023-02-22 20:09:17 +08:00
Arthur 5cbea66058 ENH: add translation macro to "No layers"
Jira: STUDIO-1876

Change-Id: I7a6fdf64b27d2eb40346a0025fd9afe5944dd7b7
(cherry picked from commit 71f580b34434d1a6582a20429c38ea3f6d1875fd)
2023-02-22 20:09:17 +08:00
Arthur 088668994c FIX: bottom bridge was not correctly detected
A bottome surface is detected as stBottom only if:
 1. has support, top z distance=0 (soluble material), auto support
 2. for normal(auto), bridge_no_support is off
 3. for tree(auto), interface top layers=0, max bridge length=0, support_critical_regions_only=false (only in this way the bridge is fully supported)

 Note:
 Since now the surface type depends on more parameters, changing them will trigger re-slicing and making the whole process slower.

github issues: 1253

Change-Id: I0fe719e0dbf7147206008c8726dd9c7be2b19226
(cherry picked from commit d4490afa6b9e4fbb583033a125bbebb50dc5f0bb)
2023-02-22 20:09:17 +08:00
Arthur 59f7c4595c FIX: arranging multi-color objects not correct
Arranging multi-color objects with disabled
multi_materials_on_same_plate option was not currect.

Previously we only consider the first extruder id for multi-color
objects. Now we consider all extruders.

Jira: STUDIO-2164
Change-Id: If64ff4f88f0fe4f6c31ebf657b3449b19bf063f0
(cherry picked from commit f4f6bdd00a0c3d3e13406b69be9b5b0468b27d44)
2023-02-22 20:09:17 +08:00
Arthur 63222d50de FIX: unsupported cantilever was not warned
1. fix unsupported cantilever was not warned. We need to set support
  type to stTreeAuto in is_support_necessary() to fully utilize the
  power of feature detection.
2. fix tree support not generated on non-first plate.

Change-Id: I5b8aa827c9d62df0119db4e8e9212f33ce75ddaa
(cherry picked from commit 60f21b6fcb45fe56f7fc867a7fcad433282bc055)
2023-02-02 16:53:45 +08:00
Arthur Tang c07dcffe16 ENH: use print volume to clip tree support
So tree supports won't go outside the bed.

Known issue:
1. moving won't trigger support re-calculating, so if you want to
  clip the supports in a different way after moving, you need to change
  the support settings (eg change threshold angle to 31 degrees).
2. clipping with the occlusion region is not complete, and an error
  message of "outside toolpath" will still be popped because we use
  convex hull to detection confliction.

Jira: STUDIO-2036

Change-Id: I643b14618eb18ffa9825072c44f677e51b0ff937
(cherry picked from commit a6217824dc0f490027e16f80f810d176dec6004b)
2023-02-01 16:24:44 +08:00
Arthur 30bb96aa47 FIX: spiral mode couldn't be enabled
Support layers should be released in is_support_necessary.

Jira: STUDIO-2120
Change-Id: Id1c6fa2d8635e55be745095408dfbac38a25efa6
(cherry picked from commit f911e8d084c4fa273f8c9211112fa2f83515cfb1)
2023-02-01 16:24:44 +08:00
Arthur aa36d376ec ENH: translate "is too close to others" and so on
Jira: STUDIO-2020
Change-Id: I73a4cd47bafc32ff580b7970a37f808f78cffc3e
2023-02-01 16:24:44 +08:00
Arthur 81ee7bb99b ENH: improve is_support_necessary
Use tree support to detect if there are sharp tails and so on.

Jira: STUDIO-1898

Change-Id: I148e14ca4024849875133a646a8fdd36c265b2fb
(cherry picked from commit bc74015d45e96e409d34d611876e3a24e289e029)
2023-02-01 16:24:44 +08:00
Arthur 5cc08e3398 FIX: tree support first layer defects
Tree support didn't fill the first layer when the tree is too short

udesk: 0284
Change-Id: I2702b26733e7360445e19847abb48f75f173da4e
(cherry picked from commit e317f9e19fbbfe21efb495e23a8ff78661bfee79)
2023-02-01 16:24:44 +08:00
Arthur fa9a530184 FIX: raft density in tree support was wrong
Jira: STUDIO-2005
Change-Id: Ic2e9a3824ea943f101737270382c63cfaea656a1
(cherry picked from commit e10e17863a40638329ff43c8fa12b88c79e7b76b)
2023-02-01 16:24:44 +08:00
Arthur 18366df5d0 ENH: only allow setting height when cut plane is horizontal
Jira: STUDIO-1819
Change-Id: I04d258949cbf98a59f7313d714430f361bb2c4a9
(cherry picked from commit 2ffa8430b819cfffe20f4c7734125a3aabd33202)
2023-02-01 16:24:44 +08:00
Arthur 2800c97165 ENH: add gcode command for void printing detection
1. add gcode command for void printing detection
2. fix the issue that the toolhead is not at excess chute position when
  smooth timelapse ends, by adding 2s pause after M991 command.
  Jira: STUDIO-1996

Change-Id: I40cf16116e742744cea9bd90969e556a9ea2b2f1
(cherry picked from commit 2fbf7ffe6b1bd8850a76e229ff91750c689721b9)
2023-02-01 16:24:44 +08:00
Arthur d16dee04af ENH: [tree support] use layer_nr_next for calculate_avoidance
Previously we used layer_nr-1 as the next support layer below layer_nr,
which was not right when we used independent support layer heights.
And this would make it difficult for the tree branche to avoid the object.

Change-Id: Ic705fbd093e4bd555470646044380703ca259904
(cherry picked from commit 245e1cf4fd071b1f1fea4c5d616ff87432a76911)
2023-01-10 19:08:26 +08:00
Arthur 646b259972 ENH: merge tree support layers to support layers
Will greately reduce repeated codes.

Change-Id: I506a97a907b5b393fe41e13ae53e2f7c9247c4c5
2023-01-10 19:08:26 +08:00
Arthur 9dd1cabef6 ENH: translate support setting suggestions
Change-Id: Iabaf85589cd99d3364edeb4c3f2847156657e05a
2023-01-10 19:08:26 +08:00
Arthur 38ce4b94f4 ENH: improve sharp tail detection
1. When sharp tail region suddenly grows a lot, it means it connects to
   a well supported region and is no longer a sharp tail.
   Jira: STUDIO-1862
2. First layer of sharp tail can not be reducible (must have extrusion,
   i.e. won't disappear after slicing), otherwise thin spikes at the
   top of the object are also treated as sharp tails.
   Model: knight_seadra
3. Increase sharp_tail_max_support_height to 16mm
   Model: Crane_reversed

Jira: STUDIO-1859 (for this issue I don't what is the exact cause,
   but adding these three improvements solves the problem)

Change-Id: I3cd57b184d78dba8862ab3c214057ae78fe49d1f
(cherry picked from commit 9242c6a6d1f23f11ebc43a9049ce10229a15c60e)
2023-01-10 19:08:26 +08:00
Arthur bb48983e91 ENH: improve generate_contact_points tree support
1. Previously we used integer Point type to detect corner, which was wrong.
2. Delete duplicate points more aggressively to prevent too many points
   around curved overhangs.
3. Do not generate roof_1st_layers if there is no interface at all.

Change-Id: I1167ac04c533ec8f29dc9e656ba7072d1b54197f
(cherry picked from commit 1329347c4bf9c8207cf21e591a6ad113bb565673)
2022-12-26 05:31:54 -05:00
Arthur f4519a45e9 FIX: tree hybrid may hang duing lightning infill
auto select grid infill for tree hybrid, and set default wall count to
1.

Change-Id: Icbecd540d06f353da2e63533f8f7cf7d7f20fbdb
(cherry picked from commit 246335cc195c88a4101dddd1eeda42d9ca16589f)
2022-12-26 05:31:54 -05:00
Arthur e7e26b4b1a FIX: fix typos
Change-Id: Iba3727626d9102aa6c87d336ee1d49bbfbb7c479
(cherry picked from commit bf58651fffb94f9aeb4e85ff6c8a7b9feb3cab83)
2022-12-26 05:31:54 -05:00
Arthur 58aaa94fc7 FIX: empty layers and dangling hybrid support
1. fix possible empty layers (caused by continues walls)
2. fix normal node may be absorbed in drop_nodes in "tree hybrid"
3. popup message to ask the user to select best parameters for tree strong
   and tree hybrid.
4. auto select lightning infill for tree hybrid.

Change-Id: I7d172887a9b0e4f268267684e83fc02dc7ec6a0c
(cherry picked from commit bc6d130e86c252d7fc1f84c4df7da95050dd5d51)
2022-12-26 05:31:54 -05:00
Arthur 854eb0af95 ENH: change base pattern "None" to "Hollow"
1. change base pattern "None" to "Hollow", and add an icon image
2. fix a bug of not initializing m_highest_overhang_layer
3. fix a bug where normal(auto) with Tree* styles won't generate any
   supports.
4. add popup message when selecting support material for interface.
5. draw connected loops when wall count is larger than 1

Change-Id: I7ea211d2971b25c65724bb10d0f6cf6e0b68c6a1
(cherry picked from commit 4c1ae7f937239fc3e1397ec2cb3b290d886bb0f0)
2022-12-26 05:31:54 -05:00
Arthur 3e7b5e7657 ENH: [Tree Support] smooth_nodes and draw ellipse works
1. smooth nodes' positions
2. draw ellipse along movement direction
3. fix a bug of radius not smooth
4. fix a bug of Tree Strong having too large radius
5. fix a bug in plan_layer_heights: when wipe tower is
   enabled, independent_support_layer_height is false, and all support
   layers should be exactly the same as the object.
   Jira: STUDIO-1785
6. move support style popup message to on_value_change, so only show the
   popup when the user changes support type or style.

Change-Id: Ibced7a28f436d96000ee35a7194b68bb5a20a32d
(cherry picked from commit 0d814b07e433533c8de1b7a04bf52b577de0778d)
2022-12-26 05:31:54 -05:00
Arthur 7596b3fed9 ENH: improve auto arranging and by-object printing
1. In auto arranging bed temp can be higher than vitrify temp by no more than 15 degrees.
2. In by-object printing we use max radius for clearance
3. Add P1P max radius

Change-Id: If595f3e19fd74f6f36d2f394edbb835c413cc800
(cherry picked from commit 2af42420ad3770f0728adb583082600544519a58)
2022-12-26 05:31:54 -05:00
Arthur 29dbc77e91 NEW: add new tree support style "Tree Slim"
1. Add a new style "Tree Slim". If enabled, tree
support branches are merged more aggressively, and the support volume
is minimized.
2. Enable support style, add back Snug for normal support.
3. Remove hybrid(auto) type and use "Tree Hybrid" style to represent it.
4. Fix a bug in plan_layer_heights that may generate empty layers when
   layer height is set to 0.3mm.
5. Fix a bug where no raft is generated if there is no overhang.
6. Fix the bug where no bottom interface or bottom gap is generated when
   tree slim is selected.
7. Use physical distance to calc radius

Change-Id: Iacd57018ae5496cdc9acd28551c44d1c88c53fe0
2022-12-26 05:31:54 -05:00
Arthur Tang 9ca84ba948 FIX: sync with master on TreeSupport.hpp
Change-Id: I5a7eab9fcf1d46ac4a3748c66eb163fb5cc289da
2022-12-17 03:21:09 -05:00
Arthur a7ff17d99c FIX: add support type normal and tree in handle_legacy
If don't do this, laoding old 3mf generated by version 1.3 or lower will
have problem, e.g. normal support will be replaced with normal(auto).

Change-Id: Iaa8e1f8badaacc74479d99a6e4153d8850945279
2022-12-15 04:49:14 -05:00
Arthur 4bab300e18 ENH: sync with master on sharp tail and cantilever detection
Change-Id: Id514d47d868fd02a8ac02ef85ef33ef48a2bd7c7
2022-12-15 04:38:15 -05:00
Arthur 6a644c271c FIX: lightning infill may fail for some cases
Change-Id: Ibc6e4e4262ef9fc0b36a936acc52a3b60dca2cb4
(cherry picked from commit e3b7c5c3404aa200c4b852b3963a7a0aae8837d2)
2022-12-15 04:38:15 -05:00
Arthur 3ad732bd93 ENH: translate "Slicing Canceled" and others
Change-Id: I034445d285a86e732abb9bd1dddd6cb5aabcead6
2022-12-15 04:38:15 -05:00
Arthur ab96238a69 FIX: timelapse type was wrong in end gcode
Change-Id: I4b73e74cebb36f540fd27c71584d4b4a4cff94e9
2022-12-15 04:38:15 -05:00
Arthur 8cfee69015 FIX: undef SUPPORT_TREE_DEBUG_TO_SVG and tree support enhance
1. undef SUPPORT_TREE_DEBUG_TO_SVG
2. change default tree branch angle to 45 degrees
3. encourage tree neighbors merge faster
4. draw more loops at the top of trees for stronger support

Change-Id: I2edf6a2dddb3b6165c2519ee15e9a7ffaba9de94
(cherry picked from commit 3a9723b2e88a033b3298cd68daf9400265e984a1)
2022-12-15 04:38:15 -05:00
Arthur 4419703f41 ENH: do not add L prefix to empty string
Change-Id: I0fc7f57baf256452645be497020d75ffaf9c20f4
2022-12-15 04:38:15 -05:00
Arthur fd3dee6a6d FIX: remove tree_support_with_infill in 3rd party profiles
Change-Id: Ie42a45b90ce14bc27308d66474db074e8bf380da
2022-12-15 04:38:15 -05:00
Arthur 65766ba30a FIX: tree support crashes when there is no overhang
Default infill pattern is lightning now, which has
a crash bug when no overhang is provided.

Change-Id: I1e70b8458d1eef670a78d698c68b21d7f48bc3eb
(cherry picked from commit 777af3aa1dbb9869209945f3a6dbcc07cba0b84a)
2022-12-15 04:38:15 -05:00
Arthur 4eba8a2a2d FIX: auto-arrange may crash due to clipper
1. Use nlopt and clipper offset togather seems not stable, very easy to
crash. We do the offset outside nlopt now.
2. Fix a bug with finalAlign where objects may be translated to overlap
   with excluded region.
3. change the words of support_expansion

Change-Id: I22e37b20e4ae16f47bde206de90845616e4cefad
(cherry picked from commit 1c26e5d2862fd3f3292971b5c749420bfb2cdf0e)
2022-12-15 04:38:15 -05:00