Commit Graph
100 Commits
Author SHA1 Message Date
Arthur d5c12f9b9d ENH: improve support style's tooltip
jira: none
Change-Id: I8ee858d7052f04ce7ea6b226a500c7d1bf8a482f
(cherry picked from commit 665f31c4fcde22bd894cbb4a5fb160635947f2a4)
2023-11-22 08:23:38 +08:00
Arthur 4bd2b7f96d FIX: compiling error on linux
jira: none
Change-Id: I1a4563503b5ddf74a1979cc0cee7a15b8aced904
(cherry picked from commit de52c6ca62c9f3a6314ddf5a856c1d8534329886)
2023-11-22 08:23:38 +08:00
Arthur bf93fd02fb ENH: open support wall count for normal support
1. open support wall count for normal support
  Enabling this option makes normal support stronger and gives
  better overhang quality, but also more difficult to removal.
  Jira: STUDIO-5192
2. fix a bug where tree support (hybrid style) may get overlapped
  extrusions near the walls.
3. fix a bug where raft layers can't be 1 in tree support
  Jira: STUDIO-5261

Change-Id: Iadc0c67a9b50b5b221c8e83d5aa22ed282018cf8
(cherry picked from commit c0bb0084e386cb70ed6e16edf93190e4b38f5b90)
2023-11-22 08:23:38 +08:00
Arthur 82d5935a5e FIX: align to Y not working
This is a bug introduced in 7fbb650 when solving jira STUDIO-4695.
Now we use a more decent way to solve it.

Change-Id: I92deffcb9fe53e8a24c93fe973446ae37df07375
(cherry picked from commit bd98430dbd15eb6c9bb4b447990e0dcf8a50eef0)
2023-11-22 08:23:38 +08:00
Arthur 0e716584db FIX: do not generate sheath for normal support
Jira: none
Change-Id: I8f3f3e39171055f8d18c06ceee8e245594273238
(cherry picked from commit 93bc7ecf4346f179f502bebc3cf47b0030b56e2c)
2023-11-09 10:09:10 +08:00
Arthur 134f083bdb FIX: modify some default support params in code
1. Modify default values of some supports params, so 3rd party profiles are easier to setup.
3. Fix a bug that organic support may cause crash.

Jira: none

Change-Id: Icae348d8fe5985f4287404e96089198a499283f2
(cherry picked from commit 8889cfc703b72e142f288e525b89c87619f2213c)
2023-11-09 10:09:10 +08:00
Arthur 7efebe6bc6 ENH: improve first layer tree support
First layer support can't be top interface, and
min brim width of auto mode should be larger
than 0.

Jira: STUDIO-5010
Change-Id: I02f8b017b535f8a47965387e8679f692b1966e04
(cherry picked from commit 3e7d54abe352e8ab5f9d6492b5a86a96f9067f94)
2023-11-09 10:09:10 +08:00
Arthur a006286465 FIX: organic support doesn't work with raft
Fix organic support issues by syncing with Prusa's changes. Thanks to Prusa.

Jira: none

Change-Id: I96fa1a939767bb0b0d2e8a5fd72966bb10a2042e
(cherry picked from commit 89607dc73313e1b5d389674ed2d8f4f358bcb8b9)
2023-11-09 10:09:10 +08:00
Arthur 95430ee68d NEW: add some cli options to support more function
1. Option "assemble" assembles multiple input meshes into a single object.
2. Option "load_filament_ids" sets filament ids for each loaded object.
3. Option "clone_objects" add multiple copies for each loaded object

Jira: STUDIO-4848

Change-Id: I707b48767a7c978118490398da440f0fb54351fa
(cherry picked from commit 8ddb456375be1abc6a0f692096068d8eda89b0eb)
2023-11-09 10:09:10 +08:00
Arthur 0964b5bb0a FIX: tree support generates floating hybrid supports
Jira: STUDIO-4763
Github: #2660

Change-Id: I13d5a1443af8bc82f0cadd177e0db3fc3db971f1
(cherry picked from commit 04cb09b1f63db232854e6ce0734fbff6f5945b8d)
2023-11-09 10:09:10 +08:00
Arthur bc0470647d ENH: translate tree organic and so on
Change-Id: I07beafffefc2ca24aa861892b6ca0d8cd5d3ae0e
2023-11-09 10:09:10 +08:00
Arthur d7a4623380 FIX: improve tree support generation speed
1. Improve generation speed by removing unnecessary get_avoidance.
2. Fix a bug of hybrid support's interface (Jira: STUDIO-4878,
   STUDIO-4726, Github#2614)
3. Fix a bug of tree support pass through objects (Jira: STUDIO-4252, STUDIO-4608
STUDIO-4298)
4. Fix a bug with first layer + Arachne (Jira: STUDIO-4281, Github #2423)

Change-Id: I40978c93ab93fa6964483514dad552d73a66c710
(cherry picked from commit 2ccbbe49c74d4aab4f086e79a6f8262b7fc80f15)
2023-11-09 10:09:10 +08:00
Arthur 20f86fac4e ENH: max clone num increased to 1000
For some application like Lego bricks, 100 is far from enough.

Jira: none
Change-Id: I94a6f47e75545bf35f16e493eb4bb05236ea98fe
(cherry picked from commit 2a4270adaaf7d14eb8b3d0397264df28b20a1ea2)
2023-11-09 10:09:10 +08:00
Arthur 39af8072ba NEW: add a new generic object torus
torus.stl is borrowed from Prusa by YuSanka <yusanka@gmail.com>. We
are thankful for that.

Jira: none
Change-Id: I45ee3fa7c1390fb48ecdc6a679ee5525526461d6
(cherry picked from commit 8ef4c9d9d44b1f66cb05259bb2135bd2e703f64a)
2023-11-09 10:09:10 +08:00
arthur 76f876a3c6 ENH: improve tree support
1. add a hook inside tree branches for improved strength
2. fix the issue that interface may fly as a mess (delete the logic
  where gap nodes can skip dropping down)
3. fix the issue that base nodes may fly as a mess (smoothing should
  skip polygon nodes, see Jira:STUDIO-4403)

Change-Id: Ie9f2039813c2ca3127ed8913304cc455fec8e7ee
(cherry picked from commit 83cef5f91d49ff3d275a89ec3df8b5f0fd573f8c)
2023-11-09 10:09:10 +08:00
Arthur 63c33c90e6 ENH: do not clone object to plate boundary
Jira: none
Change-Id: I72f33d7633bd6ccd43cabbfd0262818b1655c21b
(cherry picked from commit 99ea969b30a25ddd063da5fb0e246ce01d4b6764)
2023-11-09 10:09:10 +08:00
Arthur af1af05a98 ENH: auto arranging put rectangle objects better
1. Rectangle objects get higher alignment weights, so they are aligned
better and we can now pack more of them.
Jira: https://jira.bambooolab.com/browse/STUDIO-4790

2. Fix the bug that align to Y axis may cause object flip 180 degrees.
Jira: https://jira.bambooolab.com/browse/STUDIO-4695

Change-Id: I0cccc3291c154848f8e0e8ef1aca7045518aef80
(cherry picked from commit 7fbb650d4d3d187277f849273cf76b4d0989a67f)
2023-11-09 10:09:10 +08:00
Arthur 8d74732348 FIX: auto arrange estimates wrong wipe tower
Jira: STUDIO-4678
Change-Id: Iff2273b464db939a2b5e19f8791bd2a4d67ce8c1
(cherry picked from commit fe4b1f79faeade42300622367fb23d7bd1079785)
2023-11-09 10:09:10 +08:00
Arthur 3d5aa9479c ENH: auto-arranging allows more filaments together
Auto-arranging allows more filaments to be printed on the same plate

Only HighTemp and LowTemp filaments are not allowed on the same plate.

Jira: https://jira.bambooolab.com/browse/STUDIO-4682
Change-Id: I1bd4966e6aaa55a6dd9dff05f0bd94f2795a62b0
(cherry picked from commit 965040912af0555ca190702e7c7ac92e177a2922)
2023-11-01 09:33:21 +08:00
Arthur 2bd8a0806b FIX: exclusion region may be too close
Auto arranging may put exclusion region may be too close.
Jira: none

Change-Id: I613a2525620cf58cd9da7d27e8bb6d9d0a52d807
(cherry picked from commit a8ed3929d3596b8ee5400c9376ca040c75025524)
2023-11-01 09:33:21 +08:00
Arthur 590444d92f FIX: cli arrange failed in some cases
1. set different bed_shrink for seq_print and layered print
2. fix the bug that seq_print arranging may get collision with exclusion
   area.
3. remove unused functions.

Jira: STUDIO-4663

Change-Id: I8b726704cca33fe37bb3cb7c4502963a9ad8d16b
2023-11-01 09:33:21 +08:00
Arthur 402d399f55 ENH: add more photo shoot commands in end gcode of A1
Add more photo shoot comamnds in the end gcode to prevent sharp ending of timelapse video of A1.
Also fix a bug of using timelapse_type=2 in end gcode.

Jira: None

Change-Id: I2a426be7a2f7d22b10b79c2b7eb1a04538b5340a
2023-11-01 09:33:21 +08:00
Arthur 8bb63ebeaf FIX: auto-arranging crash for single plate arranging
Jira: STUDIO-4651

Change-Id: I8e4be997292d7f7dbd741368e20db5a0d2e693cb
(cherry picked from commit 7d75f5903f67fb332eaff4563308d5f196e45d1f)
2023-11-01 09:33:21 +08:00
Arthur 0533537079 ENH: do not include brim_max in bed shrink
Including brim_max in bed shrink will make available area of bed be
small when an object has tree support, because this object will have
a brim_width as large as 24mm now.

Jira: MAK-2048
Change-Id: I309c0ec14e4acd75dcfc2fff0e7ea3558b43cc4c
2023-11-01 09:33:21 +08:00
Arthur 14a3b244a0 FIX: cmd line auto arrage for sequential printing not working
min_obj_disance was not set for sequential printing of cmd line.

Jira: None

Change-Id: Idce14aedf8448a0917533efb93f7c78fff34587d
2023-11-01 09:33:21 +08:00
Arthur 6612086816 ENH: do not leave a gap for top interface if the top z distance is 0
Previously when the overhang is a slop, it's controled by the xy
distance. Now we control it with top z distance as long as it's an
interface.

Note: Not working with Snug support, which has a different mechanism of
support interface.

Jira: STUDIO-3991

Change-Id: I1b7c4cf892b4c4ec2f3e668bd966ab0971212364
(cherry picked from commit c094b5ec83dc98dca7a8b8c0438b8f1994134db6)
2023-11-01 09:33:21 +08:00
Arthur a631e6cb99 FIX: tree support detect overhang inaccurate
Jira: STUDIO-3657
Change-Id: I1ef4ca3ec299b121eb467afc12acee68e0f12b39
(cherry picked from commit 36f8937ae0d0d79c7558662903fffef20b528cb8)
2023-11-01 09:33:21 +08:00
Arthur 2bd6b11505 ENH: improve auto-arranging objects with tree support
We decide to set brim width of all objects to MAX_BRANCH_RADIUS_FIRST_LAYER if there is an object with tree support after discussion.

Jira: MAK-2009
Change-Id: I4c4940800632c433235966b01c44ac910e33a51c
2023-11-01 09:33:21 +08:00
Arthur 64ee3d946f FIX: auto arrange may put objects with tree supports too close
Increase the brim width to the max full diameter of tree supports.

Jira: MAK-2009
Change-Id: If44da7107f79eddccca42a54484806269e3fee5c
2023-11-01 09:33:21 +08:00
Arthur 2b593ce378 FIX: adaptive layer height may mess up support layers
We must ensure when independent support layer height is enabled, the
support layers are strictly synced with object layers. Otherwise, the
wipe tower toolchange may be messed up.

Jira: STUDIO-4097
Change-Id: I6208653f9665b15d028940d5e130c9e895629fc2
(cherry picked from commit 41d35c8af152c91cb356a68d88a879a115b44778)
2023-11-01 09:33:21 +08:00
Arthur 181b05c236 ENH: tree support uses accurate lslices
For tree support, use lslices as tree support island when generating brim,
as this is faster and more accurate.
For normal support, still use "support_fills.polygons_covered_by_spacing()" as support island when generating brim;

Jira: studio 4332

Change-Id: Ibfadd3a166606f824e5780b57112fff221470aaf
(cherry picked from commit 64960b19818c7029eaaaf3d8a89804aeaa26f11d)
2023-11-01 09:33:21 +08:00
Arthur c5db5551bf FIX: skip gcode path conflict check for adaptive layer height
adaptive layer height won't work with conflict checker because m_fake_wipe_tower's path is generated using fixed layer height.

Jira: STUDIO-4442
Change-Id: I964a69af2fa0be8224ffc11e4c86f8ccf6dbf152
(cherry picked from commit e8c915f9e0b8c8f6cb549259b20d6d850a06d7d3)
2023-11-01 09:33:21 +08:00
Arthur 76d073a9ea ENH: improve auto arranging's wipe tower logic
1. If there is already a wipe tower on current plate, leave it there regardless need_wipe_tower flag.
This is useful when we have toolchange custom gcodes.
2. Correct wipe tower pos to prevent it outside bed.

Jira: STUDIO-4426
Change-Id: Iedecc7c5fe7ced01533d0a302253841046a7fb42
(cherry picked from commit e8d728e46b12baaf9fb0e87e3d14197ae3616826)
2023-11-01 09:33:21 +08:00
Arthur ad9fa81b01 ENH: add a new support style "Tree Organic"
Add a new suport style "Tree Organic" from Prusa, as organic support is
faster and seems more strong in some cases. Thanks to Prusa.

Feature detection including sharp tail, small overhang, long cantilever,
are still kept.

Known issue: first layer support path may go outside build plate.

Jira: STUDIO-2358
Github: #2420

Change-Id: I4cec149bf4fa9eb733ae720ac1a7f65098e3b951
(cherry picked from commit d977bc5d3b4609f4fec0aa68152a33cacf184c4a)
2023-11-01 09:33:21 +08:00
Arthur 9e0953f468 ENH: translation
Jira: STUDIO-4256
Change-Id: I39d5f748a5100493844b612655b6b1047ebb9ca6
2023-11-01 09:33:21 +08:00
Arthur 3c691ac086 ENH: improve auto-arranging's aligning to Y axis
Dominant direction is more accurate (solve the problem that cubes are
not arranged neatly).

Jira: STUDIO-4356

Change-Id: I8931f51a97bee96d5d9e75306481eae2e0cdc059
2023-11-01 09:33:21 +08:00
Arthur 855c3d61ff FIX: tree support + raft may fail to slice
Do not skip generate_toolpaths if has no overhang but has raft.

Jira: STUDIO-4341
Change-Id: I0bdadb5f778e0e1fda686341c0860d0f0c160f0f
2023-11-01 09:33:21 +08:00
Arthur 04ce14ca90 FIX: crash when support spacing set to 0
Jira: STUDIO-4339
Change-Id: Ic9198e21fbaa8992cc08628aefa8673ba82194b3
2023-11-01 09:33:21 +08:00
Arthur c631a69c32 FIX: coPoint type couldn't display
This causes the printer setting page unable to display becase I added a
coPoint type option best_object_pos.

Add reading and writing coPoint type configs solves the problem.

Jira: STUDIO-4303

Change-Id: I34e40e567236d28ab1a7be265128275191fcc935
2023-11-01 09:33:21 +08:00
Arthur 3f1e15995f FIX: auto-arranging made objects overlap with occluded region
finalAlign was not correct because the excluded regions are counted twice.

Jira: STUDIO-4259
Change-Id: Ie4ad167af8487ce7250b83d85f144ef01e60e00f
(cherry picked from commit 154de0d94ff34231a60966fb89cc14655cce8008)
2023-11-01 09:33:21 +08:00
Arthur 641a4fd1f2 ENH: add load_model_objects_and_custom_gcodes
Add cmd line option to pass layer change gcode.
This is useful for lithophane auto change colors.
Cmd: --custom-gcode custom_gcode_toolchange.json

Examples of the input json file can be found in the jira.

Jira: STUDIO-4070

Change-Id: I5beb5ff7d6d81028e95013e79f955e498cd3ba30
2023-11-01 09:11:19 +08:00
Arthur 5c3102c241 ENH: show support_interface_bottom_layers in advanced mode
Jira: STUDIO-4236
Change-Id: I71a2d8c46e588651781728307bd56bbca0ba9e15
2023-11-01 09:11:19 +08:00
Arthur a401ad6045 FIX: do not show "Fill bed" option for unprintable objects
Jira: STUDIO-4169
Change-Id: Ia5bb727fa71b99553d0f7365aecf182b0f3cfc34
2023-11-01 09:11:19 +08:00
Arthur faeb95d59d ENH: smooth 6 times by 1 click of "smooth" button
In adaptive layer height, smoothing 1 time is not usable.
There'll be layer lines at the layer height change boundaries.

Change-Id: I84a8b69744db4936062d631864836f0a8cd99cf6
(cherry picked from commit ca77408f38c9a57bee4ab8ee4989024f7f105317)
2023-11-01 09:11:19 +08:00
Arthur 4e15942ba8 FIX: differnt_support_interface_filament was wrong
This bug will cause a gap between support base and interface in Snug mode.

Jira: STUDIO-4067

Change-Id: Ife4d1fc3652803e9d41bb49fddf126cb05798ae5
2023-11-01 09:11:19 +08:00
Arthur 7e70e071e9 FIX: loading stl with NaN points crashes
Avoid loading NaN points.

Jira: STUDIO-3889
Change-Id: I8c00f24e0ae1ba3b637e5d9bb13de93b1b4e77ba
(cherry picked from commit 0d244c7f65b913922ca4fad59d93fd80725f2e49)
2023-11-01 09:11:19 +08:00
Arthur edcdad162e 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
2023-11-01 09:11:19 +08:00
Arthur fdbe35b619 ENH: add placeholder first_layer_center_no_wipe_tower
This placeholder can be used for smooth timelapse of i3 type printers.

Change-Id: I953a437a7733835d850812565ff5f31b83292912
2023-11-01 09:11:19 +08:00
Arthur e88550b206 FIX: unify cli and GUI auto-arrange
Make sure cli uses same params as GUI's auto-arrange.
Previously cli uses wrong skirt_distance.

Jira: BLPIOT-255
Change-Id: Iaccfb76acf7413ec614fff006feb770dcd6783cf
2023-11-01 09:11:19 +08:00
Arthur 25f9cccf2a 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
2023-11-01 09:11:19 +08:00
Arthur ade248cc2f 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-11-01 09:11:19 +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