Commit Graph

160 Commits

Author SHA1 Message Date
lane.wei 72989c8a2f ENH: CLI: skip layer height limit validate when slicing for existing models
JIRA: no jira
Change-Id: I1444a28b500ca7d08ed2606eecfa5cfaf261105e
2023-11-22 08:23:38 +08:00
lane.wei 6412bb9b4d ENH: CLI: support load_assemble_list
JIRA: STUDIO-4848
Change-Id: Ife11533740988331ea71eac86c370e625970cb8b
2023-11-22 08:23:38 +08:00
lane.wei ccdb03c873 ENH: CLI: clear custom gcodes when skip_modified_gcodes
JIRA: STUDIO-5112
Change-Id: I2e7346d2ac57519029a4e80e5492c34d3d91ed77
2023-11-09 10:09:10 +08:00
lane.wei 48644e1fb4 ENH: CLI: add some params to support more functions
1. uptodate_filaments to support update the original filaments to newest config
2. allow_rotations/avoid_extrusion_cali_region for auto-arrange
3. skip_modified_gcodes to support skip modified gcodes

JIRA: STUDIO-5112
Change-Id: I95c09af1b5462cce3bf27aea32228d6d1d1d201d
2023-11-09 10:09:10 +08:00
lane.wei 6f8f0b1b7a ENH: CLI: disable wipetower when all filaments mapped to one
JIRA: STUDIO-4899
Change-Id: I8dc8883fc5a70089d3e21dc82faf04f12532092a
(cherry picked from commit 7e21f8ef84e7d96ed2668cd8a4f67e6376e96c74)
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
lane.wei abd220dadd ENH: CLI: refine some texts for slicing errors
JIRA: no jira
Change-Id: I373723290777b8097eb70bce7c26463044c9aaf9
2023-11-09 10:09:10 +08:00
lane.wei 1a8bd061d1 ENH: CLI: add logic to check the max/min layer height
JIRA: no jira
Change-Id: I71ae31b6cb3be9c732ffc1eda4e67092eb5b8666
(cherry picked from commit d5170e15613233685d4806af500df605c73b8525)
2023-11-09 10:09:10 +08:00
Stone Li e76f7ae0c9 NEW: add model_id in sliced_info.config
JIRA: STUDIO-4824

add model_id to each plate config

Change-Id: Icdc234fe3b17493016037128f1c187b14014276a
Signed-off-by: Stone Li <stone.li@bambulab.com>
2023-11-09 10:09:10 +08:00
lane.wei c6af13a612 ENH: CLI: retry pipes no matter which error found
JIRA: no jira
Change-Id: Ic49dd1a55e83485eb72b5be97ba9509261f6c133
2023-11-09 10:09:10 +08:00
lane.wei 4d1eae0046 ENH: CLI: return error when the printable size exceeds the default one
also refine some logs

JIRA: XXXX
Change-Id: Ibec090e98b8d93b1396e691ecff97ced13b1d8c8
2023-11-01 09:33:21 +08:00
lane.wei 5f5fde3651 ENH: CLI: add time estimation for non-cache slicing
JIRA: XXXX
Change-Id: Ifed2d70e8d6355087694df96e413cdbcf792d6d9
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
lane.wei caedbfd24c FIX: CLI: fix the wipe tower depth not correct issue
estimate the wipe tower depth using more logic
JIRA: MAK-XXXX

Change-Id: Ieb66ebb7e75b20e61b7c0cb8e60496287434d31b
(cherry picked from commit 6b4d9d054fa52f7ff8ffd16461f686f54cab97fb)
2023-11-01 09:33:21 +08:00
lane.wei 35b15a1aa1 ENH: CLI: refine some logs
JIRA: STUDIO-XXXX
Change-Id: Ic61f7fbffabc28a76ac186c33182b9284c1c2da1
2023-11-01 09:33:21 +08:00
lane.wei b0c9b14b0d ENH: CLI: add more logic to improve slicing
1. only report slicing error when no-check not set
2. skip duplicate when under spiral_mode with by-layer print

JIRA: STUDIO-XXX
Change-Id: I03bf7f45b4cc43dcc1fd2ffb6b53321fe3324dad
(cherry picked from commit 083684c01194787f54fb88787b76c1e16179c6de)
2023-11-01 09:33:21 +08:00
lane.wei 9de7561155 FIX: CLI: refine some logic
1. sometimes the pipe open failed,
add some retry logic;
2. return the reason when no-check=1 while validate fail;
3. return an error when duplicate object under spiral-mode when not using
   by-object print sequence

JIRA: MAK-xxxx
Change-Id: I3792d89dbbe560a8febe0f0154bccb8f573959a5
2023-11-01 09:33:21 +08:00
lane.wei ec8d681981 ENH: 3mf: improve some logic
1. skip file including /../
2. use snprintf instead of sprintf

JIRA: jira-xxxx
Change-Id: I6695dc11f9f4af4318038e6db5c219fd14e73aef
2023-11-01 09:33:21 +08:00
shuai.liu a939c6e434 ENH: auto adapt distance in arrangement
JIRA: STUDIO-4408
1. if min_obj_distance is 0, use auto mode
2. normal support, 5mm gap, tree support, 22mm gap, no support, 0.1mm
   gap

Change-Id: I906ccf267bef1f33a946572614d658fd50cfcda3
(cherry picked from commit 771efc935da625d8faa4cc5b77fedc5055f93c6c)
2023-11-01 09:33:21 +08:00
lane.wei 1340eccb87 FIX: CLI: disable wipe tower under sequent-print mode
JIRA: STUDIO-4409
Change-Id: I7a3552180a31613244afeebdfcd9bc6b4d8b13b5
2023-11-01 09:33:21 +08:00
lane.wei ae7b205e10 ENH: 3mf: refine the rels to correct link
JIRA: STUDIO-4231
Change-Id: I02ff6343124ef2ea3642e5799469249538a4b97f
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
lane.wei 2a6bb02d60 FIX: CLI: fix the thumbnail color not correct issue
JIRA: MAK-1812
Change-Id: I61832ffeea75b9423d85ccd81d5602a3e7d288b8
2023-11-01 09:11:19 +08:00
lane.wei c2f8993828 ENH: CLI: add support of rotate
JIRA: STUDIO-4183
Change-Id: I091cc3142ce867d2ac75ba27b3cb2e4e569c9681
2023-11-01 09:11:19 +08:00
lane.wei 5001a02409 FIX: CLI: fix the compiling issue under windows
JIRA: STUDIO-4217
Change-Id: Id937f921aa6d1f5cbc2300ba7395df71c3cd147a
2023-11-01 09:11:19 +08:00
lane.wei 60333adc96 ENH: CLI: optimize the logic for message
1. treat the critical slicing warnings as error
2. save more information into result
including the triangle counts and the non-critical warnings

JIRA: STUDIO-4217

Change-Id: I25b746d06c9a1ef2d642c67852577982a2986322
2023-11-01 09:11:19 +08:00
manch1n 2a79af5729 NEW: add align_to_y_axis option for auto-arrange
1. Add align_to_y_axis option for auto-arrange.
   This is useful for auto-arranging of i3 type printers.
2. Change default value of align_to_origin to true when switching
   from non-i3 printers to i3 printers.

JIRA: STUDIO-2583

Change-Id: I7dabab846022a0da030a9fec060a60a4207537a0
(cherry picked from commit 9c549c18ecc1f513644e1bc4a60d6936721a13ac)
2023-11-01 09:11:19 +08:00
lane.wei 8bf9c7a5b4 FIX: CLI: fix the wipetower wrongly generated issue
JIRA: MAK-xxx
Change-Id: I6d6af58c7106df4dacb51e98dd607ff77c058c13
(cherry picked from commit 080c6ced15bf9eb6e490fbd3616667d66ecbff86)
2023-11-01 09:11:19 +08:00
lane.wei 9755a65289 FIX: CLI: fix the brim related issues
1. move the global functions to Model
2. set brim automation paremeters before process
JIRA: STUDIO-4208

Change-Id: I3f75175ec74d214ca2a6d5f3ade56d08e0ecd4f3
2023-11-01 09:11:19 +08:00
lane.wei 7be9b591b8 ENH: CLI: add the re-arrange logic when the printer type change with different extruder_clearances
JIRA: STUDIO-4214

Change-Id: I6a8862b4da9812d38522fba2235d5e02f421878b
2023-11-01 09:11:19 +08:00
lane.wei 342b8d7338 FIX: CLI: fix some issues
1. JIRA: MAK-1727, color of thumbnail not correct
2. JIRA: MAK-1723, model upload outside issue

Change-Id: I1754d730021c9df8044248e931023899d410d8de
2023-11-01 09:11:19 +08:00
lane.wei c8651b43f1 FIX: CLI: fix a wipe tower position issue
when arrange failed and restore to original
we will compute the position of wipe tower again
we should skip this case
JIRA: STUDIO-4048

Change-Id: I19edc36dfa7ec5a9f6b5ba3a1c1e0767361b3e33
2023-11-01 09:11:19 +08:00
lane.wei b94dee2460 ENH: CLI: add a flag to allow minimum size save
JIRA: STUDIO-3752
Change-Id: I0277c34d108185d10130630a72811122f8ee9ae2
2023-11-01 09:11:19 +08:00
lane.wei 6ae7228f9e FIX: CLI: fix serveral issues of CLI
1. duplicate id issue, MAK-1702
2. shrink issue, STUDIO-4048

Change-Id: Ie952f1ecc5267a60f0ce3220c4a5ea31cf7199ff
2023-11-01 09:11:19 +08:00
lane.wei ecaa5fa2e6 FIX: CLI: add logic to allow use cached_data while printer size change
when print profile created on small printers
the cached data should also be used
JIRA: MAK-1658

Change-Id: I31e801bd3116838baaeaef44f4aa6d53d65aa058
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
lane.wei 5efc5ba6ea FIX: CLI: fix serveral bugs
1. bed index not correct issue
2. pick thumbnail not correct when repetitions

Change-Id: Ie846432e29c596f95da30c7df199c252873504f3
2023-11-01 09:11:19 +08:00
lane.wei 7c905f93c3 ENH: CLI: add time record for prepare/slice/export
Change-Id: I4004a9af3823223c885f428f5a2f180f9d9074e5
2023-11-01 09:11:19 +08:00
lane.wei ddb20e0b13 ENH: CLI: add more logic to support repetitions
1. add identify_id for those clone objects
2. ensure succuss when copy multiple objects

Change-Id: I8a92f485442577ce70b1f5c46449dae1ae07b713
2023-11-01 09:11:19 +08:00
lane.wei c31ff2d43c ENH: CLI: support system preset passed to CLI
Change-Id: I933d49e677c8610c3fe90bbe7d455f94d950ae96
2023-11-01 09:11:19 +08:00
maosheng.wei d980aba29d FIX: [STUDIO-3531] Differentiation of Memory Exhaustion
Change-Id: I009b78f1f3d4339745e44208f10b91083efaf744
2023-11-01 09:11:19 +08:00
lane.wei 85e2868110 FIX: CLI: fix a compatible check issue for old printer and process
Change-Id: I74c75984d1abd0d1c52d8d4a19b6410c0041f280
2023-07-31 14:29:15 +08:00
Vojtech Bubnik 153c9517ce FIX: fix the crash issue #1944 caused by wronog thread name in some
corner cases

this patch is cherry-picked from PrusaSlicer's 84722876012ca310e29b291e10fef9d18ae26cea
thanks to 'Vojtech Bubnik' for the fix

Implementing a test whether the current thread is the main (UI) thread
and using it on AppConfig::save() to assert if save is called
from a worker thread.
The old assert was using thread names, which did not always work
on Windows.
Fixes #7839 #9178 #9370 #9420
2023-07-31 14:29:15 +08:00
lane.wei 0c45cac1a8 ENH: CLI: refine some logic of repetions and load configs
1. when object skipped, it should not be duplicated
it is set to unprintable before arrange
and the plate needs to be considered a skipped plate also
2. skip the wipe tower if not multi-color after skip
3. load default configs if there are no configs loaded
4. refine the result.json to include key_values

Change-Id: I8c132cabcdd78756673fe900267a226a41ae1b4d
2023-07-31 14:29:15 +08:00
lane.wei 8c29a57be4 ENH: CLI: add logic of uptodate_settings
1. load the updated machine/process config from uptodate_settings
2. if don't have uptodate_settings, keep the logic as before, use from local

Change-Id: I3520469ab6094f03895b8e0e4e84c7549190f244
2023-07-31 14:29:15 +08:00
lane.wei 99bbce0f0f ENH: CLI: add the repetitions logic
support to duplicate object in a plate

Change-Id: I6bc964a2b9660adf3be7919f230524c979da9d50
2023-07-31 14:29:15 +08:00
lane.wei 387f8838f2 ENH: CLI: add logic to translate objects between different bed size
1. from small bed to larger one, auto translate the models based on center;
2. from large bed to smaller one, report an error

Change-Id: I7b7fac1e370ff4daca82c4f36977a86fca268625
2023-07-31 14:29:15 +08:00
lane.wei bb4f425027 ENH: add the error codes return logic
1. write a json to the outputdir
2. including message/error code/plate id

Change-Id: If2a13a89d34982a86102162c9c968cdf60702f19
2023-07-31 14:29:15 +08:00
lane.wei 7c76cf99b9 ENH: CLI: add option repetitions for future use
Change-Id: I97bdc04b542f9725a047348450c2c677d8807427
(cherry picked from commit d5a20f689cade6cc5b28bbec70931c6d122ef6f4)
2023-07-07 17:52:43 +08:00
lane.wei c93f3f0a6b FIX: fix a config loading issue under CLI
wrongly use machine config as process config

Change-Id: I63a7757ca3b8f178ca424624d874f3472b694a0e
(cherry picked from commit 5fe90491d182fe92c48bd35b5c527d0be98120d8)
2023-07-07 17:52:43 +08:00
lane.wei d385384907 ENH: skip_objects: optimize the label_id logic in ModelInstance
Change-Id: Id20fe9b084426036d6cf4f54859655579bec7197
(cherry picked from commit ebb5343eef6aea9e54d11f3d6b98cf11ff941aa5)
2023-07-07 17:52:43 +08:00
lane.wei ef06dfc931 ENH: object_skip: use identify_id for cli when skipping object
Change-Id: Ibbe3262b4817f82b7ac824ba6d4b3efd7f0ed886
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
lane.wei b9afbd92c3 ENH: CLI: add logic to recompute flush volume matrix for mmu
Change-Id: Id9ce0cc054492762da31d2bd9dea53c73421d972
2023-07-07 17:29:08 +08:00
lane.wei c7775ace16 ENH: skip_objects: add the skipped_objects into sliced_info
Change-Id: I2a04aa00503a04cfe3e9d680ceabdb4947142d34
(cherry picked from commit ca548d69daa0bc2970efc080fcf1537e6babb278)
2023-07-07 17:29:08 +08:00
lane.wei 5ddb47a8cd ENH: CLI: output stl files into a subdirectory
Change-Id: I3d1a3685713a498d7d66e9d5cbabf90aaa3ffe43
(cherry picked from commit bcb352f48995f7c3488bdf8d5636499fcd2b714c)
2023-07-07 17:29:08 +08:00
lane.wei 535db60e70 ENH: CLI: check the compatability when not change the settings
Change-Id: I977e98fcdd8c6a84ad68d0a1cc6f8eef5075b537
(cherry picked from commit ce17360aba5a463cdec788e7cb0897e33dfa1042)
2023-07-07 17:29:08 +08:00
lane.wei 6968eb5d82 ENH: support export multiple model objects as stl under CLI
Change-Id: Ib6cb68624d111971dc763901f3a8414673d9a546
2023-07-07 17:29:08 +08:00
maosheng.wei f1a99020f6 FIX: Direct crash when bad_alloc
Change-Id: If8e26218efa1750a7cbdced4f4b7db19d3a14db0
2023-07-07 17:25:51 +08:00
lane.wei 84b89094b2 ENH: cli: refine the progress logic
update 1% at the very beginning

Change-Id: I85e19ad5c8ed4b8465510ffb3db4fac12c0f20b9
(cherry picked from commit 5d4ca3be8e6af2c66ecd5d51fead3e7ca5ffa7f5)
2023-07-07 17:25:51 +08:00
lane.wei 2c620aa855 ENH: debug: set the crash dump to SetUnhandledExceptionFilter
AddVectoredExceptionHandler is too heavy now

Change-Id: I354a023723d16cfa5d20c282bb6d98773dcde74f
(cherry picked from commit c213904026960ebbc6621aa5413ad944af13cb97)
2023-07-07 17:25:51 +08:00
lane.wei 33ae019a95 ENH: CLI: don't popup dialog when loading shader failed
STUDIO-2855(github issue-1703)

Change-Id: I46476e94951aa2337fee3439159e777773366c59
2023-07-07 17:25:51 +08:00
lane.wei 53dc1694a3 FIX: fix the cached id related issue after 3mf format adjust
Change-Id: Ie3da4a672d166f0cf23efc29faf02de633b3484e
(cherry picked from commit 842fe9310c0cdb18e7a491dae2c8ebc7a5753136)
2023-07-07 17:25:51 +08:00
lane.wei b2d82e7bbb ENH: thumbnail: regenerate thumbnail for old 3mfs in cli
Change-Id: Ia420b4c6aee072eb2a542dff574260c40de47f7d
2023-04-17 15:39:02 +08:00
lane.wei 98f3aaa4bf ENH: CLI: add the gcode path check logic for cli
Change-Id: I424a93d9ca945598da861a1905da07ae14663157
2023-04-17 15:39:02 +08:00
lane.wei 90760e0d07 ENH: refine the thumbnail rendering
1. add specific shader for thumbnail
2. do not render the negative-z part
3. fix the sinking related issue under cli

Change-Id: Ia59083437544c1c0bd924c811274ccbb137e9eb7
2023-04-17 15:39:02 +08:00
lane.wei 4e5ed34fde ENH: CLI: set the default pipe to null to remove warning
Change-Id: I9e2cbb3bba02892a6a97a6a3e0bd9b0f729d202a
(cherry picked from commit 1b94c924919c60231e9a87717d0b51204e37dcbc)
2023-04-17 15:39:02 +08:00
lane.wei b30644c84d ENH: CLI: add the cache logic of brim data
1. cache the first layer group cache data for brim
2. fix some crash under debug mode when app exits

Change-Id: I81d716564af414353e9dfeed42e5f4eef08b2d6f
(cherry picked from commit a6ecdaed6f63f1c5c41fd343f72165fe27fda9d3)
2023-04-17 15:39:02 +08:00
lane.wei cf6077fe7d FIX: CLI: fix the no-check not work issue
1. no-check not work
2. refine the progress updating logic

Change-Id: I8acf18d8ab8958310fa3375de50cc9692b3408c1
2023-04-17 15:39:02 +08:00
lane.wei e2f96590cf ENH: CLI: add normative_check logic
Change-Id: I7a02fefb2a161b27a35ad73102d8c57dbffa7c6b
(cherry picked from commit 3de468b341e95336611ff527453160131ec04b65)
2023-04-17 15:39:02 +08:00
salt.wei e2d6ed99d1 ENH: add post_process back
Signed-off-by: salt.wei <salt.wei@bambulab.com>
Change-Id: I05fc655080f3888255297d689552de84a81ed849
2023-04-17 15:39:02 +08:00
miaoxin d43c7d5c92 NEW: add gcode conflict checker
1. add gcode conflict checker
2. add a new command line option: --no_check. When it's provided, gcode
   conflict check is skipped.

Change-Id: I6feafca8c5fa6c3c5eae1f0e541ce59d2f03dedf
(cherry picked from commit 5a39afb64e826a960d9673dcada89d02d62b3911)
2023-04-17 15:39:02 +08:00
lane.wei c65a5f8bf5 ENH: thumbnail: add top_view thumbnails and picking thumbnails
1. add top view thumbnail for each plate
2. add picking thumbnails for each plate
3. save model object id for picking

Change-Id: I1d7f6ade22726ff12c282cb12e4a78e6b444a070
2023-04-17 15:39:02 +08:00
lane.wei 4651927869 FIX: CLI: fix the filament_type not correct issue for support-w
1. filament_type not correct in slicedinfo
2. missing serveral information in bbox

Change-Id: I0393ebc887591548a5a1d883661b28876b9ede6e
2023-04-17 15:39:02 +08:00
lane.wei 23db223364 ENH: CLI: adjust the thumbnail size to 512
Change-Id: I79c8d584b23e7d4d9c27ce1859b322d9fddebc90
2023-04-17 15:39:02 +08:00
lane.wei 088f2a4ace ENH: cli: add pre-check logic when slicing all
Change-Id: Ib13a5dd11175c0835b7a1362317941aa6a04474b
(cherry picked from commit a6f7ad231e5694ce12f9fd34518425f31c3bb5bd)
2023-04-17 15:39:02 +08:00
lane.wei 662453f419 ENH: add the time limit and triangle limit for cli slicing
Change-Id: I80d6e58dca6648427dbe4cfbc01eabdedfa79f52
2023-04-17 15:39:02 +08:00
lane.wei 6fab32c98b ENH: backup: add logic to cleanup directory under cli
Change-Id: I7a846e362f45d1c7e34bef59be3b2c312799d0d2
2023-04-17 15:39:02 +08:00
lane.wei e20adc16dc FIX: fix the bed shape not correct issue when loading old 3mf
Change-Id: I924c47ea4a1f21b5e9854abdcedfe8b689ddcb67
2023-02-28 18:44:28 +08:00
lane.wei 5806263731 FIX: cli: fix a crash caused by log
Change-Id: I3dad5a47241ff57818e68fda58d7f70f497bf5e1
2023-02-24 17:44:15 +08:00
tao.jin e422797292 ENH: create new page on click of privacy policy
Change-Id: I20026514c1e880986f24716c9f473507f608cd67
2023-02-22 20:09:17 +08:00
lane.wei f3af4558ce ENH: translate old models to correct position
Correct the position of some old models

Change-Id: I5105dacff5d6b2895507fb57d77197334a651b47
2023-02-22 20:09:17 +08:00
lane.wei 9dceb42ba3 ENH: validate the config from 3mf and give some hints when there are errors
Change-Id: Ic25e5426e4e85a35a6a2413109f47b653955ec78
2023-02-22 20:09:17 +08:00
lane.wei 84eebfc729 ENH: refine log level for cli
Change-Id: I781319ae85bff77f58931689f589b53e0e778389
2023-02-22 20:09:17 +08:00
Joshua Wise 43a7f88c6c Add support for Bambu Lab X1 series live video stream on Linux.
wxWidgets on Linux uses GStreamer as its back-end for wxMediaCtrl, which
doesn't have a bambu: URI handler.  On Windows, this is handled by a Windows
Media subsystem plugin, and on Mac, this is handled with a BambuPlayer
class.  Luckily, the libBambuSource.so binary that is distributed with the
network plugin package already contains support for receiving h.264 data
from the network, and the API is the same as is used by the tiny
bambusource.exe binary on Windows; we glue this into a GStreamer source
plugin that registers a URI handler for bambu:.

To make this work, we make a few additional changes elsewhere.  GStreamer
seems to have trouble rendering an Xv overlay onto a 32bpp X visual, but
Bambu Slicer seems to request a 32bpp visual for some background
transparency in the Notebook; it doesn't seem to use it in an interesting
way on Linux, though, so we remove that request for transparency to allow
Bambu Studio to render to a 24bpp visual.  The media controller
infrastructure also makes a few assumptions about when sizing information
can be queried from a wxMediaCtrl backend that do not hold true on Linux; we
either fix those assumptions, or fake them out, as needed.  We also make a
few changes needed to successfully compile C.

This has only been tested with the GStreamer backend for wxWidgets --
notably, not the GStreamer-play backend (these are, astonishingly, two
different things!).  If you find that this seems not to work, consider
*un*installing the libgstreamer-plugins-bad1.0-dev package and then
rebuilding wxWidgets.
2023-01-12 14:56:04 +08:00
lane.wei 57a57fc429 FIX: bed_type: fix the bed_type issue when already set in plate
Change-Id: Ieb9c432051aeaf1dbb94c75f95974ff41c0713a0
(cherry picked from commit 73de2ea2cfcfa6b09373f4faa2d84f0b6e2f4ffc)
2023-01-10 19:08:26 +08:00
lane.wei 8183b7d333 ENH: debug: when not release to public, use vectored exception handler
Change-Id: I2f80f07e035d6a6652574470ac13631baba7cf7d
2023-01-10 19:08:26 +08:00
lane.wei 8375c73ac9 ENH: CLI: some refines on compatible logic
1. export compatible related values to 3mf
2. process compatible related values when loading

Change-Id: Ib7ed3d165cda5d62e0074652d474567494141631
(cherry picked from commit 989fe6439d573457fa78afc5376d04d3120dbbfd)
2022-12-15 04:38:15 -05:00
lane.wei c3abc64b61 ENH: slicing: add cache data load/export for slicing
Change-Id: I88b7c79b6f79ec6bed0f829316b67310cac99b44
(cherry picked from commit 67c1d2e8dd459cc4450ce580632f01e25db038ac)
2022-12-15 04:38:15 -05:00
lane.wei 776137aaaf ENH: CLI: support filament mapping
support null filament when mapping

Change-Id: I9384fc5a8e78aa8467eef1610d49b92d87512720
2022-12-15 04:38:15 -05:00
lane.wei 08494b5f6f ENH: 3mf_importer: optimize the load speed of 3mf
1. parallel load object files
2. only load object used by some plate(cli)
3. improve the loading speed when generate objects by using reference

Change-Id: I2719651e715f2e35326e760c4b7cdb3114f54992
2022-12-15 04:33:48 -05:00
lane.wei c431cbf202 ENH: CLI: some refines of slicing
1. add support_used flag in sliced_info
2. use the old thumbnail if no need

Change-Id: I8ad166978fe6f76f86b1ef014945dd70b26a6285
2022-12-15 04:33:48 -05:00
lane.wei 65f2a063b6 ENH: refine multiple plate and CLI logic
1. support bed_type for each plate in CLI
2. don't render the calibration thumbnail under CLI
3. fix the plate box not generated issue
4. refine the slice_all button's status logic: from all slicable to one slicable
5. fix serveral issues in multiple plate's switch and slicing

Change-Id: I6193a799da0367068169ce315d1fcc9098357fd1
2022-12-15 04:33:48 -05:00
lane.wei 8340e1ceec ENH: CLI: add warning message
send the warning message back to caller

Change-Id: Id36edc9537721fb890f2bd4eb8db4fc0670eb97d
2022-12-15 04:33:48 -05:00
lane.wei 4b655f06d4 FIX: fix the total progress not correct issue
Change-Id: I18b9d5034726b45c7331f1dae5e2b24c5e5bd170
(cherry picked from commit ba8c691a2c94f7a2f2ff0ce7f195de20a6c22573)
2022-12-15 04:33:48 -05:00
lane.wei f9793be848 FIX: fix the auxiliaries files not included issue in cli
Change-Id: Iecc18d6013ddc3397b4405a80b24e0630b293fc7
2022-12-15 04:33:48 -05:00
lane.wei 5791ca7e8d ENH: CLI: add total progress of slicing
Change-Id: I05e471aa4cd76642cdd63275620a4b656c8e3327
2022-12-15 04:33:48 -05:00
lane.wei b44f3ae3e6 ENH: CLI: use json insteadof string for progress pipe
Change-Id: I1fdecfa6198d06d0c9745f3cbeb02dece9d8e20f
2022-12-15 04:33:48 -05:00
lane.wei 55f55e3ad9 ENH: CLI: refine logic
1. return error when there is object partly inside the plate;
2. add the status callback for progress indicating
3. add the version in help
4. fix the return state of validation from 1 to -51

Change-Id: I716057bd5b28a4beb2871614b94708a0860af1a2
2022-12-15 04:33:48 -05:00
lane.wei 6edafa8502 ENH: CLI: add error code logic in cli
Change-Id: I4c1aace95218ff3a7a3a37f47b7d0880c9b64451
2022-12-15 04:33:48 -05:00