Merge some features from BS1.9 beta4 (#5181)

* FIX: linux: fix the building issue on Linux Mint 21.3 Virginia

github: https://github.com/bambulab/BambuStudio/issues/3874
author: https://github.com/lucianoloder

Change-Id: Ia3db6923d5dd68dba532d7bdba6f93f73cc51d59

* FIX: auto-arranging incorrect with rotation enabled

auto-arranging incorrect with rotation enabled and the objects already have been rotated.

jira: STUDIO-6022
Change-Id: I349d663efb1fc71367c8a77aa8ed5047a0bf2017
(cherry picked from commit 75fe40257a274ed83886e1ee20ce8dedd0de48f6)

* ENH: update X1C & X1E start gcode

1.Fix fan problem

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I68ee5be78e142e8a2a210a1a70f5663893390610

* ENH: update A series gcode

1. Update A1 series start gcode and change filament gcode
2. Add G2814 command
3. Add multi-filament extrusion compensation and vibration suppression

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I57d2bc8e98d3e547881dc1369c1fb31413c6205d

* FIX: fix some cali problem of P series

jira: none
Change-Id: Id57ea8d65da22ab653cca49509cb923ff065e43f

* FIX: fix can't enter ',' in multiplicator

github: #3805

Change-Id: I6dd70822d1c2e79d66c70514d6dd580ab029c7ea

* calib wizard

* NEW: FlipLines infill

jira:6701

New infill pattern that combine block lines infill and switching layers for smooth transition.

Change-Id: I2608a2d39b14efcdfe9d39a9437280da350b94c0
(cherry picked from commit 8d0a09c8b763dfc924cbba9913c241e6afadbc7f)

* ENH: add nozzle blob detection and air printing detection

jira: new

Change-Id: Ie4a19a7ad7d0b10a021c516cbc3a84b4ae734302

* FIX: Top surface bridging fail on 3DHC & FL infill

Add 45 degree angle offset when processing the bridge.
Need to raise infill_direction to invalidate posPrepareInfill

jira: 6774
Change-Id: I5e6bef3aa814b01c5f30398ac745937a67e3ef4c
(cherry picked from commit 7b12cab10b88f432a11414f8caa1c6427777a1ba)

* FIX: the error display when reset virtual slot

jira: none
Change-Id: I5ae5899baf1bfc2aaadb832083b277855a669fd5

* FIX: Error "Voronoi cell doesn't contain a sourcepoint"

github: 3859
Change-Id: Idca84992bcba5380bfe05e63ac9a5e40419dcfdf

* fix build error

* FIX: CLI: fix the crash issue caused by get_min_flush_volumes

JIRA: no jira
Change-Id: I0d5bfd605e51ebddac8fddc4d83dab5055b0fbf2

* FIX: can't use support filament in gcode.3mf

1. Add total_filament_volumes, directly access it to get used filaments

github:#3865

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I4fae4f1947b4ebd16e394e0f3cf5fb0e9f979717

* ENH: p series support long retraction

1. P series support long retraction in filament
2. Add long retraction params in common.json

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ib94184fa1f0b5ab151360f1f053d8c8ff92e7e18

* ENH::modify some logs level

jira:[for log]

Change-Id: I6a46b8fcd3a030b4b630e800fe9a9ac5c387f117

* NEW: support multi device

JIRA: STUDIO-6072

Change-Id: Ic514c4097767b0a728368c9ea48ee103c031fbb0
Signed-off-by: Stone Li <stone.li@bambulab.com>

* ENH: update A1 series  gcode

1.Update filament change gcode and machine start gcode for
  A1 and A1 mini

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I2f3be3fd89fef21e717a32f2b89985fc046f7f6e

* FIX: always have 0th filament in ams mapping

1. Only set the filament id in map when flush length is not 0

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I6e0aeaf010f6e6dcbdc3bca5c0034aa60750bb67

* ENH: add filament id in slice info

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ic5fe4632bca8acacc9ffd072ee2ed207c1da37aa

* ENH: refine ui for multi machine

JIRA: STUDIO-6819 STUDIO-6824
1. Shrink the Send Print dialog box
2. add input box for flipping panel

Change-Id: I4174c79ecd239c374ee11478951e12be399c57ce

* FIX: fix Issues with sending multiple devices

JIRA: STUDIO-6876

Signed-off-by: Kunlong Ma <kunlong.ma@bambulab.com>
Change-Id: I33c6a932863fc715c3f0eb5dfd4b299f980a4918

* NEW: support hms error code

Change-Id: Ic256a83cf501fb05bb9d3203f3d24cb1d1290fa4

* FIX:fixed some multi job issue

Change-Id: I338078ad8fcf809888db9d8daeb470a9bf4eab46

* NEW:support pin code binding

Change-Id: Ida5d47881fbd83f3ffedc80369cfe377114d7f13

* ENH:add printable check for devices

Change-Id: I672988fa9cfa986d924bfc64331752f4aef68067
(cherry picked from commit 69de9e5b8334ec94eec7fcee31038b8ff42d1d3b)

* FIX: add more fonts

jira: none
Change-Id: I6bafed3563083858f29e92a3d84906a2e53dcb5c
(cherry picked from commit afbea693e807dcc1c406a59aa5376b9ea2a5d606)

* ENH: load more fonts

this feature is according to Prusa by Filip Sykala<filip.sykala@prusa3d.cz>, thanks to Filip Sykala
jira: none
Change-Id: I55e92f184f750c0b93b679d4382aaa5b164ec5c3
(cherry picked from commit d05522c4cc5d7ee4cac42de398b88d347a55f74b)

* ENH: add ProfileDescription for translate

1.Add ProfileDescription.hpp simply for translating

jira:NEW

Signed-off-by: XunZhangBambu <xun.zhang@bambulab.com>
Change-Id: Iaa3ced1edccf67eaeebde35c1e8b36442d2e9a6f

* ENH: Improve CrossHatch transation layers

jira: 6701

Change name from Flippingline to CrossHatch.

Reduce noise, improve speed by 6.5%. Improve transation layers by
gradually increasing rotation angle and overshoot the transation
layer while direction changed.

Change-Id: I17fcc45b409074d121bf5bb5702e15553d925b51

* UP

* ENH: modify the default config for multi-device

JIRA: STUDIO-6072

Change-Id: If6e7582a8274eb5e685b8b8545f6eab5d17de3f5
Signed-off-by: Stone Li <stone.li@bambulab.com>

* ENH: add long retraction for P series

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I6890695b67e674fc5cdc2a208e89bd9e41404213

* FIX: all plates stats data missing issue

jira: new

Change-Id: I137a2b6d69ad08791f5a9a9788653621960dc63f

* ENH:update pre print options

jira:[for multi]

Change-Id: I2e9bb8a09436a71749af98a0bad94e9922f95c81

* FIX:fixed can't popup pinbind win on macos

jira:[STUDIO-6895]

Change-Id: I664bba78cf27420d736b586df19e3c09c6f8ed21

* FIX:fixed the task of padding cannot be cancelled

Change-Id: I401a22118c14ca7601be7a925cfd8e4796dfc1e9

* ENH:Play video after redirecting to device page

jira:[STUDIO-6884]

Change-Id: Ia5e2ac84e3d71baacfcf941b782dab2325f35d54

* FIX: fix ui bug in send multi machine page for mac

JIRA: STUDIO-6882
Incorrect background color when renaming during multi machine printing

Change-Id: I6c551f5023ffe747e7a7e2f5703b0707c9505922

* FIX: Fix some bugs in maintaining the selected status of local tasks

JIRA: STUDIO-6824

Change-Id: I12c4da3fc56ac5077b3ccd7e89a4b57c3675eaf5

* ENH: local task sort by send time by default

JIRA: STUDIO-6885

Change-Id: I03b5881a39ab2e90c5b9cf46052ba465ee707ccc

* FIX: Clicking to continue printing does not take effect in error code

JIRA: STUDIO-6830
Detected an incomplete printing task error pop-up when power outage occurred. Clicking to continue printing did not take effect

Change-Id: Ie85a1602093dabac861cd1f41ea21e1c312c83e9

* ENH: use designTitle when designId > 0

JIRA: STUDIO-6072

Change-Id: I8342df053edeab16f930522e099e2eef91e5c5a4
Signed-off-by: Stone Li <stone.li@bambulab.com>

* NEW:import vertex and mtl color from obj file

Jira: STUDIO-6805

Change-Id: Iaacb13ee2451effdb83e5aba4b7fe1637b7fc95f

* FIX:change the strategy of merge_ka_kd

Upgrade ui, users can directly ok to proceed to the next step
jira: STUDIO-6805

Change-Id: Ia81019c2eacb503666680c0b8583d026baa0134c
(cherry picked from commit 38a2434753c8e3b422267283b16c75f6ad195b14)

* FIX:use default_strategy after modifed cluster number

jira: STUDIO-6915
Change-Id: I4e0c3d62f5a766f73d48d1e06c4364fc6babe1ac

* FIX: the bug of incorrect button without restarting

JIRA: STUDIO-6824
The bug can cause the user to not restart when opening the multi-device option, but the button of send multi-devices appears

Change-Id: I0837fa79ecc1d8ab5ce98273ad134fa2f830421e

* FIX: wrong default value for long retraction

jira:NEW

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: Ifc2ec57a320fdb14e7ca746e5795501ed146ff32

* FIX: error code pop-up window without retry button in some code

JIRA: STUDIO-6922

Change-Id: I67464bebaba4558618301592c455db8824bbfe30

* FIX: air printing and nozzle blob detection issue

jira: STUDIO-6897

Change-Id: I008ddb24b74119d7e4124ae26310b4b86c42a799

* FIX:fix bugs of algo and read quad in obj file

Jira: STUDIO-6805
Change-Id: I6c33e8197225f27dccdfa0681e64d76d1df14f61

* dd

* ENH:Set the default nozzle diameter to 0.4

jira:[for nozzle]

Change-Id: I74a5c9b0460046496b897eae3d9f917ac1b99052

* FIX:fixed backspace error on macos

Change-Id: I76066391783c04857c1a60a6f8438111501b6d7c

* ENH:Subscription list deduplication

jira:[for mulit]

Change-Id: I10e9d849986c9661b587c7b1a509180c2451816e

* ENH:update wiki url for Pin Code

jira:[pin code]

Change-Id: I95faaa396a839b5b159119ef235b650c76706a84

* NEW:add OpenCV.cmake in deps

jira: none
Change-Id: I1ae4a2bd5618e9e620b08a937904d6af5d00bc41

* FIX:cancel obj import restrictions

jira: none
Change-Id: Iaf3e799ca982ad6aeb3ec76e9a416c4c8e4d100c

* NEW:add multiple printer restrictions

jira:[for multiple]

Change-Id: I0bb5a0c1062a543c42f8d67a9347efa358b0864a

* ENH:Added two entrances for adding devices

jira:[multi device]

Change-Id: Ieb6197e067d422979606f93b22b337a2399aec74

* slic3r: Fix wxFont being undefined

[427/494] Building CXX object src/slic3r/CMakeFiles/libslic3r_gui.dir/Utils/FontUtils.cpp.o
FAILED: src/slic3r/CMakeFiles/libslic3r_gui.dir/Utils/FontUtils.cpp.o
/usr/bin/c++ -DBOOST_ATOMIC_NO_LIB -DBOOST_CHRONO_NO_LIB -DBOOST_DATE_TIME_NO_LIB -DBOOST_FILESYSTEM_NO_LIB -DBOOST_IOSTREAMS_NO_LIB -DBOOST_LOCALE_NO_LIB -DBOOST_LOG_NO_LIB -DBOOST_REGEX_NO_LIB -DBOOST_SYSTEM_NO_LIB -DBOOST_THREAD_NO_LIB -DCURL_STATICLIB -DGLEW_STATIC -DLIBNEST2D_GEOMETRIES_libslic3r -DLIBNEST2D_OPTIMIZER_nlopt -DLIBNEST2D_STATIC -DLIBNEST2D_THREADING_tbb -DOPENSSL_CERT_OVERRIDE -DOPENVDB_OPENEXR_STATICLIB -DOPENVDB_STATICLIB -DSLIC3R_CURRENTLY_COMPILING_GUI_MODULE -DSLIC3R_GUI -DTBB_USE_CAPTURED_EXCEPTION=0 -DUNICODE -DUSE_TBB -DWXINTL_NO_GETTEXT_MACRO -D_UNICODE -D__WXGTK3__ -D__WXGTK__ -DwxDEBUG_LEVEL=0 -DwxNO_UNSAFE_WXSTRING_CONV -DwxUSE_UNICODE -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/run/build/BambuStudio/src -I/run/build/BambuStudio/build/src/platform -I/run/build/BambuStudio/src/hidapi/include -I/run/build/BambuStudio/src/slic3r/Utils -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/webp -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/atk-1.0 -I/usr/include/fribidi -I/usr/include/pixman-1 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gio-unix-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/sysprof-6 -I/usr/include/gstreamer-1.0 -I/run/build/BambuStudio/build/src/libslic3r -I/run/build/BambuStudio/deps/build/destdir/usr/local/include/opencascade -I/run/build/BambuStudio/src/libnest2d/include -I/run/build/BambuStudio/src/miniz -I/run/build/BambuStudio/src/glu-libtess/include -I/run/build/BambuStudio/src/clipper2/Clipper2Lib/include -I/run/build/BambuStudio/src/minilzo -isystem /run/build/BambuStudio/src/eigen -isystem /run/build/BambuStudio/src/libigl -isystem /app/lib/wx/include/gtk3-unicode-static-3.1 -isystem /app/include/wx-3.1 -isystem /run/build/BambuStudio/deps/build/destdir/usr/local/include -isystem /run/build/BambuStudio/deps/build/destdir/usr/local/include/opencv4 -isystem /run/build/BambuStudio/deps/build/destdir/usr/local/include/OpenEXR -std=gnu++20 -fext-numeric-literals -Wall -Wno-reorder -pthread -O3 -DNDEBUG -std=gnu++17 -fPIC -fsigned-char -Werror=return-type -Wno-ignored-attributes -Wno-unknown-pragmas -DOPENVDB_ABI_VERSION_NUMBER=8 -MD -MT src/slic3r/CMakeFiles/libslic3r_gui.dir/Utils/FontUtils.cpp.o -MF src/slic3r/CMakeFiles/libslic3r_gui.dir/Utils/FontUtils.cpp.o.d -o src/slic3r/CMakeFiles/libslic3r_gui.dir/Utils/FontUtils.cpp.o -c /run/build/BambuStudio/src/slic3r/Utils/FontUtils.cpp
In file included from /run/build/BambuStudio/src/slic3r/Utils/FontUtils.cpp:1:
/run/build/BambuStudio/src/slic3r/Utils/FontUtils.hpp:51:21: error: ‘wxFont’ does not name a type
   51 | bool can_load(const wxFont &font);
      |                     ^~~~~~

* slic3r: Fix missing BOOST_LOG_TRIVIAL declaration

[427/494] Building CXX object src/slic3r/CMakeFiles/libslic3r_gui.dir/Utils/FontUtils.cpp.o
FAILED: src/slic3r/CMakeFiles/libslic3r_gui.dir/Utils/FontUtils.cpp.o
/usr/bin/c++ -DBOOST_ATOMIC_NO_LIB -DBOOST_CHRONO_NO_LIB -DBOOST_DATE_TIME_NO_LIB -DBOOST_FILESYSTEM_NO_LIB -DBOOST_IOSTREAMS_NO_LIB -DBOOST_LOCALE_NO_LIB -DBOOST_LOG_NO_LIB -DBOOST_REGEX_NO_LIB -DBOOST_SYSTEM_NO_LIB -DBOOST_THREAD_NO_LIB -DCURL_STATICLIB -DGLEW_STATIC -DLIBNEST2D_GEOMETRIES_libslic3r -DLIBNEST2D_OPTIMIZER_nlopt -DLIBNEST2D_STATIC -DLIBNEST2D_THREADING_tbb -DOPENSSL_CERT_OVERRIDE -DOPENVDB_OPENEXR_STATICLIB -DOPENVDB_STATICLIB -DSLIC3R_CURRENTLY_COMPILING_GUI_MODULE -DSLIC3R_GUI -DTBB_USE_CAPTURED_EXCEPTION=0 -DUNICODE -DUSE_TBB -DWXINTL_NO_GETTEXT_MACRO -D_UNICODE -D__WXGTK3__ -D__WXGTK__ -DwxDEBUG_LEVEL=0 -DwxNO_UNSAFE_WXSTRING_CONV -DwxUSE_UNICODE -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/run/build/BambuStudio/src -I/run/build/BambuStudio/build/src/platform -I/run/build/BambuStudio/src/hidapi/include -I/run/build/BambuStudio/src/slic3r/Utils -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/webp -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/atk-1.0 -I/usr/include/fribidi -I/usr/include/pixman-1 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gio-unix-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/sysprof-6 -I/usr/include/gstreamer-1.0 -I/run/build/BambuStudio/build/src/libslic3r -I/run/build/BambuStudio/deps/build/destdir/usr/local/include/opencascade -I/run/build/BambuStudio/src/libnest2d/include -I/run/build/BambuStudio/src/miniz -I/run/build/BambuStudio/src/glu-libtess/include -I/run/build/BambuStudio/src/clipper2/Clipper2Lib/include -I/run/build/BambuStudio/src/minilzo -isystem /run/build/BambuStudio/src/eigen -isystem /run/build/BambuStudio/src/libigl -isystem /app/lib/wx/include/gtk3-unicode-static-3.1 -isystem /app/include/wx-3.1 -isystem /run/build/BambuStudio/deps/build/destdir/usr/local/include -isystem /run/build/BambuStudio/deps/build/destdir/usr/local/include/opencv4 -isystem /run/build/BambuStudio/deps/build/destdir/usr/local/include/OpenEXR -std=gnu++20 -fext-numeric-literals -Wall -Wno-reorder -pthread -O3 -DNDEBUG -std=gnu++17 -fPIC -fsigned-char -Werror=return-type -Wno-ignored-attributes -Wno-unknown-pragmas -DOPENVDB_ABI_VERSION_NUMBER=8 -MD -MT src/slic3r/CMakeFiles/libslic3r_gui.dir/Utils/FontUtils.cpp.o -MF src/slic3r/CMakeFiles/libslic3r_gui.dir/Utils/FontUtils.cpp.o.d -o src/slic3r/CMakeFiles/libslic3r_gui.dir/Utils/FontUtils.cpp.o -c /run/build/BambuStudio/src/slic3r/Utils/FontUtils.cpp
/run/build/BambuStudio/src/slic3r/Utils/FontUtils.cpp: In function ‘std::unique_ptr<Slic3r::FontFile> Slic3r::create_font_file(const char*)’:
/run/build/BambuStudio/src/slic3r/Utils/FontUtils.cpp:127:27: error: ‘error’ was not declared in this scope; did you mean ‘perror’?
  127 |         BOOST_LOG_TRIVIAL(error) << "Couldn't open " << file_path << " for reading.";
      |                           ^~~~~
      |                           perror

[447/494] Building CXX object src/slic3r/CMakeFiles/libslic3r_gui.dir/GUI/TaskManager.cpp.o
FAILED: src/slic3r/CMakeFiles/libslic3r_gui.dir/GUI/TaskManager.cpp.o
/usr/bin/c++ -DBOOST_ATOMIC_NO_LIB -DBOOST_CHRONO_NO_LIB -DBOOST_DATE_TIME_NO_LIB -DBOOST_FILESYSTEM_NO_LIB -DBOOST_IOSTREAMS_NO_LIB -DBOOST_LOCALE_NO_LIB -DBOOST_LOG_NO_LIB -DBOOST_REGEX_NO_LIB -DBOOST_SYSTEM_NO_LIB -DBOOST_THREAD_NO_LIB -DCURL_STATICLIB -DGLEW_STATIC -DLIBNEST2D_GEOMETRIES_libslic3r -DLIBNEST2D_OPTIMIZER_nlopt -DLIBNEST2D_STATIC -DLIBNEST2D_THREADING_tbb -DOPENSSL_CERT_OVERRIDE -DOPENVDB_OPENEXR_STATICLIB -DOPENVDB_STATICLIB -DSLIC3R_CURRENTLY_COMPILING_GUI_MODULE -DSLIC3R_GUI -DTBB_USE_CAPTURED_EXCEPTION=0 -DUNICODE -DUSE_TBB -DWXINTL_NO_GETTEXT_MACRO -D_UNICODE -D__WXGTK3__ -D__WXGTK__ -DwxDEBUG_LEVEL=0 -DwxNO_UNSAFE_WXSTRING_CONV -DwxUSE_UNICODE -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/run/build/BambuStudio/src -I/run/build/BambuStudio/build/src/platform -I/run/build/BambuStudio/src/hidapi/include -I/run/build/BambuStudio/src/slic3r/Utils -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/webp -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/atk-1.0 -I/usr/include/fribidi -I/usr/include/pixman-1 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gio-unix-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/sysprof-6 -I/usr/include/gstreamer-1.0 -I/run/build/BambuStudio/build/src/libslic3r -I/run/build/BambuStudio/deps/build/destdir/usr/local/include/opencascade -I/run/build/BambuStudio/src/libnest2d/include -I/run/build/BambuStudio/src/miniz -I/run/build/BambuStudio/src/glu-libtess/include -I/run/build/BambuStudio/src/clipper2/Clipper2Lib/include -I/run/build/BambuStudio/src/minilzo -isystem /run/build/BambuStudio/src/eigen -isystem /run/build/BambuStudio/src/libigl -isystem /app/lib/wx/include/gtk3-unicode-static-3.1 -isystem /app/include/wx-3.1 -isystem /run/build/BambuStudio/deps/build/destdir/usr/local/include -isystem /run/build/BambuStudio/deps/build/destdir/usr/local/include/opencv4 -isystem /run/build/BambuStudio/deps/build/destdir/usr/local/include/OpenEXR -std=gnu++20 -fext-numeric-literals -Wall -Wno-reorder -pthread -O3 -DNDEBUG -std=gnu++17 -fPIC -fsigned-char -Werror=return-type -Wno-ignored-attributes -Wno-unknown-pragmas -DOPENVDB_ABI_VERSION_NUMBER=8 -MD -MT src/slic3r/CMakeFiles/libslic3r_gui.dir/GUI/TaskManager.cpp.o -MF src/slic3r/CMakeFiles/libslic3r_gui.dir/GUI/TaskManager.cpp.o.d -o src/slic3r/CMakeFiles/libslic3r_gui.dir/GUI/TaskManager.cpp.o -c /run/build/BambuStudio/src/slic3r/GUI/TaskManager.cpp
In file included from /run/build/BambuStudio/src/slic3r/GUI/TaskManager.cpp:1:
/run/build/BambuStudio/src/slic3r/GUI/TaskManager.hpp: In member function ‘void Slic3r::TaskStateInfo::set_state(Slic3r::TaskState)’:
/run/build/BambuStudio/src/slic3r/GUI/TaskManager.hpp:40:9: error: ‘BOOST_LOG_TRIVIAL’ was not declared in this scope
   40 |         BOOST_LOG_TRIVIAL(trace) << "TaskStateInfo set state = " << get_task_state_enum_str(ts);
      |         ^~~~~~~~~~~~~~~~~

* fix OpenCV

* wip - build break

* fix build error wip

* ENH: support preset description(tooltip)

Change-Id: Iff005baac4974c538d1109fb0ba1df20b04a8f69
Jira: STUDIO-5754

* fix more build errors

* Revert "ENH: load more fonts"

This reverts commit 32b6fd199a.

* change colors

* misc fixes

* restore export gcode btn

---------

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Signed-off-by: Stone Li <stone.li@bambulab.com>
Signed-off-by: Kunlong Ma <kunlong.ma@bambulab.com>
Signed-off-by: XunZhangBambu <xun.zhang@bambulab.com>
Co-authored-by: lane.wei <lane.wei@bambulab.com>
Co-authored-by: Arthur <arthur.tang@bambulab.com>
Co-authored-by: xun.zhang <xun.zhang@bambulab.com>
Co-authored-by: zhimin.zeng <zhimin.zeng@bambulab.com>
Co-authored-by: Kunlong Ma <kunlong.ma@bambulab.com>
Co-authored-by: jianjia.ma <jianjia.ma@bambulab.com>
Co-authored-by: liz.li <liz.li@bambulab.com>
Co-authored-by: tao wang <tao.wang@bambulab.com>
Co-authored-by: Stone Li <stone.li@bambulab.com>
Co-authored-by: zhou.xu <zhou.xu@bambulab.com>
Co-authored-by: Bastien Nocera <hadess@hadess.net>
Co-authored-by: chunmao.guo <chunmao.guo@bambulab.com>
This commit is contained in:
SoftFever 2024-04-28 22:58:47 +08:00 committed by GitHub
parent 78af750ed9
commit 226450ea6a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
177 changed files with 24424 additions and 4256 deletions

View file

@ -5,7 +5,7 @@ export ROOT=$(dirname $(readlink -f ${0}))
set -e # exit on first error set -e # exit on first error
function check_available_memory_and_disk() { function check_available_memory_and_disk() {
FREE_MEM_GB=$(free -g -t | grep 'Mem:' | rev | cut -d" " -f1 | rev) FREE_MEM_GB=$(free -g -t | grep 'Mem' | rev | cut -d" " -f1 | rev)
MIN_MEM_GB=10 MIN_MEM_GB=10
FREE_DISK_KB=$(df -k . | tail -1 | awk '{print $4}') FREE_DISK_KB=$(df -k . | tail -1 | awk '{print $4}')

2
deps/CMakeLists.txt vendored
View file

@ -253,6 +253,7 @@ include(JPEG/JPEG.cmake)
include(TIFF/TIFF.cmake) include(TIFF/TIFF.cmake)
include(wxWidgets/wxWidgets.cmake) include(wxWidgets/wxWidgets.cmake)
include(OCCT/OCCT.cmake) include(OCCT/OCCT.cmake)
include(OpenCV/OpenCV.cmake)
include(FREETYPE/FREETYPE.cmake) include(FREETYPE/FREETYPE.cmake)
set(_dep_list set(_dep_list
@ -264,6 +265,7 @@ set(_dep_list
dep_NLopt dep_NLopt
dep_OpenVDB dep_OpenVDB
dep_OpenCSG dep_OpenCSG
dep_OpenCV
dep_CGAL dep_CGAL
dep_OpenSSL dep_OpenSSL
dep_GLFW dep_GLFW

72
deps/OpenCV/OpenCV.cmake vendored Normal file
View file

@ -0,0 +1,72 @@
if (MSVC)
set(_use_IPP "-DWITH_IPP=ON")
else ()
set(_use_IPP "-DWITH_IPP=OFF")
endif ()
orcaslicer_add_cmake_project(OpenCV
URL https://github.com/opencv/opencv/archive/refs/tags/4.6.0.tar.gz
URL_HASH SHA256=1ec1cba65f9f20fe5a41fda1586e01c70ea0c9a6d7b67c9e13edf0cfe2239277
CMAKE_ARGS
-DBUILD_SHARED_LIBS=0
-DBUILD_PERE_TESTS=OFF
-DBUILD_TESTS=OFF
-DBUILD_opencv_python_tests=OFF
-DBUILD_EXAMPLES=OFF
-DBUILD_JASPER=OFF
-DBUILD_JAVA=OFF
-DBUILD_JPEG=ON
-DBUILD_APPS_LIST=version
-DBUILD_opencv_apps=OFF
-DBUILD_opencv_java=OFF
-DBUILD_OPENEXR=OFF
-DBUILD_PNG=ON
-DBUILD_TBB=OFF
-DBUILD_WEBP=OFF
-DBUILD_ZLIB=OFF
-DWITH_1394=OFF
-DWITH_CUDA=OFF
-DWITH_EIGEN=ON
${_use_IPP}
-DWITH_ITT=OFF
-DWITH_FFMPEG=OFF
-DWITH_GPHOTO2=OFF
-DWITH_GSTREAMER=OFF
-DOPENCV_GAPI_GSTREAMER=OFF
-DWITH_GTK_2_X=OFF
-DWITH_JASPER=OFF
-DWITH_LAPACK=OFF
-DWITH_MATLAB=OFF
-DWITH_MFX=OFF
-DWITH_DIRECTX=OFF
-DWITH_DIRECTML=OFF
-DWITH_OPENCL=OFF
-DWITH_OPENCL_D3D11_NV=OFF
-DWITH_OPENCLAMDBLAS=OFF
-DWITH_OPENCLAMDFFT=OFF
-DWITH_OPENEXR=OFF
-DWITH_OPENJPEG=OFF
-DWITH_QUIRC=OFF
-DWITH_VTK=OFF
-DWITH_WEBP=OFF
-DENABLE_PRECOMPILED_HEADERS=OFF
-DINSTALL_TESTS=OFF
-DINSTALL_C_EXAMPLES=OFF
-DINSTALL_PYTHON_EXAMPLES=OFF
-DOPENCV_GENERATE_SETUPVARS=OFF
-DOPENCV_INSTALL_FFMPEG_DOWNLOAD_SCRIPT=OFF
-DBUILD_opencv_python2=OFF
-DBUILD_opencv_python3=OFF
-DWITH_OPENVINO=OFF
-DWITH_INF_ENGINE=OFF
-DWITH_NGRAPH=OFF
-DBUILD_WITH_STATIC_CRT=OFF#set /MDd /MD
-DBUILD_LIST=core,imgcodecs,imgproc,world
-DBUILD_opencv_highgui=OFF
-DWITH_ADE=OFF
-DBUILD_opencv_world=ON
-DWITH_PROTOBUF=OFF
-DWITH_WIN32UI=OFF
-DHAVE_WIN32UI=FALSE
)

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -2327,10 +2327,10 @@ msgstr ""
msgid "AMS not connected" msgid "AMS not connected"
msgstr "" msgstr ""
msgid "Load Filament" msgid "Load"
msgstr "" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "" msgstr ""
msgid "Ext Spool" msgid "Ext Spool"
@ -2348,7 +2348,7 @@ msgstr ""
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "" msgstr ""
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "" msgstr ""
msgid "Calibrate again" msgid "Calibrate again"
@ -2389,7 +2389,7 @@ msgstr ""
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "" msgstr ""
msgid "Edit" msgid "Edit"
@ -2937,6 +2937,14 @@ msgid ""
"automatically when current filament runs out" "automatically when current filament runs out"
msgstr "" msgstr ""
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "" msgstr ""
@ -3323,18 +3331,6 @@ msgstr ""
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "" msgstr ""
msgid "MC"
msgstr ""
msgid "MainBoard"
msgstr ""
msgid "TH"
msgstr ""
msgid "XCam"
msgstr ""
msgid "Unknown" msgid "Unknown"
msgstr "" msgstr ""
@ -3854,7 +3850,7 @@ msgstr ""
msgid "Size:" msgid "Size:"
msgstr "" msgstr ""
#, possible-boost-format #, possible-c-format, possible-boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -3985,6 +3981,9 @@ msgstr ""
msgid "Device" msgid "Device"
msgstr "" msgstr ""
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "" msgstr ""
@ -4024,6 +4023,9 @@ msgstr ""
msgid "Send all" msgid "Send all"
msgstr "" msgstr ""
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "" msgstr ""
@ -4789,9 +4791,6 @@ msgstr ""
msgid "Bed" msgid "Bed"
msgstr "" msgstr ""
msgid "Unload"
msgstr ""
msgid "Debug Info" msgid "Debug Info"
msgstr "" msgstr ""
@ -4959,9 +4958,6 @@ msgstr ""
msgid "Update" msgid "Update"
msgstr "" msgstr ""
msgid "HMS"
msgstr ""
msgid "Don't show again" msgid "Don't show again"
msgstr "" msgstr ""
@ -5201,6 +5197,12 @@ msgstr ""
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "" msgstr ""
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "" msgstr ""
@ -5608,15 +5610,21 @@ msgstr ""
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "" msgstr ""
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "" msgstr ""
msgid "Download failed, File size exception."
msgstr ""
#, possible-c-format, possible-boost-format #, possible-c-format, possible-boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "" msgstr ""
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
@ -5874,6 +5882,21 @@ msgstr ""
msgid "Units" msgid "Units"
msgstr "" msgstr ""
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "" msgstr ""
@ -5948,6 +5971,14 @@ msgid ""
"each printer automatically." "each printer automatically."
msgstr "" msgstr ""
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "" msgstr ""
@ -6550,6 +6581,9 @@ msgstr ""
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "" msgstr ""
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "" msgstr ""
@ -6601,6 +6635,26 @@ msgstr ""
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "" msgstr ""
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "" msgstr ""
@ -6769,8 +6823,8 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
msgid "Line width" msgid "Line width"
@ -7724,6 +7778,39 @@ msgstr ""
msgid "resume" msgid "resume"
msgstr "" msgstr ""
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr ""
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "" msgstr ""
@ -9552,6 +9639,9 @@ msgstr ""
msgid "Lightning" msgid "Lightning"
msgstr "" msgstr ""
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "" msgstr ""
@ -9713,10 +9803,10 @@ msgstr ""
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
msgid "Support interface fan speed" msgid "Support interface fan speed"
@ -12096,6 +12186,9 @@ msgstr ""
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "" msgstr ""
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "" msgstr ""
@ -12212,6 +12305,14 @@ msgstr ""
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "" msgstr ""
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "" msgstr ""
@ -12221,6 +12322,19 @@ msgstr ""
msgid "Flow Dynamics Calibration result has been saved to the printer" msgid "Flow Dynamics Calibration result has been saved to the printer"
msgstr "" msgstr ""
#, possible-c-format, possible-boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
#, possible-c-format, possible-boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "" msgstr ""
@ -12446,9 +12560,6 @@ msgstr ""
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "" msgstr ""
msgid "- ℃"
msgstr ""
msgid "Plate Type" msgid "Plate Type"
msgstr "" msgstr ""
@ -12492,12 +12603,6 @@ msgstr ""
msgid "Step value" msgid "Step value"
msgstr "" msgstr ""
msgid "0.5"
msgstr ""
msgid "0.005"
msgstr ""
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "" msgstr ""
@ -12525,10 +12630,14 @@ msgstr ""
msgid "Action" msgid "Action"
msgstr "" msgstr ""
#, possible-c-format, possible-boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "" msgstr ""
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "" msgstr ""
msgid "Ok" msgid "Ok"
@ -12537,13 +12646,6 @@ msgstr ""
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "" msgstr ""
#, possible-c-format, possible-boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
msgid "Network lookup" msgid "Network lookup"
msgstr "" msgstr ""
@ -12924,8 +13026,8 @@ msgid ""
msgstr "" msgstr ""
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
@ -13468,6 +13570,175 @@ msgid ""
"Error: \"%2%\"" "Error: \"%2%\""
msgstr "" msgstr ""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "" msgstr ""

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"PO-Revision-Date: 2024-03-17 22:08+0100\n" "PO-Revision-Date: 2024-03-17 22:08+0100\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -2426,11 +2426,11 @@ msgstr "Recàrrega automàtica"
msgid "AMS not connected" msgid "AMS not connected"
msgstr "AMS no connectat" msgstr "AMS no connectat"
msgid "Load Filament" msgid "Load"
msgstr "Carregar Filament" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "Descarregar Filament" msgstr "Descarregar"
msgid "Ext Spool" msgid "Ext Spool"
msgstr "Bobina Ext" msgstr "Bobina Ext"
@ -2447,7 +2447,7 @@ msgstr "Reintentar"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "Calibrant AMS..." msgstr "Calibrant AMS..."
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "" msgstr ""
"S'ha produït un problema durant el calibratge. Feu clic per veure la solució." "S'ha produït un problema durant el calibratge. Feu clic per veure la solució."
@ -2489,10 +2489,8 @@ msgstr "Agafar filament nou"
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "" msgstr ""
"Trieu una ranura AMS i premeu el botó \"Carregar\" o \"Descarregar\" per "
"carregar o descarregar el filament automàticament."
msgid "Edit" msgid "Edit"
msgstr "Editar" msgstr "Editar"
@ -3115,6 +3113,14 @@ msgstr ""
"AMS continuarà a una altra bobina amb les mateixes propietats del filament " "AMS continuarà a una altra bobina amb les mateixes propietats del filament "
"automàticament quan s'esgoti el filament actual" "automàticament quan s'esgoti el filament actual"
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "Fitxer" msgstr "Fitxer"
@ -3579,18 +3585,6 @@ msgstr "Pausa d'error de la primera capa"
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "Pausa d'obstrucció del broquet" msgstr "Pausa d'obstrucció del broquet"
msgid "MC"
msgstr "MC"
msgid "MainBoard"
msgstr "Placa Base"
msgid "TH"
msgstr "TH"
msgid "XCam"
msgstr "XCam"
msgid "Unknown" msgid "Unknown"
msgstr "Desconegut" msgstr "Desconegut"
@ -4128,7 +4122,7 @@ msgstr "Volum:"
msgid "Size:" msgid "Size:"
msgstr "Mida:" msgstr "Mida:"
#, boost-format #, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4270,6 +4264,9 @@ msgstr "Previsualització"
msgid "Device" msgid "Device"
msgstr "Dispositiu" msgstr "Dispositiu"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "Projecte" msgstr "Projecte"
@ -4309,6 +4306,9 @@ msgstr "Imprimeix-ho tot"
msgid "Send all" msgid "Send all"
msgstr "Envia-ho tot" msgstr "Envia-ho tot"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "Dreceres de teclat" msgstr "Dreceres de teclat"
@ -5108,9 +5108,6 @@ msgstr "Cambra"
msgid "Bed" msgid "Bed"
msgstr "Llit" msgstr "Llit"
msgid "Unload"
msgstr "Descarregar"
msgid "Debug Info" msgid "Debug Info"
msgstr "Informació de depuració" msgstr "Informació de depuració"
@ -5297,9 +5294,6 @@ msgstr "Estat"
msgid "Update" msgid "Update"
msgstr "Actualitzar" msgstr "Actualitzar"
msgid "HMS"
msgstr "HMS"
msgid "Don't show again" msgid "Don't show again"
msgstr "No tornis a mostrar" msgstr "No tornis a mostrar"
@ -5546,6 +5540,12 @@ msgstr "Permet senyals acústics"
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "Detecció de filament enredat" msgstr "Detecció de filament enredat"
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "" msgstr ""
@ -6006,19 +6006,23 @@ msgstr "Important Model"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "preparar el fitxer 3MF..." msgstr "preparar el fitxer 3MF..."
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "descarregant projecte ..." msgstr "descarregant projecte ..."
msgid "Download failed, File size exception."
msgstr ""
#, c-format, boost-format #, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "Projecte descarregat %d%%" msgstr "Projecte descarregat %d%%"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
"La importació a Orca Slicer ha fallat. Descarregueu el fitxer manualment i "
"importeu-lo."
msgid "Import SLA archive" msgid "Import SLA archive"
msgstr "Importar fitxer SLA" msgstr "Importar fitxer SLA"
@ -6291,6 +6295,21 @@ msgstr "Imperial"
msgid "Units" msgid "Units"
msgstr "Unitats" msgstr "Unitats"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "Inici" msgstr "Inici"
@ -6372,6 +6391,14 @@ msgid ""
"each printer automatically." "each printer automatically."
msgstr "" msgstr ""
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "" msgstr ""
@ -7024,6 +7051,9 @@ msgstr "Calibratge automàtic de flux mitjançant Micro Lidar"
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "Modificant el nom del dispositiu" msgstr "Modificant el nom del dispositiu"
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "Enviar a la targeta SD de la impressora" msgstr "Enviar a la targeta SD de la impressora"
@ -7079,6 +7109,26 @@ msgstr "Excedit el temps d'espera de l'informe d'inici de sessió"
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "Falla desconeguda" msgstr "Falla desconeguda"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "Iniciar sessió a la impressora" msgstr "Iniciar sessió a la impressora"
@ -7295,8 +7345,8 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"Quan graveu timelapse sense capçal d'impressió, es recomana afegir una " "Quan graveu timelapse sense capçal d'impressió, es recomana afegir una "
"\"Torre de Purga Timelapse\" \n" "\"Torre de Purga Timelapse\" \n"
@ -8332,6 +8382,39 @@ msgstr "Fet"
msgid "resume" msgid "resume"
msgstr "" msgstr ""
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "Carregar Filament"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "Confirmar i Actualitzar el broquet" msgstr "Confirmar i Actualitzar el broquet"
@ -10662,6 +10745,9 @@ msgstr "Suport Cúbic"
msgid "Lightning" msgid "Lightning"
msgstr "Llampec" msgstr "Llampec"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "Longitud d'ancoratge de farciment poc dens" msgstr "Longitud d'ancoratge de farciment poc dens"
@ -10864,15 +10950,15 @@ msgstr "Velocitat màxima del ventilador a la capa"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
"La velocitat del ventilador augmentarà linealment de zero a la capa " "La velocitat del ventilador augmentarà linealment de zero a la capa "
"\"close_fan_the_first_x_layers\" al màxim a la capa " "\"close_fan_the_first_x_layers\" al màxim a la capa \"full_fan_speed_layer"
"\"full_fan_speed_layer\". S'ignorarà \"full_fan_speed_layer\" si és inferior " "\". S'ignorarà \"full_fan_speed_layer\" si és inferior a "
"a \"close_fan_the_first_x_layers\", en aquest cas el ventilador funcionarà a " "\"close_fan_the_first_x_layers\", en aquest cas el ventilador funcionarà a "
"la velocitat màxima permesa a la capa \"close_fan_the_first_x_layers\" + 1." "la velocitat màxima permesa a la capa \"close_fan_the_first_x_layers\" + 1."
msgid "Support interface fan speed" msgid "Support interface fan speed"
@ -13859,6 +13945,9 @@ msgstr "Cancel·lat"
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "load_obj: no s'ha pogut analitzar" msgstr "load_obj: no s'ha pogut analitzar"
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "El fitxer conté polígons amb més de 4 vèrtexs." msgstr "El fitxer conté polígons amb més de 4 vèrtexs."
@ -13985,6 +14074,14 @@ msgstr "Seleccioneu el filament per calibrar."
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "El valor de mida d'entrada ha de ser 3." msgstr "El valor de mida d'entrada ha de ser 3."
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "Connectant amb la impressora..." msgstr "Connectant amb la impressora..."
@ -13996,6 +14093,19 @@ msgstr ""
"El resultat del Calibratge de les Dinàmiques de Flux s'ha desat a la " "El resultat del Calibratge de les Dinàmiques de Flux s'ha desat a la "
"impressora" "impressora"
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "Error intern" msgstr "Error intern"
@ -14304,9 +14414,6 @@ msgstr ""
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "Paràmetres d'impressió" msgstr "Paràmetres d'impressió"
msgid "- ℃"
msgstr "- °C"
msgid "Plate Type" msgid "Plate Type"
msgstr "Tipus de placa" msgstr "Tipus de placa"
@ -14355,12 +14462,6 @@ msgstr "Al valor k"
msgid "Step value" msgid "Step value"
msgstr "Valor del pas" msgstr "Valor del pas"
msgid "0.5"
msgstr "0,5"
msgid "0.005"
msgstr "0,005"
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "" msgstr ""
"El diàmetre del broquet s'ha sincronitzat des de la configuració d'impressora" "El diàmetre del broquet s'ha sincronitzat des de la configuració d'impressora"
@ -14390,10 +14491,14 @@ msgstr ""
msgid "Action" msgid "Action"
msgstr "Acció" msgstr "Acció"
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "Editeu el Calibratge de Dinàmiques de Flux" msgstr "Editeu el Calibratge de Dinàmiques de Flux"
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "" msgstr ""
msgid "Ok" msgid "Ok"
@ -14402,13 +14507,6 @@ msgstr ""
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
msgid "Network lookup" msgid "Network lookup"
msgstr "Cerca de xarxa" msgstr "Cerca de xarxa"
@ -14825,8 +14923,8 @@ msgstr ""
"Vols reescriure'l?" "Vols reescriure'l?"
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
"Canviaríem el nom dels perfils seleccionats com a \"Proveïdor Tipus " "Canviaríem el nom dels perfils seleccionats com a \"Proveïdor Tipus "
@ -15452,6 +15550,175 @@ msgstr ""
"Cos del missatge: \"%1%\"\n" "Cos del missatge: \"%1%\"\n"
"Error: \"%2%\"" "Error: \"%2%\""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "" msgstr ""
@ -15882,6 +16149,47 @@ msgstr ""
"augmentar adequadament la temperatura del llit pot reduir la probabilitat de " "augmentar adequadament la temperatura del llit pot reduir la probabilitat de "
"deformació." "deformació."
#~ msgid "Unload Filament"
#~ msgstr "Descarregar Filament"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr ""
#~ "Trieu una ranura AMS i premeu el botó \"Carregar\" o \"Descarregar\" per "
#~ "carregar o descarregar el filament automàticament."
#~ msgid "MC"
#~ msgstr "MC"
#~ msgid "MainBoard"
#~ msgstr "Placa Base"
#~ msgid "TH"
#~ msgstr "TH"
#~ msgid "XCam"
#~ msgstr "XCam"
#~ msgid "HMS"
#~ msgstr "HMS"
#~ msgid ""
#~ "Importing to Orca Slicer failed. Please download the file and manually "
#~ "import it."
#~ msgstr ""
#~ "La importació a Orca Slicer ha fallat. Descarregueu el fitxer manualment "
#~ "i importeu-lo."
#~ msgid "- ℃"
#~ msgstr "- °C"
#~ msgid "0.5"
#~ msgstr "0,5"
#~ msgid "0.005"
#~ msgstr "0,005"
#~ msgid "active" #~ msgid "active"
#~ msgstr "actiu" #~ msgstr "actiu"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"PO-Revision-Date: 2023-09-30 15:15+0200\n" "PO-Revision-Date: 2023-09-30 15:15+0200\n"
"Last-Translator: René Mošner <Renemosner@seznam.cz>\n" "Last-Translator: René Mošner <Renemosner@seznam.cz>\n"
"Language-Team: \n" "Language-Team: \n"
@ -2380,11 +2380,11 @@ msgstr "Automatické Doplnění"
msgid "AMS not connected" msgid "AMS not connected"
msgstr "AMS není připojen" msgstr "AMS není připojen"
msgid "Load Filament" msgid "Load"
msgstr "Zavézt Filament" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "Vysunout Filament" msgstr "Vysunout"
msgid "Ext Spool" msgid "Ext Spool"
msgstr "Ext Cívka" msgstr "Ext Cívka"
@ -2401,7 +2401,7 @@ msgstr "Zkusit znovu"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "Kalibruji AMS..." msgstr "Kalibruji AMS..."
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "Během kalibrace došlo k problému. Kliknutím zobrazíte řešení." msgstr "Během kalibrace došlo k problému. Kliknutím zobrazíte řešení."
msgid "Calibrate again" msgid "Calibrate again"
@ -2442,10 +2442,8 @@ msgstr "Vezměte nový filament"
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "" msgstr ""
"Vyberte slot AMS a poté stiskněte \" Načíst \" nebo \" Uvolnit \" pro "
"automatické načtení nebo vyjměte vlákno."
msgid "Edit" msgid "Edit"
msgstr "Upravit" msgstr "Upravit"
@ -3057,6 +3055,14 @@ msgstr ""
"AMS bude pokračovat na další cívku se stejnými vlastnostmi filamentu " "AMS bude pokračovat na další cívku se stejnými vlastnostmi filamentu "
"automaticky, když dojde aktuální filament" "automaticky, když dojde aktuální filament"
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "Soubor" msgstr "Soubor"
@ -3509,18 +3515,6 @@ msgstr ""
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "" msgstr ""
msgid "MC"
msgstr "MC"
msgid "MainBoard"
msgstr "Základní deska"
msgid "TH"
msgstr "TH"
msgid "XCam"
msgstr "XCam"
msgid "Unknown" msgid "Unknown"
msgstr "Neznámý" msgstr "Neznámý"
@ -4055,7 +4049,7 @@ msgstr "Objem:"
msgid "Size:" msgid "Size:"
msgstr "Velikost:" msgstr "Velikost:"
#, boost-format #, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4196,6 +4190,9 @@ msgstr "Náhled"
msgid "Device" msgid "Device"
msgstr "Zařízení" msgstr "Zařízení"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "Projekt" msgstr "Projekt"
@ -4235,6 +4232,9 @@ msgstr "Vytisknout vše"
msgid "Send all" msgid "Send all"
msgstr "Odeslat vše" msgstr "Odeslat vše"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "Klávesové zkratky" msgstr "Klávesové zkratky"
@ -5025,9 +5025,6 @@ msgstr "Komora"
msgid "Bed" msgid "Bed"
msgstr "Podložka" msgstr "Podložka"
msgid "Unload"
msgstr "Vysunout"
msgid "Debug Info" msgid "Debug Info"
msgstr "Informace o ladění" msgstr "Informace o ladění"
@ -5211,9 +5208,6 @@ msgstr "Stav"
msgid "Update" msgid "Update"
msgstr "Aktualizovat" msgstr "Aktualizovat"
msgid "HMS"
msgstr "HMS"
msgid "Don't show again" msgid "Don't show again"
msgstr "Znovu Nezobrazovat" msgstr "Znovu Nezobrazovat"
@ -5461,6 +5455,12 @@ msgstr "Povolit zvuky upozornění"
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "" msgstr ""
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "" msgstr ""
@ -5912,18 +5912,23 @@ msgstr "Import modelu"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "připravte soubor 3mf..." msgstr "připravte soubor 3mf..."
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "stahuji projekt ..." msgstr "stahuji projekt ..."
msgid "Download failed, File size exception."
msgstr ""
#, c-format, boost-format #, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "Projekt stažen %d%%" msgstr "Projekt stažen %d%%"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
"Import do Orca Sliceru selhal. Stáhněte soubor a proveďte jeho ruční import."
msgid "Import SLA archive" msgid "Import SLA archive"
msgstr "" msgstr ""
@ -6189,6 +6194,21 @@ msgstr "Imperiální"
msgid "Units" msgid "Units"
msgstr "Jednotky" msgstr "Jednotky"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "" msgstr ""
@ -6265,6 +6285,14 @@ msgid ""
"each printer automatically." "each printer automatically."
msgstr "" msgstr ""
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "" msgstr ""
@ -6901,6 +6929,9 @@ msgstr "Automatická kalibrace průtoku pomocí Mikro Lidar"
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "Úprava názvu zařízení" msgstr "Úprava názvu zařízení"
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "Odeslat do tiskárny SD kartu" msgstr "Odeslat do tiskárny SD kartu"
@ -6953,6 +6984,26 @@ msgstr "Časový limit pro obdržení hlášení o přihlášení vypršel"
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "Neznámá chyba" msgstr "Neznámá chyba"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "Přihlaste se k tiskárně" msgstr "Přihlaste se k tiskárně"
@ -7156,8 +7207,8 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"Při nahrávání časosběru bez nástrojové hlavy se doporučuje přidat " "Při nahrávání časosběru bez nástrojové hlavy se doporučuje přidat "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
@ -8176,6 +8227,39 @@ msgstr "Hotovo"
msgid "resume" msgid "resume"
msgstr "" msgstr ""
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "Zavézt Filament"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "" msgstr ""
@ -10259,6 +10343,9 @@ msgstr "Kubický podepíraný"
msgid "Lightning" msgid "Lightning"
msgstr "Blesky" msgstr "Blesky"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "Délka kotvy vnitřní výplně" msgstr "Délka kotvy vnitřní výplně"
@ -10454,10 +10541,10 @@ msgstr "Maximální otáčky ventilátoru ve vrstvě"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
"Otáčky ventilátoru se lineárně zvýší z nuly ve vrstvě " "Otáčky ventilátoru se lineárně zvýší z nuly ve vrstvě "
"\"close_fan_first_layers\" na maximum ve vrstvě \"full_fan_speed_layer\". " "\"close_fan_first_layers\" na maximum ve vrstvě \"full_fan_speed_layer\". "
@ -13237,6 +13324,9 @@ msgstr "Zrušeno"
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "load_obj: nepodařilo se zpracovat" msgstr "load_obj: nepodařilo se zpracovat"
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "Soubor obsahuje polygon s více než 4 vrcholy." msgstr "Soubor obsahuje polygon s více než 4 vrcholy."
@ -13362,6 +13452,14 @@ msgstr "Vyberte prosím filament pro kalibraci."
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "Velikost vstupní hodnoty musí být 3." msgstr "Velikost vstupní hodnoty musí být 3."
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "Připojování k tiskárně..." msgstr "Připojování k tiskárně..."
@ -13371,6 +13469,19 @@ msgstr "Výsledek neúspěšného testu byl zahozen."
msgid "Flow Dynamics Calibration result has been saved to the printer" msgid "Flow Dynamics Calibration result has been saved to the printer"
msgstr "Výsledek kalibrace dynamiky průtoku byl uložen do tiskárny" msgstr "Výsledek kalibrace dynamiky průtoku byl uložen do tiskárny"
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "Interní chyba" msgstr "Interní chyba"
@ -13667,9 +13778,6 @@ msgstr ""
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "Parametry tisku" msgstr "Parametry tisku"
msgid "- ℃"
msgstr "- ℃"
msgid "Plate Type" msgid "Plate Type"
msgstr "Typ Podložky" msgstr "Typ Podložky"
@ -13717,12 +13825,6 @@ msgstr "Do hodnoty k"
msgid "Step value" msgid "Step value"
msgstr "Krok hodnoty" msgstr "Krok hodnoty"
msgid "0.5"
msgstr "0.5"
msgid "0.005"
msgstr "0.005"
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "Průměr trysky byl synchronizován z Nastavení tiskárny" msgstr "Průměr trysky byl synchronizován z Nastavení tiskárny"
@ -13750,10 +13852,14 @@ msgstr "Aktualizace historických záznamů kalibrace dynamiky průtoku probíh
msgid "Action" msgid "Action"
msgstr "Akce" msgstr "Akce"
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "Upravit kalibraci dynamiky průtoku" msgstr "Upravit kalibraci dynamiky průtoku"
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "" msgstr ""
msgid "Ok" msgid "Ok"
@ -13762,13 +13868,6 @@ msgstr ""
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
msgid "Network lookup" msgid "Network lookup"
msgstr "Vyhledávání v síti" msgstr "Vyhledávání v síti"
@ -14167,8 +14266,8 @@ msgid ""
msgstr "" msgstr ""
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
@ -14722,6 +14821,175 @@ msgid ""
"Error: \"%2%\"" "Error: \"%2%\""
msgstr "" msgstr ""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "" msgstr ""
@ -14883,8 +15151,8 @@ msgid ""
msgstr "" msgstr ""
"Plochou na podložku\n" "Plochou na podložku\n"
"Věděli jste, že můžete rychle nastavit orientaci modelu tak, aby jedna z " "Věděli jste, že můžete rychle nastavit orientaci modelu tak, aby jedna z "
"jeho stěn spočívala na tiskovém podloží? Vyberte funkci \"Plochou na " "jeho stěn spočívala na tiskovém podloží? Vyberte funkci \"Plochou na podložku"
"podložku\" nebo stiskněte klávesu <b>F</b>." "\" nebo stiskněte klávesu <b>F</b>."
#: resources/data/hints.ini: [hint:Object List] #: resources/data/hints.ini: [hint:Object List]
msgid "" msgid ""
@ -15100,6 +15368,47 @@ msgid ""
"probability of warping." "probability of warping."
msgstr "" msgstr ""
#~ msgid "Unload Filament"
#~ msgstr "Vysunout Filament"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr ""
#~ "Vyberte slot AMS a poté stiskněte \" Načíst \" nebo \" Uvolnit \" pro "
#~ "automatické načtení nebo vyjměte vlákno."
#~ msgid "MC"
#~ msgstr "MC"
#~ msgid "MainBoard"
#~ msgstr "Základní deska"
#~ msgid "TH"
#~ msgstr "TH"
#~ msgid "XCam"
#~ msgstr "XCam"
#~ msgid "HMS"
#~ msgstr "HMS"
#~ msgid ""
#~ "Importing to Orca Slicer failed. Please download the file and manually "
#~ "import it."
#~ msgstr ""
#~ "Import do Orca Sliceru selhal. Stáhněte soubor a proveďte jeho ruční "
#~ "import."
#~ msgid "- ℃"
#~ msgstr "- ℃"
#~ msgid "0.5"
#~ msgstr "0.5"
#~ msgid "0.005"
#~ msgstr "0.005"
#~ msgid "active" #~ msgid "active"
#~ msgstr "aktivní" #~ msgstr "aktivní"

View file

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: Heiko Liebscher <hliebschergmail.com>\n" "Last-Translator: Heiko Liebscher <hliebschergmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@ -2441,10 +2441,10 @@ msgstr "Automatisch nachfüllen"
msgid "AMS not connected" msgid "AMS not connected"
msgstr "AMS nicht verbunden" msgstr "AMS nicht verbunden"
msgid "Load Filament" msgid "Load"
msgstr "Laden" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "Entladen" msgstr "Entladen"
msgid "Ext Spool" msgid "Ext Spool"
@ -2462,7 +2462,7 @@ msgstr "Wiederholen"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "AMS kalibrieren..." msgstr "AMS kalibrieren..."
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "" msgstr ""
"Während der Kalibrierung ist ein Problem aufgetreten. Klicken Sie hier, um " "Während der Kalibrierung ist ein Problem aufgetreten. Klicken Sie hier, um "
"die Lösung zu sehen." "die Lösung zu sehen."
@ -2505,10 +2505,8 @@ msgstr "Neues Filament holen"
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "" msgstr ""
"Wählen Sie einen AMS-Slot und drücken Sie dann \"Laden\" oder \"Entladen\", "
"um automatisch Filament zu laden oder zu entladen."
msgid "Edit" msgid "Edit"
msgstr "Bearbeiten" msgstr "Bearbeiten"
@ -3146,6 +3144,14 @@ msgstr ""
"AMS wechselt automatisch zu einer anderen Spule mit denselben " "AMS wechselt automatisch zu einer anderen Spule mit denselben "
"Filamenteigenschaften, wenn das aktuelle Filament leer ist." "Filamenteigenschaften, wenn das aktuelle Filament leer ist."
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "Datei" msgstr "Datei"
@ -3629,18 +3635,6 @@ msgstr "Pause bei Fehler der ersten Schicht"
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "Pause bei Düsenverstopfung" msgstr "Pause bei Düsenverstopfung"
msgid "MC"
msgstr "MC"
msgid "MainBoard"
msgstr "Mainboard"
msgid "TH"
msgstr "TH"
msgid "XCam"
msgstr "XCam"
msgid "Unknown" msgid "Unknown"
msgstr "Unbekannt" msgstr "Unbekannt"
@ -4182,7 +4176,7 @@ msgstr "Volumen:"
msgid "Size:" msgid "Size:"
msgstr "Größe:" msgstr "Größe:"
#, boost-format #, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4325,6 +4319,9 @@ msgstr "Vorschau"
msgid "Device" msgid "Device"
msgstr "Gerät" msgstr "Gerät"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "Projekt" msgstr "Projekt"
@ -4366,6 +4363,9 @@ msgstr "Alle Platten drucken"
msgid "Send all" msgid "Send all"
msgstr "Sende alle" msgstr "Sende alle"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "Tastaturkürzel" msgstr "Tastaturkürzel"
@ -5193,9 +5193,6 @@ msgstr "Cham"
msgid "Bed" msgid "Bed"
msgstr "Druckbett" msgstr "Druckbett"
msgid "Unload"
msgstr "Entladen"
msgid "Debug Info" msgid "Debug Info"
msgstr "Debug-Informationen" msgstr "Debug-Informationen"
@ -5385,9 +5382,6 @@ msgstr "Status"
msgid "Update" msgid "Update"
msgstr "Update" msgstr "Update"
msgid "HMS"
msgstr "HMS"
msgid "Don't show again" msgid "Don't show again"
msgstr "Nicht erneut anzeigen" msgstr "Nicht erneut anzeigen"
@ -5637,6 +5631,12 @@ msgstr "Erlaube akustische Signale"
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "Filamentverwicklung erkannt" msgstr "Filamentverwicklung erkannt"
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "Düsentyp" msgstr "Düsentyp"
@ -6107,19 +6107,23 @@ msgstr "Modell importieren"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "3mf-Datei vorbereiten…" msgstr "3mf-Datei vorbereiten…"
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "Projekt wird heruntergeladen..." msgstr "Projekt wird heruntergeladen..."
msgid "Download failed, File size exception."
msgstr ""
#, c-format, boost-format #, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "Projekt heruntergeladen %d%%" msgstr "Projekt heruntergeladen %d%%"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
"Der Import in Orca Slicer ist fehlgeschlagen. Bitte laden Sie die Datei "
"manuell herunter und importieren Sie sie."
msgid "Import SLA archive" msgid "Import SLA archive"
msgstr "SLA-Archiv importieren" msgstr "SLA-Archiv importieren"
@ -6395,6 +6399,21 @@ msgstr "Imperial"
msgid "Units" msgid "Units"
msgstr "Einheiten" msgstr "Einheiten"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "Startseite" msgstr "Startseite"
@ -6476,6 +6495,14 @@ msgstr ""
"Wenn aktiviert, merkt sich Orca die Filament-/Prozesskonfiguration für jeden " "Wenn aktiviert, merkt sich Orca die Filament-/Prozesskonfiguration für jeden "
"Drucker und wechselt automatisch." "Drucker und wechselt automatisch."
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "Netzwerk" msgstr "Netzwerk"
@ -7052,8 +7079,8 @@ msgstr ""
msgid "" msgid ""
"Timelapse is not supported because Print sequence is set to \"By object\"." "Timelapse is not supported because Print sequence is set to \"By object\"."
msgstr "" msgstr ""
"Zeitraffer wird nicht unterstützt, da die Druckreihenfolge auf \"Nach " "Zeitraffer wird nicht unterstützt, da die Druckreihenfolge auf \"Nach Objekt"
"Objekt\" eingestellt ist." "\" eingestellt ist."
msgid "Errors" msgid "Errors"
msgstr "Fehler" msgstr "Fehler"
@ -7138,6 +7165,9 @@ msgstr "Automatische Flusskalibrierung mit Micro Lidar"
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "Den Gerätenamen ändern" msgstr "Den Gerätenamen ändern"
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "An MicroSD-Karte des Druckers senden" msgstr "An MicroSD-Karte des Druckers senden"
@ -7194,6 +7224,26 @@ msgstr "Zeitüberschreitung beim Empfang des Anmeldeberichts"
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "Unbekannter Fehler" msgstr "Unbekannter Fehler"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "Drucker anmelden" msgstr "Drucker anmelden"
@ -7428,13 +7478,13 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"Wenn Sie einen Zeitraffer ohne Werkzeugkopf aufnehmen, wird empfohlen, einen " "Wenn Sie einen Zeitraffer ohne Werkzeugkopf aufnehmen, wird empfohlen, einen "
"\"Timelapse Wischturm\" hinzuzufügen, indem Sie mit der rechten Maustaste " "\"Timelapse Wischturm\" hinzuzufügen, indem Sie mit der rechten Maustaste "
"auf die leere Position der Bauplatte klicken und \"Primitiv hinzufügen\"-" "auf die leere Position der Bauplatte klicken und \"Primitiv hinzufügen\"->"
">\"Timelapse Wischturm\" wählen." "\"Timelapse Wischturm\" wählen."
msgid "Line width" msgid "Line width"
msgstr "Breite der Linie" msgstr "Breite der Linie"
@ -8486,6 +8536,39 @@ msgstr "Erledigt"
msgid "resume" msgid "resume"
msgstr "Fortsetzen" msgstr "Fortsetzen"
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "Laden"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "Bestätigen und Düse aktualisieren" msgstr "Bestätigen und Düse aktualisieren"
@ -10821,6 +10904,9 @@ msgstr "Kubisch Stützen"
msgid "Lightning" msgid "Lightning"
msgstr "Blitz" msgstr "Blitz"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "Länge des Infill-Ankers" msgstr "Länge des Infill-Ankers"
@ -11031,13 +11117,13 @@ msgstr "Volle Lüfterdrehzahl ab Schicht"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
"Die Lüftergeschwindigkeit wird linear von Null bei der " "Die Lüftergeschwindigkeit wird linear von Null bei der Schicht"
"Schicht\"close_fan_the_first_x_layers\" auf das Maximum bei der Schicht " "\"close_fan_the_first_x_layers\" auf das Maximum bei der Schicht "
"\"full_fan_speed_layer\" erhöht. \"full_fan_speed_layer\" wird ignoriert, " "\"full_fan_speed_layer\" erhöht. \"full_fan_speed_layer\" wird ignoriert, "
"wenn es niedriger ist als \"close_fan_the_first_x_layers\",in diesem Fall " "wenn es niedriger ist als \"close_fan_the_first_x_layers\",in diesem Fall "
"läuft der Lüfter bei Schicht \"close_fan_the_first_x_layers\"+ 1 mit maximal " "läuft der Lüfter bei Schicht \"close_fan_the_first_x_layers\"+ 1 mit maximal "
@ -14037,6 +14123,9 @@ msgstr "Abgebrochen"
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "load_obj: konnte nicht analysiert werden" msgstr "load_obj: konnte nicht analysiert werden"
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "Die Datei enthält Polygone mit mehr als 4 Eckpunkten." msgstr "Die Datei enthält Polygone mit mehr als 4 Eckpunkten."
@ -14165,6 +14254,14 @@ msgstr "Bitte wählen Sie das Filament zur Kalibrierung aus."
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "Die Eingabewertgröße muss 3 sein." msgstr "Die Eingabewertgröße muss 3 sein."
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "Verbindung zum Drucker wird hergestellt..." msgstr "Verbindung zum Drucker wird hergestellt..."
@ -14174,6 +14271,22 @@ msgstr "Das fehlgeschlagene Testergebnis wurde verworfen."
msgid "Flow Dynamics Calibration result has been saved to the printer" msgid "Flow Dynamics Calibration result has been saved to the printer"
msgstr "Flussdynamik-Kalibrierungsergebnis wurde auf dem Drucker gespeichert" msgstr "Flussdynamik-Kalibrierungsergebnis wurde auf dem Drucker gespeichert"
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
"Es gibt bereits ein historisches Kalibrierungsergebnis mit dem gleichen "
"Namen: %s. Nur eines der Ergebnisse mit dem gleichen Namen wird gespeichert. "
"Sind Sie sicher, dass Sie das historische Ergebnis überschreiben möchten?"
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "Interner Fehler" msgstr "Interner Fehler"
@ -14484,9 +14597,6 @@ msgstr ""
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "Druckparameter" msgstr "Druckparameter"
msgid "- ℃"
msgstr "- ℃"
msgid "Plate Type" msgid "Plate Type"
msgstr "Druckbetttyp" msgstr "Druckbetttyp"
@ -14535,12 +14645,6 @@ msgstr "bis zum k Wert"
msgid "Step value" msgid "Step value"
msgstr "Schrittweite" msgstr "Schrittweite"
msgid "0.5"
msgstr "0,5"
msgid "0.005"
msgstr "0,005"
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "Der Düsendurchmesser wurde aus den Druckereinstellungen synchronisiert" msgstr "Der Düsendurchmesser wurde aus den Druckereinstellungen synchronisiert"
@ -14568,11 +14672,15 @@ msgstr "Erneuern der historischen Flussdynamik-Kalibrierungsdatensätze"
msgid "Action" msgid "Action"
msgstr "Aktivität" msgstr "Aktivität"
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "Ändern der Flussdynamik-Kalibrierung" msgstr "Ändern der Flussdynamik-Kalibrierung"
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "Neue Flussdynamik-Kalibrierung" msgstr ""
msgid "Ok" msgid "Ok"
msgstr "Ok" msgstr "Ok"
@ -14580,16 +14688,6 @@ msgstr "Ok"
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "Das Filament muss ausgewählt werden." msgstr "Das Filament muss ausgewählt werden."
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
"Es gibt bereits ein historisches Kalibrierungsergebnis mit dem gleichen "
"Namen: %s. Nur eines der Ergebnisse mit dem gleichen Namen wird gespeichert. "
"Sind Sie sicher, dass Sie das historische Ergebnis überschreiben möchten?"
msgid "Network lookup" msgid "Network lookup"
msgstr "Netzwerk durchsuchen" msgstr "Netzwerk durchsuchen"
@ -15013,8 +15111,8 @@ msgstr ""
"Möchten Sie es überschreiben?" "Möchten Sie es überschreiben?"
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
"Wir würden die Voreinstellungen als \"Hersteller Typ Seriennummer @Drucker, " "Wir würden die Voreinstellungen als \"Hersteller Typ Seriennummer @Drucker, "
@ -15655,6 +15753,175 @@ msgstr ""
"Nachrichtentext: \"%1%\"\n" "Nachrichtentext: \"%1%\"\n"
"Fehler: \"%2%\"" "Fehler: \"%2%\""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "Erfolgreich mit Obico verbunden!" msgstr "Erfolgreich mit Obico verbunden!"
@ -16097,6 +16364,50 @@ msgstr ""
"wie z.B. ABS, durch eine entsprechende Erhöhung der Heizbetttemperatur die " "wie z.B. ABS, durch eine entsprechende Erhöhung der Heizbetttemperatur die "
"Wahrscheinlichkeit von Verwerfungen verringert werden kann." "Wahrscheinlichkeit von Verwerfungen verringert werden kann."
#~ msgid "Unload Filament"
#~ msgstr "Entladen"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr ""
#~ "Wählen Sie einen AMS-Slot und drücken Sie dann \"Laden\" oder \"Entladen"
#~ "\", um automatisch Filament zu laden oder zu entladen."
#~ msgid "MC"
#~ msgstr "MC"
#~ msgid "MainBoard"
#~ msgstr "Mainboard"
#~ msgid "TH"
#~ msgstr "TH"
#~ msgid "XCam"
#~ msgstr "XCam"
#~ msgid "HMS"
#~ msgstr "HMS"
#~ msgid ""
#~ "Importing to Orca Slicer failed. Please download the file and manually "
#~ "import it."
#~ msgstr ""
#~ "Der Import in Orca Slicer ist fehlgeschlagen. Bitte laden Sie die Datei "
#~ "manuell herunter und importieren Sie sie."
#~ msgid "- ℃"
#~ msgstr "- ℃"
#~ msgid "0.5"
#~ msgstr "0,5"
#~ msgid "0.005"
#~ msgstr "0,005"
#~ msgid "New Flow Dynamics Calibration"
#~ msgstr "Neue Flussdynamik-Kalibrierung"
#~ msgid "" #~ msgid ""
#~ "The 3mf file version is in Beta and it is newer than the current " #~ "The 3mf file version is in Beta and it is newer than the current "
#~ "OrcaSlicer version." #~ "OrcaSlicer version."
@ -16403,8 +16714,8 @@ msgstr ""
#~ msgstr "Keine dünnen Schichten (EXPERIMENTELL)" #~ msgstr "Keine dünnen Schichten (EXPERIMENTELL)"
#~ msgid "" #~ msgid ""
#~ "We would rename the presets as \"Vendor Type Serial @printer you " #~ "We would rename the presets as \"Vendor Type Serial @printer you selected"
#~ "selected\". \n" #~ "\". \n"
#~ "To add preset for more prinetrs, Please go to printer selection" #~ "To add preset for more prinetrs, Please go to printer selection"
#~ msgstr "" #~ msgstr ""
#~ "Wir würden die Voreinstellungen als \"Hersteller Typ Seriennummer " #~ "Wir würden die Voreinstellungen als \"Hersteller Typ Seriennummer "

View file

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -2348,10 +2348,10 @@ msgstr ""
msgid "AMS not connected" msgid "AMS not connected"
msgstr "AMS not connected" msgstr "AMS not connected"
msgid "Load Filament" msgid "Load"
msgstr "Load" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "Unload" msgstr "Unload"
msgid "Ext Spool" msgid "Ext Spool"
@ -2369,8 +2369,8 @@ msgstr "Retry"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "Calibrating AMS..." msgstr "Calibrating AMS..."
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "A problem occured during calibration. Click to view the solution." msgstr "A problem occurred during calibration. Click to view the solution."
msgid "Calibrate again" msgid "Calibrate again"
msgstr "Calibrate again" msgstr "Calibrate again"
@ -2410,10 +2410,8 @@ msgstr "Grab new filament"
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "" msgstr ""
"Choose an AMS slot then press \"Load\" or \"Unload\" to automatically load "
"or unload filament."
msgid "Edit" msgid "Edit"
msgstr "Edit" msgstr "Edit"
@ -3015,6 +3013,14 @@ msgstr ""
"AMS will continue to another spool with the same filament properties " "AMS will continue to another spool with the same filament properties "
"automatically when current filament runs out." "automatically when current filament runs out."
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "File" msgstr "File"
@ -3462,18 +3468,6 @@ msgstr ""
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "" msgstr ""
msgid "MC"
msgstr "MC"
msgid "MainBoard"
msgstr "MainBoard"
msgid "TH"
msgstr "TH"
msgid "XCam"
msgstr "XCam"
msgid "Unknown" msgid "Unknown"
msgstr "Unknown" msgstr "Unknown"
@ -3996,7 +3990,7 @@ msgstr "Volume:"
msgid "Size:" msgid "Size:"
msgstr "Size:" msgstr "Size:"
#, boost-format #, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4136,6 +4130,9 @@ msgstr "Preview"
msgid "Device" msgid "Device"
msgstr "Device" msgstr "Device"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "Project" msgstr "Project"
@ -4175,6 +4172,9 @@ msgstr "Print all"
msgid "Send all" msgid "Send all"
msgstr "Send all" msgstr "Send all"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "Keyboard Shortcuts" msgstr "Keyboard Shortcuts"
@ -4950,9 +4950,6 @@ msgstr "Cham"
msgid "Bed" msgid "Bed"
msgstr "Bed" msgstr "Bed"
msgid "Unload"
msgstr "Unload"
msgid "Debug Info" msgid "Debug Info"
msgstr "Debug Info" msgstr "Debug Info"
@ -5122,9 +5119,6 @@ msgstr "Status"
msgid "Update" msgid "Update"
msgstr "Update" msgstr "Update"
msgid "HMS"
msgstr "HMS"
msgid "Don't show again" msgid "Don't show again"
msgstr "Don't show again" msgstr "Don't show again"
@ -5370,6 +5364,12 @@ msgstr ""
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "" msgstr ""
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "" msgstr ""
@ -5808,15 +5808,21 @@ msgstr "Importing Model"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "preparing 3mf file..." msgstr "preparing 3mf file..."
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "downloading project ..." msgstr "downloading project ..."
msgid "Download failed, File size exception."
msgstr ""
#, c-format, boost-format #, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "Project downloaded %d%%" msgstr "Project downloaded %d%%"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
@ -6083,6 +6089,21 @@ msgstr "Imperial"
msgid "Units" msgid "Units"
msgstr "Units" msgstr "Units"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "" msgstr ""
@ -6159,6 +6180,14 @@ msgid ""
"each printer automatically." "each printer automatically."
msgstr "" msgstr ""
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "" msgstr ""
@ -6792,6 +6821,9 @@ msgstr ""
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "Modifying the device name" msgstr "Modifying the device name"
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "Send to Printer MicroSD card" msgstr "Send to Printer MicroSD card"
@ -6844,6 +6876,26 @@ msgstr "Receive login report timeout"
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "Unknown Failure" msgstr "Unknown Failure"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "Log in printer" msgstr "Log in printer"
@ -7046,13 +7098,13 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgid "Line width" msgid "Line width"
msgstr "Line width" msgstr "Line width"
@ -8043,6 +8095,39 @@ msgstr "Done"
msgid "resume" msgid "resume"
msgstr "" msgstr ""
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "Load"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "" msgstr ""
@ -10039,6 +10124,9 @@ msgstr "Support Cubic"
msgid "Lightning" msgid "Lightning"
msgstr "Lightning" msgstr "Lightning"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "" msgstr ""
@ -10208,10 +10296,10 @@ msgstr "Full fan speed at layer"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
msgid "Support interface fan speed" msgid "Support interface fan speed"
@ -12786,6 +12874,9 @@ msgstr "Canceled"
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "load_obj: failed to parse" msgstr "load_obj: failed to parse"
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "The file contains polygons with more than 4 vertices." msgstr "The file contains polygons with more than 4 vertices."
@ -12902,6 +12993,14 @@ msgstr ""
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "" msgstr ""
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "" msgstr ""
@ -12911,6 +13010,19 @@ msgstr ""
msgid "Flow Dynamics Calibration result has been saved to the printer" msgid "Flow Dynamics Calibration result has been saved to the printer"
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "" msgstr ""
@ -13136,9 +13248,6 @@ msgstr ""
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "" msgstr ""
msgid "- ℃"
msgstr ""
msgid "Plate Type" msgid "Plate Type"
msgstr "Plate Type" msgstr "Plate Type"
@ -13182,12 +13291,6 @@ msgstr ""
msgid "Step value" msgid "Step value"
msgstr "" msgstr ""
msgid "0.5"
msgstr ""
msgid "0.005"
msgstr ""
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "" msgstr ""
@ -13215,10 +13318,14 @@ msgstr ""
msgid "Action" msgid "Action"
msgstr "" msgstr ""
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "" msgstr ""
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "" msgstr ""
msgid "Ok" msgid "Ok"
@ -13227,13 +13334,6 @@ msgstr ""
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
msgid "Network lookup" msgid "Network lookup"
msgstr "" msgstr ""
@ -13614,8 +13714,8 @@ msgid ""
msgstr "" msgstr ""
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
@ -14159,6 +14259,175 @@ msgid ""
"Error: \"%2%\"" "Error: \"%2%\""
msgstr "" msgstr ""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "" msgstr ""
@ -14531,6 +14800,31 @@ msgid ""
"probability of warping." "probability of warping."
msgstr "" msgstr ""
#~ msgid "Unload Filament"
#~ msgstr "Unload"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" to automatically "
#~ "load or unload filament."
#~ msgid "MC"
#~ msgstr "MC"
#~ msgid "MainBoard"
#~ msgstr "MainBoard"
#~ msgid "TH"
#~ msgstr "TH"
#~ msgid "XCam"
#~ msgstr "XCam"
#~ msgid "HMS"
#~ msgstr "HMS"
#~ msgid "active" #~ msgid "active"
#~ msgstr "active" #~ msgstr "active"

View file

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: Carlos Fco. Caruncho Serrano <puzzlero@gmail.com>\n" "Last-Translator: Carlos Fco. Caruncho Serrano <puzzlero@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@ -2435,11 +2435,11 @@ msgstr "Auto Rellenado"
msgid "AMS not connected" msgid "AMS not connected"
msgstr "AMS no conectado" msgstr "AMS no conectado"
msgid "Load Filament" msgid "Load"
msgstr "Cargar" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "Descargar" msgstr "Descarga"
msgid "Ext Spool" msgid "Ext Spool"
msgstr "Carrete Externo" msgstr "Carrete Externo"
@ -2456,7 +2456,7 @@ msgstr "Reintentar"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "Calibración de AMS..." msgstr "Calibración de AMS..."
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "" msgstr ""
"Se ha producido un problema durante la calibración. Haga clic para ver la " "Se ha producido un problema durante la calibración. Haga clic para ver la "
"solución." "solución."
@ -2499,10 +2499,8 @@ msgstr "Grab new filament"
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "" msgstr ""
"Elija una ranura AMS y pulse el botón \"Cargar\" o \"Descargar\" para cargar "
"o descargar automáticamente el filamento."
msgid "Edit" msgid "Edit"
msgstr "Editar" msgstr "Editar"
@ -3128,6 +3126,14 @@ msgstr ""
"El AMS continuará con otra bobina con las mismas propiedades de filamento " "El AMS continuará con otra bobina con las mismas propiedades de filamento "
"automáticamente cuando el filamento se termine" "automáticamente cuando el filamento se termine"
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "Archivo" msgstr "Archivo"
@ -3602,18 +3608,6 @@ msgstr "Pausa de error de primera capa"
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "Pausa de obstrucción de boquilla" msgstr "Pausa de obstrucción de boquilla"
msgid "MC"
msgstr "MC"
msgid "MainBoard"
msgstr "Placa Base"
msgid "TH"
msgstr "TH"
msgid "XCam"
msgstr "XCam"
msgid "Unknown" msgid "Unknown"
msgstr "Desconocido" msgstr "Desconocido"
@ -4153,7 +4147,7 @@ msgstr "Volumen:"
msgid "Size:" msgid "Size:"
msgstr "Tamaño:" msgstr "Tamaño:"
#, boost-format #, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4295,6 +4289,9 @@ msgstr "Previsualización"
msgid "Device" msgid "Device"
msgstr "Dispositivo" msgstr "Dispositivo"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "Proyecto" msgstr "Proyecto"
@ -4334,6 +4331,9 @@ msgstr "Imprimir todo"
msgid "Send all" msgid "Send all"
msgstr "Mandar todo" msgstr "Mandar todo"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "Atajos de teclado" msgstr "Atajos de teclado"
@ -5128,9 +5128,6 @@ msgstr "Costura"
msgid "Bed" msgid "Bed"
msgstr "Cama" msgstr "Cama"
msgid "Unload"
msgstr "Descarga"
msgid "Debug Info" msgid "Debug Info"
msgstr "Información de Depuración" msgstr "Información de Depuración"
@ -5320,9 +5317,6 @@ msgstr "Estado"
msgid "Update" msgid "Update"
msgstr "Actualizar" msgstr "Actualizar"
msgid "HMS"
msgstr "HMS"
msgid "Don't show again" msgid "Don't show again"
msgstr "No mostrar de nuevo" msgstr "No mostrar de nuevo"
@ -5568,6 +5562,12 @@ msgstr "Permitir Sonido de Aviso"
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "Detección de Enredos de Filamentos" msgstr "Detección de Enredos de Filamentos"
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "" msgstr ""
@ -6033,19 +6033,23 @@ msgstr "Importando modelo"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "preparar el archivo 3mf..." msgstr "preparar el archivo 3mf..."
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "descargando proyecto..." msgstr "descargando proyecto..."
msgid "Download failed, File size exception."
msgstr ""
#, c-format, boost-format #, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "Proyecto descargado %d%%" msgstr "Proyecto descargado %d%%"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
"La importación a Orca Slicer ha fallado. Descargue el archivo e impórtelo "
"manualmente."
msgid "Import SLA archive" msgid "Import SLA archive"
msgstr "Importar archivo SLA" msgstr "Importar archivo SLA"
@ -6322,6 +6326,21 @@ msgstr "Imperial"
msgid "Units" msgid "Units"
msgstr "Unidades" msgstr "Unidades"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "Página de Inicio" msgstr "Página de Inicio"
@ -6400,6 +6419,14 @@ msgid ""
"each printer automatically." "each printer automatically."
msgstr "" msgstr ""
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "Red" msgstr "Red"
@ -7052,6 +7079,9 @@ msgstr "Calibración automática de caudal usando Micro Lidar"
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "Modificar el nombre del dispositivo" msgstr "Modificar el nombre del dispositivo"
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "Enviar a la tarjeta SD de la impresora" msgstr "Enviar a la tarjeta SD de la impresora"
@ -7109,6 +7139,26 @@ msgstr "Receive login report timeout"
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "Error Desconocido" msgstr "Error Desconocido"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "Iniciar sesión en la impresora" msgstr "Iniciar sesión en la impresora"
@ -7326,8 +7376,8 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"Cuando grabamos timelapse sin cabezal de impresión, es recomendable añadir " "Cuando grabamos timelapse sin cabezal de impresión, es recomendable añadir "
"un \"Torre de Purga de Intervalo\" \n" "un \"Torre de Purga de Intervalo\" \n"
@ -8367,6 +8417,39 @@ msgstr "Hecho"
msgid "resume" msgid "resume"
msgstr "" msgstr ""
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "Cargar"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "Confirmar y Actualizar la Boquilla" msgstr "Confirmar y Actualizar la Boquilla"
@ -10710,6 +10793,9 @@ msgstr "Soporte Cúbico"
msgid "Lightning" msgid "Lightning"
msgstr "Rayo" msgstr "Rayo"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "Longitud del anclaje de relleno de baja densidad" msgstr "Longitud del anclaje de relleno de baja densidad"
@ -10914,10 +11000,10 @@ msgstr "Velocidad máxima del ventilador en la capa"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
"La velocidad de ventilador se incrementará linealmente de cero a " "La velocidad de ventilador se incrementará linealmente de cero a "
"\"close_fan_the_first_x_layers\" al máximo de capa \"full_fan_speed_layer\". " "\"close_fan_the_first_x_layers\" al máximo de capa \"full_fan_speed_layer\". "
@ -13412,10 +13498,9 @@ msgstr ""
"NOTA: Las superficies inferior y superior no se verán afectadas por este " "NOTA: Las superficies inferior y superior no se verán afectadas por este "
"valor para evitar huecos visuales en el exterior del modelo. Ajuste \"Umbral " "valor para evitar huecos visuales en el exterior del modelo. Ajuste \"Umbral "
"de una perímetro\" en la configuración avanzada para ajustar la sensibilidad " "de una perímetro\" en la configuración avanzada para ajustar la sensibilidad "
"de lo que se considera una superficie superior. El \"Umbral de una " "de lo que se considera una superficie superior. El \"Umbral de una perímetro"
"perímetro\" sólo es visible si este valor es superior al valor " "\" sólo es visible si este valor es superior al valor predeterminado de 0,5, "
"predeterminado de 0,5, o si las superficies superiores de una soel perímetro " "o si las superficies superiores de una soel perímetro están activadas."
"están activadas."
msgid "First layer minimum wall width" msgid "First layer minimum wall width"
msgstr "Ancho mínimo del perímetro de la primera capa" msgstr "Ancho mínimo del perímetro de la primera capa"
@ -13914,6 +13999,9 @@ msgstr "Canceled"
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "load_obj: failed to parse" msgstr "load_obj: failed to parse"
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "The file contains polygons with more than 4 vertices." msgstr "The file contains polygons with more than 4 vertices."
@ -14039,6 +14127,14 @@ msgstr "Por favor, seleccione el filamento para calibrar."
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "El valor de tamaño de entrada debe ser 3." msgstr "El valor de tamaño de entrada debe ser 3."
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "Conectando a la impresora." msgstr "Conectando a la impresora."
@ -14050,6 +14146,19 @@ msgstr ""
"El resultado de la Calibración de Dinámicas de Flujo se ha salvado en la " "El resultado de la Calibración de Dinámicas de Flujo se ha salvado en la "
"impresora" "impresora"
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "Error interno" msgstr "Error interno"
@ -14115,12 +14224,12 @@ msgstr ""
"wiki.\n" "wiki.\n"
"\n" "\n"
"Normalmente la calibración es innecesaria. Cuando se inicia una impresión de " "Normalmente la calibración es innecesaria. Cuando se inicia una impresión de "
"un solo color/material, con la opción \"Calibración de la dinámica de " "un solo color/material, con la opción \"Calibración de la dinámica de caudal"
"caudal\" marcada en el menú de inicio de impresión, la impresora seguirá el " "\" marcada en el menú de inicio de impresión, la impresora seguirá el método "
"método antiguo, calibrar el filamento antes de la impresión; Cuando se " "antiguo, calibrar el filamento antes de la impresión; Cuando se inicia una "
"inicia una impresión de varios colores/materiales, la impresora utilizará el " "impresión de varios colores/materiales, la impresora utilizará el parámetro "
"parámetro de compensación por defecto para el filamento durante cada cambio " "de compensación por defecto para el filamento durante cada cambio de "
"de filamento que tendrá un buen resultado en la mayoría de los casos.\n" "filamento que tendrá un buen resultado en la mayoría de los casos.\n"
"\n" "\n"
"Tenga en cuenta que hay algunos casos en los que el resultado de la " "Tenga en cuenta que hay algunos casos en los que el resultado de la "
"calibración no es fiable: el uso de una placa de textura para hacer la " "calibración no es fiable: el uso de una placa de textura para hacer la "
@ -14362,9 +14471,6 @@ msgstr ""
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "Parámetros de Impresión" msgstr "Parámetros de Impresión"
msgid "- ℃"
msgstr "- ℃"
msgid "Plate Type" msgid "Plate Type"
msgstr "Plate Type" msgstr "Plate Type"
@ -14414,12 +14520,6 @@ msgstr "Al valor k"
msgid "Step value" msgid "Step value"
msgstr "Valor del paso" msgstr "Valor del paso"
msgid "0.5"
msgstr "0.5"
msgid "0.005"
msgstr "0.005"
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "" msgstr ""
"El diámetro de la boquilla has sido sincronizado desde los ajustes de " "El diámetro de la boquilla has sido sincronizado desde los ajustes de "
@ -14450,10 +14550,14 @@ msgstr ""
msgid "Action" msgid "Action"
msgstr "Acción" msgstr "Acción"
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "Editar Calibración de Dinámicas de Flujo" msgstr "Editar Calibración de Dinámicas de Flujo"
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "" msgstr ""
msgid "Ok" msgid "Ok"
@ -14462,13 +14566,6 @@ msgstr ""
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
msgid "Network lookup" msgid "Network lookup"
msgstr "Búsqueda de red" msgstr "Búsqueda de red"
@ -14887,8 +14984,8 @@ msgstr ""
"¿Quieres reescribirlo?" "¿Quieres reescribirlo?"
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
"Cambiaríamos el nombre de los preajustes a \"Número de serie del Vendedor " "Cambiaríamos el nombre de los preajustes a \"Número de serie del Vendedor "
@ -15514,6 +15611,175 @@ msgstr ""
"Cuerpo del mensaje: \"%1%\" \n" "Cuerpo del mensaje: \"%1%\" \n"
"Error: \"%2%\"" "Error: \"%2%\""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "¡Conectado a Obico con éxito!" msgstr "¡Conectado a Obico con éxito!"
@ -15950,6 +16216,47 @@ msgstr ""
"aumentar adecuadamente la temperatura del lecho térmico puede reducir la " "aumentar adecuadamente la temperatura del lecho térmico puede reducir la "
"probabilidad de deformaciones." "probabilidad de deformaciones."
#~ msgid "Unload Filament"
#~ msgstr "Descargar"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr ""
#~ "Elija una ranura AMS y pulse el botón \"Cargar\" o \"Descargar\" para "
#~ "cargar o descargar automáticamente el filamento."
#~ msgid "MC"
#~ msgstr "MC"
#~ msgid "MainBoard"
#~ msgstr "Placa Base"
#~ msgid "TH"
#~ msgstr "TH"
#~ msgid "XCam"
#~ msgstr "XCam"
#~ msgid "HMS"
#~ msgstr "HMS"
#~ msgid ""
#~ "Importing to Orca Slicer failed. Please download the file and manually "
#~ "import it."
#~ msgstr ""
#~ "La importación a Orca Slicer ha fallado. Descargue el archivo e impórtelo "
#~ "manualmente."
#~ msgid "- ℃"
#~ msgstr "- ℃"
#~ msgid "0.5"
#~ msgstr "0.5"
#~ msgid "0.005"
#~ msgstr "0.005"
#~ msgid "active" #~ msgid "active"
#~ msgstr "activo" #~ msgstr "activo"
@ -16220,8 +16527,8 @@ msgstr ""
#~ msgstr "Capas de baja densidad (EXPERIMENTAL)" #~ msgstr "Capas de baja densidad (EXPERIMENTAL)"
#~ msgid "" #~ msgid ""
#~ "We would rename the presets as \"Vendor Type Serial @printer you " #~ "We would rename the presets as \"Vendor Type Serial @printer you selected"
#~ "selected\". \n" #~ "\". \n"
#~ "To add preset for more prinetrs, Please go to printer selection" #~ "To add preset for more prinetrs, Please go to printer selection"
#~ msgstr "" #~ msgstr ""
#~ "Cambiaremos el nombre de los perfiles a \"Tipo Número de Serie @impresora " #~ "Cambiaremos el nombre de los perfiles a \"Tipo Número de Serie @impresora "

View file

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Guislain Cyril, Thomas Lété\n" "Language-Team: Guislain Cyril, Thomas Lété\n"
@ -2443,11 +2443,11 @@ msgstr "Recharge Automatique"
msgid "AMS not connected" msgid "AMS not connected"
msgstr "AMS non connecté" msgstr "AMS non connecté"
msgid "Load Filament" msgid "Load"
msgstr "Charger" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "Déchargement" msgstr "Décharger"
msgid "Ext Spool" msgid "Ext Spool"
msgstr "Bobine Ext" msgstr "Bobine Ext"
@ -2464,7 +2464,7 @@ msgstr "Réessayer"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "Étalonnage de l'AMS…" msgstr "Étalonnage de l'AMS…"
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "" msgstr ""
"Un problème est survenu lors de la calibration. Cliquez pour voir la " "Un problème est survenu lors de la calibration. Cliquez pour voir la "
"solution." "solution."
@ -2507,10 +2507,8 @@ msgstr "Saisir un nouveau filament"
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "" msgstr ""
"Choisissez un emplacement AMS puis appuyez sur le bouton correspondant pour "
"Charger ou Décharger le filament."
msgid "Edit" msgid "Edit"
msgstr "Éditer" msgstr "Éditer"
@ -3151,6 +3149,14 @@ msgstr ""
"L'AMS passera automatiquement à une autre bobine avec les mêmes propriétés " "L'AMS passera automatiquement à une autre bobine avec les mêmes propriétés "
"de filament lorsque la bobine actuelle est épuisé" "de filament lorsque la bobine actuelle est épuisé"
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "Fichier" msgstr "Fichier"
@ -3623,18 +3629,6 @@ msgstr "Pause en cas d'erreur de la première couche"
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "Pause en cas de buse bouchée" msgstr "Pause en cas de buse bouchée"
msgid "MC"
msgstr "MC"
msgid "MainBoard"
msgstr "Carte mère"
msgid "TH"
msgstr "TH"
msgid "XCam"
msgstr "XCam"
msgid "Unknown" msgid "Unknown"
msgstr "Inconnu" msgstr "Inconnu"
@ -4172,7 +4166,7 @@ msgstr "Le volume:"
msgid "Size:" msgid "Size:"
msgstr "Taille:" msgstr "Taille:"
#, boost-format #, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4316,6 +4310,9 @@ msgstr "Aperçu"
msgid "Device" msgid "Device"
msgstr "Appareil" msgstr "Appareil"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "Projet" msgstr "Projet"
@ -4355,6 +4352,9 @@ msgstr "Tout imprimer"
msgid "Send all" msgid "Send all"
msgstr "Tout envoyer" msgstr "Tout envoyer"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "Raccourcis Clavier" msgstr "Raccourcis Clavier"
@ -5183,9 +5183,6 @@ msgstr "Chamb"
msgid "Bed" msgid "Bed"
msgstr "Plateau" msgstr "Plateau"
msgid "Unload"
msgstr "Décharger"
msgid "Debug Info" msgid "Debug Info"
msgstr "Les informations de débogage" msgstr "Les informations de débogage"
@ -5373,9 +5370,6 @@ msgstr "État"
msgid "Update" msgid "Update"
msgstr "Mise à jour" msgstr "Mise à jour"
msgid "HMS"
msgstr "HMS"
msgid "Don't show again" msgid "Don't show again"
msgstr "Ne plus afficher" msgstr "Ne plus afficher"
@ -5624,6 +5618,12 @@ msgstr "Autoriser le son dinvite"
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "Détection de filament coincé" msgstr "Détection de filament coincé"
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "Type de buse" msgstr "Type de buse"
@ -6092,19 +6092,23 @@ msgstr "Importation du modèle"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "préparation du fichier 3mf..." msgstr "préparation du fichier 3mf..."
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "téléchargement du projet..." msgstr "téléchargement du projet..."
msgid "Download failed, File size exception."
msgstr ""
#, c-format, boost-format #, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "Projet téléchargé à %d%%" msgstr "Projet téléchargé à %d%%"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
"Limportation vers OrcaSlicer a échoué. Veuillez télécharger le fichier et "
"limporter manuellement."
msgid "Import SLA archive" msgid "Import SLA archive"
msgstr "Importer les archives SLA" msgstr "Importer les archives SLA"
@ -6390,6 +6394,21 @@ msgstr "Impérial"
msgid "Units" msgid "Units"
msgstr "Unités" msgstr "Unités"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "Accueil" msgstr "Accueil"
@ -6482,6 +6501,14 @@ msgstr ""
"Si cette option est activée, Orca se souviendra de la configuration du " "Si cette option est activée, Orca se souviendra de la configuration du "
"filament/processus pour chaque imprimante et la modifiera automatiquement." "filament/processus pour chaque imprimante et la modifiera automatiquement."
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "Réseau" msgstr "Réseau"
@ -7154,6 +7181,9 @@ msgstr "Calibration automatique du débit à laide du Micro-Lidar"
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "Modification du nom de l'appareil" msgstr "Modification du nom de l'appareil"
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "Envoyer sur la carte SD de l'imprimante" msgstr "Envoyer sur la carte SD de l'imprimante"
@ -7211,6 +7241,26 @@ msgstr "Délai d'expiration du rapport de connexion"
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "Erreur inconnue" msgstr "Erreur inconnue"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "Connectez-vous à l'imprimante" msgstr "Connectez-vous à l'imprimante"
@ -7450,8 +7500,8 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"Lorsque vous enregistrez un timelapse sans tête doutil, il est recommandé " "Lorsque vous enregistrez un timelapse sans tête doutil, il est recommandé "
"dajouter une \"Tour dessuyage timelapse\".\n" "dajouter une \"Tour dessuyage timelapse\".\n"
@ -7603,9 +7653,9 @@ msgid ""
"Bed temperature when cool plate is installed. Value 0 means the filament " "Bed temperature when cool plate is installed. Value 0 means the filament "
"does not support to print on the Cool Plate" "does not support to print on the Cool Plate"
msgstr "" msgstr ""
"Il s'agit de la température du plateau lorsque le plateau froid (\"Cool " "Il s'agit de la température du plateau lorsque le plateau froid (\"Cool plate"
"plate\") est installé. Une valeur à 0 signifie que ce filament ne peut pas " "\") est installé. Une valeur à 0 signifie que ce filament ne peut pas être "
"être imprimé sur le plateau froid." "imprimé sur le plateau froid."
msgid "Engineering plate" msgid "Engineering plate"
msgstr "Plaque Engineering" msgstr "Plaque Engineering"
@ -8524,6 +8574,39 @@ msgstr "Terminé"
msgid "resume" msgid "resume"
msgstr "reprendre" msgstr "reprendre"
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "Charger"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "Confirmation et mise à jour de la buse" msgstr "Confirmation et mise à jour de la buse"
@ -10893,6 +10976,9 @@ msgstr "Support Cubique"
msgid "Lightning" msgid "Lightning"
msgstr "Lightning" msgstr "Lightning"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "Longueur de lancrage de remplissage interne" msgstr "Longueur de lancrage de remplissage interne"
@ -11100,10 +11186,10 @@ msgstr "Ventilateur à pleine vitesse à la couche"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
"La vitesse du ventilateur augmentera de manière linéaire à partir de zéro à " "La vitesse du ventilateur augmentera de manière linéaire à partir de zéro à "
"la couche \"close_fan_the_first_x_layers\" jusquau maximum à la couche " "la couche \"close_fan_the_first_x_layers\" jusquau maximum à la couche "
@ -12747,8 +12833,8 @@ msgid ""
"Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to " "Use \"Even-odd\" for 3DLabPrint airplane models. Use \"Close holes\" to "
"close all holes in the model." "close all holes in the model."
msgstr "" msgstr ""
"Utilisez « Pair-impair » pour les modèles d'avion 3DLabPrint. Utilisez " "Utilisez « Pair-impair » pour les modèles d'avion 3DLabPrint. Utilisez « "
"« Fermer les trous » pour fermer tous les trous du modèle." "Fermer les trous » pour fermer tous les trous du modèle."
msgid "Regular" msgid "Regular"
msgstr "Standard" msgstr "Standard"
@ -13511,8 +13597,8 @@ msgid ""
"Wipe tower is only compatible with relative mode. It is recommended on most " "Wipe tower is only compatible with relative mode. It is recommended on most "
"printers. Default is checked" "printers. Default is checked"
msgstr "" msgstr ""
"Lextrusion relative est recommandée lors de lutilisation de loption " "Lextrusion relative est recommandée lors de lutilisation de loption « "
"« label_objects ». Certains extrudeurs fonctionnent mieux avec cette option " "label_objects ». Certains extrudeurs fonctionnent mieux avec cette option "
"non verrouillée (mode dextrusion absolu). La tour dessuyage nest " "non verrouillée (mode dextrusion absolu). La tour dessuyage nest "
"compatible quavec le mode relatif. Il est recommandé sur la plupart des " "compatible quavec le mode relatif. Il est recommandé sur la plupart des "
"imprimantes. Loption par défaut est cochée" "imprimantes. Loption par défaut est cochée"
@ -14138,6 +14224,9 @@ msgstr "Annulé"
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "load_obj : échec de l'analyse" msgstr "load_obj : échec de l'analyse"
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "Le fichier contient des polygones comportant plus de 4 sommets." msgstr "Le fichier contient des polygones comportant plus de 4 sommets."
@ -14266,6 +14355,14 @@ msgstr "Veuillez sélectionner le filament à calibrer."
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "La valeur saisie doit être 3." msgstr "La valeur saisie doit être 3."
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "Connexion à limprimante…" msgstr "Connexion à limprimante…"
@ -14277,6 +14374,22 @@ msgstr ""
"Le résultat de la calibration dynamique du débit a été enregistré sur " "Le résultat de la calibration dynamique du débit a été enregistré sur "
"limprimante" "limprimante"
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
"Il existe déjà un résultat détalonnage antérieur portant le même nom : %s. "
"Un seul des résultats portant le même nom est sauvegardé. Êtes-vous sûr de "
"vouloir remplacer le résultat antérieur ?"
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "Erreur interne" msgstr "Erreur interne"
@ -14341,9 +14454,9 @@ msgstr ""
"Wiki.\n" "Wiki.\n"
"\n" "\n"
"Habituellement, la calibration est inutile. Lorsque vous démarrez une " "Habituellement, la calibration est inutile. Lorsque vous démarrez une "
"impression d'une seule couleur/matériau, avec l'option \"Calibration du " "impression d'une seule couleur/matériau, avec l'option \"Calibration du débit"
"débit\" cochée dans le menu de démarrage de l'impression, l'imprimante " "\" cochée dans le menu de démarrage de l'impression, l'imprimante suivra "
"suivra l'ancienne méthode de calibration du filament avant l'impression.\n" "l'ancienne méthode de calibration du filament avant l'impression.\n"
"Lorsque vous démarrez une impression multi-couleurs/matériaux, l'imprimante " "Lorsque vous démarrez une impression multi-couleurs/matériaux, l'imprimante "
"utilise le paramètre de compensation par défaut pour le filament lors de " "utilise le paramètre de compensation par défaut pour le filament lors de "
"chaque changement de filament, ce qui donne un bon résultat dans la plupart " "chaque changement de filament, ce qui donne un bon résultat dans la plupart "
@ -14604,9 +14717,6 @@ msgstr ""
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "Paramètres dimpression" msgstr "Paramètres dimpression"
msgid "- ℃"
msgstr "- ℃"
msgid "Plate Type" msgid "Plate Type"
msgstr "Type de plaque" msgstr "Type de plaque"
@ -14654,12 +14764,6 @@ msgstr "À la valeur K"
msgid "Step value" msgid "Step value"
msgstr "Intervalle" msgstr "Intervalle"
msgid "0.5"
msgstr "0.5"
msgid "0.005"
msgstr "0.005"
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "" msgstr ""
"Le diamètre de la buse a été synchronisé à partir des paramètres de " "Le diamètre de la buse a été synchronisé à partir des paramètres de "
@ -14689,11 +14793,15 @@ msgstr "Actualisation de historique des calibrations dynamiques du débit"
msgid "Action" msgid "Action"
msgstr "Action" msgstr "Action"
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "Editer la calibration dynamique du débit" msgstr "Editer la calibration dynamique du débit"
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "Nouvelle calibration de la dynamique du flux" msgstr ""
msgid "Ok" msgid "Ok"
msgstr "" msgstr ""
@ -14701,16 +14809,6 @@ msgstr ""
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "Le filament doit être sélectionné." msgstr "Le filament doit être sélectionné."
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
"Il existe déjà un résultat détalonnage antérieur portant le même nom : %s. "
"Un seul des résultats portant le même nom est sauvegardé. Êtes-vous sûr de "
"vouloir remplacer le résultat antérieur ?"
msgid "Network lookup" msgid "Network lookup"
msgstr "Recherche de réseau" msgstr "Recherche de réseau"
@ -15136,8 +15234,8 @@ msgstr ""
"Voulez-vous le réécrire ?" "Voulez-vous le réécrire ?"
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
"Nous renommerions les préréglages en « Vendor Type Serial @printer you " "Nous renommerions les préréglages en « Vendor Type Serial @printer you "
@ -15786,6 +15884,175 @@ msgstr ""
"Corps du message : « %1% »\n" "Corps du message : « %1% »\n"
"Erreur : « %2% »" "Erreur : « %2% »"
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "Connexion à Obico réussie !" msgstr "Connexion à Obico réussie !"
@ -16231,6 +16498,50 @@ msgstr ""
"déformer, tels que lABS, une augmentation appropriée de la température du " "déformer, tels que lABS, une augmentation appropriée de la température du "
"plateau chauffant peut réduire la probabilité de déformation." "plateau chauffant peut réduire la probabilité de déformation."
#~ msgid "Unload Filament"
#~ msgstr "Déchargement"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr ""
#~ "Choisissez un emplacement AMS puis appuyez sur le bouton correspondant "
#~ "pour Charger ou Décharger le filament."
#~ msgid "MC"
#~ msgstr "MC"
#~ msgid "MainBoard"
#~ msgstr "Carte mère"
#~ msgid "TH"
#~ msgstr "TH"
#~ msgid "XCam"
#~ msgstr "XCam"
#~ msgid "HMS"
#~ msgstr "HMS"
#~ msgid ""
#~ "Importing to Orca Slicer failed. Please download the file and manually "
#~ "import it."
#~ msgstr ""
#~ "Limportation vers OrcaSlicer a échoué. Veuillez télécharger le fichier "
#~ "et limporter manuellement."
#~ msgid "- ℃"
#~ msgstr "- ℃"
#~ msgid "0.5"
#~ msgstr "0.5"
#~ msgid "0.005"
#~ msgstr "0.005"
#~ msgid "New Flow Dynamics Calibration"
#~ msgstr "Nouvelle calibration de la dynamique du flux"
#~ msgid "" #~ msgid ""
#~ "The 3mf file version is in Beta and it is newer than the current " #~ "The 3mf file version is in Beta and it is newer than the current "
#~ "OrcaSlicer version." #~ "OrcaSlicer version."
@ -16471,8 +16782,8 @@ msgstr ""
#~ "thickness (top+bottom solid layers)" #~ "thickness (top+bottom solid layers)"
#~ msgstr "" #~ msgstr ""
#~ "Ajoutez du remplissage solide à proximité des surfaces inclinées pour " #~ "Ajoutez du remplissage solide à proximité des surfaces inclinées pour "
#~ "garantir l'épaisseur verticale de la coque (couches solides " #~ "garantir l'épaisseur verticale de la coque (couches solides supérieure"
#~ "supérieure+inférieure)." #~ "+inférieure)."
#~ msgid "Further reduce solid infill on walls (beta)" #~ msgid "Further reduce solid infill on walls (beta)"
#~ msgstr "Réduire davantage le remplissage solide des parois (expérimental)" #~ msgstr "Réduire davantage le remplissage solide des parois (expérimental)"

View file

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"Language: hu\n" "Language: hu\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -2361,11 +2361,11 @@ msgstr ""
msgid "AMS not connected" msgid "AMS not connected"
msgstr "Az AMS nincs csatlakoztatva" msgstr "Az AMS nincs csatlakoztatva"
msgid "Load Filament" msgid "Load"
msgstr "Filament betöltés" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "Filament kitöltése" msgstr "Kitöltés"
msgid "Ext Spool" msgid "Ext Spool"
msgstr "Kül. tekercs" msgstr "Kül. tekercs"
@ -2382,7 +2382,7 @@ msgstr "Újra"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "AMS kalibrálása..." msgstr "AMS kalibrálása..."
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "" msgstr ""
"A kalibráció során probléma merült fel. Kattintson a megoldás " "A kalibráció során probléma merült fel. Kattintson a megoldás "
"megtekintéséhez." "megtekintéséhez."
@ -2425,10 +2425,8 @@ msgstr "Grab new filament"
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "" msgstr ""
"Válassz egy AMS rekeszt, majd nyomd meg a \"Load\" vagy \"Unload\" gombot a "
"filament automatikus be- vagy kitöltéséhez."
msgid "Edit" msgid "Edit"
msgstr "Szerkesztés" msgstr "Szerkesztés"
@ -3038,6 +3036,14 @@ msgstr ""
"Az AMS automatikusan egy másik, azonos tulajdonságú filamentre vált, ha az " "Az AMS automatikusan egy másik, azonos tulajdonságú filamentre vált, ha az "
"aktuális filament kifogy." "aktuális filament kifogy."
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "Fájl" msgstr "Fájl"
@ -3485,18 +3491,6 @@ msgstr ""
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "" msgstr ""
msgid "MC"
msgstr "MC"
msgid "MainBoard"
msgstr "MainBoard"
msgid "TH"
msgstr "TH"
msgid "XCam"
msgstr "XCam"
msgid "Unknown" msgid "Unknown"
msgstr "Ismeretlen" msgstr "Ismeretlen"
@ -4019,7 +4013,7 @@ msgstr "Térfogat:"
msgid "Size:" msgid "Size:"
msgstr "Méret:" msgstr "Méret:"
#, boost-format #, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4159,6 +4153,9 @@ msgstr "Előnézet"
msgid "Device" msgid "Device"
msgstr "Nyomtató" msgstr "Nyomtató"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "Projekt" msgstr "Projekt"
@ -4198,6 +4195,9 @@ msgstr "Összes nyomtatása"
msgid "Send all" msgid "Send all"
msgstr "Összes elküldése" msgstr "Összes elküldése"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "Gyorsbillentyűk" msgstr "Gyorsbillentyűk"
@ -4973,9 +4973,6 @@ msgstr "Cham"
msgid "Bed" msgid "Bed"
msgstr "Asztal" msgstr "Asztal"
msgid "Unload"
msgstr "Kitöltés"
msgid "Debug Info" msgid "Debug Info"
msgstr "Hibakeresési infó" msgstr "Hibakeresési infó"
@ -5145,9 +5142,6 @@ msgstr "Állapot"
msgid "Update" msgid "Update"
msgstr "Frissítés" msgstr "Frissítés"
msgid "HMS"
msgstr "HMS"
msgid "Don't show again" msgid "Don't show again"
msgstr "Ne mutasd újra" msgstr "Ne mutasd újra"
@ -5394,6 +5388,12 @@ msgstr ""
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "" msgstr ""
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "" msgstr ""
@ -5835,15 +5835,21 @@ msgstr "Modell importálása"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "3mf fájl előkészítése..." msgstr "3mf fájl előkészítése..."
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "projekt letöltése ..." msgstr "projekt letöltése ..."
msgid "Download failed, File size exception."
msgstr ""
#, c-format, boost-format #, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "Projekt letöltve %d%%" msgstr "Projekt letöltve %d%%"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
@ -6111,6 +6117,21 @@ msgstr "Angolszász"
msgid "Units" msgid "Units"
msgstr "Mértékegység" msgstr "Mértékegység"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "" msgstr ""
@ -6187,6 +6208,14 @@ msgid ""
"each printer automatically." "each printer automatically."
msgstr "" msgstr ""
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "" msgstr ""
@ -6827,6 +6856,9 @@ msgstr ""
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "Eszköz nevének módosítása" msgstr "Eszköz nevének módosítása"
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "Küldés a nyomtatóban lévő MicroSD kártyára" msgstr "Küldés a nyomtatóban lévő MicroSD kártyára"
@ -6882,6 +6914,26 @@ msgstr "Receive login report timeout"
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "Ismeretlen hiba" msgstr "Ismeretlen hiba"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "Bejelentkezés a nyomtatóra" msgstr "Bejelentkezés a nyomtatóra"
@ -7085,8 +7137,8 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"Ha a nyomtatófej nélküli timelapse engedélyezve van, javasoljuk, hogy " "Ha a nyomtatófej nélküli timelapse engedélyezve van, javasoljuk, hogy "
"helyezz el a tálcán egy „Timelapse törlőtornyot“. Ehhez kattints jobb " "helyezz el a tálcán egy „Timelapse törlőtornyot“. Ehhez kattints jobb "
@ -8093,6 +8145,39 @@ msgstr "Done"
msgid "resume" msgid "resume"
msgstr "" msgstr ""
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "Filament betöltés"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "" msgstr ""
@ -10110,6 +10195,9 @@ msgstr "Támasz kocka"
msgid "Lightning" msgid "Lightning"
msgstr "Világítás" msgstr "Világítás"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "" msgstr ""
@ -10279,10 +10367,10 @@ msgstr "Teljes ventilátor fordulatszám ennél a rétegnél"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
msgid "Support interface fan speed" msgid "Support interface fan speed"
@ -12877,6 +12965,9 @@ msgstr "Canceled"
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "load_obj: failed to parse" msgstr "load_obj: failed to parse"
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "The file contains polygons with more than 4 vertices." msgstr "The file contains polygons with more than 4 vertices."
@ -12993,6 +13084,14 @@ msgstr ""
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "" msgstr ""
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "" msgstr ""
@ -13002,6 +13101,19 @@ msgstr ""
msgid "Flow Dynamics Calibration result has been saved to the printer" msgid "Flow Dynamics Calibration result has been saved to the printer"
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "" msgstr ""
@ -13227,9 +13339,6 @@ msgstr ""
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "" msgstr ""
msgid "- ℃"
msgstr ""
msgid "Plate Type" msgid "Plate Type"
msgstr "Plate Type" msgstr "Plate Type"
@ -13273,12 +13382,6 @@ msgstr ""
msgid "Step value" msgid "Step value"
msgstr "" msgstr ""
msgid "0.5"
msgstr ""
msgid "0.005"
msgstr ""
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "" msgstr ""
@ -13306,10 +13409,14 @@ msgstr ""
msgid "Action" msgid "Action"
msgstr "" msgstr ""
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "" msgstr ""
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "" msgstr ""
msgid "Ok" msgid "Ok"
@ -13318,13 +13425,6 @@ msgstr ""
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
msgid "Network lookup" msgid "Network lookup"
msgstr "" msgstr ""
@ -13705,8 +13805,8 @@ msgid ""
msgstr "" msgstr ""
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
@ -14249,6 +14349,175 @@ msgid ""
"Error: \"%2%\"" "Error: \"%2%\""
msgstr "" msgstr ""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "" msgstr ""
@ -14621,6 +14890,31 @@ msgid ""
"probability of warping." "probability of warping."
msgstr "" msgstr ""
#~ msgid "Unload Filament"
#~ msgstr "Filament kitöltése"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr ""
#~ "Válassz egy AMS rekeszt, majd nyomd meg a \"Load\" vagy \"Unload\" gombot "
#~ "a filament automatikus be- vagy kitöltéséhez."
#~ msgid "MC"
#~ msgstr "MC"
#~ msgid "MainBoard"
#~ msgstr "MainBoard"
#~ msgid "TH"
#~ msgstr "TH"
#~ msgid "XCam"
#~ msgstr "XCam"
#~ msgid "HMS"
#~ msgstr "HMS"
#~ msgid "active" #~ msgid "active"
#~ msgstr "aktív" #~ msgstr "aktív"

View file

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -2431,11 +2431,11 @@ msgstr "Ricarica automatica"
msgid "AMS not connected" msgid "AMS not connected"
msgstr "AMS non collegato" msgstr "AMS non collegato"
msgid "Load Filament" msgid "Load"
msgstr "Carica" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "Scarica Filamento" msgstr "Scarica"
msgid "Ext Spool" msgid "Ext Spool"
msgstr "Bobina esterna" msgstr "Bobina esterna"
@ -2452,7 +2452,7 @@ msgstr "Riprova"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "Calibrazione AMS..." msgstr "Calibrazione AMS..."
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "" msgstr ""
"Si è verificato un problema durante la calibrazione. Clicca per visualizzare " "Si è verificato un problema durante la calibrazione. Clicca per visualizzare "
"la soluzione." "la soluzione."
@ -2495,10 +2495,8 @@ msgstr "Prendo un nuovo filamento"
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "" msgstr ""
"Seleziona uno slot AMS, premi \"Carica\" o \"Scarica\" per caricare o "
"scaricare automaticamente il filamento."
msgid "Edit" msgid "Edit"
msgstr "Modifica" msgstr "Modifica"
@ -3126,6 +3124,14 @@ msgstr ""
"L'AMS passerà automaticamente a un altro filamento con stesse proprietà " "L'AMS passerà automaticamente a un altro filamento con stesse proprietà "
"quando il filamento corrente si esaurisce" "quando il filamento corrente si esaurisce"
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "File" msgstr "File"
@ -3592,18 +3598,6 @@ msgstr "Pausa in caso di errore nel primo layer"
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "Pausa in caso di intasamento del nozzle" msgstr "Pausa in caso di intasamento del nozzle"
msgid "MC"
msgstr "MC"
msgid "MainBoard"
msgstr "MainBoard"
msgid "TH"
msgstr "TH"
msgid "XCam"
msgstr "XCam"
msgid "Unknown" msgid "Unknown"
msgstr "Sconosciuto" msgstr "Sconosciuto"
@ -4141,7 +4135,7 @@ msgstr "Volume:"
msgid "Size:" msgid "Size:"
msgstr "Dimensione:" msgstr "Dimensione:"
#, boost-format #, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4283,6 +4277,9 @@ msgstr "Anteprima"
msgid "Device" msgid "Device"
msgstr "Dispositivo" msgstr "Dispositivo"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "Progetto" msgstr "Progetto"
@ -4322,6 +4319,9 @@ msgstr "Stampa tutto"
msgid "Send all" msgid "Send all"
msgstr "Invia tutto" msgstr "Invia tutto"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "Scorciatoie Tastiera" msgstr "Scorciatoie Tastiera"
@ -5118,9 +5118,6 @@ msgstr "Camera"
msgid "Bed" msgid "Bed"
msgstr "Piano" msgstr "Piano"
msgid "Unload"
msgstr "Scarica"
msgid "Debug Info" msgid "Debug Info"
msgstr "Informazioni di debug" msgstr "Informazioni di debug"
@ -5307,9 +5304,6 @@ msgstr "Stato"
msgid "Update" msgid "Update"
msgstr "Aggiorna" msgstr "Aggiorna"
msgid "HMS"
msgstr "HMS"
msgid "Don't show again" msgid "Don't show again"
msgstr "Non mostrare più" msgstr "Non mostrare più"
@ -5555,6 +5549,12 @@ msgstr "Consenti suono di richiesta"
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "Rilevamento del groviglio del filamento" msgstr "Rilevamento del groviglio del filamento"
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "" msgstr ""
@ -6021,19 +6021,23 @@ msgstr "Importazione del modello"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "preparazione file 3mf..." msgstr "preparazione file 3mf..."
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "Download progetto..." msgstr "Download progetto..."
msgid "Download failed, File size exception."
msgstr ""
#, c-format, boost-format #, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "Progetto scaricato %d%%" msgstr "Progetto scaricato %d%%"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
"L'importazione di Orca Slicer non è riuscita. Si prega di scaricare il file "
"e importarlo manualmente."
msgid "Import SLA archive" msgid "Import SLA archive"
msgstr "Importa archivio SLA" msgstr "Importa archivio SLA"
@ -6307,6 +6311,21 @@ msgstr "Imperiale"
msgid "Units" msgid "Units"
msgstr "Unità" msgstr "Unità"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "Home" msgstr "Home"
@ -6385,6 +6404,14 @@ msgid ""
"each printer automatically." "each printer automatically."
msgstr "" msgstr ""
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "Rete" msgstr "Rete"
@ -7037,6 +7064,9 @@ msgstr "Calibrazione automatica del flusso tramite Micro Lidar"
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "Modifica nome del dispositivo" msgstr "Modifica nome del dispositivo"
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "Invia a microSD stampante" msgstr "Invia a microSD stampante"
@ -7092,6 +7122,26 @@ msgstr "Timeout ricezione del rapporto di login"
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "Fallimento sconosciuto" msgstr "Fallimento sconosciuto"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "Log in stampante" msgstr "Log in stampante"
@ -7310,8 +7360,8 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"Quando si registra un timelapse senza testa di stampa, si consiglia di " "Quando si registra un timelapse senza testa di stampa, si consiglia di "
"aggiungere un \"Timelapse Torre di pulizia\"\n" "aggiungere un \"Timelapse Torre di pulizia\"\n"
@ -8361,6 +8411,39 @@ msgstr "Fine"
msgid "resume" msgid "resume"
msgstr "" msgstr ""
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "Carica"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "Conferma e aggiorna l'ugello" msgstr "Conferma e aggiorna l'ugello"
@ -8456,8 +8539,8 @@ msgid ""
msgstr "" msgstr ""
"È stato rilevato un aggiornamento importante che deve essere eseguito prima " "È stato rilevato un aggiornamento importante che deve essere eseguito prima "
"che la stampa possa continuare. Si desidera aggiornare ora? È possibile " "che la stampa possa continuare. Si desidera aggiornare ora? È possibile "
"effettuare l'aggiornamento anche in un secondo momento da \"Aggiorna " "effettuare l'aggiornamento anche in un secondo momento da \"Aggiorna firmware"
"firmware\"." "\"."
msgid "" msgid ""
"The firmware version is abnormal. Repairing and updating are required before " "The firmware version is abnormal. Repairing and updating are required before "
@ -10712,6 +10795,9 @@ msgstr "Supporto cubico"
msgid "Lightning" msgid "Lightning"
msgstr "Lightning" msgstr "Lightning"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "Lunghezza dell'ancora di riempimento sparsa" msgstr "Lunghezza dell'ancora di riempimento sparsa"
@ -10919,17 +11005,16 @@ msgstr "Massima velocità della ventola al layer"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
"La velocità della ventola aumenterà linearmente da zero al livello " "La velocità della ventola aumenterà linearmente da zero al livello "
"\"close_fan_the_first_x_layers\" al massimo al livello " "\"close_fan_the_first_x_layers\" al massimo al livello \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" verrà ignorato se " "\". \"full_fan_speed_layer\" verrà ignorato se inferiore a "
"inferiore a \"close_fan_the_first_x_layers\", nel qual caso la ventola " "\"close_fan_the_first_x_layers\", nel qual caso la ventola funzionerà alla "
"funzionerà alla massima velocità consentita al livello " "massima velocità consentita al livello \"close_fan_the_first_x_layers\" + 1."
"\"close_fan_the_first_x_layers\" + 1."
msgid "Support interface fan speed" msgid "Support interface fan speed"
msgstr "Supporta la velocità della ventola dell'interfaccia" msgstr "Supporta la velocità della ventola dell'interfaccia"
@ -13931,6 +14016,9 @@ msgstr "Annullato"
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "load_obj: analisi non riuscita" msgstr "load_obj: analisi non riuscita"
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "Il file contiene poligoni con più di 4 vertici." msgstr "Il file contiene poligoni con più di 4 vertici."
@ -14059,6 +14147,14 @@ msgstr "Selezionare il filamento da calibrare."
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "La dimensione del valore di input deve essere 3." msgstr "La dimensione del valore di input deve essere 3."
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "Collegamento alla stampante..." msgstr "Collegamento alla stampante..."
@ -14070,6 +14166,19 @@ msgstr ""
"Il risultato della calibrazione di Flow Dynamics è stato salvato nella " "Il risultato della calibrazione di Flow Dynamics è stato salvato nella "
"stampante" "stampante"
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "Errore interno" msgstr "Errore interno"
@ -14385,9 +14494,6 @@ msgstr ""
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "Parametri di stampa" msgstr "Parametri di stampa"
msgid "- ℃"
msgstr "- °C"
msgid "Plate Type" msgid "Plate Type"
msgstr "Tipo di piatto" msgstr "Tipo di piatto"
@ -14437,12 +14543,6 @@ msgstr "Al valore k"
msgid "Step value" msgid "Step value"
msgstr "Valore del passaggio" msgstr "Valore del passaggio"
msgid "0.5"
msgstr "0.5"
msgid "0.005"
msgstr "0.005"
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "" msgstr ""
"Il diametro del nozzle è stato sincronizzato dalle impostazioni della " "Il diametro del nozzle è stato sincronizzato dalle impostazioni della "
@ -14472,10 +14572,14 @@ msgstr "Aggiornamento dei record storici di calibrazione di Flow Dynamics"
msgid "Action" msgid "Action"
msgstr "Azione" msgstr "Azione"
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "Modifica calibrazione dinamica flusso (Edit Flow Dynamics)" msgstr "Modifica calibrazione dinamica flusso (Edit Flow Dynamics)"
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "" msgstr ""
msgid "Ok" msgid "Ok"
@ -14484,13 +14588,6 @@ msgstr ""
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
msgid "Network lookup" msgid "Network lookup"
msgstr "Ricerca network" msgstr "Ricerca network"
@ -14903,8 +15000,8 @@ msgstr ""
"Vuoi riscriverlo?" "Vuoi riscriverlo?"
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
"Rinomineremo le preimpostazioni come \"Tipo di fornitore seriale @printer " "Rinomineremo le preimpostazioni come \"Tipo di fornitore seriale @printer "
@ -15537,6 +15634,175 @@ msgstr ""
"Corpo messaggio: \"%1%\"\n" "Corpo messaggio: \"%1%\"\n"
"Errore: \"%2%\"" "Errore: \"%2%\""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "" msgstr ""
@ -15966,6 +16232,47 @@ msgstr ""
"aumentare in modo appropriato la temperatura del piano riscaldato può " "aumentare in modo appropriato la temperatura del piano riscaldato può "
"ridurre la probabilità di deformazione." "ridurre la probabilità di deformazione."
#~ msgid "Unload Filament"
#~ msgstr "Scarica Filamento"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr ""
#~ "Seleziona uno slot AMS, premi \"Carica\" o \"Scarica\" per caricare o "
#~ "scaricare automaticamente il filamento."
#~ msgid "MC"
#~ msgstr "MC"
#~ msgid "MainBoard"
#~ msgstr "MainBoard"
#~ msgid "TH"
#~ msgstr "TH"
#~ msgid "XCam"
#~ msgstr "XCam"
#~ msgid "HMS"
#~ msgstr "HMS"
#~ msgid ""
#~ "Importing to Orca Slicer failed. Please download the file and manually "
#~ "import it."
#~ msgstr ""
#~ "L'importazione di Orca Slicer non è riuscita. Si prega di scaricare il "
#~ "file e importarlo manualmente."
#~ msgid "- ℃"
#~ msgstr "- °C"
#~ msgid "0.5"
#~ msgstr "0.5"
#~ msgid "0.005"
#~ msgstr "0.005"
#~ msgid "active" #~ msgid "active"
#~ msgstr "attivo" #~ msgstr "attivo"
@ -16244,8 +16551,8 @@ msgstr ""
#~ msgstr "Nessun layer sparso (SPERIMENTALE)" #~ msgstr "Nessun layer sparso (SPERIMENTALE)"
#~ msgid "" #~ msgid ""
#~ "We would rename the presets as \"Vendor Type Serial @printer you " #~ "We would rename the presets as \"Vendor Type Serial @printer you selected"
#~ "selected\". \n" #~ "\". \n"
#~ "To add preset for more prinetrs, Please go to printer selection" #~ "To add preset for more prinetrs, Please go to printer selection"
#~ msgstr "" #~ msgstr ""
#~ "Rinomineremo le impostazioni predefinite come \"Tipo di fornitore seriale " #~ "Rinomineremo le impostazioni predefinite come \"Tipo di fornitore seriale "

View file

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -2333,11 +2333,11 @@ msgstr ""
msgid "AMS not connected" msgid "AMS not connected"
msgstr "AMS が接続されていません" msgstr "AMS が接続されていません"
msgid "Load Filament" msgid "Load"
msgstr "ロード" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "アンロード" msgstr "アンロード"
msgid "Ext Spool" msgid "Ext Spool"
msgstr "外部スプールホルダー" msgstr "外部スプールホルダー"
@ -2354,7 +2354,7 @@ msgstr "再試行"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "AMS キャリブレーション" msgstr "AMS キャリブレーション"
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "" msgstr ""
"キャリブレーション中に問題が発生しました。クリックして解決策をご確認くださ" "キャリブレーション中に問題が発生しました。クリックして解決策をご確認くださ"
"い。" "い。"
@ -2397,10 +2397,8 @@ msgstr "Grab new filament"
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "" msgstr ""
"AMS スロットを選択し、[ロード] または [アンロード] をタップすると、フィラメン"
"トが自動的にロードまたはアンロードされます。"
msgid "Edit" msgid "Edit"
msgstr "編集" msgstr "編集"
@ -2982,6 +2980,14 @@ msgid ""
"automatically when current filament runs out" "automatically when current filament runs out"
msgstr "使用中のフィラメントが切れた時に、同じ属性のフィラメントに切り替えます" msgstr "使用中のフィラメントが切れた時に、同じ属性のフィラメントに切り替えます"
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "ファイル" msgstr "ファイル"
@ -3408,18 +3414,6 @@ msgstr ""
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "" msgstr ""
msgid "MC"
msgstr "MC"
msgid "MainBoard"
msgstr "メインボード"
msgid "TH"
msgstr "TH"
msgid "XCam"
msgstr "XCam"
msgid "Unknown" msgid "Unknown"
msgstr "不明" msgstr "不明"
@ -3941,7 +3935,7 @@ msgstr "ボリューム"
msgid "Size:" msgid "Size:"
msgstr "サイズ:" msgstr "サイズ:"
#, boost-format #, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4077,6 +4071,9 @@ msgstr "プレビュー"
msgid "Device" msgid "Device"
msgstr "デバイス" msgstr "デバイス"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "プロジェクト" msgstr "プロジェクト"
@ -4116,6 +4113,9 @@ msgstr "造形開始 (全プレート)"
msgid "Send all" msgid "Send all"
msgstr "送信 (全プレート)" msgstr "送信 (全プレート)"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "ショートカット" msgstr "ショートカット"
@ -4884,9 +4884,6 @@ msgstr "筐体"
msgid "Bed" msgid "Bed"
msgstr "ベッド" msgstr "ベッド"
msgid "Unload"
msgstr "アンロード"
msgid "Debug Info" msgid "Debug Info"
msgstr "デバッグ情報" msgstr "デバッグ情報"
@ -5056,9 +5053,6 @@ msgstr "デバイス状態"
msgid "Update" msgid "Update"
msgstr "更新" msgstr "更新"
msgid "HMS"
msgstr "HMS"
msgid "Don't show again" msgid "Don't show again"
msgstr "次回から表示しない" msgstr "次回から表示しない"
@ -5298,6 +5292,12 @@ msgstr ""
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "" msgstr ""
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "" msgstr ""
@ -5730,15 +5730,21 @@ msgstr "モデルをインポート"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "3mfファイルを準備" msgstr "3mfファイルを準備"
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "プロジェクトをダウンロード中" msgstr "プロジェクトをダウンロード中"
msgid "Download failed, File size exception."
msgstr ""
#, c-format, boost-format #, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "プロジェクトをダウンロード %d%%" msgstr "プロジェクトをダウンロード %d%%"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
@ -6005,6 +6011,21 @@ msgstr "インチ"
msgid "Units" msgid "Units"
msgstr "単位" msgstr "単位"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "" msgstr ""
@ -6081,6 +6102,14 @@ msgid ""
"each printer automatically." "each printer automatically."
msgstr "" msgstr ""
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "" msgstr ""
@ -6692,6 +6721,9 @@ msgstr ""
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "デバイス名を変更" msgstr "デバイス名を変更"
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "プリンターのSDカードに送信" msgstr "プリンターのSDカードに送信"
@ -6745,6 +6777,26 @@ msgstr "Receive login report timeout"
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "不明な失敗" msgstr "不明な失敗"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "プリンターを登録" msgstr "プリンターを登録"
@ -6942,8 +6994,8 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"ヘッド無しのタイムラプスビデオを録画する時に、「タイムラプスプライムタワー」" "ヘッド無しのタイムラプスビデオを録画する時に、「タイムラプスプライムタワー」"
"を追加してください。プレートで右クリックして、「プリミティブを追加」→「タイム" "を追加してください。プレートで右クリックして、「プリミティブを追加」→「タイム"
@ -7919,6 +7971,39 @@ msgstr "Done"
msgid "resume" msgid "resume"
msgstr "" msgstr ""
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "ロード"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "" msgstr ""
@ -9846,6 +9931,9 @@ msgstr "キュービックサポート"
msgid "Lightning" msgid "Lightning"
msgstr "ライトニング" msgstr "ライトニング"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "" msgstr ""
@ -10010,10 +10098,10 @@ msgstr "最大回転速度の積層"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
msgid "Support interface fan speed" msgid "Support interface fan speed"
@ -12514,6 +12602,9 @@ msgstr "Canceled"
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "load_obj: failed to parse" msgstr "load_obj: failed to parse"
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "The file contains polygons with more than 4 vertices." msgstr "The file contains polygons with more than 4 vertices."
@ -12630,6 +12721,14 @@ msgstr ""
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "" msgstr ""
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "" msgstr ""
@ -12639,6 +12738,19 @@ msgstr ""
msgid "Flow Dynamics Calibration result has been saved to the printer" msgid "Flow Dynamics Calibration result has been saved to the printer"
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "" msgstr ""
@ -12864,9 +12976,6 @@ msgstr ""
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "" msgstr ""
msgid "- ℃"
msgstr ""
msgid "Plate Type" msgid "Plate Type"
msgstr "Plate Type" msgstr "Plate Type"
@ -12910,12 +13019,6 @@ msgstr ""
msgid "Step value" msgid "Step value"
msgstr "" msgstr ""
msgid "0.5"
msgstr ""
msgid "0.005"
msgstr ""
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "" msgstr ""
@ -12943,10 +13046,14 @@ msgstr ""
msgid "Action" msgid "Action"
msgstr "" msgstr ""
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "" msgstr ""
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "" msgstr ""
msgid "Ok" msgid "Ok"
@ -12955,13 +13062,6 @@ msgstr ""
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
msgid "Network lookup" msgid "Network lookup"
msgstr "" msgstr ""
@ -13342,8 +13442,8 @@ msgid ""
msgstr "" msgstr ""
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
@ -13885,6 +13985,175 @@ msgid ""
"Error: \"%2%\"" "Error: \"%2%\""
msgstr "" msgstr ""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "" msgstr ""
@ -14236,6 +14505,31 @@ msgid ""
"probability of warping." "probability of warping."
msgstr "" msgstr ""
#~ msgid "Unload Filament"
#~ msgstr "アンロード"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr ""
#~ "AMS スロットを選択し、[ロード] または [アンロード] をタップすると、フィラ"
#~ "メントが自動的にロードまたはアンロードされます。"
#~ msgid "MC"
#~ msgstr "MC"
#~ msgid "MainBoard"
#~ msgstr "メインボード"
#~ msgid "TH"
#~ msgstr "TH"
#~ msgid "XCam"
#~ msgstr "XCam"
#~ msgid "HMS"
#~ msgstr "HMS"
#~ msgid "active" #~ msgid "active"
#~ msgstr "アクティブ" #~ msgstr "アクティブ"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"PO-Revision-Date: 2024-04-11 18:46+0900\n" "PO-Revision-Date: 2024-04-11 18:46+0900\n"
"Last-Translator: Hotsolidinfill <138652683+Hotsolidinfill@users.noreply." "Last-Translator: Hotsolidinfill <138652683+Hotsolidinfill@users.noreply."
"github.com>, crwusiz <crwusiz@gmail.com>\n" "github.com>, crwusiz <crwusiz@gmail.com>\n"
@ -2379,11 +2379,11 @@ msgstr "자동 리필"
msgid "AMS not connected" msgid "AMS not connected"
msgstr "AMS가 연결되지 않음" msgstr "AMS가 연결되지 않음"
msgid "Load Filament" msgid "Load"
msgstr "필라멘트 넣기" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "필라멘트 언로드" msgstr "언로드"
msgid "Ext Spool" msgid "Ext Spool"
msgstr "외부 스풀" msgstr "외부 스풀"
@ -2400,7 +2400,7 @@ msgstr "재시도"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "AMS 교정 중..." msgstr "AMS 교정 중..."
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "교정하는 동안 문제가 발생했습니다. 솔루션을 보려면 클릭하세요." msgstr "교정하는 동안 문제가 발생했습니다. 솔루션을 보려면 클릭하세요."
msgid "Calibrate again" msgid "Calibrate again"
@ -2441,10 +2441,8 @@ msgstr "새 필라멘트 가져오기"
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "" msgstr ""
"AMS 슬롯을 선택한 후 \"넣기\" 또는 \"빼기\" 버튼을 눌러 필라멘트를 자동으로 "
"넣거나 뺍니다."
msgid "Edit" msgid "Edit"
msgstr "편집" msgstr "편집"
@ -3041,6 +3039,14 @@ msgstr ""
"AMS는 현재 필라멘트가 소진되면 동일한 필라멘트 특성을 가진 다른 스풀로 자동으" "AMS는 현재 필라멘트가 소진되면 동일한 필라멘트 특성을 가진 다른 스풀로 자동으"
"로 이동합니다" "로 이동합니다"
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "파일" msgstr "파일"
@ -3487,18 +3493,6 @@ msgstr "첫번째 레이어 오류 일시중지"
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "노즐 막힘 일시 중지" msgstr "노즐 막힘 일시 중지"
msgid "MC"
msgstr "MC"
msgid "MainBoard"
msgstr "메인보드"
msgid "TH"
msgstr "TH"
msgid "XCam"
msgstr "XCam"
msgid "Unknown" msgid "Unknown"
msgstr "알 수 없는" msgstr "알 수 없는"
@ -4031,7 +4025,7 @@ msgstr "용량:"
msgid "Size:" msgid "Size:"
msgstr "크기:" msgstr "크기:"
#, boost-format #, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4171,6 +4165,9 @@ msgstr "미리 보기"
msgid "Device" msgid "Device"
msgstr "장치" msgstr "장치"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "프로젝트" msgstr "프로젝트"
@ -4210,6 +4207,9 @@ msgstr "모두 출력"
msgid "Send all" msgid "Send all"
msgstr "모두 전송" msgstr "모두 전송"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "키보드 단축키" msgstr "키보드 단축키"
@ -4989,9 +4989,6 @@ msgstr "챔버"
msgid "Bed" msgid "Bed"
msgstr "베드" msgstr "베드"
msgid "Unload"
msgstr "언로드"
msgid "Debug Info" msgid "Debug Info"
msgstr "디버그 정보" msgstr "디버그 정보"
@ -5174,9 +5171,6 @@ msgstr "상태"
msgid "Update" msgid "Update"
msgstr "업데이트" msgstr "업데이트"
msgid "HMS"
msgstr "HMS"
msgid "Don't show again" msgid "Don't show again"
msgstr "다시 표시하지 않음" msgstr "다시 표시하지 않음"
@ -5419,6 +5413,12 @@ msgstr "프롬프트 소리 허용"
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "필라멘트 엉킴 감지" msgstr "필라멘트 엉킴 감지"
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "" msgstr ""
@ -5868,19 +5868,23 @@ msgstr "모델 가져오는 중"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "3mf 파일 준비..." msgstr "3mf 파일 준비..."
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "프로젝트 다운로드 중 ..." msgstr "프로젝트 다운로드 중 ..."
msgid "Download failed, File size exception."
msgstr ""
#, c-format, boost-format #, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "프로젝트 다운로드 %d%%" msgstr "프로젝트 다운로드 %d%%"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
"Orca Slicer로 가져오는 데 실패했습니다. 파일을 다운로드하여 수동으로 가져오세"
"요."
msgid "Import SLA archive" msgid "Import SLA archive"
msgstr "SLA 압축파일 가져오기" msgstr "SLA 압축파일 가져오기"
@ -6147,6 +6151,21 @@ msgstr "야드파운드법"
msgid "Units" msgid "Units"
msgstr "단위" msgstr "단위"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "홈" msgstr "홈"
@ -6223,6 +6242,14 @@ msgid ""
"each printer automatically." "each printer automatically."
msgstr "" msgstr ""
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "네트워크" msgstr "네트워크"
@ -6850,6 +6877,9 @@ msgstr "마이크로 라이다를 사용한 자동 유량 교정"
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "장치 이름 수정" msgstr "장치 이름 수정"
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "프린터 SD 카드로 보내기" msgstr "프린터 SD 카드로 보내기"
@ -6901,6 +6931,26 @@ msgstr "로그인 보고서 수신 시간 초과"
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "알 수 없는 실패" msgstr "알 수 없는 실패"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "프린터 로그인" msgstr "프린터 로그인"
@ -7105,8 +7155,8 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"툴헤드 없이 시간 경과를 기록할 경우 \"타임랩스 닦기 타워\"를 추가하는 것이 좋" "툴헤드 없이 시간 경과를 기록할 경우 \"타임랩스 닦기 타워\"를 추가하는 것이 좋"
"습니다\n" "습니다\n"
@ -8116,6 +8166,39 @@ msgstr "완료"
msgid "resume" msgid "resume"
msgstr "" msgstr ""
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "필라멘트 넣기"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "노즐 확인 및 업데이트" msgstr "노즐 확인 및 업데이트"
@ -10292,6 +10375,9 @@ msgstr "정육면체 지지대"
msgid "Lightning" msgid "Lightning"
msgstr "번개" msgstr "번개"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "드문 채우기 고정점 길이" msgstr "드문 채우기 고정점 길이"
@ -10483,10 +10569,10 @@ msgstr "팬 최대 속도 레이어"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
"팬 속도는 \"close_fan_the_first_x_layers\" 의 0에서 \"full_fan_speed_layer\" " "팬 속도는 \"close_fan_the_first_x_layers\" 의 0에서 \"full_fan_speed_layer\" "
"의 최고 속도까지 선형적으로 증가합니다. \"full_fan_speed_layer\"가 " "의 최고 속도까지 선형적으로 증가합니다. \"full_fan_speed_layer\"가 "
@ -13290,6 +13376,9 @@ msgstr "취소됨"
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "load_obj: 구문 분석에 실패" msgstr "load_obj: 구문 분석에 실패"
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "이 파일에는 꼭지점이 4개 이상인 다각형이 포함되어 있습니다." msgstr "이 파일에는 꼭지점이 4개 이상인 다각형이 포함되어 있습니다."
@ -13413,6 +13502,14 @@ msgstr "교정할 필라멘트를 선택하세요."
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "입력 값 크기는 3이어야 합니다." msgstr "입력 값 크기는 3이어야 합니다."
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "프린터에 연결하는 중..." msgstr "프린터에 연결하는 중..."
@ -13422,6 +13519,19 @@ msgstr "실패한 테스트 결과가 삭제되었습니다."
msgid "Flow Dynamics Calibration result has been saved to the printer" msgid "Flow Dynamics Calibration result has been saved to the printer"
msgstr "동적 유량 교정 결과가 프린터에 저장되었습니다" msgstr "동적 유량 교정 결과가 프린터에 저장되었습니다"
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "내부 오류" msgstr "내부 오류"
@ -13707,9 +13817,6 @@ msgstr ""
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "출력 매개변수" msgstr "출력 매개변수"
msgid "- ℃"
msgstr "- ℃"
msgid "Plate Type" msgid "Plate Type"
msgstr "플레이트 타입" msgstr "플레이트 타입"
@ -13756,12 +13863,6 @@ msgstr "K 값으로"
msgid "Step value" msgid "Step value"
msgstr "단계 값" msgstr "단계 값"
msgid "0.5"
msgstr "0.5"
msgid "0.005"
msgstr "0.005"
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "노즐 직경이 프린터 설정에서 동기화되었습니다" msgstr "노즐 직경이 프린터 설정에서 동기화되었습니다"
@ -13789,10 +13890,14 @@ msgstr "과거 동적 유량 교정 기록 새로 고침"
msgid "Action" msgid "Action"
msgstr "실행" msgstr "실행"
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "동적 유량 교정 편집" msgstr "동적 유량 교정 편집"
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "" msgstr ""
msgid "Ok" msgid "Ok"
@ -13801,13 +13906,6 @@ msgstr ""
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
msgid "Network lookup" msgid "Network lookup"
msgstr "네트워크 조회" msgstr "네트워크 조회"
@ -14215,8 +14313,8 @@ msgstr ""
"다시 작성하시겠습니까?" "다시 작성하시겠습니까?"
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
"사전 설정의 이름을 \"선택한 공급업체 유형 직렬 @프린터\"로 변경합니다.\n" "사전 설정의 이름을 \"선택한 공급업체 유형 직렬 @프린터\"로 변경합니다.\n"
@ -14815,6 +14913,175 @@ msgstr ""
"메시지 본문: \"%1%\"\n" "메시지 본문: \"%1%\"\n"
"오류: \"%2%\"" "오류: \"%2%\""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "Obico에 성공적으로 연결되었습니다!" msgstr "Obico에 성공적으로 연결되었습니다!"
@ -15238,6 +15505,47 @@ msgstr ""
"ABS 등 뒤틀림이 발생하기 쉬운 소재를 출력할 때, 히트베드 온도를 적절하게 높이" "ABS 등 뒤틀림이 발생하기 쉬운 소재를 출력할 때, 히트베드 온도를 적절하게 높이"
"면 뒤틀림 가능성을 줄일 수 있다는 사실을 알고 계셨나요?" "면 뒤틀림 가능성을 줄일 수 있다는 사실을 알고 계셨나요?"
#~ msgid "Unload Filament"
#~ msgstr "필라멘트 언로드"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr ""
#~ "AMS 슬롯을 선택한 후 \"넣기\" 또는 \"빼기\" 버튼을 눌러 필라멘트를 자동으"
#~ "로 넣거나 뺍니다."
#~ msgid "MC"
#~ msgstr "MC"
#~ msgid "MainBoard"
#~ msgstr "메인보드"
#~ msgid "TH"
#~ msgstr "TH"
#~ msgid "XCam"
#~ msgstr "XCam"
#~ msgid "HMS"
#~ msgstr "HMS"
#~ msgid ""
#~ "Importing to Orca Slicer failed. Please download the file and manually "
#~ "import it."
#~ msgstr ""
#~ "Orca Slicer로 가져오는 데 실패했습니다. 파일을 다운로드하여 수동으로 가져"
#~ "오세요."
#~ msgid "- ℃"
#~ msgstr "- ℃"
#~ msgid "0.5"
#~ msgstr "0.5"
#~ msgid "0.005"
#~ msgstr "0.005"
#~ msgid "active" #~ msgid "active"
#~ msgstr "활성화" #~ msgstr "활성화"
@ -15493,8 +15801,8 @@ msgstr ""
#~ msgstr "드문 레이어 없음(실험적)" #~ msgstr "드문 레이어 없음(실험적)"
#~ msgid "" #~ msgid ""
#~ "We would rename the presets as \"Vendor Type Serial @printer you " #~ "We would rename the presets as \"Vendor Type Serial @printer you selected"
#~ "selected\". \n" #~ "\". \n"
#~ "To add preset for more prinetrs, Please go to printer selection" #~ "To add preset for more prinetrs, Please go to printer selection"
#~ msgstr "" #~ msgstr ""
#~ "사전 설정의 이름을 \"선택한 공급업체 유형 직렬 @프린터\"로 변경합니다.\n" #~ "사전 설정의 이름을 \"선택한 공급업체 유형 직렬 @프린터\"로 변경합니다.\n"

View file

@ -159,6 +159,7 @@ src/slic3r/Utils/FlashAir.cpp
src/slic3r/Utils/MKS.cpp src/slic3r/Utils/MKS.cpp
src/slic3r/Utils/OctoPrint.cpp src/slic3r/Utils/OctoPrint.cpp
src/slic3r/Utils/Repetier.cpp src/slic3r/Utils/Repetier.cpp
src/slic3r/Utils/ProfileDescription.hpp
src/slic3r/Utils/Obico.cpp src/slic3r/Utils/Obico.cpp
src/slic3r/Utils/SimplyPrint.cpp src/slic3r/Utils/SimplyPrint.cpp
src/slic3r/Utils/Flashforge.cpp src/slic3r/Utils/Flashforge.cpp

View file

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"Language: nl\n" "Language: nl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -2378,10 +2378,10 @@ msgstr ""
msgid "AMS not connected" msgid "AMS not connected"
msgstr "AMS niet aangesloten" msgstr "AMS niet aangesloten"
msgid "Load Filament" msgid "Load"
msgstr "Filament laden" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "Lossen" msgstr "Lossen"
msgid "Ext Spool" msgid "Ext Spool"
@ -2399,7 +2399,7 @@ msgstr "Opnieuw proberen"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "AMS kalibreren..." msgstr "AMS kalibreren..."
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "" msgstr ""
"Er is een probleem opgetreden tijdens de kalibratie. Klik om de oplossing te " "Er is een probleem opgetreden tijdens de kalibratie. Klik om de oplossing te "
"bekijken." "bekijken."
@ -2442,10 +2442,8 @@ msgstr "Grab new filament"
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "" msgstr ""
"Kies een AMS sleuf en druk op de \"Laden\" of \"Verwijderen\" knop om het "
"filament automatisch te laden of te verwijderen."
msgid "Edit" msgid "Edit"
msgstr "Bewerken" msgstr "Bewerken"
@ -3059,6 +3057,14 @@ msgstr ""
"AMS gaat automatisch verder met een andere spoel met dezelfde filament " "AMS gaat automatisch verder met een andere spoel met dezelfde filament "
"eigenschappen wanneer het huidige filament op is." "eigenschappen wanneer het huidige filament op is."
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "Bestand" msgstr "Bestand"
@ -3514,18 +3520,6 @@ msgstr ""
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "" msgstr ""
msgid "MC"
msgstr "MC"
msgid "MainBoard"
msgstr "Moederbord"
msgid "TH"
msgstr "th"
msgid "XCam"
msgstr "XCam"
msgid "Unknown" msgid "Unknown"
msgstr "Onbekend" msgstr "Onbekend"
@ -4048,7 +4042,7 @@ msgstr "Volume:"
msgid "Size:" msgid "Size:"
msgstr "Maat:" msgstr "Maat:"
#, boost-format #, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4188,6 +4182,9 @@ msgstr "Voorvertoning"
msgid "Device" msgid "Device"
msgstr "Apparaat" msgstr "Apparaat"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "Project" msgstr "Project"
@ -4227,6 +4224,9 @@ msgstr "Print alles"
msgid "Send all" msgid "Send all"
msgstr "Alles verzenden" msgstr "Alles verzenden"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "Sneltoesten" msgstr "Sneltoesten"
@ -5002,9 +5002,6 @@ msgstr "Kamer"
msgid "Bed" msgid "Bed"
msgstr "Printbed" msgstr "Printbed"
msgid "Unload"
msgstr "Lossen"
msgid "Debug Info" msgid "Debug Info"
msgstr "Informatie over Debuggen" msgstr "Informatie over Debuggen"
@ -5174,9 +5171,6 @@ msgstr "Status"
msgid "Update" msgid "Update"
msgstr "Updaten" msgstr "Updaten"
msgid "HMS"
msgstr "HMS"
msgid "Don't show again" msgid "Don't show again"
msgstr "Niet nogmaals tonen" msgstr "Niet nogmaals tonen"
@ -5431,6 +5425,12 @@ msgstr ""
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "" msgstr ""
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "" msgstr ""
@ -5883,15 +5883,21 @@ msgstr "Model importeren"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "voorbereiden van 3mf bestand..." msgstr "voorbereiden van 3mf bestand..."
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "project downloaden..." msgstr "project downloaden..."
msgid "Download failed, File size exception."
msgstr ""
#, c-format, boost-format #, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "Project %d%% gedownload" msgstr "Project %d%% gedownload"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
@ -6163,6 +6169,21 @@ msgstr "Imperiaal"
msgid "Units" msgid "Units"
msgstr "Eenheden" msgstr "Eenheden"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "" msgstr ""
@ -6240,6 +6261,14 @@ msgid ""
"each printer automatically." "each printer automatically."
msgstr "" msgstr ""
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "" msgstr ""
@ -6889,6 +6918,9 @@ msgstr ""
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "De naam van het apparaat wijzigen" msgstr "De naam van het apparaat wijzigen"
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "Verzenden naar de MicroSD-kaart in de printer" msgstr "Verzenden naar de MicroSD-kaart in de printer"
@ -6943,6 +6975,26 @@ msgstr "Receive login report timeout"
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "Onbekende fout" msgstr "Onbekende fout"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "Inloggen op printer" msgstr "Inloggen op printer"
@ -7151,8 +7203,8 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"Bij het opnemen van timelapse zonder toolhead is het aan te raden om een " "Bij het opnemen van timelapse zonder toolhead is het aan te raden om een "
"„Timelapse Wipe Tower” toe te voegen \n" "„Timelapse Wipe Tower” toe te voegen \n"
@ -8170,6 +8222,39 @@ msgstr "Done"
msgid "resume" msgid "resume"
msgstr "" msgstr ""
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "Filament laden"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "" msgstr ""
@ -10200,6 +10285,9 @@ msgstr "Ondersteuning Cubic"
msgid "Lightning" msgid "Lightning"
msgstr "Lightning" msgstr "Lightning"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "" msgstr ""
@ -10372,10 +10460,10 @@ msgstr "Volledige snelheid op laag"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
msgid "Support interface fan speed" msgid "Support interface fan speed"
@ -12991,6 +13079,9 @@ msgstr "Canceled"
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "load_obj: failed to parse" msgstr "load_obj: failed to parse"
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "The file contains polygons with more than 4 vertices." msgstr "The file contains polygons with more than 4 vertices."
@ -13107,6 +13198,14 @@ msgstr ""
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "" msgstr ""
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "" msgstr ""
@ -13116,6 +13215,19 @@ msgstr ""
msgid "Flow Dynamics Calibration result has been saved to the printer" msgid "Flow Dynamics Calibration result has been saved to the printer"
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "" msgstr ""
@ -13341,9 +13453,6 @@ msgstr ""
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "" msgstr ""
msgid "- ℃"
msgstr ""
msgid "Plate Type" msgid "Plate Type"
msgstr "Plate Type" msgstr "Plate Type"
@ -13387,12 +13496,6 @@ msgstr ""
msgid "Step value" msgid "Step value"
msgstr "" msgstr ""
msgid "0.5"
msgstr ""
msgid "0.005"
msgstr ""
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "" msgstr ""
@ -13420,10 +13523,14 @@ msgstr ""
msgid "Action" msgid "Action"
msgstr "" msgstr ""
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "" msgstr ""
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "" msgstr ""
msgid "Ok" msgid "Ok"
@ -13432,13 +13539,6 @@ msgstr ""
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
msgid "Network lookup" msgid "Network lookup"
msgstr "" msgstr ""
@ -13819,8 +13919,8 @@ msgid ""
msgstr "" msgstr ""
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
@ -14363,6 +14463,175 @@ msgid ""
"Error: \"%2%\"" "Error: \"%2%\""
msgstr "" msgstr ""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "" msgstr ""
@ -14735,6 +15004,31 @@ msgid ""
"probability of warping." "probability of warping."
msgstr "" msgstr ""
#~ msgid "Unload Filament"
#~ msgstr "Lossen"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr ""
#~ "Kies een AMS sleuf en druk op de \"Laden\" of \"Verwijderen\" knop om het "
#~ "filament automatisch te laden of te verwijderen."
#~ msgid "MC"
#~ msgstr "MC"
#~ msgid "MainBoard"
#~ msgstr "Moederbord"
#~ msgid "TH"
#~ msgstr "th"
#~ msgid "XCam"
#~ msgstr "XCam"
#~ msgid "HMS"
#~ msgstr "HMS"
#~ msgid "active" #~ msgid "active"
#~ msgstr "Actief" #~ msgstr "Actief"

View file

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OrcaSlicer 2.0\n" "Project-Id-Version: OrcaSlicer 2.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"PO-Revision-Date: \n" "PO-Revision-Date: \n"
"Last-Translator: Krzysztof Morga <tlumaczeniebs@gmail.com>\n" "Last-Translator: Krzysztof Morga <tlumaczeniebs@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@ -2418,11 +2418,11 @@ msgstr "Auto. uzupełnienie"
msgid "AMS not connected" msgid "AMS not connected"
msgstr "AMS niepodłączony" msgstr "AMS niepodłączony"
msgid "Load Filament" msgid "Load"
msgstr "Ładuj" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "Wyładuj" msgstr "Wyładowaj"
msgid "Ext Spool" msgid "Ext Spool"
msgstr "Ext Spool" msgstr "Ext Spool"
@ -2439,7 +2439,7 @@ msgstr "Ponów"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "Kalibracja AMS..." msgstr "Kalibracja AMS..."
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "" msgstr ""
"Wystąpił problem podczas kalibracji. Kliknij, aby zobaczyć rozwiązanie." "Wystąpił problem podczas kalibracji. Kliknij, aby zobaczyć rozwiązanie."
@ -2485,10 +2485,8 @@ msgstr ""
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "" msgstr ""
"Wybierz Slot AMS, a następnie naciśnij przycisk \"Ładuj\" lub \"Wyładuj\" ,"
"aby automatycznie załadować lub wyładować filament."
msgid "Edit" msgid "Edit"
msgstr "Edytuj" msgstr "Edytuj"
@ -3123,6 +3121,14 @@ msgstr ""
"AMS automatycznie przełączy się na inną szpule z tym samym rodzajem " "AMS automatycznie przełączy się na inną szpule z tym samym rodzajem "
"filamentu, gdy obecny filament się skończy" "filamentu, gdy obecny filament się skończy"
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "Plik" msgstr "Plik"
@ -3590,18 +3596,6 @@ msgstr "Pauza z powodu błędu pierwszej warstwy"
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "Pauza z powodu zatkanej dyszy" msgstr "Pauza z powodu zatkanej dyszy"
msgid "MC"
msgstr "MC (Płytka główna)"
msgid "MainBoard"
msgstr "MainBoard (Płyta główna)"
msgid "TH"
msgstr "TH"
msgid "XCam"
msgstr "XCam"
msgid "Unknown" msgid "Unknown"
msgstr "Nieznany" msgstr "Nieznany"
@ -4137,7 +4131,7 @@ msgstr "Objętość:"
msgid "Size:" msgid "Size:"
msgstr "Rozmiar:" msgstr "Rozmiar:"
#, boost-format #, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4278,6 +4272,9 @@ msgstr "Podgląd"
msgid "Device" msgid "Device"
msgstr "Urządzenie" msgstr "Urządzenie"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "Projekt" msgstr "Projekt"
@ -4318,6 +4315,9 @@ msgstr "Drukuj wszystko"
msgid "Send all" msgid "Send all"
msgstr "Wyślij wszystko" msgstr "Wyślij wszystko"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "Skróty klawiszowe" msgstr "Skróty klawiszowe"
@ -5138,9 +5138,6 @@ msgstr "Cham"
msgid "Bed" msgid "Bed"
msgstr "Stół" msgstr "Stół"
msgid "Unload"
msgstr "Wyładowaj"
msgid "Debug Info" msgid "Debug Info"
msgstr "Informacje debugowania" msgstr "Informacje debugowania"
@ -5326,9 +5323,6 @@ msgstr "Status"
msgid "Update" msgid "Update"
msgstr "Aktualizacja" msgstr "Aktualizacja"
msgid "HMS"
msgstr "Stan drukarki (HMS)"
msgid "Don't show again" msgid "Don't show again"
msgstr "Nie pokazuj ponownie" msgstr "Nie pokazuj ponownie"
@ -5581,6 +5575,12 @@ msgstr "Zezwól na dźwiękowe powiadomienia"
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "Wykrywanie splątanych filamentów" msgstr "Wykrywanie splątanych filamentów"
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "Rodzaj dyszy" msgstr "Rodzaj dyszy"
@ -6041,18 +6041,23 @@ msgstr "Importowanie modelu"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "przygotuj plik 3mf..." msgstr "przygotuj plik 3mf..."
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "pobieranie projektu ..." msgstr "pobieranie projektu ..."
msgid "Download failed, File size exception."
msgstr ""
#, c-format, boost-format #, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "Projekt pobrany w %d%%" msgstr "Projekt pobrany w %d%%"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
"Import do Orca Slicer nie powiódł się. Pobierz plik i zaimportuj go ręcznie."
msgid "Import SLA archive" msgid "Import SLA archive"
msgstr "Importuj archiwum SLA" msgstr "Importuj archiwum SLA"
@ -6330,6 +6335,21 @@ msgstr "Imperialny"
msgid "Units" msgid "Units"
msgstr "Jednostki" msgstr "Jednostki"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "Strona główna" msgstr "Strona główna"
@ -6419,6 +6439,14 @@ msgstr ""
"Jeśli ta opcja jest włączona, Orca będzie automatycznie zapamiętywać i " "Jeśli ta opcja jest włączona, Orca będzie automatycznie zapamiętywać i "
"przełączać konfigurację filamentu/procesu dla każdej drukarki." "przełączać konfigurację filamentu/procesu dla każdej drukarki."
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "Sieć" msgstr "Sieć"
@ -7072,6 +7100,9 @@ msgstr "Automatyczna kalibracja przepływu za pomocą mikrolidaru"
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "Modyfikacja nazwy urządzenia" msgstr "Modyfikacja nazwy urządzenia"
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "Wysłać na kartę SD drukarki" msgstr "Wysłać na kartę SD drukarki"
@ -7124,6 +7155,26 @@ msgstr "Czas oczekiwania na otrzymanie raportu logowania minął"
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "Nieznana awaria" msgstr "Nieznana awaria"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "Zaloguj się do drukarki" msgstr "Zaloguj się do drukarki"
@ -7346,8 +7397,8 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"Podczas nagrywania timelapse'a bez głowicy narzędziowej zaleca się dodanie " "Podczas nagrywania timelapse'a bez głowicy narzędziowej zaleca się dodanie "
"\"Timelaps - Wieża Czyszcząca\" \n" "\"Timelaps - Wieża Czyszcząca\" \n"
@ -8398,6 +8449,39 @@ msgstr "Gotowe"
msgid "resume" msgid "resume"
msgstr "wznów" msgstr "wznów"
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "Ładuj"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "Potwierdź i zaktualizuj dyszę" msgstr "Potwierdź i zaktualizuj dyszę"
@ -9226,10 +9310,10 @@ msgid ""
msgstr "" msgstr ""
"Unikaj ruchów nad obrysami-\n" "Unikaj ruchów nad obrysami-\n"
"Maksymalna długość objazdu przy unikaniu przejeżdżania nad obrysami. Jeśli " "Maksymalna długość objazdu przy unikaniu przejeżdżania nad obrysami. Jeśli "
"objazd miałby wykroczyć poza tę wartość, funkcja \"unikaj ruchów nad " "objazd miałby wykroczyć poza tę wartość, funkcja \"unikaj ruchów nad obrysami"
"obrysami\" zostanie zignorowana dla tej ścieżki. Długość objazdu można " "\" zostanie zignorowana dla tej ścieżki. Długość objazdu można zdefiniować "
"zdefiniować jako wartość absolutna lub obliczona procentowo (np. 50%) z " "jako wartość absolutna lub obliczona procentowo (np. 50%) z długości ruchu "
"długości ruchu bezpośredniego." "bezpośredniego."
msgid "mm or %" msgid "mm or %"
msgstr "mm lub %" msgstr "mm lub %"
@ -9798,9 +9882,9 @@ msgid ""
"quality for needle and small details" "quality for needle and small details"
msgstr "" msgstr ""
"Włącz tę opcję, aby zwolnić prędkość druku, aby czas końcowej warstwy nie " "Włącz tę opcję, aby zwolnić prędkość druku, aby czas końcowej warstwy nie "
"był krótszy niż próg czasu warstwy w \"Próg maksymalnej prędkości " "był krótszy niż próg czasu warstwy w \"Próg maksymalnej prędkości wentylatora"
"wentylatora\", tak aby warstwa mogła być chłodzona przez dłuższy czas. Może " "\", tak aby warstwa mogła być chłodzona przez dłuższy czas. Może to poprawić "
"to poprawić jakość chłodzenia dla igieł i małych detali" "jakość chłodzenia dla igieł i małych detali"
msgid "Normal printing" msgid "Normal printing"
msgstr "Normalne drukowanie" msgstr "Normalne drukowanie"
@ -10726,6 +10810,9 @@ msgstr "Podpora sześcienna"
msgid "Lightning" msgid "Lightning"
msgstr "Piorun" msgstr "Piorun"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "Długość kotwiczenia wypełnienia" msgstr "Długość kotwiczenia wypełnienia"
@ -10933,10 +11020,10 @@ msgstr "Pełna prędkość wentylatora na warstwie"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
"Prędkość wentylatora będzie stopniowo zwiększana liniowo od zera na warstwie " "Prędkość wentylatora będzie stopniowo zwiększana liniowo od zera na warstwie "
"\"close_fan_the_first_x_layers\" do maksymalnej na warstwie " "\"close_fan_the_first_x_layers\" do maksymalnej na warstwie "
@ -12463,8 +12550,8 @@ msgstr ""
"poklatkowy po zakończeniu drukowania. Jeśli wybrany jest tryb \"Wygładź\", " "poklatkowy po zakończeniu drukowania. Jeśli wybrany jest tryb \"Wygładź\", "
"głowica narzędziowa przesunie się nad wieżę po wydrukowaniu każdej warstwy, " "głowica narzędziowa przesunie się nad wieżę po wydrukowaniu każdej warstwy, "
"a następnie zrobi zdjęcie. Ponieważ stopiony filament może wyciekać z dyszy " "a następnie zrobi zdjęcie. Ponieważ stopiony filament może wyciekać z dyszy "
"podczas robienia zdjęcia, wieża czyszcząca jest wymagana w trybie " "podczas robienia zdjęcia, wieża czyszcząca jest wymagana w trybie \"Wygładź"
"\"Wygładź\" do czyszczenia dyszy." "\" do czyszczenia dyszy."
msgid "Traditional" msgid "Traditional"
msgstr "Tradycyjny" msgstr "Tradycyjny"
@ -12544,10 +12631,10 @@ msgid ""
"triangle mesh slicing. The gap closing operation may reduce the final print " "triangle mesh slicing. The gap closing operation may reduce the final print "
"resolution, therefore it is advisable to keep the value reasonably low." "resolution, therefore it is advisable to keep the value reasonably low."
msgstr "" msgstr ""
"Szpary mniejsze niż dwukrotność wartości parametru \"promień zamykania " "Szpary mniejsze niż dwukrotność wartości parametru \"promień zamykania szpar"
"szpar\" zostaną zamknięte przy cięciu. Operacja zamykania szpar może " "\" zostaną zamknięte przy cięciu. Operacja zamykania szpar może zmniejszyć "
"zmniejszyć finalną rozdzielczość wydruku, więc zalecane jest ustawienie tej " "finalną rozdzielczość wydruku, więc zalecane jest ustawienie tej wartości na "
"wartości na rozsądnie niskim poziomie." "rozsądnie niskim poziomie."
msgid "Slicing Mode" msgid "Slicing Mode"
msgstr "Tryb cięcia" msgstr "Tryb cięcia"
@ -13916,6 +14003,9 @@ msgstr "Anulowano"
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "load_obj: nie udało się przetworzyć" msgstr "load_obj: nie udało się przetworzyć"
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "Plik zawiera wielokąty z więcej niż 4 wierzchołkami." msgstr "Plik zawiera wielokąty z więcej niż 4 wierzchołkami."
@ -14042,6 +14132,14 @@ msgstr "Proszę wybrać filament do kalibracji."
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "Rozmiar wartości wejściowej musi wynosić 3." msgstr "Rozmiar wartości wejściowej musi wynosić 3."
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "Łączenie z drukarką..." msgstr "Łączenie z drukarką..."
@ -14051,6 +14149,21 @@ msgstr "Nieudany wynik testu został odrzucony."
msgid "Flow Dynamics Calibration result has been saved to the printer" msgid "Flow Dynamics Calibration result has been saved to the printer"
msgstr "Wynik Kalibracji Dynamiki Przepływu został zapisany w drukarce" msgstr "Wynik Kalibracji Dynamiki Przepływu został zapisany w drukarce"
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
"W historii kalibracji istnieje już wynik o nazwie: %s. Czy na pewno chcesz "
"zastąpić poprzedni wynik?"
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "Błąd wewnętrzny" msgstr "Błąd wewnętrzny"
@ -14357,9 +14470,6 @@ msgstr ""
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "Parametry drukowania" msgstr "Parametry drukowania"
msgid "- ℃"
msgstr "- ℃"
msgid "Plate Type" msgid "Plate Type"
msgstr "Typ Płyty" msgstr "Typ Płyty"
@ -14407,12 +14517,6 @@ msgstr "Do wartości K"
msgid "Step value" msgid "Step value"
msgstr "Wartość kroku" msgstr "Wartość kroku"
msgid "0.5"
msgstr "0.5"
msgid "0.005"
msgstr "0.005"
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "Średnica dyszy została zsynchronizowana z ustawień drukarki" msgstr "Średnica dyszy została zsynchronizowana z ustawień drukarki"
@ -14440,11 +14544,15 @@ msgstr "Odświeżanie historii zapisów kalibracji Flow Dynamics"
msgid "Action" msgid "Action"
msgstr "Akcja" msgstr "Akcja"
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "Edytuj Kalibrację Dynamiki Przepływu" msgstr "Edytuj Kalibrację Dynamiki Przepływu"
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "Nowa Kalibracji Dynamiki Przepływu" msgstr ""
msgid "Ok" msgid "Ok"
msgstr "Ok" msgstr "Ok"
@ -14452,15 +14560,6 @@ msgstr "Ok"
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "Należy wybrać filament." msgstr "Należy wybrać filament."
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
"W historii kalibracji istnieje już wynik o nazwie: %s. Czy na pewno chcesz "
"zastąpić poprzedni wynik?"
msgid "Network lookup" msgid "Network lookup"
msgstr "Wyszukiwanie w sieci" msgstr "Wyszukiwanie w sieci"
@ -14878,8 +14977,8 @@ msgstr ""
"Czy chcesz go zastąpić?" "Czy chcesz go zastąpić?"
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
"Nazwa profilu zostanie zmieniona na \"Producent Typ Rodzaj @nazwa drukarki, " "Nazwa profilu zostanie zmieniona na \"Producent Typ Rodzaj @nazwa drukarki, "
@ -15511,6 +15610,175 @@ msgstr ""
"Treść wiadomości: \"%1%\"\n" "Treść wiadomości: \"%1%\"\n"
"Błąd: \"%2%\"" "Błąd: \"%2%\""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "Pomyślnie połączono z SimplyPrint!" msgstr "Pomyślnie połączono z SimplyPrint!"
@ -15944,6 +16212,50 @@ msgstr ""
"takimi jak ABS, odpowiednie zwiększenie temperatury podgrzewanej płyty może " "takimi jak ABS, odpowiednie zwiększenie temperatury podgrzewanej płyty może "
"zmniejszyć prawdopodobieństwo odkształceń." "zmniejszyć prawdopodobieństwo odkształceń."
#~ msgid "Unload Filament"
#~ msgstr "Wyładuj"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr ""
#~ "Wybierz Slot AMS, a następnie naciśnij przycisk \"Ładuj\" lub \"Wyładuj"
#~ "\" ,aby automatycznie załadować lub wyładować filament."
#~ msgid "MC"
#~ msgstr "MC (Płytka główna)"
#~ msgid "MainBoard"
#~ msgstr "MainBoard (Płyta główna)"
#~ msgid "TH"
#~ msgstr "TH"
#~ msgid "XCam"
#~ msgstr "XCam"
#~ msgid "HMS"
#~ msgstr "Stan drukarki (HMS)"
#~ msgid ""
#~ "Importing to Orca Slicer failed. Please download the file and manually "
#~ "import it."
#~ msgstr ""
#~ "Import do Orca Slicer nie powiódł się. Pobierz plik i zaimportuj go "
#~ "ręcznie."
#~ msgid "- ℃"
#~ msgstr "- ℃"
#~ msgid "0.5"
#~ msgstr "0.5"
#~ msgid "0.005"
#~ msgstr "0.005"
#~ msgid "New Flow Dynamics Calibration"
#~ msgstr "Nowa Kalibracji Dynamiki Przepływu"
#~ msgid "If you would like to try Bambu Studio Beta, you may click to" #~ msgid "If you would like to try Bambu Studio Beta, you may click to"
#~ msgstr "Jeśli chciałbyś wypróbować OrcaSlicer Beta, możesz kliknąć tutaj." #~ msgstr "Jeśli chciałbyś wypróbować OrcaSlicer Beta, możesz kliknąć tutaj."
@ -16992,8 +17304,8 @@ msgstr ""
#~ "Elevation is too low for object. Use the \"Pad around object\" feature to " #~ "Elevation is too low for object. Use the \"Pad around object\" feature to "
#~ "print the object without elevation." #~ "print the object without elevation."
#~ msgstr "" #~ msgstr ""
#~ "Podniesienie zbyt małe dla modelu. Użyj funkcji \"Podkładka wokół " #~ "Podniesienie zbyt małe dla modelu. Użyj funkcji \"Podkładka wokół modelu"
#~ "modelu\", aby wydrukować model bez podniesienia." #~ "\", aby wydrukować model bez podniesienia."
#~ msgid "" #~ msgid ""
#~ "The endings of the support pillars will be deployed on the gap between " #~ "The endings of the support pillars will be deployed on the gap between "
@ -17314,10 +17626,6 @@ msgstr ""
#~ msgid "Connection to the printer failed" #~ msgid "Connection to the printer failed"
#~ msgstr "Nie udało się połączyć z drukarką" #~ msgstr "Nie udało się połączyć z drukarką"
#~ msgid "A problem occurred during calibration. Click to view the solution."
#~ msgstr ""
#~ "Wystąpił problem podczas kalibracji. Kliknij, aby zobaczyć rozwiązanie."
#~ msgid "" #~ msgid ""
#~ "All the selected objects are on the locked plate,\n" #~ "All the selected objects are on the locked plate,\n"
#~ "We cannot do auto-arrange on these objects." #~ "We cannot do auto-arrange on these objects."

File diff suppressed because it is too large Load diff

View file

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: OrcaSlicer V2.0.0 Official Release\n" "Project-Id-Version: OrcaSlicer V2.0.0 Official Release\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"PO-Revision-Date: 2024-04-12 13:49+0700\n" "PO-Revision-Date: 2024-04-12 13:49+0700\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: andylg@yandex.ru\n" "Language-Team: andylg@yandex.ru\n"
@ -15,8 +15,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" "%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
"X-Generator: Poedit 3.4.2\n" "X-Generator: Poedit 3.4.2\n"
msgid "Supports Painting" msgid "Supports Painting"
@ -2426,11 +2426,11 @@ msgstr "Дозаправка"
msgid "AMS not connected" msgid "AMS not connected"
msgstr "АСПП не подключена" msgstr "АСПП не подключена"
msgid "Load Filament" msgid "Load"
msgstr "Загрузить" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "Выгрузить" msgstr "Выгруз."
msgid "Ext Spool" msgid "Ext Spool"
msgstr "Внеш. катушка" msgstr "Внеш. катушка"
@ -2447,7 +2447,7 @@ msgstr "Повтор"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "Калибровка АСПП..." msgstr "Калибровка АСПП..."
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "" msgstr ""
"Во время калибровки возникла проблема. Нажмите, чтобы просмотреть решение." "Во время калибровки возникла проблема. Нажмите, чтобы просмотреть решение."
@ -2489,10 +2489,8 @@ msgstr "Загрузка нового прутка"
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "" msgstr ""
"Выберите слот АСПП, затем нажмите кнопку «Загрузить» или «Выгрузить» для "
"автоматической загрузки или выгрузки прутка."
msgid "Edit" msgid "Edit"
msgstr "Правка" msgstr "Правка"
@ -3124,6 +3122,14 @@ msgstr ""
"АСПП автоматически переключится на другую катушку с тем же типом материала, " "АСПП автоматически переключится на другую катушку с тем же типом материала, "
"когда текущий закончится." "когда текущий закончится."
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "Файл" msgstr "Файл"
@ -3599,18 +3605,6 @@ msgstr "Пауза при ошибке на первом слое"
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "Пауза при засорении сопла" msgstr "Пауза при засорении сопла"
msgid "MC"
msgstr "Плата управления"
msgid "MainBoard"
msgstr "Материнская плата"
msgid "TH"
msgstr "TH"
msgid "XCam"
msgstr "XCam"
msgid "Unknown" msgid "Unknown"
msgstr "Неизвестно" msgstr "Неизвестно"
@ -4148,7 +4142,7 @@ msgstr "Объём:"
msgid "Size:" msgid "Size:"
msgstr "Размер:" msgstr "Размер:"
#, boost-format #, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4291,6 +4285,9 @@ msgstr "Предпросмотр нарезки"
msgid "Device" msgid "Device"
msgstr "Принтер" msgstr "Принтер"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "Проект" msgstr "Проект"
@ -4330,6 +4327,9 @@ msgstr "Распечатать все столы"
msgid "Send all" msgid "Send all"
msgstr "Отправить G-код всех столов на SD-карту" msgstr "Отправить G-код всех столов на SD-карту"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "Горячие клавиши" msgstr "Горячие клавиши"
@ -5127,9 +5127,6 @@ msgstr "Выдув"
msgid "Bed" msgid "Bed"
msgstr "Стол" msgstr "Стол"
msgid "Unload"
msgstr "Выгруз."
msgid "Debug Info" msgid "Debug Info"
msgstr "Отладочная информация" msgstr "Отладочная информация"
@ -5318,9 +5315,6 @@ msgstr "Статус"
msgid "Update" msgid "Update"
msgstr "Обновление" msgstr "Обновление"
msgid "HMS"
msgstr "Здоровье принтера"
msgid "Don't show again" msgid "Don't show again"
msgstr "Больше не показывать" msgstr "Больше не показывать"
@ -5568,6 +5562,12 @@ msgstr "Разрешить звуковые уведомления"
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "Обнаружение запутывания прутка" msgstr "Обнаружение запутывания прутка"
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "" msgstr ""
@ -6030,19 +6030,23 @@ msgstr "Импортирование модели"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "подготовка 3mf файла..." msgstr "подготовка 3mf файла..."
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "скачивание проекта..." msgstr "скачивание проекта..."
msgid "Download failed, File size exception."
msgstr ""
#, c-format, boost-format #, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "Проект загружен %d%%" msgstr "Проект загружен %d%%"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
"Не удалось импортировать в Orca Slicer. Загрузите файл и импортируйте его "
"вручную."
msgid "Import SLA archive" msgid "Import SLA archive"
msgstr "Импорт SLA архива" msgstr "Импорт SLA архива"
@ -6317,6 +6321,21 @@ msgstr ""
"Единицы \n" "Единицы \n"
"измерения" "измерения"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "Домашняя страница" msgstr "Домашняя страница"
@ -6401,6 +6420,14 @@ msgid ""
"each printer automatically." "each printer automatically."
msgstr "" msgstr ""
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "Сеть" msgstr "Сеть"
@ -7057,6 +7084,9 @@ msgstr "Автокалибровка потока с помощью микрол
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "Изменение имени принтера" msgstr "Изменение имени принтера"
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "Отправить на SD-карту принтера" msgstr "Отправить на SD-карту принтера"
@ -7108,6 +7138,26 @@ msgstr "Таймаут получения отчета о входе"
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "Неизвестная ошибка" msgstr "Неизвестная ошибка"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "Войти в принтер" msgstr "Войти в принтер"
@ -7131,8 +7181,8 @@ msgid ""
"Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services." "Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services."
msgstr "" msgstr ""
"Перед использованием устройства Bambu Lab ознакомьтесь с правилами и " "Перед использованием устройства Bambu Lab ознакомьтесь с правилами и "
"условиями. Нажимая на кнопку \"Согласие на использование устройства Bambu " "условиями. Нажимая на кнопку \"Согласие на использование устройства Bambu Lab"
"Lab\", вы соглашаетесь соблюдать Политику конфиденциальности и Условия " "\", вы соглашаетесь соблюдать Политику конфиденциальности и Условия "
"использования (далее - \"Условия\"). Если вы не соблюдаете или не согласны с " "использования (далее - \"Условия\"). Если вы не соблюдаете или не согласны с "
"Политикой конфиденциальности Bambu Lab, пожалуйста, не пользуйтесь " "Политикой конфиденциальности Bambu Lab, пожалуйста, не пользуйтесь "
"оборудованием и услугами Bambu Lab." "оборудованием и услугами Bambu Lab."
@ -7327,8 +7377,8 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"При записи таймлапса без видимости головы рекомендуется добавить «Черновая " "При записи таймлапса без видимости головы рекомендуется добавить «Черновая "
"башня таймлапса». \n" "башня таймлапса». \n"
@ -8375,6 +8425,39 @@ msgstr "Готово"
msgid "resume" msgid "resume"
msgstr "" msgstr ""
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "Загрузить"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "Подтвердить и обновить сопло" msgstr "Подтвердить и обновить сопло"
@ -10698,6 +10781,9 @@ msgstr "Динам. куб. поддержка"
msgid "Lightning" msgid "Lightning"
msgstr "Молния" msgstr "Молния"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "Длина привязок разреженного заполнения" msgstr "Длина привязок разреженного заполнения"
@ -10752,8 +10838,8 @@ msgstr ""
"две ближайшие линии заполнения с коротким отрезком периметра. Если не " "две ближайшие линии заполнения с коротким отрезком периметра. Если не "
"найдено такого отрезка периметра короче этого параметра, линия заполнения " "найдено такого отрезка периметра короче этого параметра, линия заполнения "
"соединяется с отрезком периметра только с одной стороны, а длина отрезка " "соединяется с отрезком периметра только с одной стороны, а длина отрезка "
"периметра ограничена значением «Длина привязок разреженного заполнения» " "периметра ограничена значением «Длина привязок разреженного "
"(infill_anchor), но не больше этого параметра.\n" "заполнения» (infill_anchor), но не больше этого параметра.\n"
"Если установить 0, то будет использоваться старый алгоритм для соединения " "Если установить 0, то будет использоваться старый алгоритм для соединения "
"заполнения, который даёт такой же результат, как и при значениях 1000 и 0." "заполнения, который даёт такой же результат, как и при значениях 1000 и 0."
@ -10908,17 +10994,17 @@ msgstr "Полная скорость вентилятора на слое"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
"Скорость вентилятора будет нарастать линейно от нуля на слое " "Скорость вентилятора будет нарастать линейно от нуля на слое "
"\"close_fan_the_first_x_layers\" до максимума на слое " "\"close_fan_the_first_x_layers\" до максимума на слое \"full_fan_speed_layer"
"\"full_fan_speed_layer\". Значение \"full_fan_speed_layer\" будет " "\". Значение \"full_fan_speed_layer\" будет игнорироваться, если оно меньше "
"игнорироваться, если оно меньше значения \"close_fan_the_first_x_layers\", в " "значения \"close_fan_the_first_x_layers\", в этом случае вентилятор будет "
"этом случае вентилятор будет работать на максимально допустимой скорости на " "работать на максимально допустимой скорости на слое "
"слое \"close_fan_the_first_x_layers\" + 1." "\"close_fan_the_first_x_layers\" + 1."
msgid "Support interface fan speed" msgid "Support interface fan speed"
msgstr "Скорость вентилятора на связующем слое" msgstr "Скорость вентилятора на связующем слое"
@ -13921,6 +14007,9 @@ msgstr "Отменено"
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "load_obj: ошибка обработки" msgstr "load_obj: ошибка обработки"
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "Файл содержит многоугольники с более чем 4 вершинами." msgstr "Файл содержит многоугольники с более чем 4 вершинами."
@ -14047,6 +14136,14 @@ msgstr "Пожалуйста, выберите пруток для калибр
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "Размер входного значения должен быть равен 3." msgstr "Размер входного значения должен быть равен 3."
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "Подключение к принтеру..." msgstr "Подключение к принтеру..."
@ -14056,6 +14153,19 @@ msgstr "Результат неудачного теста был удалён."
msgid "Flow Dynamics Calibration result has been saved to the printer" msgid "Flow Dynamics Calibration result has been saved to the printer"
msgstr "Результат калибровки динамики потока был сохранён на принтере" msgstr "Результат калибровки динамики потока был сохранён на принтере"
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "Внутренняя ошибка" msgstr "Внутренняя ошибка"
@ -14363,9 +14473,6 @@ msgstr ""
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "Параметры печати" msgstr "Параметры печати"
msgid "- ℃"
msgstr "- ℃"
msgid "Plate Type" msgid "Plate Type"
msgstr "Типа печатной пластины" msgstr "Типа печатной пластины"
@ -14413,12 +14520,6 @@ msgstr "Конечный коэф. K"
msgid "Step value" msgid "Step value"
msgstr "Шаг" msgstr "Шаг"
msgid "0.5"
msgstr "0.5"
msgid "0.005"
msgstr "0.005"
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "Диаметр сопла был синхронизирован с настройками принтера" msgstr "Диаметр сопла был синхронизирован с настройками принтера"
@ -14446,10 +14547,14 @@ msgstr "Обновление записей истории калибровки
msgid "Action" msgid "Action"
msgstr "Действие" msgstr "Действие"
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "Редактировать калибровку динамики потока" msgstr "Редактировать калибровку динамики потока"
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "" msgstr ""
msgid "Ok" msgid "Ok"
@ -14458,13 +14563,6 @@ msgstr ""
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
msgid "Network lookup" msgid "Network lookup"
msgstr "Поиск по сети" msgstr "Поиск по сети"
@ -14874,8 +14972,8 @@ msgstr ""
"Хотите перезаписать его?" "Хотите перезаписать его?"
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
"Мы переименуем профиль в \"Производитель Тип Серия @выбранный принтер\".\n" "Мы переименуем профиль в \"Производитель Тип Серия @выбранный принтер\".\n"
@ -15485,6 +15583,175 @@ msgstr ""
"Текст сообщения: \"%1%\"\n" "Текст сообщения: \"%1%\"\n"
"Ошибка: \"%2%\"" "Ошибка: \"%2%\""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "Соединение с Obico успешно установлено." msgstr "Соединение с Obico успешно установлено."
@ -15921,6 +16188,47 @@ msgstr ""
"ABS, повышение температуры подогреваемого стола может снизить эту " "ABS, повышение температуры подогреваемого стола может снизить эту "
"вероятность?" "вероятность?"
#~ msgid "Unload Filament"
#~ msgstr "Выгрузить"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr ""
#~ "Выберите слот АСПП, затем нажмите кнопку «Загрузить» или «Выгрузить» для "
#~ "автоматической загрузки или выгрузки прутка."
#~ msgid "MC"
#~ msgstr "Плата управления"
#~ msgid "MainBoard"
#~ msgstr "Материнская плата"
#~ msgid "TH"
#~ msgstr "TH"
#~ msgid "XCam"
#~ msgstr "XCam"
#~ msgid "HMS"
#~ msgstr "Здоровье принтера"
#~ msgid ""
#~ "Importing to Orca Slicer failed. Please download the file and manually "
#~ "import it."
#~ msgstr ""
#~ "Не удалось импортировать в Orca Slicer. Загрузите файл и импортируйте его "
#~ "вручную."
#~ msgid "- ℃"
#~ msgstr "- ℃"
#~ msgid "0.5"
#~ msgstr "0.5"
#~ msgid "0.005"
#~ msgstr "0.005"
#~ msgid "active" #~ msgid "active"
#~ msgstr "активный" #~ msgstr "активный"

View file

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"Language: sv\n" "Language: sv\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -2354,10 +2354,10 @@ msgstr ""
msgid "AMS not connected" msgid "AMS not connected"
msgstr "AMS ej ansluten" msgstr "AMS ej ansluten"
msgid "Load Filament" msgid "Load"
msgstr "Ladda Filament" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "Mata ut" msgstr "Mata ut"
msgid "Ext Spool" msgid "Ext Spool"
@ -2375,7 +2375,7 @@ msgstr "Försök igen"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "Kalibrerar AMS..." msgstr "Kalibrerar AMS..."
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "Ett problem uppstod vid kalibrering. Tryck för att se åtgärd." msgstr "Ett problem uppstod vid kalibrering. Tryck för att se åtgärd."
msgid "Calibrate again" msgid "Calibrate again"
@ -2416,10 +2416,8 @@ msgstr "Ta ett nytt filament"
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "" msgstr ""
"Välj ett AMS fack tryck sedan \"Ladda eller \"Mata ur\" knappen för att "
"automatiskt mata eller mata ut filament."
msgid "Edit" msgid "Edit"
msgstr "Redigera" msgstr "Redigera"
@ -3027,6 +3025,14 @@ msgstr ""
"AMS fortsätter automatiskt till en annan spole med samma filament egenskaper " "AMS fortsätter automatiskt till en annan spole med samma filament egenskaper "
"när det aktuella filamentet tar slut." "när det aktuella filamentet tar slut."
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "Fil" msgstr "Fil"
@ -3474,18 +3480,6 @@ msgstr ""
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "" msgstr ""
msgid "MC"
msgstr "MC"
msgid "MainBoard"
msgstr "Moderkort"
msgid "TH"
msgstr "TH"
msgid "XCam"
msgstr "X Kamera"
msgid "Unknown" msgid "Unknown"
msgstr "Okänd" msgstr "Okänd"
@ -4008,7 +4002,7 @@ msgstr "Volym:"
msgid "Size:" msgid "Size:"
msgstr "Storlek:" msgstr "Storlek:"
#, boost-format #, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4147,6 +4141,9 @@ msgstr "Förhandsvisning"
msgid "Device" msgid "Device"
msgstr "Enhet" msgstr "Enhet"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "Projekt" msgstr "Projekt"
@ -4186,6 +4183,9 @@ msgstr "Skriv ut allt"
msgid "Send all" msgid "Send all"
msgstr "Skicka alla" msgstr "Skicka alla"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "Kortkommando" msgstr "Kortkommando"
@ -4961,9 +4961,6 @@ msgstr "Kammare"
msgid "Bed" msgid "Bed"
msgstr "Byggplattan" msgstr "Byggplattan"
msgid "Unload"
msgstr "Mata ut"
msgid "Debug Info" msgid "Debug Info"
msgstr "Felsöknings Information" msgstr "Felsöknings Information"
@ -5133,9 +5130,6 @@ msgstr "Status"
msgid "Update" msgid "Update"
msgstr "Uppdatera" msgstr "Uppdatera"
msgid "HMS"
msgstr "HMS"
msgid "Don't show again" msgid "Don't show again"
msgstr "Visa inte igen" msgstr "Visa inte igen"
@ -5380,6 +5374,12 @@ msgstr ""
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "" msgstr ""
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "" msgstr ""
@ -5822,15 +5822,21 @@ msgstr "Importerar Modell"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "förbereder 3mf-filen..." msgstr "förbereder 3mf-filen..."
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "laddar ner projekt ..." msgstr "laddar ner projekt ..."
msgid "Download failed, File size exception."
msgstr ""
#, c-format, boost-format #, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "Projektet har laddats ned %d%%" msgstr "Projektet har laddats ned %d%%"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
@ -6095,6 +6101,21 @@ msgstr "Brittisk standard"
msgid "Units" msgid "Units"
msgstr "Enheter" msgstr "Enheter"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "" msgstr ""
@ -6171,6 +6192,14 @@ msgid ""
"each printer automatically." "each printer automatically."
msgstr "" msgstr ""
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "" msgstr ""
@ -6806,6 +6835,9 @@ msgstr ""
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "Ändra enhetens namn" msgstr "Ändra enhetens namn"
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "Skicka till skrivarens MicroSD-kort" msgstr "Skicka till skrivarens MicroSD-kort"
@ -6857,6 +6889,26 @@ msgstr "Timeout för mottagande av inloggnings rapport"
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "Okänt fel" msgstr "Okänt fel"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "Logga in skrivare" msgstr "Logga in skrivare"
@ -7064,8 +7116,8 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"När du spelar in timelapse utan verktygshuvud rekommenderas att du lägger " "När du spelar in timelapse utan verktygshuvud rekommenderas att du lägger "
"till ett \"Timelapse Wipe Tower\".\n" "till ett \"Timelapse Wipe Tower\".\n"
@ -8069,6 +8121,39 @@ msgstr "Klar"
msgid "resume" msgid "resume"
msgstr "" msgstr ""
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "Ladda Filament"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "" msgstr ""
@ -9298,9 +9383,9 @@ msgid ""
"quality for needle and small details" "quality for needle and small details"
msgstr "" msgstr ""
"Aktivera detta val för att sänka utskifts hastigheten för att göra den sista " "Aktivera detta val för att sänka utskifts hastigheten för att göra den sista "
"lager tiden inte kortare än lager tidströskeln \"Max fläkthastighets " "lager tiden inte kortare än lager tidströskeln \"Max fläkthastighets tröskel"
"tröskel\", detta så att lager kan kylas under en längre tid. Detta kan " "\", detta så att lager kan kylas under en längre tid. Detta kan förbättra "
"förbättra kylnings kvaliteten för små detaljer" "kylnings kvaliteten för små detaljer"
msgid "Normal printing" msgid "Normal printing"
msgstr "Normal utskrift" msgstr "Normal utskrift"
@ -10050,6 +10135,9 @@ msgstr "Kubik Support"
msgid "Lightning" msgid "Lightning"
msgstr "Blixt" msgstr "Blixt"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "" msgstr ""
@ -10218,10 +10306,10 @@ msgstr "Full fläkthastighet vid lager"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
msgid "Support interface fan speed" msgid "Support interface fan speed"
@ -12804,6 +12892,9 @@ msgstr "Avbruten"
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "load_obj: misslyckades med att analysera" msgstr "load_obj: misslyckades med att analysera"
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "Filen innehåller polygoner med fler än 4 hörn." msgstr "Filen innehåller polygoner med fler än 4 hörn."
@ -12920,6 +13011,14 @@ msgstr ""
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "" msgstr ""
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "" msgstr ""
@ -12929,6 +13028,19 @@ msgstr ""
msgid "Flow Dynamics Calibration result has been saved to the printer" msgid "Flow Dynamics Calibration result has been saved to the printer"
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "" msgstr ""
@ -13154,9 +13266,6 @@ msgstr ""
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "" msgstr ""
msgid "- ℃"
msgstr ""
msgid "Plate Type" msgid "Plate Type"
msgstr "Typ av byggplatta" msgstr "Typ av byggplatta"
@ -13200,12 +13309,6 @@ msgstr ""
msgid "Step value" msgid "Step value"
msgstr "" msgstr ""
msgid "0.5"
msgstr ""
msgid "0.005"
msgstr ""
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "" msgstr ""
@ -13233,10 +13336,14 @@ msgstr ""
msgid "Action" msgid "Action"
msgstr "" msgstr ""
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "" msgstr ""
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "" msgstr ""
msgid "Ok" msgid "Ok"
@ -13245,13 +13352,6 @@ msgstr ""
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
msgid "Network lookup" msgid "Network lookup"
msgstr "" msgstr ""
@ -13632,8 +13732,8 @@ msgid ""
msgstr "" msgstr ""
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
@ -14176,6 +14276,175 @@ msgid ""
"Error: \"%2%\"" "Error: \"%2%\""
msgstr "" msgstr ""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "" msgstr ""
@ -14548,6 +14817,31 @@ msgid ""
"probability of warping." "probability of warping."
msgstr "" msgstr ""
#~ msgid "Unload Filament"
#~ msgstr "Mata ut"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr ""
#~ "Välj ett AMS fack tryck sedan \"Ladda eller \"Mata ur\" knappen för att "
#~ "automatiskt mata eller mata ut filament."
#~ msgid "MC"
#~ msgstr "MC"
#~ msgid "MainBoard"
#~ msgstr "Moderkort"
#~ msgid "TH"
#~ msgstr "TH"
#~ msgid "XCam"
#~ msgstr "X Kamera"
#~ msgid "HMS"
#~ msgstr "HMS"
#~ msgid "active" #~ msgid "active"
#~ msgstr "aktiv" #~ msgstr "aktiv"

View file

@ -2,7 +2,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"PO-Revision-Date: 2024-04-16 03:39+0300\n" "PO-Revision-Date: 2024-04-16 03:39+0300\n"
"Last-Translator: Olcay ÖREN\n" "Last-Translator: Olcay ÖREN\n"
"Language-Team: \n" "Language-Team: \n"
@ -2396,11 +2396,11 @@ msgstr "Otomatik Doldurma"
msgid "AMS not connected" msgid "AMS not connected"
msgstr "AMS bağlı değil" msgstr "AMS bağlı değil"
msgid "Load Filament" msgid "Load"
msgstr "Filament Yükle" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "Filamenti Çıkarın" msgstr "Boşalt"
msgid "Ext Spool" msgid "Ext Spool"
msgstr "Harici Makara" msgstr "Harici Makara"
@ -2417,7 +2417,7 @@ msgstr "Yeniden dene"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "AMS kalibre ediliyor..." msgstr "AMS kalibre ediliyor..."
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "" msgstr ""
"Kalibrasyon sırasında bir sorun oluştu. Çözümü görüntülemek için tıklayın." "Kalibrasyon sırasında bir sorun oluştu. Çözümü görüntülemek için tıklayın."
@ -2459,10 +2459,8 @@ msgstr "Yeni filament al"
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "" msgstr ""
"Filamenti otomatik olarak yüklemek veya çıkarmak için bir AMS yuvası seçin "
"ve ardından \"Yükle\" veya \"Boşalt\" düğmesine basın."
msgid "Edit" msgid "Edit"
msgstr "Düzenle" msgstr "Düzenle"
@ -3087,6 +3085,14 @@ msgstr ""
"AMS, mevcut filament bittiğinde otomatik olarak aynı özelliklere sahip başka " "AMS, mevcut filament bittiğinde otomatik olarak aynı özelliklere sahip başka "
"bir makaraya devam edecektir" "bir makaraya devam edecektir"
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "Dosya" msgstr "Dosya"
@ -3550,18 +3556,6 @@ msgstr "İlk katman hatası duraklatılıyor"
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "Nozul tıkanıklığı duraklatılıyor" msgstr "Nozul tıkanıklığı duraklatılıyor"
msgid "MC"
msgstr "MC"
msgid "MainBoard"
msgstr "Anakart"
msgid "TH"
msgstr "TH"
msgid "XCam"
msgstr "XCam"
msgid "Unknown" msgid "Unknown"
msgstr "Bilinmeyen" msgstr "Bilinmeyen"
@ -4097,7 +4091,7 @@ msgstr "Hacim:"
msgid "Size:" msgid "Size:"
msgstr "Boyut:" msgstr "Boyut:"
#, boost-format #, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4238,6 +4232,9 @@ msgstr "Ön İzleme"
msgid "Device" msgid "Device"
msgstr "Yazıcı" msgstr "Yazıcı"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "Proje" msgstr "Proje"
@ -4278,6 +4275,9 @@ msgstr "Tümünü yazdır"
msgid "Send all" msgid "Send all"
msgstr "Hepsini gönder" msgstr "Hepsini gönder"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "Klavye kısayolları" msgstr "Klavye kısayolları"
@ -5085,9 +5085,6 @@ msgstr "Cham"
msgid "Bed" msgid "Bed"
msgstr "Yatak" msgstr "Yatak"
msgid "Unload"
msgstr "Boşalt"
msgid "Debug Info" msgid "Debug Info"
msgstr "Hata Ayıklama Bilgisi" msgstr "Hata Ayıklama Bilgisi"
@ -5274,9 +5271,6 @@ msgstr "Durum"
msgid "Update" msgid "Update"
msgstr "Güncelle" msgstr "Güncelle"
msgid "HMS"
msgstr "HMS"
msgid "Don't show again" msgid "Don't show again"
msgstr "Bir daha gösterme" msgstr "Bir daha gösterme"
@ -5522,6 +5516,12 @@ msgstr "Uyarı Sesine İzin Ver"
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "Filament Dolaşma Tespiti" msgstr "Filament Dolaşma Tespiti"
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "Nozul Tipi" msgstr "Nozul Tipi"
@ -5978,19 +5978,23 @@ msgstr "Model İçe aktarılıyor"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "3mf dosyasını hazırla..." msgstr "3mf dosyasını hazırla..."
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "proje indiriliyor..." msgstr "proje indiriliyor..."
msgid "Download failed, File size exception."
msgstr ""
#, c-format, boost-format #, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "Proje %d%% indirildi" msgstr "Proje %d%% indirildi"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
"Orca Slicer'ya aktarma başarısız oldu. Lütfen dosyayı indirin ve manuel "
"olarak İçe aktarın."
msgid "Import SLA archive" msgid "Import SLA archive"
msgstr "SLA arşivini içe aktar" msgstr "SLA arşivini içe aktar"
@ -6263,6 +6267,21 @@ msgstr "Imperial"
msgid "Units" msgid "Units"
msgstr "Birimler" msgstr "Birimler"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "Ana Sayfa" msgstr "Ana Sayfa"
@ -6348,6 +6367,14 @@ msgstr ""
"Etkinleştirilirse, Orca her yazıcı için filament/işlem yapılandırmasını " "Etkinleştirilirse, Orca her yazıcı için filament/işlem yapılandırmasını "
"hatırlayacak ve otomatik olarak değiştirecektir." "hatırlayacak ve otomatik olarak değiştirecektir."
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "Ağ" msgstr "Ağ"
@ -6998,6 +7025,9 @@ msgstr "Mikro Lidar kullanarak otomatik akış kalibrasyonu"
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "Cihaz adını değiştir" msgstr "Cihaz adını değiştir"
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "Yazıcı SD kartına gönder" msgstr "Yazıcı SD kartına gönder"
@ -7049,6 +7079,26 @@ msgstr "Giriş raporu alma zaman aşımı"
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "Bilinmeyen Arıza" msgstr "Bilinmeyen Arıza"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "Yazıcıda oturum aç" msgstr "Yazıcıda oturum aç"
@ -7273,8 +7323,8 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"Araç başlığı olmadan timelapse kaydederken, bir \"Timelapse Wipe Tower\" " "Araç başlığı olmadan timelapse kaydederken, bir \"Timelapse Wipe Tower\" "
"eklenmesi önerilir.\n" "eklenmesi önerilir.\n"
@ -8312,6 +8362,39 @@ msgstr "Tamamlandı"
msgid "resume" msgid "resume"
msgstr "" msgstr ""
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "Filament Yükle"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "Nozulu Onaylayın ve Güncelleyin" msgstr "Nozulu Onaylayın ve Güncelleyin"
@ -8726,8 +8809,8 @@ msgid ""
"Please select \"By object\" print sequence to print multiple objects in " "Please select \"By object\" print sequence to print multiple objects in "
"spiral vase mode." "spiral vase mode."
msgstr "" msgstr ""
"Birden fazla nesneyi spiral vazo modunda yazdırmak için lütfen \"Nesneye " "Birden fazla nesneyi spiral vazo modunda yazdırmak için lütfen \"Nesneye göre"
"göre\" yazdırma sırasını seçin." "\" yazdırma sırasını seçin."
msgid "" msgid ""
"The spiral vase mode does not work when an object contains more than one " "The spiral vase mode does not work when an object contains more than one "
@ -10586,6 +10669,9 @@ msgstr "Destek kübik"
msgid "Lightning" msgid "Lightning"
msgstr "Yıldırım" msgstr "Yıldırım"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "Dolgu uzunluğu" msgstr "Dolgu uzunluğu"
@ -10783,17 +10869,16 @@ msgstr "Maksimum fan hızı"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
"Fan hızı, \"close_fan_the_first_x_layers\" katmanında sıfırdan " "Fan hızı, \"close_fan_the_first_x_layers\" katmanında sıfırdan "
"\"ful_fan_speed_layer\" katmanında maksimuma doğrusal olarak artırılacaktır. " "\"ful_fan_speed_layer\" katmanında maksimuma doğrusal olarak artırılacaktır. "
"\"full_fan_speed_layer\", \"close_fan_the_first_x_layers\" değerinden " "\"full_fan_speed_layer\", \"close_fan_the_first_x_layers\" değerinden "
"düşükse göz ardı edilecektir; bu durumda fan, " "düşükse göz ardı edilecektir; bu durumda fan, \"close_fan_the_first_x_layers"
"\"close_fan_the_first_x_layers\" + 1 katmanında izin verilen maksimum hızda " "\" + 1 katmanında izin verilen maksimum hızda çalışacaktır."
"çalışacaktır."
msgid "Support interface fan speed" msgid "Support interface fan speed"
msgstr "Destekler için fan hızı" msgstr "Destekler için fan hızı"
@ -13734,6 +13819,9 @@ msgstr "İptal edildi"
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "load_obj: ayrıştırılamadı" msgstr "load_obj: ayrıştırılamadı"
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "Dosya 4'ten fazla köşesi olan çokgenler içeriyor." msgstr "Dosya 4'ten fazla köşesi olan çokgenler içeriyor."
@ -13860,6 +13948,14 @@ msgstr "Lütfen kalibre edilecek filamenti seçin."
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "Giriş değeri boyutu 3 olmalıdır." msgstr "Giriş değeri boyutu 3 olmalıdır."
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "Yazıcıya bağlanılıyor..." msgstr "Yazıcıya bağlanılıyor..."
@ -13869,6 +13965,22 @@ msgstr "Başarısız olan test sonucu düşürüldü."
msgid "Flow Dynamics Calibration result has been saved to the printer" msgid "Flow Dynamics Calibration result has been saved to the printer"
msgstr "Akış Dinamiği Kalibrasyonu sonucu yazıcıya kaydedildi" msgstr "Akış Dinamiği Kalibrasyonu sonucu yazıcıya kaydedildi"
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
"Aynı ada sahip geçmiş bir kalibrasyon sonucu zaten var: %s. Aynı ada sahip "
"sonuçlardan yalnızca biri kaydedilir. Geçmiş sonucu geçersiz kılmak "
"istediğinizden emin misiniz?"
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "İç hata" msgstr "İç hata"
@ -14168,9 +14280,6 @@ msgstr ""
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "Yazdırma Parametreleri" msgstr "Yazdırma Parametreleri"
msgid "- ℃"
msgstr "- °C"
msgid "Plate Type" msgid "Plate Type"
msgstr "Plaka Tipi" msgstr "Plaka Tipi"
@ -14217,12 +14326,6 @@ msgstr "K değerine"
msgid "Step value" msgid "Step value"
msgstr "Adım değeri" msgstr "Adım değeri"
msgid "0.5"
msgstr "0.5"
msgid "0.005"
msgstr "0.005"
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "Nozul çapı yazıcı ayarlarından senkronize edildi" msgstr "Nozul çapı yazıcı ayarlarından senkronize edildi"
@ -14250,11 +14353,15 @@ msgstr "Geçmiş Akış Dinamiği Kalibrasyon kayıtlarını yenileme"
msgid "Action" msgid "Action"
msgstr "İşlem" msgstr "İşlem"
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "Akış Dinamiği Kalibrasyonunu Düzenle" msgstr "Akış Dinamiği Kalibrasyonunu Düzenle"
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "Yeni Akış Dinamiği Kalibrasyonu" msgstr ""
msgid "Ok" msgid "Ok"
msgstr "Tamam" msgstr "Tamam"
@ -14262,16 +14369,6 @@ msgstr "Tamam"
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "Filament seçilmelidir." msgstr "Filament seçilmelidir."
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
"Aynı ada sahip geçmiş bir kalibrasyon sonucu zaten var: %s. Aynı ada sahip "
"sonuçlardan yalnızca biri kaydedilir. Geçmiş sonucu geçersiz kılmak "
"istediğinizden emin misiniz?"
msgid "Network lookup" msgid "Network lookup"
msgstr "Ağ araması" msgstr "Ağ araması"
@ -14680,8 +14777,8 @@ msgstr ""
"Yeniden yazmak ister misin?" "Yeniden yazmak ister misin?"
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
"Ön ayarları şu şekilde yeniden adlandırırdık: \"Satıcı Türü Seçtiğiniz Seri " "Ön ayarları şu şekilde yeniden adlandırırdık: \"Satıcı Türü Seçtiğiniz Seri "
@ -15305,6 +15402,175 @@ msgstr ""
"Mesaj gövdesi: \"%1%\"\n" "Mesaj gövdesi: \"%1%\"\n"
"Hata: \"%2%\"" "Hata: \"%2%\""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "Obico'ya başarıyla bağlanıldı!" msgstr "Obico'ya başarıyla bağlanıldı!"
@ -15738,6 +16004,50 @@ msgstr ""
"sıcaklığının uygun şekilde arttırılmasının bükülme olasılığını " "sıcaklığının uygun şekilde arttırılmasının bükülme olasılığını "
"azaltabileceğini biliyor muydunuz?" "azaltabileceğini biliyor muydunuz?"
#~ msgid "Unload Filament"
#~ msgstr "Filamenti Çıkarın"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr ""
#~ "Filamenti otomatik olarak yüklemek veya çıkarmak için bir AMS yuvası "
#~ "seçin ve ardından \"Yükle\" veya \"Boşalt\" düğmesine basın."
#~ msgid "MC"
#~ msgstr "MC"
#~ msgid "MainBoard"
#~ msgstr "Anakart"
#~ msgid "TH"
#~ msgstr "TH"
#~ msgid "XCam"
#~ msgstr "XCam"
#~ msgid "HMS"
#~ msgstr "HMS"
#~ msgid ""
#~ "Importing to Orca Slicer failed. Please download the file and manually "
#~ "import it."
#~ msgstr ""
#~ "Orca Slicer'ya aktarma başarısız oldu. Lütfen dosyayı indirin ve manuel "
#~ "olarak İçe aktarın."
#~ msgid "- ℃"
#~ msgstr "- °C"
#~ msgid "0.5"
#~ msgstr "0.5"
#~ msgid "0.005"
#~ msgstr "0.005"
#~ msgid "New Flow Dynamics Calibration"
#~ msgstr "Yeni Akış Dinamiği Kalibrasyonu"
#~ msgid "" #~ msgid ""
#~ "Over 4 studio/handy are using remote access, you can close some and try " #~ "Over 4 studio/handy are using remote access, you can close some and try "
#~ "again." #~ "again."
@ -16056,12 +16366,12 @@ msgstr ""
#~ msgstr "Seyrek katman yok (DENEYSEL)" #~ msgstr "Seyrek katman yok (DENEYSEL)"
#~ msgid "" #~ msgid ""
#~ "We would rename the presets as \"Vendor Type Serial @printer you " #~ "We would rename the presets as \"Vendor Type Serial @printer you selected"
#~ "selected\". \n" #~ "\". \n"
#~ "To add preset for more prinetrs, Please go to printer selection" #~ "To add preset for more prinetrs, Please go to printer selection"
#~ msgstr "" #~ msgstr ""
#~ "We would rename the presets as \"Vendor Type Serial @printer you " #~ "We would rename the presets as \"Vendor Type Serial @printer you selected"
#~ "selected\". \n" #~ "\". \n"
#~ "To add preset for more prinetrs, Please go to printer selection" #~ "To add preset for more prinetrs, Please go to printer selection"
#~ msgid "The Config can not be loaded." #~ msgid "The Config can not be loaded."

View file

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"PO-Revision-Date: 2023-08-10 20:25-0400\n" "PO-Revision-Date: 2023-08-10 20:25-0400\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -15,8 +15,8 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" "%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
"X-Generator: Poedit 3.3.2\n" "X-Generator: Poedit 3.3.2\n"
msgid "Supports Painting" msgid "Supports Painting"
@ -2371,11 +2371,11 @@ msgstr ""
msgid "AMS not connected" msgid "AMS not connected"
msgstr "АМС не підключено" msgstr "АМС не підключено"
msgid "Load Filament" msgid "Load"
msgstr "Завантажте філамент" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "Вивантажте філамент" msgstr "Вивантаження"
msgid "Ext Spool" msgid "Ext Spool"
msgstr "Зовнішня котушка" msgstr "Зовнішня котушка"
@ -2392,7 +2392,7 @@ msgstr "Повторити спробу"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "Калібрування АМС..." msgstr "Калібрування АМС..."
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "" msgstr ""
"Під час калібрування виникла проблема. Натисніть, щоб переглянути рішення." "Під час калібрування виникла проблема. Натисніть, щоб переглянути рішення."
@ -2434,11 +2434,8 @@ msgstr ""
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "" msgstr ""
"Виберіть слот AMS, потім натисніть кнопку \\Load\\ або \\Unload\\, щоб "
"автоматично\n"
"завантажити або вивантажити філамент."
msgid "Edit" msgid "Edit"
msgstr "Редагувати" msgstr "Редагувати"
@ -3047,6 +3044,14 @@ msgstr ""
"AMS перейде на іншу котушку з тими самими властивостями автоматично, коли " "AMS перейде на іншу котушку з тими самими властивостями автоматично, коли "
"поточний філамент закінчується" "поточний філамент закінчується"
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "Файл" msgstr "Файл"
@ -3501,18 +3506,6 @@ msgstr ""
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "" msgstr ""
msgid "MC"
msgstr "MC"
msgid "MainBoard"
msgstr "Основна плата"
msgid "TH"
msgstr "TH"
msgid "XCam"
msgstr "XCam"
msgid "Unknown" msgid "Unknown"
msgstr "Невідомий" msgstr "Невідомий"
@ -4035,7 +4028,7 @@ msgstr "Об'єм:"
msgid "Size:" msgid "Size:"
msgstr "Розмір:" msgstr "Розмір:"
#, boost-format #, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4176,6 +4169,9 @@ msgstr "Попередній перегляд"
msgid "Device" msgid "Device"
msgstr "Пристрій" msgstr "Пристрій"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "Проєкт" msgstr "Проєкт"
@ -4215,6 +4211,9 @@ msgstr "Роздрукувати все"
msgid "Send all" msgid "Send all"
msgstr "Надіслати все" msgstr "Надіслати все"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "Гарячі клавіші" msgstr "Гарячі клавіші"
@ -5005,9 +5004,6 @@ msgstr "Камера"
msgid "Bed" msgid "Bed"
msgstr "Стіл" msgstr "Стіл"
msgid "Unload"
msgstr "Вивантаження"
msgid "Debug Info" msgid "Debug Info"
msgstr "Налагоджувальна інформація" msgstr "Налагоджувальна інформація"
@ -5177,9 +5173,6 @@ msgstr "Статус"
msgid "Update" msgid "Update"
msgstr "Оновлення" msgstr "Оновлення"
msgid "HMS"
msgstr "HMS"
msgid "Don't show again" msgid "Don't show again"
msgstr "Більше не показувати" msgstr "Більше не показувати"
@ -5427,6 +5420,12 @@ msgstr ""
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "" msgstr ""
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "" msgstr ""
@ -5871,15 +5870,21 @@ msgstr "Імпорт моделі"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "підготувати файл 3mf..." msgstr "підготувати файл 3mf..."
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "завантажую проект..." msgstr "завантажую проект..."
msgid "Download failed, File size exception."
msgstr ""
#, c-format, boost-format #, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "Проект завантажено %d%%" msgstr "Проект завантажено %d%%"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
@ -6149,6 +6154,21 @@ msgstr "Імперський"
msgid "Units" msgid "Units"
msgstr "Одиниці" msgstr "Одиниці"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "" msgstr ""
@ -6224,6 +6244,14 @@ msgid ""
"each printer automatically." "each printer automatically."
msgstr "" msgstr ""
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "" msgstr ""
@ -6861,6 +6889,9 @@ msgstr ""
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "Зміна імені пристрою" msgstr "Зміна імені пристрою"
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "Надіслати на SD-карту принтера" msgstr "Надіслати на SD-карту принтера"
@ -6912,6 +6943,26 @@ msgstr ""
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "Невідомий збій" msgstr "Невідомий збій"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "Вхід до принтера" msgstr "Вхід до принтера"
@ -7101,8 +7152,8 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"При записі таймлапсу без інструментальної головки рекомендується додати " "При записі таймлапсу без інструментальної головки рекомендується додати "
"“Timelapse Wipe Tower” \n" "“Timelapse Wipe Tower” \n"
@ -8107,6 +8158,39 @@ msgstr "Виконано"
msgid "resume" msgid "resume"
msgstr "" msgstr ""
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "Завантажте філамент"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "" msgstr ""
@ -10130,6 +10214,9 @@ msgstr "Підтримуючий кубічний"
msgid "Lightning" msgid "Lightning"
msgstr "Блискавка" msgstr "Блискавка"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "Довжина прив'язки заповнення" msgstr "Довжина прив'язки заповнення"
@ -10331,10 +10418,10 @@ msgstr "Повна швидкість вентилятора на шарі"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
"Швидкість вентилятора лінійно збільшується від нуля на " "Швидкість вентилятора лінійно збільшується від нуля на "
"рівні«close_fan_the_first_x_layers» до максимуму на рівні " "рівні«close_fan_the_first_x_layers» до максимуму на рівні "
@ -12966,6 +13053,9 @@ msgstr ""
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "" msgstr ""
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "" msgstr ""
@ -13082,6 +13172,14 @@ msgstr ""
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "" msgstr ""
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "" msgstr ""
@ -13091,6 +13189,19 @@ msgstr ""
msgid "Flow Dynamics Calibration result has been saved to the printer" msgid "Flow Dynamics Calibration result has been saved to the printer"
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "" msgstr ""
@ -13316,9 +13427,6 @@ msgstr ""
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "" msgstr ""
msgid "- ℃"
msgstr ""
msgid "Plate Type" msgid "Plate Type"
msgstr "" msgstr ""
@ -13362,12 +13470,6 @@ msgstr ""
msgid "Step value" msgid "Step value"
msgstr "" msgstr ""
msgid "0.5"
msgstr ""
msgid "0.005"
msgstr ""
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "" msgstr ""
@ -13395,10 +13497,14 @@ msgstr ""
msgid "Action" msgid "Action"
msgstr "" msgstr ""
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "" msgstr ""
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "" msgstr ""
msgid "Ok" msgid "Ok"
@ -13407,13 +13513,6 @@ msgstr ""
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
msgid "Network lookup" msgid "Network lookup"
msgstr "" msgstr ""
@ -13798,8 +13897,8 @@ msgid ""
msgstr "" msgstr ""
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
@ -14349,6 +14448,175 @@ msgid ""
"Error: \"%2%\"" "Error: \"%2%\""
msgstr "" msgstr ""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "" msgstr ""
@ -14721,6 +14989,32 @@ msgid ""
"probability of warping." "probability of warping."
msgstr "" msgstr ""
#~ msgid "Unload Filament"
#~ msgstr "Вивантажте філамент"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr ""
#~ "Виберіть слот AMS, потім натисніть кнопку \\Load\\ або \\Unload\\, щоб "
#~ "автоматично\n"
#~ "завантажити або вивантажити філамент."
#~ msgid "MC"
#~ msgstr "MC"
#~ msgid "MainBoard"
#~ msgstr "Основна плата"
#~ msgid "TH"
#~ msgstr "TH"
#~ msgid "XCam"
#~ msgstr "XCam"
#~ msgid "HMS"
#~ msgstr "HMS"
#~ msgid "active" #~ msgid "active"
#~ msgstr "активно" #~ msgstr "активно"

View file

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Slic3rPE\n" "Project-Id-Version: Slic3rPE\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"PO-Revision-Date: 2023-04-01 13:21+0800\n" "PO-Revision-Date: 2023-04-01 13:21+0800\n"
"Last-Translator: SoftFever <softfeverever@gmail.com>\n" "Last-Translator: SoftFever <softfeverever@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@ -2327,10 +2327,10 @@ msgstr "自动补给"
msgid "AMS not connected" msgid "AMS not connected"
msgstr "AMS 未连接" msgstr "AMS 未连接"
msgid "Load Filament" msgid "Load"
msgstr "进料" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "退料" msgstr "退料"
msgid "Ext Spool" msgid "Ext Spool"
@ -2348,7 +2348,7 @@ msgstr "重试"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "正在校准AMS..." msgstr "正在校准AMS..."
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "校准过程遇到问题。点击查看解决方案。" msgstr "校准过程遇到问题。点击查看解决方案。"
msgid "Calibrate again" msgid "Calibrate again"
@ -2389,8 +2389,8 @@ msgstr "咬入耗材丝"
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "选择1个AMS槽位然后点击进料/退料按钮以自动进料/退料。" msgstr ""
msgid "Edit" msgid "Edit"
msgstr "编辑" msgstr "编辑"
@ -2960,6 +2960,14 @@ msgid ""
"automatically when current filament runs out" "automatically when current filament runs out"
msgstr "AMS料材丝耗尽后将自动切换到属性完全相同的耗材丝" msgstr "AMS料材丝耗尽后将自动切换到属性完全相同的耗材丝"
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "文件" msgstr "文件"
@ -3390,18 +3398,6 @@ msgstr "首层扫描异常暂停"
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "堵头暂停" msgstr "堵头暂停"
msgid "MC"
msgstr ""
msgid "MainBoard"
msgstr "主板"
msgid "TH"
msgstr ""
msgid "XCam"
msgstr ""
msgid "Unknown" msgid "Unknown"
msgstr "未定义" msgstr "未定义"
@ -3930,7 +3926,7 @@ msgstr "体积:"
msgid "Size:" msgid "Size:"
msgstr "尺寸:" msgstr "尺寸:"
#, boost-format #, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4069,6 +4065,9 @@ msgstr "预览"
msgid "Device" msgid "Device"
msgstr "设备" msgstr "设备"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "项目" msgstr "项目"
@ -4108,6 +4107,9 @@ msgstr "打印所有盘"
msgid "Send all" msgid "Send all"
msgstr "发送所有盘" msgstr "发送所有盘"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "快捷键" msgstr "快捷键"
@ -4881,9 +4883,6 @@ msgstr "机箱"
msgid "Bed" msgid "Bed"
msgstr "热床" msgstr "热床"
msgid "Unload"
msgstr "退料"
msgid "Debug Info" msgid "Debug Info"
msgstr "调试信息" msgstr "调试信息"
@ -5059,9 +5058,6 @@ msgstr "设备状态"
msgid "Update" msgid "Update"
msgstr "固件更新" msgstr "固件更新"
msgid "HMS"
msgstr ""
msgid "Don't show again" msgid "Don't show again"
msgstr "不再显示" msgstr "不再显示"
@ -5298,6 +5294,12 @@ msgstr "允许提示音"
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "缠料检测" msgstr "缠料检测"
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "" msgstr ""
@ -5721,15 +5723,21 @@ msgstr "正在导入模型"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "正在准备3mf文件..." msgstr "正在准备3mf文件..."
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "项目下载中..." msgstr "项目下载中..."
msgid "Download failed, File size exception."
msgstr ""
#, c-format, boost-format #, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "项目已下载%d%%" msgstr "项目已下载%d%%"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "" msgstr ""
@ -5992,6 +6000,21 @@ msgstr "英制"
msgid "Units" msgid "Units"
msgstr "单位" msgstr "单位"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "" msgstr ""
@ -6066,6 +6089,14 @@ msgid ""
"each printer automatically." "each printer automatically."
msgstr "" msgstr ""
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "网络" msgstr "网络"
@ -6679,6 +6710,9 @@ msgstr "使用微型激光雷达进行自动流量校准"
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "修改打印机名称" msgstr "修改打印机名称"
msgid "Bind with Pin Code"
msgstr ""
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "发送到打印机的SD卡" msgstr "发送到打印机的SD卡"
@ -6730,6 +6764,26 @@ msgstr "接收登录报告超时"
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "发生错误" msgstr "发生错误"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
msgid "Log in printer" msgid "Log in printer"
msgstr "登录打印机" msgstr "登录打印机"
@ -6920,8 +6974,8 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"在录制无工具头延时摄影视频时,建议添加“延时摄影擦料塔”\n" "在录制无工具头延时摄影视频时,建议添加“延时摄影擦料塔”\n"
"右键单击打印板的空白位置,选择“添加标准模型”->“延时摄影擦料塔”。" "右键单击打印板的空白位置,选择“添加标准模型”->“延时摄影擦料塔”。"
@ -7904,6 +7958,39 @@ msgstr "完成"
msgid "resume" msgid "resume"
msgstr "" msgstr ""
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "进料"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "确认并更新喷嘴" msgstr "确认并更新喷嘴"
@ -9916,6 +10003,9 @@ msgstr "支撑立方体"
msgid "Lightning" msgid "Lightning"
msgstr "闪电" msgstr "闪电"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "稀疏填充锚线长度" msgstr "稀疏填充锚线长度"
@ -10091,10 +10181,10 @@ msgstr "满速风扇在"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
"风扇速度将从“禁用第一层”的零线性上升到“全风扇速度层”的最大。如果低于“禁用风扇" "风扇速度将从“禁用第一层”的零线性上升到“全风扇速度层”的最大。如果低于“禁用风扇"
"第一层”,则“全风扇速度第一层”将被忽略,在这种情况下,风扇将在“禁用风扇第一" "第一层”,则“全风扇速度第一层”将被忽略,在这种情况下,风扇将在“禁用风扇第一"
@ -12673,6 +12763,9 @@ msgstr "已取消"
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "加载对象:无法分析" msgstr "加载对象:无法分析"
msgid "load mtl in obj: failed to parse"
msgstr ""
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "该文件包含顶点超过4个的多边形。" msgstr "该文件包含顶点超过4个的多边形。"
@ -12796,6 +12889,14 @@ msgstr "请选择要校准的耗材丝。"
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "输入值大小必须为3。" msgstr "输入值大小必须为3。"
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "正在连接打印机..." msgstr "正在连接打印机..."
@ -12805,6 +12906,19 @@ msgstr "测试失败的结果已被删除。"
msgid "Flow Dynamics Calibration result has been saved to the printer" msgid "Flow Dynamics Calibration result has been saved to the printer"
msgstr "动态流量校准的结果已保存至打印机。" msgstr "动态流量校准的结果已保存至打印机。"
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "内部错误" msgstr "内部错误"
@ -13072,9 +13186,6 @@ msgstr "将打印一份测试模型。在校准之前,请清理打印平台并
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "打印参数" msgstr "打印参数"
msgid "- ℃"
msgstr ""
msgid "Plate Type" msgid "Plate Type"
msgstr "热床类型" msgstr "热床类型"
@ -13121,12 +13232,6 @@ msgstr "结束k值"
msgid "Step value" msgid "Step value"
msgstr "" msgstr ""
msgid "0.5"
msgstr ""
msgid "0.005"
msgstr ""
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "喷嘴直径已从打印机设置同步" msgstr "喷嘴直径已从打印机设置同步"
@ -13154,10 +13259,14 @@ msgstr "刷新历史流量动态校准记录"
msgid "Action" msgid "Action"
msgstr "操作" msgstr "操作"
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "编辑动态流量校准" msgstr "编辑动态流量校准"
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "" msgstr ""
msgid "Ok" msgid "Ok"
@ -13166,13 +13275,6 @@ msgstr ""
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
msgid "Network lookup" msgid "Network lookup"
msgstr "搜索网络" msgstr "搜索网络"
@ -13571,8 +13673,8 @@ msgstr ""
"你想重写预设吗" "你想重写预设吗"
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
@ -14137,6 +14239,175 @@ msgid ""
"Error: \"%2%\"" "Error: \"%2%\""
msgstr "主机打印机的枚举失败。消息体:\"%1%\"错误:\"%2%\"" msgstr "主机打印机的枚举失败。消息体:\"%1%\"错误:\"%2%\""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "" msgstr ""
@ -14531,6 +14802,17 @@ msgstr ""
"避免翘曲\n" "避免翘曲\n"
"您知道吗打印ABS这类易翘曲材料时适当提高热床温度可以降低翘曲的概率。" "您知道吗打印ABS这类易翘曲材料时适当提高热床温度可以降低翘曲的概率。"
#~ msgid "Unload Filament"
#~ msgstr "退料"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr "选择1个AMS槽位然后点击进料/退料按钮以自动进料/退料。"
#~ msgid "MainBoard"
#~ msgstr "主板"
#~ msgid "active" #~ msgid "active"
#~ msgstr "活动的" #~ msgstr "活动的"
@ -14755,8 +15037,8 @@ msgstr ""
#~ msgstr "无稀疏层(实验)" #~ msgstr "无稀疏层(实验)"
#~ msgid "" #~ msgid ""
#~ "We would rename the presets as \"Vendor Type Serial @printer you " #~ "We would rename the presets as \"Vendor Type Serial @printer you selected"
#~ "selected\". \n" #~ "\". \n"
#~ "To add preset for more prinetrs, Please go to printer selection" #~ "To add preset for more prinetrs, Please go to printer selection"
#~ msgstr "" #~ msgstr ""
#~ "我们会将预设重命名为“供应商 类型 系列 @您选择的打印机”。\n" #~ "我们会将预设重命名为“供应商 类型 系列 @您选择的打印机”。\n"

View file

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-16 16:45+0200\n" "POT-Creation-Date: 2024-04-28 18:11+0800\n"
"PO-Revision-Date: 2023-11-06 14:37+0800\n" "PO-Revision-Date: 2023-11-06 14:37+0800\n"
"Last-Translator: ablegods <ablegods@gmail.com>\n" "Last-Translator: ablegods <ablegods@gmail.com>\n"
"Language-Team: \n" "Language-Team: \n"
@ -2414,10 +2414,10 @@ msgstr "自動補充"
msgid "AMS not connected" msgid "AMS not connected"
msgstr "AMS 尚未連接" msgstr "AMS 尚未連接"
msgid "Load Filament" msgid "Load"
msgstr "進料" msgstr ""
msgid "Unload Filament" msgid "Unload"
msgstr "退料" msgstr "退料"
msgid "Ext Spool" msgid "Ext Spool"
@ -2435,7 +2435,7 @@ msgstr "重試"
msgid "Calibrating AMS..." msgid "Calibrating AMS..."
msgstr "正在校準 AMS..." msgstr "正在校準 AMS..."
msgid "A problem occured during calibration. Click to view the solution." msgid "A problem occurred during calibration. Click to view the solution."
msgstr "校準過程遇到問題。點擊查看解決方案。" msgstr "校準過程遇到問題。點擊查看解決方案。"
msgid "Calibrate again" msgid "Calibrate again"
@ -2476,8 +2476,8 @@ msgstr "咬入線材"
msgid "" msgid ""
"Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically " "Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically "
"load or unload filiament." "load or unload filaments."
msgstr "選擇 1 個 AMS 槽位,然後點擊進料/退料按鈕以自動進料/退料。" msgstr ""
msgid "Edit" msgid "Edit"
msgstr "編輯" msgstr "編輯"
@ -3079,6 +3079,14 @@ msgid ""
"automatically when current filament runs out" "automatically when current filament runs out"
msgstr "AMS 線材耗盡後將自動切換到屬性完全相同的線材" msgstr "AMS 線材耗盡後將自動切換到屬性完全相同的線材"
msgid "Air Printing Detection"
msgstr ""
msgid ""
"Detects clogging and filament grinding, halting printing immediately to "
"conserve time and filament."
msgstr ""
msgid "File" msgid "File"
msgstr "檔案" msgstr "檔案"
@ -3527,18 +3535,6 @@ msgstr ""
msgid "Nozzle clog pause" msgid "Nozzle clog pause"
msgstr "" msgstr ""
msgid "MC"
msgstr ""
msgid "MainBoard"
msgstr "主板"
msgid "TH"
msgstr ""
msgid "XCam"
msgstr ""
msgid "Unknown" msgid "Unknown"
msgstr "未定義" msgstr "未定義"
@ -4093,7 +4089,7 @@ msgstr "體積:"
msgid "Size:" msgid "Size:"
msgstr "尺寸:" msgstr "尺寸:"
#, fuzzy, boost-format #, fuzzy, c-format, boost-format
msgid "" msgid ""
"Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please " "Conflicts of gcode paths have been found at layer %d, z = %.2lf mm. Please "
"separate the conflicted objects farther (%s <-> %s)." "separate the conflicted objects farther (%s <-> %s)."
@ -4236,6 +4232,9 @@ msgstr "預覽"
msgid "Device" msgid "Device"
msgstr "設備" msgstr "設備"
msgid "Multi-device"
msgstr ""
msgid "Project" msgid "Project"
msgstr "專案項目" msgstr "專案項目"
@ -4282,6 +4281,9 @@ msgstr "列印所有列印板"
msgid "Send all" msgid "Send all"
msgstr "傳送所有列印板" msgstr "傳送所有列印板"
msgid "Send to Multi-device"
msgstr ""
msgid "Keyboard Shortcuts" msgid "Keyboard Shortcuts"
msgstr "快捷鍵" msgstr "快捷鍵"
@ -5077,9 +5079,6 @@ msgstr "機箱"
msgid "Bed" msgid "Bed"
msgstr "熱床" msgstr "熱床"
msgid "Unload"
msgstr "退料"
msgid "Debug Info" msgid "Debug Info"
msgstr "除錯資訊" msgstr "除錯資訊"
@ -5263,9 +5262,6 @@ msgstr "設備狀態"
msgid "Update" msgid "Update"
msgstr "韌體更新" msgstr "韌體更新"
msgid "HMS"
msgstr ""
msgid "Don't show again" msgid "Don't show again"
msgstr "不再顯示" msgstr "不再顯示"
@ -5508,6 +5504,12 @@ msgstr "允許提示音效"
msgid "Filament Tangle Detect" msgid "Filament Tangle Detect"
msgstr "" msgstr ""
msgid "Nozzle Clumping Detection"
msgstr ""
msgid "Check if the nozzle is clumping by filament or other foreign objects."
msgstr ""
msgid "Nozzle Type" msgid "Nozzle Type"
msgstr "" msgstr ""
@ -5956,17 +5958,23 @@ msgstr "正在匯入模型"
msgid "prepare 3mf file..." msgid "prepare 3mf file..."
msgstr "正在準備 3mf 檔案..." msgstr "正在準備 3mf 檔案..."
msgid "Download failed, unknown file format."
msgstr ""
msgid "downloading project ..." msgid "downloading project ..."
msgstr "專案項目下載中..." msgstr "專案項目下載中..."
msgid "Download failed, File size exception."
msgstr ""
#, fuzzy, c-format, boost-format #, fuzzy, c-format, boost-format
msgid "Project downloaded %d%%" msgid "Project downloaded %d%%"
msgstr "專案項目已下載 %d%%" msgstr "專案項目已下載 %d%%"
msgid "" msgid ""
"Importing to Orca Slicer failed. Please download the file and manually " "Importing to Bambu Studio failed. Please download the file and manually "
"import it." "import it."
msgstr "匯入 Orca Slicer 失敗。 請下載該檔案並手動匯入。" msgstr ""
msgid "Import SLA archive" msgid "Import SLA archive"
msgstr "" msgstr ""
@ -6238,6 +6246,21 @@ msgstr "英製"
msgid "Units" msgid "Units"
msgstr "單位" msgstr "單位"
msgid "Allow only one OrcaSlicer instance"
msgstr ""
msgid ""
"On OSX there is always only one instance of app running by default. However "
"it is allowed to run multiple instances of same app from the command line. "
"In such case this settings will allow only one instance."
msgstr ""
msgid ""
"If this is enabled, when starting OrcaSlicer and another instance of the "
"same OrcaSlicer is already running, that instance will be reactivated "
"instead."
msgstr ""
msgid "Home" msgid "Home"
msgstr "首頁" msgstr "首頁"
@ -6313,6 +6336,14 @@ msgid ""
"each printer automatically." "each printer automatically."
msgstr "" msgstr ""
msgid "Multi-device Management(Take effect after restarting Studio)."
msgstr ""
msgid ""
"With this option enabled, you can send a task to multiple devices at the "
"same time and manage multiple devices."
msgstr ""
msgid "Network" msgid "Network"
msgstr "" msgstr ""
@ -6974,6 +7005,9 @@ msgstr "使用微型雷射雷達進行自動流量校準"
msgid "Modifying the device name" msgid "Modifying the device name"
msgstr "修改列印設備名稱" msgstr "修改列印設備名稱"
msgid "Bind with Pin Code"
msgstr ""
#, fuzzy #, fuzzy
msgid "Send to Printer SD card" msgid "Send to Printer SD card"
msgstr "傳送到列印設備的 SD 記憶卡" msgstr "傳送到列印設備的 SD 記憶卡"
@ -7031,6 +7065,26 @@ msgstr "接收登入回覆逾時"
msgid "Unknown Failure" msgid "Unknown Failure"
msgstr "未知錯誤" msgstr "未知錯誤"
msgid ""
"Please Find the Pin Code in Account page on printer screen,\n"
" and type in the Pin Code below."
msgstr ""
msgid "Can't find Pin Code?"
msgstr ""
msgid "Pin Code"
msgstr ""
msgid "Binding..."
msgstr ""
msgid "Please confirm on the printer screen"
msgstr ""
msgid "Log in failed. Please check the Pin Code."
msgstr ""
#, fuzzy #, fuzzy
msgid "Log in printer" msgid "Log in printer"
msgstr "登入列印設備" msgstr "登入列印設備"
@ -7236,8 +7290,8 @@ msgstr ""
msgid "" msgid ""
"When recording timelapse without toolhead, it is recommended to add a " "When recording timelapse without toolhead, it is recommended to add a "
"\"Timelapse Wipe Tower\" \n" "\"Timelapse Wipe Tower\" \n"
"by right-click the empty position of build plate and choose \"Add " "by right-click the empty position of build plate and choose \"Add Primitive"
"Primitive\"->\"Timelapse Wipe Tower\"." "\"->\"Timelapse Wipe Tower\"."
msgstr "" msgstr ""
"在錄製無工具頭縮時錄影影片時,建議增加“縮時錄影擦拭塔”\n" "在錄製無工具頭縮時錄影影片時,建議增加“縮時錄影擦拭塔”\n"
"右鍵單擊列印板的空白位置,選擇“新增標準模型”->“縮時錄影擦拭塔”。" "右鍵單擊列印板的空白位置,選擇“新增標準模型”->“縮時錄影擦拭塔”。"
@ -8287,6 +8341,39 @@ msgstr "完成"
msgid "resume" msgid "resume"
msgstr "" msgstr ""
msgid "Resume Printing"
msgstr ""
msgid "Resume Printing(defects acceptable)"
msgstr ""
msgid "Resume Printing(problem solved)"
msgstr ""
msgid "Stop Printing"
msgstr ""
msgid "Check Assistant"
msgstr ""
msgid "Filament Extruded, Continue"
msgstr ""
msgid "Not Extruded Yet, Retry"
msgstr ""
msgid "Finished, Continue"
msgstr ""
msgid "Load Filament"
msgstr "進料"
msgid "Filament Loaded, Resume"
msgstr ""
msgid "View Liveview"
msgstr ""
msgid "Confirm and Update Nozzle" msgid "Confirm and Update Nozzle"
msgstr "" msgstr ""
@ -10314,6 +10401,9 @@ msgstr "支撐立方體"
msgid "Lightning" msgid "Lightning"
msgstr "閃電" msgstr "閃電"
msgid "Cross Hatch"
msgstr ""
msgid "Sparse infill anchor length" msgid "Sparse infill anchor length"
msgstr "稀疏填充錨線長度" msgstr "稀疏填充錨線長度"
@ -10496,10 +10586,10 @@ msgstr "滿速風扇在"
msgid "" msgid ""
"Fan speed will be ramped up linearly from zero at layer " "Fan speed will be ramped up linearly from zero at layer "
"\"close_fan_the_first_x_layers\" to maximum at layer " "\"close_fan_the_first_x_layers\" to maximum at layer \"full_fan_speed_layer"
"\"full_fan_speed_layer\". \"full_fan_speed_layer\" will be ignored if lower " "\". \"full_fan_speed_layer\" will be ignored if lower than "
"than \"close_fan_the_first_x_layers\", in which case the fan will be running " "\"close_fan_the_first_x_layers\", in which case the fan will be running at "
"at maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1." "maximum allowed speed at layer \"close_fan_the_first_x_layers\" + 1."
msgstr "" msgstr ""
"風扇速度將從“禁用第一層”的零線性上升到“全風扇速度層”的最大。如果低於“禁用風扇" "風扇速度將從“禁用第一層”的零線性上升到“全風扇速度層”的最大。如果低於“禁用風扇"
"第一層”,則“全風扇速度第一層”將被忽略,在這種情況下,風扇將在“禁用風扇第一" "第一層”,則“全風扇速度第一層”將被忽略,在這種情況下,風扇將在“禁用風扇第一"
@ -13127,6 +13217,9 @@ msgstr "已取消"
msgid "load_obj: failed to parse" msgid "load_obj: failed to parse"
msgstr "載入物件:無法分析" msgstr "載入物件:無法分析"
msgid "load mtl in obj: failed to parse"
msgstr ""
#, fuzzy #, fuzzy
msgid "The file contains polygons with more than 4 vertices." msgid "The file contains polygons with more than 4 vertices."
msgstr "該檔案包含頂點超過 4 個的多邊形。" msgstr "該檔案包含頂點超過 4 個的多邊形。"
@ -13262,6 +13355,14 @@ msgstr "請選擇要校準的線材。"
msgid "The input value size must be 3." msgid "The input value size must be 3."
msgstr "輸入值大小必須為 3。" msgstr "輸入值大小必須為 3。"
msgid ""
"This machine type can only hold 16 history results per nozzle. You can "
"delete the existing historical results and then start calibration. Or you "
"can continue the calibration, but you cannot create new calibration "
"historical results. \n"
"Do you still want to continue the calibration?"
msgstr ""
#, fuzzy #, fuzzy
msgid "Connecting to printer..." msgid "Connecting to printer..."
msgstr "正在連接列印設備..." msgstr "正在連接列印設備..."
@ -13273,6 +13374,19 @@ msgstr "測試失敗的結果已被刪除。"
msgid "Flow Dynamics Calibration result has been saved to the printer" msgid "Flow Dynamics Calibration result has been saved to the printer"
msgstr "動態流量校準的結果已儲存至列印設備。" msgstr "動態流量校準的結果已儲存至列印設備。"
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
#, c-format, boost-format
msgid ""
"This machine type can only hold %d history results per nozzle. This result "
"will not be saved."
msgstr ""
msgid "Internal Error" msgid "Internal Error"
msgstr "內部錯誤" msgstr "內部錯誤"
@ -13554,9 +13668,6 @@ msgstr "將列印一份測試模型。在校準之前,請清理列印板並將
msgid "Printing Parameters" msgid "Printing Parameters"
msgstr "列印參數" msgstr "列印參數"
msgid "- ℃"
msgstr ""
msgid "Plate Type" msgid "Plate Type"
msgstr "熱床類型" msgstr "熱床類型"
@ -13604,12 +13715,6 @@ msgstr ""
msgid "Step value" msgid "Step value"
msgstr "" msgstr ""
msgid "0.5"
msgstr ""
msgid "0.005"
msgstr ""
#, fuzzy #, fuzzy
msgid "The nozzle diameter has been synchronized from the printer Settings" msgid "The nozzle diameter has been synchronized from the printer Settings"
msgstr "噴嘴直徑已從列印設備設定中同步" msgstr "噴嘴直徑已從列印設備設定中同步"
@ -13638,10 +13743,14 @@ msgstr "重整歷史流量動態校準記錄"
msgid "Action" msgid "Action"
msgstr "操作" msgstr "操作"
#, c-format, boost-format
msgid "This machine type can only hold %d history results per nozzle."
msgstr ""
msgid "Edit Flow Dynamics Calibration" msgid "Edit Flow Dynamics Calibration"
msgstr "編輯動態流量校準" msgstr "編輯動態流量校準"
msgid "New Flow Dynamics Calibration" msgid "New Flow Dynamic Calibration"
msgstr "" msgstr ""
msgid "Ok" msgid "Ok"
@ -13650,13 +13759,6 @@ msgstr ""
msgid "The filament must be selected." msgid "The filament must be selected."
msgstr "" msgstr ""
#, c-format, boost-format
msgid ""
"There is already a historical calibration result with the same name: %s. "
"Only one of the results with the same name is saved. Are you sure you want "
"to override the historical result?"
msgstr ""
msgid "Network lookup" msgid "Network lookup"
msgstr "搜尋網路" msgstr "搜尋網路"
@ -14060,8 +14162,8 @@ msgid ""
msgstr "" msgstr ""
msgid "" msgid ""
"We would rename the presets as \"Vendor Type Serial @printer you " "We would rename the presets as \"Vendor Type Serial @printer you selected"
"selected\". \n" "\". \n"
"To add preset for more printers, Please go to printer selection" "To add preset for more printers, Please go to printer selection"
msgstr "" msgstr ""
@ -14609,6 +14711,175 @@ msgid ""
"Error: \"%2%\"" "Error: \"%2%\""
msgstr "" msgstr ""
msgid ""
"It has a small layer height, and results in almost negligible layer lines "
"and high printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has lower speeds "
"and acceleration, and the sparse infill pattern is Gyroid. So, it results in "
"much higher printing quality, but a much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a slightly "
"bigger layer height, and results in almost negligible layer lines, and "
"slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a bigger layer "
"height, and results in slightly visible layer lines, but shorter printing "
"time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"height, and results in almost invisible layer lines and higher printing "
"quality, but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost invisible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of 0.2 mm nozzle, it has a smaller layer "
"height, and results in minimal layer lines and higher printing quality, but "
"shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.2 mm nozzle, it has a smaller layer "
"lines, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in minimal layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"It has a general layer height, and results in general layer lines and "
"printing quality. It is suitable for most general printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but slightly shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in less apparent layer lines and much higher printing "
"quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, lower speeds and acceleration, and the sparse infill pattern is "
"Gyroid. So, it results in almost negligible layer lines and much higher "
"printing quality, but much longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.4 mm nozzle, it has a smaller layer "
"height, and results in almost negligible layer lines and longer printing "
"time."
msgstr ""
msgid ""
"It has a big layer height, and results in apparent layer lines and ordinary "
"printing quality and printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has more wall loops "
"and a higher sparse infill density. So, it results in higher strength of the "
"prints, but more filament consumption and longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in more apparent layer lines and lower printing quality, "
"but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a bigger layer "
"height, and results in much more apparent layer lines and much lower "
"printing quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and slight higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.6 mm nozzle, it has a smaller layer "
"height, and results in less apparent layer lines and higher printing "
"quality, but longer printing time."
msgstr ""
msgid ""
"It has a very big layer height, and results in very apparent layer lines, "
"low printing quality and general printing time."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a bigger layer "
"height, and results in very apparent layer lines and much lower printing "
"quality, but shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a much bigger "
"layer height, and results in extremely apparent layer lines and much lower "
"printing quality, but much shorter printing time in some printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a slightly "
"smaller layer height, and results in slightly less but still apparent layer "
"lines and slightly higher printing quality, but longer printing time in some "
"printing cases."
msgstr ""
msgid ""
"Compared with the default profile of a 0.8 mm nozzle, it has a smaller layer "
"height, and results in less but still apparent layer lines and slightly "
"higher printing quality, but longer printing time in some printing cases."
msgstr ""
msgid "Connected to Obico successfully!" msgid "Connected to Obico successfully!"
msgstr "" msgstr ""
@ -14980,6 +15251,22 @@ msgid ""
"probability of warping." "probability of warping."
msgstr "" msgstr ""
#~ msgid "Unload Filament"
#~ msgstr "退料"
#~ msgid ""
#~ "Choose an AMS slot then press \"Load\" or \"Unload\" button to "
#~ "automatically load or unload filiament."
#~ msgstr "選擇 1 個 AMS 槽位,然後點擊進料/退料按鈕以自動進料/退料。"
#~ msgid "MainBoard"
#~ msgstr "主板"
#~ msgid ""
#~ "Importing to Orca Slicer failed. Please download the file and manually "
#~ "import it."
#~ msgstr "匯入 Orca Slicer 失敗。 請下載該檔案並手動匯入。"
#~ msgid "active" #~ msgid "active"
#~ msgstr "活動的" #~ msgstr "活動的"

View file

@ -0,0 +1,3 @@
<svg width="8" height="8" viewBox="0 0 8 8" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.346 0.361999H5.068V3.078H7.77V4.786H5.068V7.502H3.346V4.786H0.63V3.078H3.346V0.361999Z" fill="black"/>
</svg>

After

Width:  |  Height:  |  Size: 214 B

View file

@ -0,0 +1,570 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="10"
height="10"
viewBox="0 0 10 10"
fill="none"
version="1.1"
id="svg19"
sodipodi:docname="param_flippingline.svg"
inkscape:version="1.3.2 (091e20e, 2023-11-25, custom)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview19"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="64"
inkscape:cx="4.9921875"
inkscape:cy="5.8203125"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg19" />
<defs
id="defs19">
<clipPath
id="clip0_8962_33456">
<rect
width="10"
height="10"
fill="white"
id="rect19" />
</clipPath>
<mask
id="mask9_7_73"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="10"
height="10">
<path
d="M 10,0 H 0 v 10 h 10 z"
fill="#ffffff"
id="path27" />
</mask>
<mask
id="mask8_7_73"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="10"
height="10">
<path
d="M 10,0 H 0 v 10 h 10 z"
fill="#ffffff"
id="path24" />
</mask>
<mask
id="mask7_7_73"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="10"
height="10">
<path
d="M 10,0 H 0 v 10 h 10 z"
fill="#ffffff"
id="path21" />
</mask>
<mask
id="mask6_7_73"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="10"
height="10">
<path
d="M 10,0 H 0 v 10 h 10 z"
fill="#ffffff"
id="path18" />
</mask>
<mask
id="mask5_7_73"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="10"
height="10">
<path
d="M 10,0 H 0 v 10 h 10 z"
fill="#ffffff"
id="path15" />
</mask>
<mask
id="mask4_7_73"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="10"
height="10">
<path
d="M 10,0 H 0 v 10 h 10 z"
fill="#ffffff"
id="path12" />
</mask>
<mask
id="mask3_7_73"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="10"
height="10">
<path
d="M 10,0 H 0 v 10 h 10 z"
fill="#ffffff"
id="path9" />
</mask>
<mask
id="mask2_7_73"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="10"
height="10">
<path
d="M 10,0 H 0 v 10 h 10 z"
fill="#ffffff"
id="path6" />
</mask>
<mask
id="mask1_7_73"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="10"
height="10">
<path
d="M 10,0 H 0 v 10 h 10 z"
fill="#ffffff"
id="path3" />
</mask>
<mask
id="mask0_7_73"
maskUnits="userSpaceOnUse"
x="0"
y="0"
width="10"
height="10">
<path
d="M 10,0 H 0 v 10 h 10 z"
fill="#ffffff"
id="path1" />
</mask>
</defs>
<g
mask="url(#mask1_7_73)"
id="g5"
transform="translate(-0.13363557,-0.18774744)"
inkscape:highlight-color="#c8c8c8"
style="stroke-width:0.3;stroke-dasharray:none">
<path
d="M 2.64639,4.15868 4.27272,2.53235 2.64639,0.906019 1.02006,2.53235 Z"
stroke="#262e30"
stroke-width="0.4207"
id="path4"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 2.6464,3.3954519 0.84852,-0.84852 -0.84852,-0.84852 -0.84852,0.84852 z"
stroke="#262e30"
stroke-width="0.4359"
id="path5"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="M 2.64639,4.15868 4.27272,2.53235 2.64639,0.906019 1.02006,2.53235 Z"
stroke="#262e30"
stroke-width="0.4207"
id="path31"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 2.6464,3.3954519 0.84852,-0.84852 -0.84852,-0.84852 -0.84852,0.84852 z"
stroke="#262e30"
stroke-width="0.4359"
id="path32"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="M 2.64639,4.15868 4.27272,2.53235 2.64639,0.906019 1.02006,2.53235 Z"
stroke="#262e30"
stroke-width="0.4207"
id="path50"
style="stroke:#b5bfc2;stroke-opacity:1;stroke-width:0.3;stroke-dasharray:none" />
<path
d="m 2.6464,3.3954519 0.84852,-0.84852 -0.84852,-0.84852 -0.84852,0.84852 z"
stroke="#262e30"
stroke-width="0.4359"
id="path51"
style="stroke:#b5bfc2;stroke-opacity:1;stroke-width:0.3;stroke-dasharray:none" />
</g>
<g
mask="url(#mask2_7_73)"
id="g8"
transform="translate(-0.13363557,-0.18774744)"
style="stroke-width:0.3;stroke-dasharray:none">
<path
d="M 5.96315,4.1516 7.58948,2.52527 5.96315,0.898939 4.33682,2.52527 Z"
stroke="#262e30"
stroke-width="0.4207"
id="path7"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 5.9655316,3.3616097 0.84852,-0.84852 -0.84852,-0.84852 -0.84852,0.84852 z"
stroke="#262e30"
stroke-width="0.4359"
id="path8"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="M 5.96315,4.1516 7.58948,2.52527 5.96315,0.898939 4.33682,2.52527 Z"
stroke="#262e30"
stroke-width="0.4207"
id="path33"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 5.9655316,3.3616097 0.84852,-0.84852 -0.84852,-0.84852 -0.84852,0.84852 z"
stroke="#262e30"
stroke-width="0.4359"
id="path34"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="M 5.96315,4.1516 7.58948,2.52527 5.96315,0.898939 4.33682,2.52527 Z"
stroke="#262e30"
stroke-width="0.4207"
id="path52"
style="stroke:#b5bfc2;stroke-opacity:1;stroke-width:0.3;stroke-dasharray:none" />
<path
d="m 5.9655316,3.3616097 0.84852,-0.84852 -0.84852,-0.84852 -0.84852,0.84852 z"
stroke="#262e30"
stroke-width="0.4359"
id="path53"
style="stroke:#b5bfc2;stroke-opacity:1;stroke-width:0.3;stroke-dasharray:none" />
</g>
<g
mask="url(#mask3_7_73)"
id="g11"
transform="translate(-0.13363557,-0.18774744)"
style="stroke-width:0.3;stroke-dasharray:none">
<path
d="m 9.20001,4.10005 -1.6,-1.6 1.6,-1.700001"
stroke="#262e30"
stroke-width="0.4207"
id="path10"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 9.20001,3.30007 -0.8,-0.8 0.8,-0.8"
stroke="#262e30"
stroke-width="0.4359"
id="path11"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 9.20001,4.10005 -1.6,-1.6 1.6,-1.700001"
stroke="#262e30"
stroke-width="0.4207"
id="path35"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 9.20001,3.30007 -0.8,-0.8 0.8,-0.8"
stroke="#262e30"
stroke-width="0.4359"
id="path36"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 9.20001,4.10005 -1.6,-1.6 1.6,-1.700001"
stroke="#262e30"
stroke-width="0.4207"
id="path54"
style="stroke:#b5bfc2;stroke-opacity:1;stroke-width:0.3;stroke-dasharray:none" />
<path
d="m 9.20001,3.30007 -0.8,-0.8 0.8,-0.8"
stroke="#262e30"
stroke-width="0.4359"
id="path55"
style="stroke:#b5bfc2;stroke-opacity:1;stroke-width:0.3;stroke-dasharray:none" />
</g>
<g
mask="url(#mask4_7_73)"
id="g14"
transform="translate(-0.13363557,-0.18774744)"
style="stroke-width:0.3;stroke-dasharray:none">
<path
d="M 2.66075,7.4934 4.28708,5.86707 2.66075,4.24074 1.03442,5.86707 Z"
stroke="#262e30"
stroke-width="0.4207"
id="path13"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 2.6485797,6.7301719 0.84852,-0.84852 -0.84852,-0.84852 -0.84852,0.84852 z"
stroke="#262e30"
stroke-width="0.4359"
id="path14"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="M 2.66075,7.4934 4.28708,5.86707 2.66075,4.24074 1.03442,5.86707 Z"
stroke="#262e30"
stroke-width="0.4207"
id="path37"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 2.6485797,6.7301719 0.84852,-0.84852 -0.84852,-0.84852 -0.84852,0.84852 z"
stroke="#262e30"
stroke-width="0.4359"
id="path38"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="M 2.66075,7.4934 4.28708,5.86707 2.66075,4.24074 1.03442,5.86707 Z"
stroke="#262e30"
stroke-width="0.4207"
id="path56"
style="stroke:#b5bfc2;stroke-opacity:1;stroke-width:0.3;stroke-dasharray:none" />
<path
d="m 2.6485797,6.7301719 0.84852,-0.84852 -0.84852,-0.84852 -0.84852,0.84852 z"
stroke="#262e30"
stroke-width="0.4359"
id="path57"
style="stroke:#b5bfc2;stroke-opacity:1;stroke-width:0.3;stroke-dasharray:none" />
</g>
<g
mask="url(#mask5_7_73)"
id="g17"
transform="translate(-0.13363557,-0.18774744)"
style="stroke-width:0.3;stroke-dasharray:none">
<path
d="M 5.97763,7.48632 7.60396,5.85999 5.97763,4.23366 4.3513,5.85999 Z"
stroke="#262e30"
stroke-width="0.4207"
id="path16"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 5.9800116,6.70851 0.84852,-0.84852 -0.84852,-0.84852 -0.84852,0.84852 z"
stroke="#262e30"
stroke-width="0.4359"
id="path17"
style="opacity:1;stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1"
inkscape:highlight-color="#a8a8a8" />
<path
d="M 5.97763,7.48632 7.60396,5.85999 5.97763,4.23366 4.3513,5.85999 Z"
stroke="#262e30"
stroke-width="0.4207"
id="path39"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 5.9800116,6.70851 0.84852,-0.84852 -0.84852,-0.84852 -0.84852,0.84852 z"
stroke="#262e30"
stroke-width="0.4359"
id="path40"
style="opacity:1;stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1"
inkscape:highlight-color="#a8a8a8" />
<path
d="M 5.97763,7.48632 7.60396,5.85999 5.97763,4.23366 4.3513,5.85999 Z"
stroke="#262e30"
stroke-width="0.4207"
id="path58"
style="stroke:#b5bfc2;stroke-opacity:1;stroke-width:0.3;stroke-dasharray:none" />
<path
d="m 5.9800116,6.70851 0.84852,-0.84852 -0.84852,-0.84852 -0.84852,0.84852 z"
stroke="#262e30"
stroke-width="0.4359"
id="path59"
style="opacity:1;stroke:#b5bfc2;stroke-opacity:1;stroke-width:0.3;stroke-dasharray:none"
inkscape:highlight-color="#a8a8a8" />
</g>
<g
mask="url(#mask6_7_73)"
id="g20"
transform="translate(-0.13363557,-0.18774744)"
style="stroke-width:0.3;stroke-dasharray:none">
<path
d="m 9.20001,7.49995 -1.6,-1.7 1.6,-1.6"
stroke="#262e30"
stroke-width="0.4207"
id="path19"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 9.20001,6.6 -0.8,-0.8 0.8,-0.8"
stroke="#262e30"
stroke-width="0.4359"
id="path20"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 9.20001,7.49995 -1.6,-1.7 1.6,-1.6"
stroke="#262e30"
stroke-width="0.4207"
id="path41"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 9.20001,6.6 -0.8,-0.8 0.8,-0.8"
stroke="#262e30"
stroke-width="0.4359"
id="path42"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 9.20001,7.49995 -1.6,-1.7 1.6,-1.6"
stroke="#262e30"
stroke-width="0.4207"
id="path60"
style="stroke:#b5bfc2;stroke-opacity:1;stroke-width:0.3;stroke-dasharray:none" />
<path
d="m 9.20001,6.6 -0.8,-0.8 0.8,-0.8"
stroke="#262e30"
stroke-width="0.4359"
id="path61"
style="stroke:#b5bfc2;stroke-opacity:1;stroke-width:0.3;stroke-dasharray:none" />
</g>
<g
mask="url(#mask7_7_73)"
id="g23"
transform="translate(-0.13363557,-0.18774744)"
style="stroke-width:0.3;stroke-dasharray:none">
<path
d="m 0.899994,9.2 1.699996,-1.7 1.7,1.7"
stroke="#262e30"
stroke-width="0.4207"
id="path22"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 1.79999,9.20005 0.8,-0.9 0.8,0.9"
stroke="#262e30"
stroke-width="0.4359"
id="path23"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 0.899994,9.2 1.699996,-1.7 1.7,1.7"
stroke="#262e30"
stroke-width="0.4207"
id="path43"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 1.79999,9.20005 0.8,-0.9 0.8,0.9"
stroke="#262e30"
stroke-width="0.4359"
id="path44"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 0.899994,9.2 1.699996,-1.7 1.7,1.7"
stroke="#262e30"
stroke-width="0.4207"
id="path62"
style="stroke:#b5bfc2;stroke-opacity:1;stroke-width:0.3;stroke-dasharray:none" />
<path
d="m 1.79999,9.20005 0.8,-0.9 0.8,0.9"
stroke="#262e30"
stroke-width="0.4359"
id="path63"
style="stroke:#b5bfc2;stroke-opacity:1;stroke-width:0.3;stroke-dasharray:none" />
</g>
<g
mask="url(#mask8_7_73)"
id="g26"
transform="translate(-0.06473357,-0.11884544)"
style="stroke-width:0.3;stroke-dasharray:none">
<path
d="M 4.3,9.2 5.9,7.5 7.6,9.2"
stroke="#262e30"
stroke-width="0.4207"
id="path25"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 5.10001,9.20005 0.8,-0.9 0.8,0.9"
stroke="#262e30"
stroke-width="0.4359"
id="path26"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="M 4.3,9.2 5.9,7.5 7.6,9.2"
stroke="#262e30"
stroke-width="0.4207"
id="path45"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 5.10001,9.20005 0.8,-0.9 0.8,0.9"
stroke="#262e30"
stroke-width="0.4359"
id="path46"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="M 4.3,9.2 5.9,7.5 7.6,9.2"
stroke="#262e30"
stroke-width="0.4207"
id="path64"
style="stroke:#b5bfc2;stroke-width:0.3;stroke-dasharray:none;stroke-opacity:1" />
<path
d="m 5.10001,9.20005 0.8,-0.9 0.8,0.9"
stroke="#262e30"
stroke-width="0.4359"
id="path65"
style="stroke:#b5bfc2;stroke-width:0.3;stroke-dasharray:none;stroke-opacity:1" />
</g>
<g
mask="url(#mask9_7_73)"
id="g29"
transform="translate(-0.13363557,-0.18774744)"
style="stroke-width:0.3;stroke-dasharray:none">
<path
d="M 7.5,9.2 9.2,7.5"
stroke="#262e30"
stroke-width="0.4207"
id="path28"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 8.39999,9.20005 0.8,-0.9"
stroke="#262e30"
stroke-width="0.4359"
id="path29"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="M 7.5,9.2 9.2,7.5"
stroke="#262e30"
stroke-width="0.4207"
id="path47"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="m 8.39999,9.20005 0.8,-0.9"
stroke="#262e30"
stroke-width="0.4359"
id="path48"
style="stroke-width:0.3;stroke-dasharray:none;stroke:#b5bfc2;stroke-opacity:1" />
<path
d="M 7.5,9.2 9.2,7.5"
stroke="#262e30"
stroke-width="0.4207"
id="path66"
style="stroke:#b5bfc2;stroke-opacity:1;stroke-width:0.3;stroke-dasharray:none" />
<path
d="m 8.39999,9.20005 0.8,-0.9"
stroke="#262e30"
stroke-width="0.4359"
id="path67"
style="stroke:#b5bfc2;stroke-opacity:1;stroke-width:0.3;stroke-dasharray:none" />
</g>
<path
style="fill:#d38d5f;stroke:#242b2c;stroke-width:0.478;stroke-opacity:1;stroke-dasharray:none"
d="M 2.3610996,0.53829537 9.2877131,7.4647963"
id="path68" />
<path
style="fill:#d38d5f;stroke:#242b2c;stroke-width:0.499732;stroke-dasharray:none;stroke-opacity:1"
d="M 0.71099005,2.1609755 7.4945031,9.1745657"
id="path68-8" />
<path
style="fill:#d38d5f;stroke:#242b2c;stroke-width:0.478;stroke-opacity:1;stroke-dasharray:none"
d="M 0.67215306,5.4266372 4.2775124,9.1659794"
id="path69" />
<path
style="fill:#d38d5f;stroke:#242b2c;stroke-width:0.504841;stroke-dasharray:none;stroke-opacity:1"
d="M 5.7241868,0.5762967 9.2982017,4.0646825"
id="path70" />
<rect
style="fill:none;stroke:#1e2425;stroke-width:0.406;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:3.9;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
id="rect1"
width="8.683177"
height="8.6487265"
x="0.63658094"
y="0.53322792"
ry="0.86468774" />
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

View file

@ -0,0 +1,4 @@
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.00019 3.16602C9.38756 3.16602 9.76582 3.20475 10.135 3.27539C10.315 3.30957 10.6317 3.41439 10.8049 3.7334C10.8505 3.81771 10.8869 3.90658 10.9097 4.00228L11.1216 4.87956C11.1535 5.01172 11.3768 5.1416 11.5067 5.10286L12.3726 4.84766C12.4637 4.82031 12.5572 4.80664 12.6506 4.80436C13.0174 4.79297 13.2658 5.01855 13.3866 5.15527C13.8902 5.72721 14.2775 6.39941 14.5236 7.12174C14.5829 7.29492 14.6512 7.61849 14.4621 7.92839C14.412 8.01042 14.3505 8.08789 14.2798 8.15625L13.6258 8.77832C13.5301 8.86947 13.5301 9.13151 13.6258 9.22266L14.2798 9.84473C14.3505 9.91309 14.412 9.99056 14.4621 10.0726C14.649 10.3825 14.5806 10.706 14.5236 10.8792C14.2775 11.6016 13.8902 12.2715 13.3866 12.8457C13.2658 12.9824 13.0152 13.208 12.6506 13.1966C12.5572 13.1943 12.4637 13.1784 12.3726 13.1533L11.5067 12.8958C11.3768 12.8571 11.1535 12.987 11.1216 13.1191L10.9097 13.9964C10.8869 14.0921 10.8505 14.1833 10.8049 14.2653C10.6294 14.5843 10.3127 14.6868 10.135 14.7233C9.76582 14.7939 9.38756 14.8327 9.00019 14.8327C8.61282 14.8327 8.23457 14.7939 7.86543 14.7233C7.68542 14.6891 7.36868 14.5843 7.19551 14.2653C7.14993 14.181 7.11348 14.0921 7.09069 13.9964L6.87877 13.1191C6.84687 12.987 6.62357 12.8571 6.49368 12.8958L5.6278 13.151C5.53665 13.1784 5.44323 13.1921 5.3498 13.1943C4.98294 13.2057 4.73457 12.9801 4.6138 12.8434C4.1125 12.2715 3.72285 11.5993 3.47676 10.8769C3.41751 10.7038 3.34915 10.3802 3.53828 10.0703C3.58841 9.98828 3.64993 9.91081 3.72057 9.84245L4.37454 9.22038C4.47025 9.12923 4.47025 8.86719 4.37454 8.77604L3.71829 8.15397C3.64766 8.08561 3.58613 8.00814 3.536 7.92611C3.34915 7.61621 3.41751 7.29264 3.47676 7.12174C3.72285 6.39941 4.11022 5.72949 4.6138 5.15527C4.73457 5.01855 4.98522 4.79297 5.3498 4.80436C5.44323 4.80664 5.53665 4.82259 5.6278 4.84766L6.49368 5.10286C6.62357 5.1416 6.84687 5.01172 6.87877 4.87956L7.09069 4.00228C7.11348 3.90658 7.14993 3.81543 7.19551 3.7334C7.37096 3.41439 7.68769 3.31185 7.86543 3.27539C8.23457 3.20475 8.61282 3.16602 9.00019 3.16602ZM8.13659 4.33724L7.9429 5.13704C7.76517 5.87305 6.91068 6.36523 6.18379 6.15332L5.39766 5.9209C5.02168 6.36068 4.72545 6.87109 4.53177 7.41797L5.12877 7.98535C5.67565 8.50488 5.67565 9.49381 5.12877 10.0133L4.53177 10.5807C4.72545 11.1276 5.02168 11.638 5.39766 12.0778L6.18607 11.8454C6.91068 11.6312 7.76745 12.1257 7.94518 12.8617L8.13887 13.6615C8.69941 13.764 9.30781 13.764 9.86836 13.6615L10.062 12.8617C10.2398 12.1257 11.0943 11.6335 11.8212 11.8454L12.6096 12.0778C12.9855 11.638 13.2818 11.1276 13.4755 10.5807L12.8784 10.0133C12.3316 9.49381 12.3316 8.50488 12.8784 7.98535L13.4755 7.41797C13.2818 6.87109 12.9855 6.36068 12.6096 5.9209L11.8212 6.15332C11.0965 6.36751 10.2398 5.87305 10.062 5.13704L9.86836 4.33724C9.30781 4.2347 8.69941 4.2347 8.13887 4.33724H8.13659Z" fill="white"/>
<path d="M6.75935 8.48777C6.67327 8.56784 6.62354 8.68031 6.62354 8.7985C6.62354 9.03298 6.81483 9.22361 7.05012 9.22361H8.15388V11.0537C8.15388 11.3911 8.42743 11.6637 8.76602 11.6637H9.37816C9.71675 11.6637 9.9903 11.3911 9.9903 11.0537V9.22361H11.0941C11.3294 9.22361 11.5207 9.03298 11.5207 8.7985C11.5207 8.68031 11.4709 8.56784 11.3848 8.48777L9.33607 6.58336C9.26338 6.51664 9.16965 6.47852 9.07209 6.47852C8.97453 6.47852 8.87889 6.51664 8.80811 6.58336L6.75935 8.48777Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View file

@ -0,0 +1,4 @@
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.1861 5.32812H15.3642V14.5094H8.01917V13.5548M11.6917 5.65603V8.60717M11.1517 11.5583H13.2656" stroke="white"/>
<path d="M6.30876 3.82009V6.77123M4.73482 9.72237H7.8827M2.63623 3.49219H9.98128V12.6735H2.63623V3.49219Z" stroke="white"/>
</svg>

After

Width:  |  Height:  |  Size: 351 B

View file

@ -0,0 +1,8 @@
<svg width="251" height="252" viewBox="0 0 251 252" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.53636 72.2536L67.482 9.08624" stroke="black" stroke-width="17.0079" stroke-miterlimit="10" stroke-linecap="round"/>
<path d="M128.055 72.2536L67.482 9.08624" stroke="black" stroke-width="17.0079" stroke-miterlimit="10" stroke-linecap="round"/>
<path d="M67.9763 243.004V8.79553" stroke="#161615" stroke-width="17.0079" stroke-miterlimit="10" stroke-linecap="round"/>
<path d="M239.519 180L180.573 243.167" stroke="black" stroke-width="17.0079" stroke-miterlimit="10" stroke-linecap="round"/>
<path d="M120 180L180.573 243.167" stroke="black" stroke-width="17.0079" stroke-miterlimit="10" stroke-linecap="round"/>
<path d="M182.91 242.655V8.79999" stroke="#161615" stroke-width="17.0079" stroke-miterlimit="10" stroke-linecap="round"/>
</svg>

After

Width:  |  Height:  |  Size: 854 B

View file

@ -1,27 +1,38 @@
{ {
"version": "1.0.0.1", "version": "1.0.0.2",
"high_temp_filament": [ "high_temp_filament": [
"ABS", "ABS",
"ASA", "ASA",
"PC", "PC",
"PA", "PA",
"PA-CF", "PA-CF",
"PA-GF",
"PA6-CF", "PA6-CF",
"PET-CF", "PET-CF",
"PPS", "PPS",
"PPS-CF", "PPS-CF",
"PPA-CF", "PPA-CF",
"PPA-GF" "PPA-GF",
"ABS-GF",
"ASA-Aero"
], ],
"low_temp_filament": [ "low_temp_filament": [
"PLA", "PLA",
"TPU", "TPU",
"PLA-CF", "PLA-CF",
"PLA-AERO", "PLA-AERO",
"PVA" "PVA",
"BVOH"
], ],
"high_low_compatible_filament":[ "high_low_compatible_filament":[
"HIPS", "HIPS",
"PETG" "PETG",
"PE",
"PP",
"EVA",
"PE-CF",
"PP-CF",
"PP-GF",
"PHA"
] ]
} }

View file

@ -1,7 +1,7 @@
{ {
"name": "Bambulab", "name": "Bambulab",
"url": "http://www.bambulab.com/Parameters/vendor/BBL.json", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json",
"version": "01.09.00.04", "version": "01.09.00.07",
"force_update": "0", "force_update": "0",
"description": "the initial version of BBL configurations", "description": "the initial version of BBL configurations",
"machine_model_list": [ "machine_model_list": [

View file

@ -11,6 +11,12 @@
"fan_min_speed": [ "fan_min_speed": [
"50" "50"
], ],
"filament_long_retractions_when_cut": [
"1"
],
"filament_retraction_distances_when_cut": [
"18"
],
"filament_max_volumetric_speed": [ "filament_max_volumetric_speed": [
"2" "2"
], ],

View file

@ -8,6 +8,12 @@
"fan_cooling_layer_time": [ "fan_cooling_layer_time": [
"80" "80"
], ],
"filament_long_retractions_when_cut": [
"1"
],
"filament_retraction_distances_when_cut": [
"18"
],
"fan_min_speed": [ "fan_min_speed": [
"50" "50"
], ],

View file

@ -5,7 +5,7 @@
"from": "system", "from": "system",
"instantiation": "false", "instantiation": "false",
"activate_air_filtration": [ "activate_air_filtration": [
"1" "0"
], ],
"cool_plate_temp": [ "cool_plate_temp": [
"0" "0"

View file

@ -5,7 +5,7 @@
"from": "system", "from": "system",
"instantiation": "false", "instantiation": "false",
"activate_air_filtration": [ "activate_air_filtration": [
"1" "0"
], ],
"cool_plate_temp": [ "cool_plate_temp": [
"0" "0"

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -12,6 +12,7 @@
"deretraction_speed": [ "deretraction_speed": [
"40" "40"
], ],
"enable_long_retraction_when_cut" : "0",
"extruder_colour": [ "extruder_colour": [
"#FCE94F" "#FCE94F"
], ],
@ -20,6 +21,9 @@
], ],
"gcode_flavor": "marlin", "gcode_flavor": "marlin",
"silent_mode": "0", "silent_mode": "0",
"long_retractions_when_cut": [
"0"
],
"machine_max_acceleration_e": [ "machine_max_acceleration_e": [
"5000" "5000"
], ],
@ -88,6 +92,9 @@
"retract_when_changing_layer": [ "retract_when_changing_layer": [
"1" "1"
], ],
"retraction_distances_when_cut": [
"18"
],
"retraction_length": [ "retraction_length": [
"5" "5"
], ],

View file

@ -791,7 +791,8 @@ static int construct_assemble_list(std::vector<assemble_plate_info_t> &assemble_
else if (boost::algorithm::iends_with(assemble_object.path, ".obj")) else if (boost::algorithm::iends_with(assemble_object.path, ".obj"))
{ {
std::string message; std::string message;
bool result = load_obj(path_str, &mesh, message); ObjInfo obj_info;
bool result = load_obj(path_str, &mesh, obj_info, message);
if (!result) { if (!result) {
BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(": failed to read a valid mesh from obj file %1%, plate index %2%, object index %3%, error %4%") % assemble_object.path % (index + 1) % (obj_index + 1) % message; BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(": failed to read a valid mesh from obj file %1%, plate index %2%, object index %3%, error %4%") % assemble_object.path % (index + 1) % (obj_index + 1) % message;
return CLI_DATA_FILE_ERROR; return CLI_DATA_FILE_ERROR;
@ -1456,6 +1457,12 @@ int CLI::run(int argc, char **argv)
m_models.push_back(std::move(model)); m_models.push_back(std::move(model));
} }
if (!is_bbl_3mf && plate_to_slice > 0)
{
BOOST_LOG_TRIVIAL(warning) << boost::format("%1%: not support to slice plate %2%, reset to 0")%__LINE__ %plate_to_slice;
plate_to_slice = 0;
}
//load custom gcode file //load custom gcode file
std::map<int, CustomGCode::Info> custom_gcodes_map; std::map<int, CustomGCode::Info> custom_gcodes_map;
if (!custom_gcode_file.empty()) { if (!custom_gcode_file.empty()) {
@ -2624,7 +2631,7 @@ int CLI::run(int argc, char **argv)
//set multiplier to 1? //set multiplier to 1?
m_print_config.option<ConfigOptionFloat>("flush_multiplier", true)->set(new ConfigOptionFloat(1.f)); m_print_config.option<ConfigOptionFloat>("flush_multiplier", true)->set(new ConfigOptionFloat(1.f));
const std::vector<int>& min_flush_volumes = Slic3r::GUI::get_min_flush_volumes(); const std::vector<int>& min_flush_volumes = Slic3r::GUI::get_min_flush_volumes(m_print_config);
if (filament_is_support->size() != project_filament_count) if (filament_is_support->size() != project_filament_count)
{ {
@ -3525,7 +3532,8 @@ int CLI::run(int argc, char **argv)
ap.apply(); ap.apply();
} }
partplate_list.rebuild_plates_after_arrangement(false, true, i); //lock here
cur_plate->lock(true);
} }
else { else {
size_t plate_obj_count = assemble_plate.loaded_obj_list.size(); size_t plate_obj_count = assemble_plate.loaded_obj_list.size();
@ -3548,6 +3556,8 @@ int CLI::run(int argc, char **argv)
Slic3r::GUI::PartPlate* cur_plate = (Slic3r::GUI::PartPlate*)partplate_list.get_plate(i); Slic3r::GUI::PartPlate* cur_plate = (Slic3r::GUI::PartPlate*)partplate_list.get_plate(i);
cur_plate->lock(false); cur_plate->lock(false);
} }
partplate_list.reload_all_objects(false, -1);
} }
else if (need_arrange) else if (need_arrange)
{ {
@ -4175,7 +4185,8 @@ int CLI::run(int argc, char **argv)
bool no_check = false; bool no_check = false;
std::string export_3mf_file, load_slice_data_dir, export_slice_data_dir; std::string export_3mf_file, load_slice_data_dir, export_slice_data_dir;
std::vector<ThumbnailData*> calibration_thumbnails; std::vector<ThumbnailData*> calibration_thumbnails;
int max_slicing_time_per_plate = 0, max_triangle_count_per_plate = 0; std::vector<int> plate_object_count(partplate_list.get_plate_count(), 0);
int max_slicing_time_per_plate = 0, max_triangle_count_per_plate = 0, sliced_plate = -1;
std::vector<bool> plate_has_skips(partplate_list.get_plate_count(), false); std::vector<bool> plate_has_skips(partplate_list.get_plate_count(), false);
std::vector<std::vector<size_t>> plate_skipped_objects(partplate_list.get_plate_count()); std::vector<std::vector<size_t>> plate_skipped_objects(partplate_list.get_plate_count());
@ -4269,6 +4280,7 @@ int CLI::run(int argc, char **argv)
} else if (opt_key == "slice") { } else if (opt_key == "slice") {
//BBS: slice 0 means all plates, i means plate i; //BBS: slice 0 means all plates, i means plate i;
plate_to_slice = m_config.option<ConfigOptionInt>("slice")->value; plate_to_slice = m_config.option<ConfigOptionInt>("slice")->value;
sliced_plate = plate_to_slice;
bool pre_check = (plate_to_slice == 0)?true:false; bool pre_check = (plate_to_slice == 0)?true:false;
bool finished = false; bool finished = false;
@ -4427,6 +4439,7 @@ int CLI::run(int argc, char **argv)
} }
plate_triangle_counts[index] = triangle_count; plate_triangle_counts[index] = triangle_count;
plate_object_count[index] = printable_instances;
BOOST_LOG_TRIVIAL(info) << "plate "<< index+1<< ": load cached data success, go on."; BOOST_LOG_TRIVIAL(info) << "plate "<< index+1<< ": load cached data success, go on.";
} }
// BBS: TODO // BBS: TODO
@ -4734,6 +4747,28 @@ int CLI::run(int argc, char **argv)
PlateDataPtrs plate_data_list; PlateDataPtrs plate_data_list;
partplate_list.store_to_3mf_structure(plate_data_list); partplate_list.store_to_3mf_structure(plate_data_list);
if (sliced_plate == -1) {
for (int i = 0; i < plate_data_list.size(); i++) {
Slic3r::GUI::PartPlate *part_plate = partplate_list.get_plate(i);
plate_object_count[i] = part_plate->printable_instance_size();
}
}
else if (sliced_plate == 0){
//slicing all
for (int i = 0; i < plate_data_list.size(); i++) {
if (skip_useless_pick && (plate_object_count[i] == 1)) {
BOOST_LOG_TRIVIAL(info) << boost::format("only has 1 object, set plate %1%'s is_label_object_enabled from %2% to false")%(i+1) % (plate_data_list[i]->is_label_object_enabled);
plate_data_list[i]->is_label_object_enabled = false;
}
}
}
else {
if (skip_useless_pick && (plate_object_count[sliced_plate - 1] == 1)) {
BOOST_LOG_TRIVIAL(info) << boost::format("only has 1 object, set plate %1%'s is_label_object_enabled from %2% to false")%sliced_plate % (plate_data_list[sliced_plate - 1]->is_label_object_enabled);
plate_data_list[sliced_plate - 1]->is_label_object_enabled = false;
}
}
if (!outfile_dir.empty()) { if (!outfile_dir.empty()) {
export_3mf_file = outfile_dir + "/"+export_3mf_file; export_3mf_file = outfile_dir + "/"+export_3mf_file;
} }
@ -4752,7 +4787,7 @@ int CLI::run(int argc, char **argv)
// get type and color for platedata // get type and color for platedata
auto* filament_types = dynamic_cast<const ConfigOptionStrings*>(m_print_config.option("filament_type")); auto* filament_types = dynamic_cast<const ConfigOptionStrings*>(m_print_config.option("filament_type"));
const ConfigOptionStrings* filament_color = dynamic_cast<const ConfigOptionStrings *>(m_print_config.option("filament_colour")); const ConfigOptionStrings* filament_color = dynamic_cast<const ConfigOptionStrings *>(m_print_config.option("filament_colour"));
//auto* filament_id = dynamic_cast<const ConfigOptionStrings*>(m_print_config.option("filament_ids")); auto* filament_id = dynamic_cast<const ConfigOptionStrings*>(m_print_config.option("filament_ids"));
const ConfigOptionFloats* nozzle_diameter_option = dynamic_cast<const ConfigOptionFloats *>(m_print_config.option("nozzle_diameter")); const ConfigOptionFloats* nozzle_diameter_option = dynamic_cast<const ConfigOptionFloats *>(m_print_config.option("nozzle_diameter"));
std::string nozzle_diameter_str; std::string nozzle_diameter_str;
if (nozzle_diameter_option) if (nozzle_diameter_option)
@ -4769,10 +4804,10 @@ int CLI::run(int argc, char **argv)
plate_data->nozzle_diameters = nozzle_diameter_str; plate_data->nozzle_diameters = nozzle_diameter_str;
for (auto it = plate_data->slice_filaments_info.begin(); it != plate_data->slice_filaments_info.end(); it++) { for (auto it = plate_data->slice_filaments_info.begin(); it != plate_data->slice_filaments_info.end(); it++) {
//it->filament_id = filament_id?filament_id->get_at(it->id):"unknown";
std::string display_filament_type; std::string display_filament_type;
it->type = m_print_config.get_filament_type(display_filament_type, it->id); it->type = m_print_config.get_filament_type(display_filament_type, it->id);
it->color = filament_color ? filament_color->get_at(it->id) : "#FFFFFF"; it->color = filament_color ? filament_color->get_at(it->id) : "#FFFFFF";
it->filament_id = filament_id?filament_id->get_at(it->id):"";
} }
if (!plate_data->plate_thumbnail.is_valid()) { if (!plate_data->plate_thumbnail.is_valid()) {
@ -4940,6 +4975,7 @@ int CLI::run(int argc, char **argv)
} }
} }
ThumbnailsParams thumbnail_params;
GLShaderProgram* shader = opengl_mgr.get_shader("thumbnail"); GLShaderProgram* shader = opengl_mgr.get_shader("thumbnail");
if (!shader) { if (!shader) {
BOOST_LOG_TRIVIAL(error) << boost::format("can not get shader for rendering thumbnail"); BOOST_LOG_TRIVIAL(error) << boost::format("can not get shader for rendering thumbnail");
@ -5057,39 +5093,49 @@ int CLI::run(int argc, char **argv)
unsigned int thumbnail_width = 512, thumbnail_height = 512; unsigned int thumbnail_width = 512, thumbnail_height = 512;
const ThumbnailsParams thumbnail_params = { {}, false, true, false, true, i }; const ThumbnailsParams thumbnail_params = { {}, false, true, false, true, i };
BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%'s top/pick thumbnail missed, need to regenerate")%(i+1); BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%'s top/pick thumbnail missed, need to regenerate, objects count %2%, skip_useless_pick %3%")%(i+1) %plate_object_count[i] %skip_useless_pick;
if (skip_useless_pick && ((plate_object_count[i] <= 1) || (plate_object_count[i] > 64)))
switch (Slic3r::GUI::OpenGLManager::get_framebuffers_type())
{ {
case Slic3r::GUI::OpenGLManager::EFramebufferType::Arb: //don't render pick and top
{ part_plate->top_thumbnail_data.reset();
BOOST_LOG_TRIVIAL(info) << boost::format("framebuffer_type: ARB"); part_plate->pick_thumbnail_data.reset();
Slic3r::GUI::GLCanvas3D::render_thumbnail_framebuffer(*top_thumbnail, plate_data->top_file.clear();
thumbnail_width, thumbnail_height, thumbnail_params, plate_data->pick_file.clear();
partplate_list, model.objects, glvolume_collection, colors_out, shader, Slic3r::GUI::Camera::EType::Ortho, true, false); BOOST_LOG_TRIVIAL(info) << boost::format("skip rendering for top&&pick");
Slic3r::GUI::GLCanvas3D::render_thumbnail_framebuffer(*picking_thumbnail, }
thumbnail_width, thumbnail_height, thumbnail_params, else {
partplate_list, model.objects, glvolume_collection, colors_out, shader, Slic3r::GUI::Camera::EType::Ortho, true, true); switch (Slic3r::GUI::OpenGLManager::get_framebuffers_type())
break; {
} case Slic3r::GUI::OpenGLManager::EFramebufferType::Arb:
case Slic3r::GUI::OpenGLManager::EFramebufferType::Ext: {
{ BOOST_LOG_TRIVIAL(info) << boost::format("framebuffer_type: ARB");
BOOST_LOG_TRIVIAL(info) << boost::format("framebuffer_type: EXT"); Slic3r::GUI::GLCanvas3D::render_thumbnail_framebuffer(*top_thumbnail,
Slic3r::GUI::GLCanvas3D::render_thumbnail_framebuffer_ext(*top_thumbnail, thumbnail_width, thumbnail_height, thumbnail_params,
thumbnail_width, thumbnail_height, thumbnail_params, partplate_list, model.objects, glvolume_collection, colors_out, shader, Slic3r::GUI::Camera::EType::Ortho, true, false);
partplate_list, model.objects, glvolume_collection, colors_out, shader, Slic3r::GUI::Camera::EType::Ortho, true, false); Slic3r::GUI::GLCanvas3D::render_thumbnail_framebuffer(*picking_thumbnail,
Slic3r::GUI::GLCanvas3D::render_thumbnail_framebuffer_ext(*picking_thumbnail, thumbnail_width, thumbnail_height, thumbnail_params,
thumbnail_width, thumbnail_height, thumbnail_params, partplate_list, model.objects, glvolume_collection, colors_out, shader, Slic3r::GUI::Camera::EType::Ortho, true, true);
partplate_list, model.objects, glvolume_collection, colors_out, shader, Slic3r::GUI::Camera::EType::Ortho, true, true); break;
break; }
} case Slic3r::GUI::OpenGLManager::EFramebufferType::Ext:
default: {
BOOST_LOG_TRIVIAL(info) << boost::format("framebuffer_type: unknown"); BOOST_LOG_TRIVIAL(info) << boost::format("framebuffer_type: EXT");
break; Slic3r::GUI::GLCanvas3D::render_thumbnail_framebuffer_ext(*top_thumbnail,
thumbnail_width, thumbnail_height, thumbnail_params,
partplate_list, model.objects, glvolume_collection, colors_out, shader, Slic3r::GUI::Camera::EType::Ortho, true, false);
Slic3r::GUI::GLCanvas3D::render_thumbnail_framebuffer_ext(*picking_thumbnail,
thumbnail_width, thumbnail_height, thumbnail_params,
partplate_list, model.objects, glvolume_collection, colors_out, shader, Slic3r::GUI::Camera::EType::Ortho, true, true);
break;
}
default:
BOOST_LOG_TRIVIAL(info) << boost::format("framebuffer_type: unknown");
break;
}
plate_data->top_file = "valid_top";
plate_data->pick_file = "valid_pick";
BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%'s top_thumbnail,finished rendering")%(i+1);
} }
plate_data->top_file = "valid_top";
plate_data->pick_file = "valid_pick";
BOOST_LOG_TRIVIAL(info) << boost::format("plate %1%'s top_thumbnail,finished rendering")%(i+1);
} }
} }

View file

@ -186,6 +186,8 @@ void AppConfig::set_defaults()
if (get("show_hints").empty()) if (get("show_hints").empty())
set_bool("show_hints", true); set_bool("show_hints", true);
//#endif //#endif
if (get("enable_multi_machine").empty())
set_bool("enable_multi_machine", false);
if (get("show_gcode_window").empty()) if (get("show_gcode_window").empty())
set_bool("show_gcode_window", true); set_bool("show_gcode_window", true);
@ -359,6 +361,14 @@ void AppConfig::set_defaults()
set("curr_bed_type", "1"); set("curr_bed_type", "1");
} }
if (get("sending_interval").empty()) {
set("sending_interval", "5");
}
if (get("max_send").empty()) {
set("max_send", "3");
}
// #if BBL_RELEASE_TO_PUBLIC // #if BBL_RELEASE_TO_PUBLIC
if (get("iot_environment").empty()) { if (get("iot_environment").empty()) {
set("iot_environment", "3"); set("iot_environment", "3");
@ -1246,6 +1256,38 @@ bool AppConfig::is_engineering_region(){
return false; return false;
} }
void AppConfig::save_custom_color_to_config(const std::vector<std::string> &colors)
{
auto set_colors = [](std::map<std::string, std::string> &data, const std::vector<std::string> &colors) {
for (size_t i = 0; i < colors.size(); i++) {
data[std::to_string(10 + i)] = colors[i]; // for map sort:10 begin
}
};
if (colors.size() > 0) {
if (!has_section("custom_color_list")) {
std::map<std::string, std::string> data;
set_colors(data, colors);
set_section("custom_color_list", data);
} else {
auto data = get_section("custom_color_list");
auto data_modify = const_cast<std::map<std::string, std::string> *>(&data);
set_colors(*data_modify, colors);
set_section("custom_color_list", *data_modify);
}
}
}
std::vector<std::string> AppConfig::get_custom_color_from_config()
{
std::vector<std::string> colors;
if (has_section("custom_color_list")) {
auto data = get_section("custom_color_list");
for (auto iter : data) {
colors.push_back(iter.second);
}
}
return colors;
}
void AppConfig::reset_selections() void AppConfig::reset_selections()
{ {

View file

@ -233,7 +233,9 @@ public:
std::string get_country_code(); std::string get_country_code();
bool is_engineering_region(); bool is_engineering_region();
// reset the current print / filament / printer selections, so that void save_custom_color_to_config(const std::vector<std::string> &colors);
std::vector<std::string> get_custom_color_from_config();
// reset the current print / filament / printer selections, so that
// the PresetBundle::load_selections(const AppConfig &config) call will select // the PresetBundle::load_selections(const AppConfig &config) call will select
// the first non-default preset when called. // the first non-default preset when called.
void reset_selections(); void reset_selections();

View file

@ -987,7 +987,7 @@ void _arrange(
// polygon nesting, a convex hull needs to be calculated. // polygon nesting, a convex hull needs to be calculated.
if (params.allow_rotations) { if (params.allow_rotations) {
for (auto &itm : shapes) { for (auto &itm : shapes) {
itm.rotation(min_area_boundingbox_rotation(itm.rawShape())); itm.rotation(min_area_boundingbox_rotation(itm.transformedShape()));
// If the item is too big, try to find a rotation that makes it fit // If the item is too big, try to find a rotation that makes it fit
if constexpr (std::is_same_v<BinT, Box>) { if constexpr (std::is_same_v<BinT, Box>) {

View file

@ -100,6 +100,8 @@ set(lisbslic3r_sources
Fill/FillConcentric.hpp Fill/FillConcentric.hpp
Fill/FillConcentricInternal.cpp Fill/FillConcentricInternal.cpp
Fill/FillConcentricInternal.hpp Fill/FillConcentricInternal.hpp
Fill/FillCrossHatch.cpp
Fill/FillCrossHatch.hpp
Fill/FillHoneycomb.cpp Fill/FillHoneycomb.cpp
Fill/FillHoneycomb.hpp Fill/FillHoneycomb.hpp
Fill/FillGyroid.cpp Fill/FillGyroid.cpp
@ -232,6 +234,7 @@ set(lisbslic3r_sources
Arrange.cpp Arrange.cpp
NormalUtils.cpp NormalUtils.cpp
NormalUtils.hpp NormalUtils.hpp
ObjColorUtils.hpp
Orient.hpp Orient.hpp
Orient.cpp Orient.cpp
MultiPoint.cpp MultiPoint.cpp
@ -473,6 +476,7 @@ set(CGAL_DO_NOT_WARN_ABOUT_CMAKE_BUILD_TYPE ON CACHE BOOL "" FORCE)
cmake_policy(PUSH) cmake_policy(PUSH)
cmake_policy(SET CMP0011 NEW) cmake_policy(SET CMP0011 NEW)
find_package(CGAL REQUIRED) find_package(CGAL REQUIRED)
find_package(OpenCV REQUIRED core)
cmake_policy(POP) cmake_policy(POP)
add_library(libslic3r_cgal STATIC add_library(libslic3r_cgal STATIC
@ -573,6 +577,7 @@ target_link_libraries(libslic3r
mcut mcut
JPEG::JPEG JPEG::JPEG
qoi qoi
opencv_world
) )
if(NOT WIN32) if(NOT WIN32)

View file

@ -6,7 +6,15 @@
static const float INV_255 = 1.0f / 255.0f; static const float INV_255 = 1.0f / 255.0f;
namespace Slic3r { namespace Slic3r {
bool color_is_equal(const RGBA a, const RGBA& b)
{
for (size_t i = 0; i < 4; i++) {
if (abs(a[i] - b[i]) > 0.01) {
return false;
}
}
return true;
}
// Conversion from RGB to HSV color space // Conversion from RGB to HSV color space
// The input RGB values are in the range [0, 1] // The input RGB values are in the range [0, 1]
// The output HSV values are in the ranges h = [0, 360], and s, v = [0, 1] // The output HSV values are in the ranges h = [0, 360], and s, v = [0, 1]

View file

@ -7,7 +7,10 @@
#include <algorithm> #include <algorithm>
namespace Slic3r { namespace Slic3r {
using RGB = std::array<float, 3>;
using RGBA = std::array<float, 4>;
const RGBA UNDEFINE_COLOR = {0,0,0,0};
bool color_is_equal(const RGBA a, const RGBA &b);
class ColorRGB class ColorRGB
{ {
std::array<float, 3> m_data{1.0f, 1.0f, 1.0f}; std::array<float, 3> m_data{1.0f, 1.0f, 1.0f};
@ -82,7 +85,9 @@ public:
ColorRGBA& operator = (const ColorRGBA& other) { m_data = other.m_data; return *this; } ColorRGBA& operator = (const ColorRGBA& other) { m_data = other.m_data; return *this; }
bool operator == (const ColorRGBA& other) const { return m_data == other.m_data; } bool operator==(const ColorRGBA &other) const{
return color_is_equal(m_data, other.m_data);
}
bool operator != (const ColorRGBA& other) const { return !operator==(other); } bool operator != (const ColorRGBA& other) const { return !operator==(other); }
bool operator < (const ColorRGBA& other) const; bool operator < (const ColorRGBA& other) const;
bool operator > (const ColorRGBA& other) const; bool operator > (const ColorRGBA& other) const;

View file

@ -831,6 +831,9 @@ int ConfigBase::load_from_json(const std::string &file, ConfigSubstitutionContex
else if (boost::iequals(it.key(), BBL_JSON_KEY_FROM)) { else if (boost::iequals(it.key(), BBL_JSON_KEY_FROM)) {
key_values.emplace(BBL_JSON_KEY_FROM, it.value()); key_values.emplace(BBL_JSON_KEY_FROM, it.value());
} }
else if (boost::iequals(it.key(), BBL_JSON_KEY_DESCRIPTION)) {
key_values.emplace(BBL_JSON_KEY_DESCRIPTION, it.value());
}
else if (boost::iequals(it.key(), BBL_JSON_KEY_INSTANTIATION)) { else if (boost::iequals(it.key(), BBL_JSON_KEY_INSTANTIATION)) {
key_values.emplace(BBL_JSON_KEY_INSTANTIATION, it.value()); key_values.emplace(BBL_JSON_KEY_INSTANTIATION, it.value());
} }

View file

@ -32,6 +32,7 @@
#include "FillLightning.hpp" #include "FillLightning.hpp"
// BBS: new infill pattern header // BBS: new infill pattern header
#include "FillConcentricInternal.hpp" #include "FillConcentricInternal.hpp"
#include "FillCrossHatch.hpp"
// #define INFILL_DEBUG_OUTPUT // #define INFILL_DEBUG_OUTPUT
@ -51,6 +52,7 @@ Fill* Fill::new_from_type(const InfillPattern type)
case ipGyroid: return new FillGyroid(); case ipGyroid: return new FillGyroid();
case ipRectilinear: return new FillRectilinear(); case ipRectilinear: return new FillRectilinear();
case ipAlignedRectilinear: return new FillAlignedRectilinear(); case ipAlignedRectilinear: return new FillAlignedRectilinear();
case ipCrossHatch: return new FillCrossHatch();
case ipMonotonic: return new FillMonotonic(); case ipMonotonic: return new FillMonotonic();
case ipLine: return new FillLine(); case ipLine: return new FillLine();
case ipGrid: return new FillGrid(); case ipGrid: return new FillGrid();

View file

@ -0,0 +1,227 @@
#include "../ClipperUtils.hpp"
#include "../ShortestPath.hpp"
#include "../Surface.hpp"
#include "FillCrossHatch.hpp"
namespace Slic3r {
// CrossHatch Infill: Enhances 3D Printing Speed & Reduces Noise
// CrossHatch, as its name hints, alternates line direction by 90 degrees every few layers to improve adhesion.
// It introduces transform layers between direction shifts for better line cohesion, which fixes the weakness of line infill.
// The transform technique is inspired by David Eccles, improved 3D honeycomb but we made a more flexible implementation.
// This method notably increases printing speed, meeting the demands of modern high-speed 3D printers, and reduces noise for most layers.
// By Bambu Lab
// graph credits: David Eccles (gringer).
// But we made a different definition for points.
/* o---o
* / \
* / \
* \ /
* \ /
* o---o
* p1 p2 p3 p4
*/
static Pointfs generate_one_cycle(double progress, coordf_t period)
{
Pointfs out;
double offset = progress * 1. / 8. * period;
out.reserve(4);
out.push_back(Vec2d(0.25 * period - offset, offset));
out.push_back(Vec2d(0.25 * period + offset, offset));
out.push_back(Vec2d(0.75 * period - offset, -offset));
out.push_back(Vec2d(0.75 * period + offset, -offset));
return out;
}
static Polylines generate_transform_pattern(double inprogress, int direction, coordf_t ingrid_size, coordf_t inwidth, coordf_t inheight)
{
coordf_t width = inwidth;
coordf_t height = inheight;
coordf_t grid_size = ingrid_size * 2; // we due with odd and even saparately.
double progress = inprogress;
Polylines out_polylines;
// generate template patterns;
Pointfs one_cycle_points = generate_one_cycle(progress, grid_size);
Polyline one_cycle;
one_cycle.points.reserve(one_cycle_points.size());
for (size_t i = 0; i < one_cycle_points.size(); i++) one_cycle.points.push_back(Point(one_cycle_points[i]));
// swap if vertical
if (direction < 0) {
width = height;
height = inwidth;
}
// replicate polylines;
Polylines odd_polylines;
Polyline odd_poly;
int num_of_cycle = width / grid_size + 2;
odd_poly.points.reserve(num_of_cycle * one_cycle.size());
// replicate to odd line
Point translate = Point(0, 0);
for (size_t i = 0; i < num_of_cycle; i++) {
Polyline odd_points;
odd_points = Polyline(one_cycle);
odd_points.translate(Point(i * grid_size, 0.0));
odd_poly.points.insert(odd_poly.points.end(), odd_points.begin(), odd_points.end());
}
// fill the height
int num_of_lines = height / grid_size + 2;
odd_polylines.reserve(num_of_lines * odd_poly.size());
for (size_t i = 0; i < num_of_lines; i++) {
Polyline poly = odd_poly;
poly.translate(Point(0.0, grid_size * i));
odd_polylines.push_back(poly);
}
// save to output
out_polylines.insert(out_polylines.end(), odd_polylines.begin(), odd_polylines.end());
// replicate to even lines
Polylines even_polylines;
even_polylines.reserve(odd_polylines.size());
for (size_t i = 0; i < odd_polylines.size(); i++) {
Polyline even = odd_poly;
even.translate(Point(-0.5 * grid_size, (i + 0.5) * grid_size));
even_polylines.push_back(even);
}
// save for output
out_polylines.insert(out_polylines.end(), even_polylines.begin(), even_polylines.end());
// change to vertical if need
if (direction < 0) {
// swap xy, see if we need better performance method
for (Polyline &poly : out_polylines) {
for (Point &p : poly) { std::swap(p.x(), p.y()); }
}
}
return out_polylines;
}
static Polylines generate_repeat_pattern(int direction, coordf_t grid_size, coordf_t inwidth, coordf_t inheight)
{
coordf_t width = inwidth;
coordf_t height = inheight;
Polylines out_polylines;
// swap if vertical
if (direction < 0) {
width = height;
height = inwidth;
}
int num_of_lines = height / grid_size + 1;
out_polylines.reserve(num_of_lines);
for (int i = 0; i < num_of_lines; i++) {
Polyline poly;
poly.points.reserve(2);
poly.append(Point(coordf_t(0), coordf_t(grid_size * i)));
poly.append(Point(width, coordf_t(grid_size * i)));
out_polylines.push_back(poly);
}
// change to vertical if needed
if (direction < 0) {
// swap xy
for (Polyline &poly : out_polylines) {
for (Point &p : poly) { std::swap(p.x(), p.y()); }
}
}
return out_polylines;
}
// it makes the real patterns that overlap the bounding box
// repeat_ratio define the ratio between the height of repeat pattern and grid
static Polylines generate_infill_layers(coordf_t z_height, double repeat_ratio, coordf_t grid_size, coordf_t width, coordf_t height)
{
Polylines result;
coordf_t trans_layer_size = grid_size * 0.4; // upper.
coordf_t repeat_layer_size = grid_size * repeat_ratio; // lower.
z_height += repeat_layer_size / 2; // offset to improve first few layer strength
coordf_t period = trans_layer_size + repeat_layer_size;
coordf_t remains = z_height - std::floor(z_height / period) * period;
coordf_t trans_z = remains - repeat_layer_size; // put repeat layer first.
coordf_t repeat_z = remains;
int phase = fmod(z_height, period * 2) - (period - 1); // add epsilon
int direction = phase <= 0 ? -1 : 1;
// this is a repeat layer
if (trans_z < 0) {
result = generate_repeat_pattern(direction, grid_size, width, height);
}
// this is a transform layer
else {
double progress = fmod(trans_z, trans_layer_size) / trans_layer_size;
// split the progress to forward and backward, with a opposite direction.
if (progress < 0.5)
result = generate_transform_pattern((progress + 0.1) * 2, direction, grid_size, width, height); // increase overlapping.
else
result = generate_transform_pattern((1.1 - progress) * 2, -1 * direction, grid_size, width, height);
}
return result;
}
void FillCrossHatch ::_fill_surface_single(
const FillParams &params, unsigned int thickness_layers, const std::pair<float, Point> &direction, ExPolygon expolygon, Polylines &polylines_out)
{
// rotate angle
auto infill_angle = float(this->angle);
if (std::abs(infill_angle) >= EPSILON) expolygon.rotate(-infill_angle);
// get the rotated bounding box
BoundingBox bb = expolygon.contour.bounding_box();
// linespace modifier
coord_t line_spacing = coord_t(scale_(this->spacing) / params.density);
// reduce density
if (params.density < 0.999) line_spacing *= 1.08;
bb.merge(align_to_grid(bb.min, Point(line_spacing * 4, line_spacing * 4)));
// generate pattern
Polylines polylines = generate_infill_layers(scale_(this->z), 1, line_spacing, bb.size()(0), bb.size()(1));
// shift the pattern to the actual space
for (Polyline &pl : polylines) { pl.translate(bb.min); }
polylines = intersection_pl(polylines, to_polygons(expolygon));
// --- remove small remains from gyroid infill
if (!polylines.empty()) {
// Remove very small bits, but be careful to not remove infill lines connecting thin walls!
// The infill perimeter lines should be separated by around a single infill line width.
const double minlength = scale_(0.8 * this->spacing);
polylines.erase(std::remove_if(polylines.begin(), polylines.end(), [minlength](const Polyline &pl)
{ return pl.length() < minlength; }), polylines.end());
}
if (!polylines.empty()) {
int infill_start_idx = polylines_out.size(); // only rotate what belongs to us.
// connect lines
if (params.dont_connect() || polylines.size() <= 1)
append(polylines_out, chain_polylines(std::move(polylines)));
else
this->connect_infill(std::move(polylines), expolygon, polylines_out, this->spacing, params);
// rotate back
if (std::abs(infill_angle) >= EPSILON) {
for (auto it = polylines_out.begin() + infill_start_idx; it != polylines_out.end(); ++it) it->rotate(infill_angle);
}
}
}
} // namespace Slic3r

View file

@ -0,0 +1,29 @@
#ifndef slic3r_FillCrossHatch_hpp_
#define slic3r_FillCrossHatch_hpp_
#include <map>
#include "../libslic3r.h"
#include "FillBase.hpp"
namespace Slic3r {
class FillCrossHatch : public Fill
{
public:
Fill *clone() const override { return new FillCrossHatch(*this); };
~FillCrossHatch() override {}
protected:
void _fill_surface_single(
const FillParams &params,
unsigned int thickness_layers,
const std::pair<float, Point> &direction,
ExPolygon expolygon,
Polylines &polylines_out) override;
};
} // namespace Slic3r
#endif // slic3r_FillCrossHatch_hpp_

View file

@ -21,19 +21,39 @@
namespace Slic3r { namespace Slic3r {
bool load_obj(const char *path, TriangleMesh *meshptr, std::string &message) bool load_obj(const char *path, TriangleMesh *meshptr, ObjInfo& obj_info, std::string &message)
{ {
if (meshptr == nullptr) if (meshptr == nullptr)
return false; return false;
// Parse the OBJ file. // Parse the OBJ file.
ObjParser::ObjData data; ObjParser::ObjData data;
ObjParser::MtlData mtl_data;
if (! ObjParser::objparse(path, data)) { if (! ObjParser::objparse(path, data)) {
BOOST_LOG_TRIVIAL(error) << "load_obj: failed to parse " << path; BOOST_LOG_TRIVIAL(error) << "load_obj: failed to parse " << path;
message = _L("load_obj: failed to parse"); message = _L("load_obj: failed to parse");
return false; return false;
} }
bool exist_mtl = false;
if (data.mtllibs.size() > 0) { // read mtl
for (auto mtl_name : data.mtllibs) {
boost::filesystem::path full_path(path);
std::string dir = full_path.parent_path().string();
auto mtl_file = dir + "/" + mtl_name;
boost::filesystem::path mtl_path(mtl_file);
auto _mtl_path = mtl_path.string().c_str();
if (boost::filesystem::exists(mtl_path)) {
if (!ObjParser::mtlparse(_mtl_path, mtl_data)) {
BOOST_LOG_TRIVIAL(error) << "load_obj:load_mtl: failed to parse " << _mtl_path;
message = _L("load mtl in obj: failed to parse");
return false;
}
}
else {
BOOST_LOG_TRIVIAL(error) << "load_obj: failed to load mtl_path:" << _mtl_path;
}
}
exist_mtl = true;
}
// Count the faces and verify, that all faces are triangular. // Count the faces and verify, that all faces are triangular.
size_t num_faces = 0; size_t num_faces = 0;
size_t num_quads = 0; size_t num_quads = 0;
@ -59,17 +79,27 @@ bool load_obj(const char *path, TriangleMesh *meshptr, std::string &message)
i = j; i = j;
} }
} }
// Convert ObjData into indexed triangle set. // Convert ObjData into indexed triangle set.
indexed_triangle_set its; indexed_triangle_set its;
size_t num_vertices = data.coordinates.size() / 4; size_t num_vertices = data.coordinates.size() / OBJ_VERTEX_LENGTH;
its.vertices.reserve(num_vertices); its.vertices.reserve(num_vertices);
its.indices.reserve(num_faces + num_quads); its.indices.reserve(num_faces + num_quads);
for (size_t i = 0; i < num_vertices; ++ i) { if (exist_mtl) {
size_t j = i << 2; obj_info.is_single_mtl = data.usemtls.size() == 1 && mtl_data.new_mtl_unmap.size() == 1;
its.vertices.emplace_back(data.coordinates[j], data.coordinates[j + 1], data.coordinates[j + 2]); obj_info.face_colors.reserve(num_faces + num_quads);
} }
int indices[4]; bool has_color = data.has_vertex_color;
for (size_t i = 0; i < num_vertices; ++ i) {
size_t j = i * OBJ_VERTEX_LENGTH;
its.vertices.emplace_back(data.coordinates[j], data.coordinates[j + 1], data.coordinates[j + 2]);
if (data.has_vertex_color) {
RGBA color{std::clamp(data.coordinates[j + 3], 0.f, 1.f), std::clamp(data.coordinates[j + 4], 0.f, 1.f), std::clamp(data.coordinates[j + 5], 0.f, 1.f),
std::clamp(data.coordinates[j + 6], 0.f, 1.f)};
obj_info.vertex_colors.emplace_back(color);
}
}
int indices[ONE_FACE_SIZE];
int uvs[ONE_FACE_SIZE];
for (size_t i = 0; i < data.vertices.size();) for (size_t i = 0; i < data.vertices.size();)
if (data.vertices[i].coordIdx == -1) if (data.vertices[i].coordIdx == -1)
++ i; ++ i;
@ -79,20 +109,79 @@ bool load_obj(const char *path, TriangleMesh *meshptr, std::string &message)
if (const ObjParser::ObjVertex &vertex = data.vertices[i ++]; vertex.coordIdx == -1) { if (const ObjParser::ObjVertex &vertex = data.vertices[i ++]; vertex.coordIdx == -1) {
break; break;
} else { } else {
assert(cnt < 4); assert(cnt < OBJ_VERTEX_LENGTH);
if (vertex.coordIdx < 0 || vertex.coordIdx >= int(its.vertices.size())) { if (vertex.coordIdx < 0 || vertex.coordIdx >= int(its.vertices.size())) {
BOOST_LOG_TRIVIAL(error) << "load_obj: failed to parse " << path << ". The file contains invalid vertex index."; BOOST_LOG_TRIVIAL(error) << "load_obj: failed to parse " << path << ". The file contains invalid vertex index.";
message = _L("The file contains invalid vertex index."); message = _L("The file contains invalid vertex index.");
return false; return false;
} }
indices[cnt ++] = vertex.coordIdx; indices[cnt] = vertex.coordIdx;
uvs[cnt] = vertex.textureCoordIdx;
cnt++;
} }
if (cnt) { if (cnt) {
assert(cnt == 3 || cnt == 4); assert(cnt == 3 || cnt == 4);
// Insert one or two faces (triangulate a quad). // Insert one or two faces (triangulate a quad).
its.indices.emplace_back(indices[0], indices[1], indices[2]); its.indices.emplace_back(indices[0], indices[1], indices[2]);
if (cnt == 4) int face_index =its.indices.size() - 1;
RGBA face_color;
auto set_face_color = [&uvs, &data, &mtl_data, &obj_info, &face_color](int face_index, const std::string mtl_name) {
if (mtl_data.new_mtl_unmap.find(mtl_name) != mtl_data.new_mtl_unmap.end()) {
bool is_merge_ka_kd = true;
for (size_t n = 0; n < 3; n++) {
if (float(mtl_data.new_mtl_unmap[mtl_name]->Ka[n] + mtl_data.new_mtl_unmap[mtl_name]->Kd[n]) > 1.0) {
is_merge_ka_kd=false;
break;
}
}
for (size_t n = 0; n < 3; n++) {
if (is_merge_ka_kd) {
face_color[n] = std::clamp(float(mtl_data.new_mtl_unmap[mtl_name]->Ka[n] + mtl_data.new_mtl_unmap[mtl_name]->Kd[n]), 0.f, 1.f);
}
else {
face_color[n] = std::clamp(float(mtl_data.new_mtl_unmap[mtl_name]->Kd[n]), 0.f, 1.f);
}
}
face_color[3] = mtl_data.new_mtl_unmap[mtl_name]->Tr; // alpha
if (mtl_data.new_mtl_unmap[mtl_name]->map_Kd.size() > 0) {
auto png_name = mtl_data.new_mtl_unmap[mtl_name]->map_Kd;
obj_info.has_uv_png = true;
if (obj_info.pngs.find(png_name) == obj_info.pngs.end()) { obj_info.pngs[png_name] = false; }
obj_info.uv_map_pngs[face_index] = png_name;
}
if (data.textureCoordinates.size() > 0) {
Vec2f uv0(data.textureCoordinates[uvs[0] * 2], data.textureCoordinates[uvs[0] * 2 + 1]);
Vec2f uv1(data.textureCoordinates[uvs[1] * 2], data.textureCoordinates[uvs[1] * 2 + 1]);
Vec2f uv2(data.textureCoordinates[uvs[2] * 2], data.textureCoordinates[uvs[2] * 2 + 1]);
std::array<Vec2f, 3> uv_array{uv0, uv1, uv2};
obj_info.uvs.emplace_back(uv_array);
}
obj_info.face_colors.emplace_back(face_color);
}
};
auto set_face_color_by_mtl = [&data, &set_face_color](int face_index) {
if (data.usemtls.size() == 1) {
set_face_color(face_index, data.usemtls[0].name);
} else {
for (size_t k = 0; k < data.usemtls.size(); k++) {
auto mtl = data.usemtls[k];
if (face_index >= mtl.face_start && face_index <= mtl.face_end) {
set_face_color(face_index, data.usemtls[k].name);
break;
}
}
}
};
if (exist_mtl) {
set_face_color_by_mtl(face_index);
}
if (cnt == 4) {
its.indices.emplace_back(indices[0], indices[2], indices[3]); its.indices.emplace_back(indices[0], indices[2], indices[3]);
int face_index = its.indices.size() - 1;
if (exist_mtl) {
set_face_color_by_mtl(face_index);
}
}
} }
} }
@ -107,12 +196,12 @@ bool load_obj(const char *path, TriangleMesh *meshptr, std::string &message)
return true; return true;
} }
bool load_obj(const char *path, Model *model, std::string &message, const char *object_name_in) bool load_obj(const char *path, Model *model, ObjInfo& obj_info, std::string &message, const char *object_name_in)
{ {
TriangleMesh mesh; TriangleMesh mesh;
bool ret = load_obj(path, &mesh, message); bool ret = load_obj(path, &mesh, obj_info, message);
if (ret) { if (ret) {
std::string object_name; std::string object_name;
if (object_name_in == nullptr) { if (object_name_in == nullptr) {
@ -120,10 +209,9 @@ bool load_obj(const char *path, Model *model, std::string &message, const char *
object_name.assign((last_slash == nullptr) ? path : last_slash + 1); object_name.assign((last_slash == nullptr) ? path : last_slash + 1);
} else } else
object_name.assign(object_name_in); object_name.assign(object_name_in);
model->add_object(object_name.c_str(), path, std::move(mesh)); model->add_object(object_name.c_str(), path, std::move(mesh));
} }
return ret; return ret;
} }

View file

@ -1,15 +1,27 @@
#ifndef slic3r_Format_OBJ_hpp_ #ifndef slic3r_Format_OBJ_hpp_
#define slic3r_Format_OBJ_hpp_ #define slic3r_Format_OBJ_hpp_
#include "libslic3r/Color.hpp"
#include <unordered_map>
namespace Slic3r { namespace Slic3r {
class TriangleMesh; class TriangleMesh;
class Model; class Model;
class ModelObject; class ModelObject;
typedef std::function<void(std::vector<RGBA> &input_colors, bool is_single_color, std::vector<unsigned char> &filament_ids, unsigned char &first_extruder_id)> ObjImportColorFn;
// Load an OBJ file into a provided model. // Load an OBJ file into a provided model.
extern bool load_obj(const char *path, TriangleMesh *mesh, std::string &message); struct ObjInfo {
extern bool load_obj(const char *path, Model *model, std::string &message, const char *object_name = nullptr); std::vector<RGBA> vertex_colors;
std::vector<RGBA> face_colors;
bool is_single_mtl{false};
std::vector<std::array<Vec2f,3>> uvs;
std::string obj_dircetory;
std::map<std::string,bool> pngs;
std::unordered_map<int, std::string> uv_map_pngs;
bool has_uv_png{false};
};
extern bool load_obj(const char *path, TriangleMesh *mesh, ObjInfo &vertex_colors, std::string &message);
extern bool load_obj(const char *path, Model *model, ObjInfo &vertex_colors, std::string &message, const char *object_name = nullptr);
extern bool store_obj(const char *path, TriangleMesh *mesh); extern bool store_obj(const char *path, TriangleMesh *mesh);
extern bool store_obj(const char *path, ModelObject *model); extern bool store_obj(const char *path, ModelObject *model);

View file

@ -213,6 +213,7 @@ static constexpr const char* FILAMENT_TYPE_TAG = "type";
static constexpr const char *FILAMENT_COLOR_TAG = "color"; static constexpr const char *FILAMENT_COLOR_TAG = "color";
static constexpr const char *FILAMENT_USED_M_TAG = "used_m"; static constexpr const char *FILAMENT_USED_M_TAG = "used_m";
static constexpr const char *FILAMENT_USED_G_TAG = "used_g"; static constexpr const char *FILAMENT_USED_G_TAG = "used_g";
static constexpr const char *FILAMENT_TRAY_INFO_ID_TAG = "tray_info_idx";
static constexpr const char* CONFIG_TAG = "config"; static constexpr const char* CONFIG_TAG = "config";
@ -586,21 +587,14 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
return ret; return ret;
}; };
for (auto it = ps.volumes_per_extruder.begin(); it != ps.volumes_per_extruder.end(); it++) { for (auto it = ps.total_volumes_per_extruder.begin(); it != ps.total_volumes_per_extruder.end(); it++) {
double volume = it->second; double volume = it->second;
auto [used_filament_m, used_filament_g] = get_used_filament_from_volume(volume, it->first); auto [used_filament_m, used_filament_g] = get_used_filament_from_volume(volume, it->first);
FilamentInfo info; FilamentInfo info;
info.id = it->first; info.id = it->first;
if (ps.flush_per_filament.find(it->first) != ps.flush_per_filament.end()) { info.used_g = used_filament_g;
volume = ps.flush_per_filament.at(it->first); info.used_m = used_filament_m;
auto [flushed_filament_m, flushed_filament_g] = get_used_filament_from_volume(volume, it->first);
info.used_m = used_filament_m + flushed_filament_m;
info.used_g = used_filament_g + flushed_filament_g;
} else {
info.used_m = used_filament_m;
info.used_g = used_filament_g;
}
slice_filaments_info.push_back(info); slice_filaments_info.push_back(info);
} }
@ -4231,13 +4225,14 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
std::string color = bbs_get_attribute_value_string(attributes, num_attributes, FILAMENT_COLOR_TAG); std::string color = bbs_get_attribute_value_string(attributes, num_attributes, FILAMENT_COLOR_TAG);
std::string used_m = bbs_get_attribute_value_string(attributes, num_attributes, FILAMENT_USED_M_TAG); std::string used_m = bbs_get_attribute_value_string(attributes, num_attributes, FILAMENT_USED_M_TAG);
std::string used_g = bbs_get_attribute_value_string(attributes, num_attributes, FILAMENT_USED_G_TAG); std::string used_g = bbs_get_attribute_value_string(attributes, num_attributes, FILAMENT_USED_G_TAG);
std::string filament_id = bbs_get_attribute_value_string(attributes, num_attributes, FILAMENT_TRAY_INFO_ID_TAG);
FilamentInfo filament_info; FilamentInfo filament_info;
filament_info.id = atoi(id.c_str()) - 1; filament_info.id = atoi(id.c_str()) - 1;
filament_info.type = type; filament_info.type = type;
filament_info.color = color; filament_info.color = color;
filament_info.used_m = atof(used_m.c_str()); filament_info.used_m = atof(used_m.c_str());
filament_info.used_g = atof(used_g.c_str()); filament_info.used_g = atof(used_g.c_str());
filament_info.filament_id = filament_id;
m_curr_plater->slice_filaments_info.push_back(filament_info); m_curr_plater->slice_filaments_info.push_back(filament_info);
} }
return true; return true;
@ -7659,6 +7654,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result)
for (auto it = plate_data->slice_filaments_info.begin(); it != plate_data->slice_filaments_info.end(); it++) for (auto it = plate_data->slice_filaments_info.begin(); it != plate_data->slice_filaments_info.end(); it++)
{ {
stream << " <" << FILAMENT_TAG << " " << FILAMENT_ID_TAG << "=\"" << std::to_string(it->id + 1) << "\" " stream << " <" << FILAMENT_TAG << " " << FILAMENT_ID_TAG << "=\"" << std::to_string(it->id + 1) << "\" "
<< FILAMENT_TRAY_INFO_ID_TAG <<"=\""<< it->filament_id <<"\" "
<< FILAMENT_TYPE_TAG << "=\"" << it->type << "\" " << FILAMENT_TYPE_TAG << "=\"" << it->type << "\" "
<< FILAMENT_COLOR_TAG << "=\"" << it->color << "\" " << FILAMENT_COLOR_TAG << "=\"" << it->color << "\" "
<< FILAMENT_USED_M_TAG << "=\"" << it->used_m << "\" " << FILAMENT_USED_M_TAG << "=\"" << it->used_m << "\" "

View file

@ -9,16 +9,12 @@
#include "libslic3r/LocalesUtils.hpp" #include "libslic3r/LocalesUtils.hpp"
namespace ObjParser { namespace ObjParser {
#define EATWS() while (*line == ' ' || *line == '\t') ++line
static bool obj_parseline(const char *line, ObjData &data) static bool obj_parseline(const char *line, ObjData &data)
{ {
#define EATWS() while (*line == ' ' || *line == '\t') ++ line
if (*line == 0) if (*line == 0)
return true; return true;
assert(Slic3r::is_decimal_separator_point()); assert(Slic3r::is_decimal_separator_point());
// Ignore whitespaces at the beginning of the line. // Ignore whitespaces at the beginning of the line.
//FIXME is this a good idea? //FIXME is this a good idea?
EATWS(); EATWS();
@ -55,19 +51,19 @@ static bool obj_parseline(const char *line, ObjData &data)
line = endptr; line = endptr;
EATWS(); EATWS();
} }
double w = 0; /*double w = 0;
if (*line != 0) { if (*line != 0) {
w = strtod(line, &endptr); w = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t' && *endptr != 0)) if (endptr == 0 || (*endptr != ' ' && *endptr != '\t' && *endptr != 0))
return false; return false;
line = endptr; line = endptr;
EATWS(); EATWS();
} }*/
if (*line != 0) if (*line != 0)
return false; return false;
data.textureCoordinates.push_back((float)u); data.textureCoordinates.push_back((float)u);
data.textureCoordinates.push_back((float)v); data.textureCoordinates.push_back((float)v);
data.textureCoordinates.push_back((float)w); //data.textureCoordinates.push_back((float)w);
break; break;
} }
case 'n': case 'n':
@ -156,23 +152,46 @@ static bool obj_parseline(const char *line, ObjData &data)
return false; return false;
line = endptr; line = endptr;
EATWS(); EATWS();
double w = 1.0; double color_x = 0.0, color_y = 0.0, color_z = 0.0, color_w = 0.0;//undefine color
if (*line != 0) { if (*line != 0) {
w = strtod(line, &endptr); if (!data.has_vertex_color) {
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t' && *endptr != 0)) data.has_vertex_color = true;
return false; }
line = endptr; color_x = strtod(line, &endptr);
EATWS(); if (endptr == 0 || (*endptr != ' ' && *endptr != '\t' && *endptr != 0))
return false;
line = endptr;
EATWS();
color_y = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t' && *endptr != 0))
return false;
line = endptr;
EATWS();
color_z = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t' && *endptr != 0))
return false;
line = endptr;
EATWS();
color_w = 1.0;//default define alpha = 1.0
if (*line != 0) {
color_w = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t' && *endptr != 0)) return false;
line = endptr;
EATWS();
}
} }
// the following check is commented out because there may be obj files containing extra data, as those generated by Meshlab, // the following check is commented out because there may be obj files containing extra data, as those generated by Meshlab,
// see https://dev.prusa3d.com/browse/SPE-1019 for an example, // see https://dev.prusa3d.com/browse/SPE-1019 for an example,
// and this would lead to a crash because no vertex would be stored // and this would lead to a crash because no vertex would be stored
// if (*line != 0) // if (*line != 0)
// return false; // return false;
data.coordinates.push_back((float)x); data.coordinates.push_back((float)x);
data.coordinates.push_back((float)y); data.coordinates.push_back((float)y);
data.coordinates.push_back((float)z); data.coordinates.push_back((float)z);
data.coordinates.push_back((float)w); data.coordinates.push_back((float) color_x);
data.coordinates.push_back((float) color_y);
data.coordinates.push_back((float) color_z);
data.coordinates.push_back((float) color_w);
break; break;
} }
} }
@ -232,6 +251,24 @@ static bool obj_parseline(const char *line, ObjData &data)
data.vertices.push_back(vertex); data.vertices.push_back(vertex);
EATWS(); EATWS();
} }
if (data.usemtls.size() > 0) {
data.usemtls.back().vertexIdxEnd = (int) data.vertices.size();
}
if (data.usemtls.size() > 0) {
int face_index_count = 0;
for (int i = data.vertices.size() - 1; i >= 0; i--) {
if (data.vertices[i].coordIdx == -1) {
break;
}
face_index_count++;
}
if (face_index_count == 3) {//tri
data.usemtls.back().face_end++;
} else if (face_index_count == 4) {//quad
data.usemtls.back().face_end++;
data.usemtls.back().face_end++;
}
}
vertex.coordIdx = -1; vertex.coordIdx = -1;
vertex.normalIdx = -1; vertex.normalIdx = -1;
vertex.textureCoordIdx = -1; vertex.textureCoordIdx = -1;
@ -263,10 +300,23 @@ static bool obj_parseline(const char *line, ObjData &data)
// usemtl [material name] // usemtl [material name]
// printf("usemtl %s\r\n", line); // printf("usemtl %s\r\n", line);
EATWS(); EATWS();
if (data.usemtls.size()>0) {
data.usemtls.back().vertexIdxEnd = (int) data.vertices.size();
}
ObjUseMtl usemtl; ObjUseMtl usemtl;
usemtl.vertexIdxFirst = (int)data.vertices.size(); usemtl.vertexIdxFirst = (int)data.vertices.size();
usemtl.name = line; usemtl.name = line;
data.usemtls.push_back(usemtl); data.usemtls.push_back(usemtl);
if (data.usemtls.size() == 1) {
data.usemtls.back().face_start = 0;
}
else {//>=2
auto count = data.usemtls.size();
auto& last_usemtl = data.usemtls[count-1];
auto& last_last_usemtl = data.usemtls[count - 2];
last_usemtl.face_start = last_last_usemtl.face_end + 1;
}
data.usemtls.back().face_end = data.usemtls.back().face_start - 1;
break; break;
} }
case 'o': case 'o':
@ -323,6 +373,197 @@ static bool obj_parseline(const char *line, ObjData &data)
return true; return true;
} }
static std::string cur_mtl_name = "";
static bool mtl_parseline(const char *line, MtlData &data)
{
if (*line == 0) return true;
assert(Slic3r::is_decimal_separator_point());
// Ignore whitespaces at the beginning of the line.
// FIXME is this a good idea?
EATWS();
char c1 = *line++;
switch (c1) {
case '#': {// Comment, ignore the rest of the line.
break;
}
case 'n': {
if (*(line++) != 'e' || *(line++) != 'w' || *(line++) != 'm' || *(line++) != 't' || *(line++) != 'l')
return false;
EATWS();
ObjNewMtl new_mtl;
cur_mtl_name = line;
data.new_mtl_unmap[cur_mtl_name] = std::make_shared<ObjNewMtl>();
break;
}
case 'm': {
if (*(line++) != 'a' || *(line++) != 'p' || *(line++) != '_' || *(line++) != 'K' || *(line++) != 'd') return false;
EATWS();
if (data.new_mtl_unmap.find(cur_mtl_name) != data.new_mtl_unmap.end()) {
data.new_mtl_unmap[cur_mtl_name]->map_Kd = line;
}
break;
}
case 'N': {
char cur_char = *(line++);
if (cur_char == 's') {
EATWS();
char * endptr = 0;
double ns = strtod(line, &endptr);
if (data.new_mtl_unmap.find(cur_mtl_name) != data.new_mtl_unmap.end()) {
data.new_mtl_unmap[cur_mtl_name]->Ns = (float) ns;
}
} else if (cur_char == 'i') {
EATWS();
char * endptr = 0;
double ni = strtod(line, &endptr);
if (data.new_mtl_unmap.find(cur_mtl_name) != data.new_mtl_unmap.end()) {
data.new_mtl_unmap[cur_mtl_name]->Ni = (float) ni;
}
}
break;
}
case 'K': {
char cur_char = *(line++);
if (cur_char == 'a') {
EATWS();
char * endptr = 0;
double x = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t')) return false;
line = endptr;
EATWS();
double y = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t')) return false;
line = endptr;
EATWS();
double z = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t' && *endptr != 0)) return false;
line = endptr;
EATWS();
if (data.new_mtl_unmap.find(cur_mtl_name) != data.new_mtl_unmap.end()) {
data.new_mtl_unmap[cur_mtl_name]->Ka[0] = x;
data.new_mtl_unmap[cur_mtl_name]->Ka[1] = y;
data.new_mtl_unmap[cur_mtl_name]->Ka[2] = z;
}
} else if (cur_char == 'd') {
EATWS();
char * endptr = 0;
double x = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t')) return false;
line = endptr;
EATWS();
double y = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t')) return false;
line = endptr;
EATWS();
double z = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t' && *endptr != 0)) return false;
line = endptr;
EATWS();
if (data.new_mtl_unmap.find(cur_mtl_name) != data.new_mtl_unmap.end()) {
data.new_mtl_unmap[cur_mtl_name]->Kd[0] = x;
data.new_mtl_unmap[cur_mtl_name]->Kd[1] = y;
data.new_mtl_unmap[cur_mtl_name]->Kd[2] = z;
}
} else if (cur_char == 's') {
EATWS();
char * endptr = 0;
double x = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t')) return false;
line = endptr;
EATWS();
double y = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t')) return false;
line = endptr;
EATWS();
double z = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t' && *endptr != 0)) return false;
line = endptr;
EATWS();
if (data.new_mtl_unmap.find(cur_mtl_name) != data.new_mtl_unmap.end()) {
data.new_mtl_unmap[cur_mtl_name]->Ks[0] = x;
data.new_mtl_unmap[cur_mtl_name]->Ks[1] = y;
data.new_mtl_unmap[cur_mtl_name]->Ks[2] = z;
}
} else if (cur_char == 'e') {
EATWS();
char * endptr = 0;
double x = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t')) return false;
line = endptr;
EATWS();
double y = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t')) return false;
line = endptr;
EATWS();
double z = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t' && *endptr != 0)) return false;
line = endptr;
EATWS();
if (data.new_mtl_unmap.find(cur_mtl_name) != data.new_mtl_unmap.end()) {
data.new_mtl_unmap[cur_mtl_name]->Ke[0] = x;
data.new_mtl_unmap[cur_mtl_name]->Ke[1] = y;
data.new_mtl_unmap[cur_mtl_name]->Ke[2] = z;
}
}
break;
}
case 'i': {
if (*(line++) != 'l' || *(line++) != 'l' || *(line++) != 'u' || *(line++) != 'm')
return false;
EATWS();
char * endptr = 0;
double illum = strtod(line, &endptr);
if (data.new_mtl_unmap.find(cur_mtl_name) != data.new_mtl_unmap.end()) {
data.new_mtl_unmap[cur_mtl_name]->illum = (float) illum;
}
break;
}
case 'd': {
EATWS();
char * endptr = 0;
double d = strtod(line, &endptr);
if (data.new_mtl_unmap.find(cur_mtl_name) != data.new_mtl_unmap.end()) {
data.new_mtl_unmap[cur_mtl_name]->d = (float) d;
}
break;
}
case 'T': {
char cur_char = *(line++);
if (cur_char == 'r') {
EATWS();
char * endptr = 0;
double tr = strtod(line, &endptr);
if (data.new_mtl_unmap.find(cur_mtl_name) != data.new_mtl_unmap.end()) {
data.new_mtl_unmap[cur_mtl_name]->Tr = (float) tr;
}
break;
} else if (cur_char == 'f') {
EATWS();
char * endptr = 0;
double x = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t')) return false;
line = endptr;
EATWS();
double y = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t')) return false;
line = endptr;
EATWS();
double z = strtod(line, &endptr);
if (endptr == 0 || (*endptr != ' ' && *endptr != '\t' && *endptr != 0)) return false;
line = endptr;
EATWS();
if (data.new_mtl_unmap.find(cur_mtl_name) != data.new_mtl_unmap.end()) {
data.new_mtl_unmap[cur_mtl_name]->Tf[0] = x;
data.new_mtl_unmap[cur_mtl_name]->Tf[1] = y;
data.new_mtl_unmap[cur_mtl_name]->Tf[2] = z;
}
break;
}
}
}
return true;
}
bool objparse(const char *path, ObjData &data) bool objparse(const char *path, ObjData &data)
{ {
@ -369,10 +610,52 @@ bool objparse(const char *path, ObjData &data)
return true; return true;
} }
bool mtlparse(const char *path, MtlData &data)
{
Slic3r::CNumericLocalesSetter locales_setter;
FILE *pFile = boost::nowide::fopen(path, "rt");
if (pFile == 0) return false;
cur_mtl_name = "";
try {
char buf[65536 * 2];
size_t len = 0;
size_t lenPrev = 0;
while ((len = ::fread(buf + lenPrev, 1, 65536, pFile)) != 0) {
len += lenPrev;
size_t lastLine = 0;
for (size_t i = 0; i < len; ++i)
if (buf[i] == '\r' || buf[i] == '\n') {
buf[i] = 0;
char *c = buf + lastLine;
while (*c == ' ' || *c == '\t') ++c;
// FIXME check the return value and exit on error?
// Will it break parsing of some obj files?
mtl_parseline(c, data);
lastLine = i + 1;
}
lenPrev = len - lastLine;
if (lenPrev > 65536) {
BOOST_LOG_TRIVIAL(error) << "MtlParser: Excessive line length";
::fclose(pFile);
return false;
}
memmove(buf, buf + lastLine, lenPrev);
}
} catch (std::bad_alloc &) {
BOOST_LOG_TRIVIAL(error) << "MtlParser: Out of memory";
}
::fclose(pFile);
// printf("vertices: %d\r\n", data.vertices.size() / 4);
// printf("coords: %d\r\n", data.coordinates.size());
return true;
}
bool objparse(std::istream &stream, ObjData &data) bool objparse(std::istream &stream, ObjData &data)
{ {
Slic3r::CNumericLocalesSetter locales_setter; Slic3r::CNumericLocalesSetter locales_setter;
try { try {
char buf[65536 * 2]; char buf[65536 * 2];
size_t len = 0; size_t len = 0;

View file

@ -3,6 +3,8 @@
#include <string> #include <string>
#include <vector> #include <vector>
#include <array>
#include <unordered_map>
#include <istream> #include <istream>
namespace ObjParser { namespace ObjParser {
@ -16,22 +18,39 @@ struct ObjVertex
inline bool operator==(const ObjVertex &v1, const ObjVertex &v2) inline bool operator==(const ObjVertex &v1, const ObjVertex &v2)
{ {
return return v1.coordIdx == v2.coordIdx &&
v1.coordIdx == v2.coordIdx && v1.textureCoordIdx == v2.textureCoordIdx &&
v1.textureCoordIdx == v2.textureCoordIdx &&
v1.normalIdx == v2.normalIdx; v1.normalIdx == v2.normalIdx;
} }
struct ObjUseMtl struct ObjUseMtl
{ {
int vertexIdxFirst; int vertexIdxFirst;
int vertexIdxEnd{-1};
int face_start;
int face_end{-1};
std::string name; std::string name;
}; };
struct ObjNewMtl
{
std::string name;
float Ns;
float Ni;
float d;
float illum;
float Tr{1.0f}; // Transmission
std::array<float, 3> Tf;
std::array<float, 3> Ka;
std::array<float, 3> Kd;
std::array<float, 3> Ks;
std::array<float, 3> Ke;
std::string map_Kd;//defalut png
};
inline bool operator==(const ObjUseMtl &v1, const ObjUseMtl &v2) inline bool operator==(const ObjUseMtl &v1, const ObjUseMtl &v2)
{ {
return return v1.vertexIdxFirst == v2.vertexIdxFirst &&
v1.vertexIdxFirst == v2.vertexIdxFirst &&
v1.name.compare(v2.name) == 0; v1.name.compare(v2.name) == 0;
} }
@ -56,8 +75,7 @@ struct ObjGroup
inline bool operator==(const ObjGroup &v1, const ObjGroup &v2) inline bool operator==(const ObjGroup &v1, const ObjGroup &v2)
{ {
return return v1.vertexIdxFirst == v2.vertexIdxFirst &&
v1.vertexIdxFirst == v2.vertexIdxFirst &&
v1.name.compare(v2.name) == 0; v1.name.compare(v2.name) == 0;
} }
@ -69,17 +87,19 @@ struct ObjSmoothingGroup
inline bool operator==(const ObjSmoothingGroup &v1, const ObjSmoothingGroup &v2) inline bool operator==(const ObjSmoothingGroup &v1, const ObjSmoothingGroup &v2)
{ {
return return v1.vertexIdxFirst == v2.vertexIdxFirst &&
v1.vertexIdxFirst == v2.vertexIdxFirst &&
v1.smoothingGroupID == v2.smoothingGroupID; v1.smoothingGroupID == v2.smoothingGroupID;
} }
#define OBJ_VERTEX_COLOR_ALPHA 6
#define OBJ_VERTEX_LENGTH 7 // x, y, z, color_x,color_y,color_z,color_w
#define ONE_FACE_SIZE 4//ONE_FACE format: f 8/4/6 7/3/6 6/2/6 -1/-1/-1
struct ObjData { struct ObjData {
// Version of the data structure for load / store in the private binary format. // Version of the data structure for load / store in the private binary format.
int version; int version;
// x, y, z, w // x, y, z, color_x,color_y,color_z,color_w
std::vector<float> coordinates; std::vector<float> coordinates;
bool has_vertex_color{false};
// u, v, w // u, v, w
std::vector<float> textureCoordinates; std::vector<float> textureCoordinates;
// x, y, z // x, y, z
@ -97,7 +117,14 @@ struct ObjData {
std::vector<ObjVertex> vertices; std::vector<ObjVertex> vertices;
}; };
struct MtlData
{
// Version of the data structure for load / store in the private binary format.
int version;
std::unordered_map<std::string, std::shared_ptr<ObjNewMtl>> new_mtl_unmap;
};
extern bool objparse(const char *path, ObjData &data); extern bool objparse(const char *path, ObjData &data);
extern bool mtlparse(const char *path, MtlData &data);
extern bool objparse(std::istream &stream, ObjData &data); extern bool objparse(std::istream &stream, ObjData &data);
extern bool objbinsave(const char *path, const ObjData &data); extern bool objbinsave(const char *path, const ObjData &data);

View file

@ -1382,52 +1382,8 @@ namespace DoExport {
double total_used_filament = 0.0; double total_used_filament = 0.0;
double total_weight = 0.0; double total_weight = 0.0;
double total_cost = 0.0; double total_cost = 0.0;
for (auto volume : result.print_statistics.volumes_per_extruder) {
total_extruded_volume += volume.second;
size_t extruder_id = volume.first; for (auto volume : result.print_statistics.total_volumes_per_extruder) {
auto extruder = std::find_if(extruders.begin(), extruders.end(), [extruder_id](const Extruder& extr) { return extr.id() == extruder_id; });
if (extruder == extruders.end())
continue;
double s = PI * sqr(0.5* extruder->filament_diameter());
double weight = volume.second * extruder->filament_density() * 0.001;
total_used_filament += volume.second/s;
total_weight += weight;
total_cost += weight * extruder->filament_cost() * 0.001;
}
//BBS: add flush volume
for (auto volume : result.print_statistics.flush_per_filament) {
total_extruded_volume += volume.second;
size_t extruder_id = volume.first;
auto extruder = std::find_if(extruders.begin(), extruders.end(), [extruder_id](const Extruder& extr) { return extr.id() == extruder_id; });
if (extruder == extruders.end())
continue;
double s = PI * sqr(0.5* extruder->filament_diameter());
double weight = volume.second * extruder->filament_density() * 0.001;
total_used_filament += volume.second/s;
total_weight += weight;
total_cost += weight * extruder->filament_cost() * 0.001;
}
for (auto volume : result.print_statistics.wipe_tower_volumes_per_extruder) {
total_extruded_volume += volume.second;
size_t extruder_id = volume.first;
auto extruder = std::find_if(extruders.begin(), extruders.end(), [extruder_id](const Extruder& extr) {return extr.id() == extruder_id; });
if (extruder == extruders.end())
continue;
double s = PI * sqr(0.5* extruder->filament_diameter());
double weight = volume.second * extruder->filament_density() * 0.001;
total_used_filament += volume.second/s;
total_weight += weight;
total_cost += weight * extruder->filament_cost() * 0.001;
}
for (auto volume : result.print_statistics.support_volumes_per_extruder) {
total_extruded_volume += volume.second; total_extruded_volume += volume.second;
size_t extruder_id = volume.first; size_t extruder_id = volume.first;
@ -1447,7 +1403,7 @@ namespace DoExport {
print_statistics.total_weight = total_weight; print_statistics.total_weight = total_weight;
print_statistics.total_cost = total_cost; print_statistics.total_cost = total_cost;
print_statistics.filament_stats = result.print_statistics.volumes_per_extruder; print_statistics.filament_stats = result.print_statistics.model_volumes_per_extruder;
} }
// if any reserved keyword is found, returns a std::vector containing the first MAX_COUNT keywords found // if any reserved keyword is found, returns a std::vector containing the first MAX_COUNT keywords found

View file

@ -753,7 +753,7 @@ void GCodeProcessor::UsedFilaments::reset()
volumes_per_color_change = std::vector<double>(); volumes_per_color_change = std::vector<double>();
model_extrude_cache = 0.0f; model_extrude_cache = 0.0f;
volumes_per_extruder.clear(); model_volumes_per_extruder.clear();
flush_per_filament.clear(); flush_per_filament.clear();
@ -761,16 +761,20 @@ void GCodeProcessor::UsedFilaments::reset()
filaments_per_role.clear(); filaments_per_role.clear();
wipe_tower_cache = 0.0f; wipe_tower_cache = 0.0f;
wipe_tower_volume_per_extruder.clear(); wipe_tower_volumes_per_extruder.clear();
support_volume_cache = 0.0f; support_volume_cache = 0.0f;
support_volume_per_extruder.clear(); support_volumes_per_extruder.clear();
total_volume_cache = 0.0f;
total_volumes_per_extruder.clear();
} }
void GCodeProcessor::UsedFilaments::increase_support_caches(double extruded_volume) void GCodeProcessor::UsedFilaments::increase_support_caches(double extruded_volume)
{ {
support_volume_cache += extruded_volume; support_volume_cache += extruded_volume;
role_cache += extruded_volume; role_cache += extruded_volume;
total_volume_cache += extruded_volume;
} }
void GCodeProcessor::UsedFilaments::increase_model_caches(double extruded_volume) void GCodeProcessor::UsedFilaments::increase_model_caches(double extruded_volume)
@ -778,12 +782,14 @@ void GCodeProcessor::UsedFilaments::increase_model_caches(double extruded_volume
color_change_cache += extruded_volume; color_change_cache += extruded_volume;
model_extrude_cache += extruded_volume; model_extrude_cache += extruded_volume;
role_cache += extruded_volume; role_cache += extruded_volume;
total_volume_cache += extruded_volume;
} }
void GCodeProcessor::UsedFilaments::increase_wipe_tower_caches(double extruded_volume) void GCodeProcessor::UsedFilaments::increase_wipe_tower_caches(double extruded_volume)
{ {
wipe_tower_cache += extruded_volume; wipe_tower_cache += extruded_volume;
role_cache += extruded_volume; role_cache += extruded_volume;
total_volume_cache += extruded_volume;
} }
void GCodeProcessor::UsedFilaments::process_color_change_cache() void GCodeProcessor::UsedFilaments::process_color_change_cache()
@ -794,14 +800,27 @@ void GCodeProcessor::UsedFilaments::process_color_change_cache()
} }
} }
void GCodeProcessor::UsedFilaments::process_total_volume_cache(GCodeProcessor* processor)
{
size_t active_extruder_id = processor->m_extruder_id;
if (total_volume_cache!= 0.0f) {
if (total_volumes_per_extruder.find(active_extruder_id) != total_volumes_per_extruder.end())
total_volumes_per_extruder[active_extruder_id] += total_volume_cache;
else
total_volumes_per_extruder[active_extruder_id] = total_volume_cache;
total_volume_cache = 0.0f;
}
}
void GCodeProcessor::UsedFilaments::process_model_cache(GCodeProcessor* processor) void GCodeProcessor::UsedFilaments::process_model_cache(GCodeProcessor* processor)
{ {
size_t active_extruder_id = processor->m_extruder_id; size_t active_extruder_id = processor->m_extruder_id;
if (model_extrude_cache != 0.0f) { if (model_extrude_cache != 0.0f) {
if (volumes_per_extruder.find(active_extruder_id) != volumes_per_extruder.end()) if (model_volumes_per_extruder.find(active_extruder_id) != model_volumes_per_extruder.end())
volumes_per_extruder[active_extruder_id] += model_extrude_cache; model_volumes_per_extruder[active_extruder_id] += model_extrude_cache;
else else
volumes_per_extruder[active_extruder_id] = model_extrude_cache; model_volumes_per_extruder[active_extruder_id] = model_extrude_cache;
model_extrude_cache = 0.0f; model_extrude_cache = 0.0f;
} }
} }
@ -810,10 +829,10 @@ void GCodeProcessor::UsedFilaments::process_wipe_tower_cache(GCodeProcessor* pro
{ {
size_t active_extruder_id = processor->m_extruder_id; size_t active_extruder_id = processor->m_extruder_id;
if (wipe_tower_cache != 0.0f) { if (wipe_tower_cache != 0.0f) {
if (wipe_tower_volume_per_extruder.find(active_extruder_id) != wipe_tower_volume_per_extruder.end()) if (wipe_tower_volumes_per_extruder.find(active_extruder_id) != wipe_tower_volumes_per_extruder.end())
wipe_tower_volume_per_extruder[active_extruder_id] += wipe_tower_cache; wipe_tower_volumes_per_extruder[active_extruder_id] += wipe_tower_cache;
else else
wipe_tower_volume_per_extruder[active_extruder_id] = wipe_tower_cache; wipe_tower_volumes_per_extruder[active_extruder_id] = wipe_tower_cache;
wipe_tower_cache = 0.0f; wipe_tower_cache = 0.0f;
} }
} }
@ -822,20 +841,27 @@ void GCodeProcessor::UsedFilaments::process_support_cache(GCodeProcessor* proces
{ {
size_t active_extruder_id = processor->m_extruder_id; size_t active_extruder_id = processor->m_extruder_id;
if (support_volume_cache != 0.0f){ if (support_volume_cache != 0.0f){
if (support_volume_per_extruder.find(active_extruder_id) != support_volume_per_extruder.end()) if (support_volumes_per_extruder.find(active_extruder_id) != support_volumes_per_extruder.end())
support_volume_per_extruder[active_extruder_id] += support_volume_cache; support_volumes_per_extruder[active_extruder_id] += support_volume_cache;
else else
support_volume_per_extruder[active_extruder_id] = support_volume_cache; support_volumes_per_extruder[active_extruder_id] = support_volume_cache;
support_volume_cache = 0.0f; support_volume_cache = 0.0f;
} }
} }
void GCodeProcessor::UsedFilaments::update_flush_per_filament(size_t extrude_id, float flush_volume) void GCodeProcessor::UsedFilaments::update_flush_per_filament(size_t extrude_id, float flush_volume)
{ {
if (flush_per_filament.find(extrude_id) != flush_per_filament.end()) if (flush_volume != 0.f) {
flush_per_filament[extrude_id] += flush_volume; if (flush_per_filament.find(extrude_id) != flush_per_filament.end())
else flush_per_filament[extrude_id] += flush_volume;
flush_per_filament[extrude_id] = flush_volume; else
flush_per_filament[extrude_id] = flush_volume;
if (total_volumes_per_extruder.find(extrude_id) != total_volumes_per_extruder.end())
total_volumes_per_extruder[extrude_id] += flush_volume;
else
total_volumes_per_extruder[extrude_id] = flush_volume;
}
} }
void GCodeProcessor::UsedFilaments::process_role_cache(GCodeProcessor* processor) void GCodeProcessor::UsedFilaments::process_role_cache(GCodeProcessor* processor)
@ -865,6 +891,7 @@ void GCodeProcessor::UsedFilaments::process_caches(GCodeProcessor* processor)
process_role_cache(processor); process_role_cache(processor);
process_wipe_tower_cache(processor); process_wipe_tower_cache(processor);
process_support_cache(processor); process_support_cache(processor);
process_total_volume_cache(processor);
} }
#if ENABLE_GCODE_VIEWER_STATISTICS #if ENABLE_GCODE_VIEWER_STATISTICS
@ -4542,6 +4569,7 @@ void GCodeProcessor::process_filaments(CustomGCode::Type code)
if (code == CustomGCode::ToolChange) { if (code == CustomGCode::ToolChange) {
m_used_filaments.process_model_cache(this); m_used_filaments.process_model_cache(this);
m_used_filaments.process_support_cache(this); m_used_filaments.process_support_cache(this);
m_used_filaments.process_total_volume_cache(this);
//BBS: reset remaining filament //BBS: reset remaining filament
m_remaining_volume = m_nozzle_volume; m_remaining_volume = m_nozzle_volume;
} }
@ -4573,11 +4601,12 @@ void GCodeProcessor::update_estimated_times_stats()
m_result.print_statistics.modes[static_cast<size_t>(PrintEstimatedStatistics::ETimeMode::Stealth)].reset(); m_result.print_statistics.modes[static_cast<size_t>(PrintEstimatedStatistics::ETimeMode::Stealth)].reset();
m_result.print_statistics.volumes_per_color_change = m_used_filaments.volumes_per_color_change; m_result.print_statistics.volumes_per_color_change = m_used_filaments.volumes_per_color_change;
m_result.print_statistics.volumes_per_extruder = m_used_filaments.volumes_per_extruder; m_result.print_statistics.model_volumes_per_extruder = m_used_filaments.model_volumes_per_extruder;
m_result.print_statistics.wipe_tower_volumes_per_extruder = m_used_filaments.wipe_tower_volume_per_extruder; m_result.print_statistics.wipe_tower_volumes_per_extruder = m_used_filaments.wipe_tower_volumes_per_extruder;
m_result.print_statistics.support_volumes_per_extruder = m_used_filaments.support_volume_per_extruder; m_result.print_statistics.support_volumes_per_extruder = m_used_filaments.support_volumes_per_extruder;
m_result.print_statistics.flush_per_filament = m_used_filaments.flush_per_filament; m_result.print_statistics.flush_per_filament = m_used_filaments.flush_per_filament;
m_result.print_statistics.used_filaments_per_role = m_used_filaments.filaments_per_role; m_result.print_statistics.used_filaments_per_role = m_used_filaments.filaments_per_role;
m_result.print_statistics.total_volumes_per_extruder = m_used_filaments.total_volumes_per_extruder;
} }
//BBS: ugly code... //BBS: ugly code...
@ -4587,8 +4616,8 @@ void GCodeProcessor::update_slice_warnings()
auto get_used_extruders = [this]() { auto get_used_extruders = [this]() {
std::vector<size_t> used_extruders; std::vector<size_t> used_extruders;
used_extruders.reserve(m_used_filaments.volumes_per_extruder.size()); used_extruders.reserve(m_used_filaments.total_volumes_per_extruder.size());
for (auto item : m_used_filaments.volumes_per_extruder) { for (auto item : m_used_filaments.total_volumes_per_extruder) {
used_extruders.push_back(item.first); used_extruders.push_back(item.first);
} }
return used_extruders; return used_extruders;

View file

@ -73,9 +73,10 @@ namespace Slic3r {
}; };
std::vector<double> volumes_per_color_change; std::vector<double> volumes_per_color_change;
std::map<size_t, double> volumes_per_extruder; std::map<size_t, double> model_volumes_per_extruder;
std::map<size_t, double> wipe_tower_volumes_per_extruder; std::map<size_t, double> wipe_tower_volumes_per_extruder;
std::map<size_t, double> support_volumes_per_extruder; std::map<size_t, double> support_volumes_per_extruder;
std::map<size_t, double> total_volumes_per_extruder;
//BBS: the flush amount of every filament //BBS: the flush amount of every filament
std::map<size_t, double> flush_per_filament; std::map<size_t, double> flush_per_filament;
std::map<ExtrusionRole, std::pair<double, double>> used_filaments_per_role; std::map<ExtrusionRole, std::pair<double, double>> used_filaments_per_role;
@ -92,7 +93,9 @@ namespace Slic3r {
volumes_per_color_change.clear(); volumes_per_color_change.clear();
volumes_per_color_change.shrink_to_fit(); volumes_per_color_change.shrink_to_fit();
wipe_tower_volumes_per_extruder.clear(); wipe_tower_volumes_per_extruder.clear();
volumes_per_extruder.clear(); model_volumes_per_extruder.clear();
support_volumes_per_extruder.clear();
total_volumes_per_extruder.clear();
flush_per_filament.clear(); flush_per_filament.clear();
used_filaments_per_role.clear(); used_filaments_per_role.clear();
total_filamentchanges = 0; total_filamentchanges = 0;
@ -500,17 +503,20 @@ namespace Slic3r {
std::vector<double> volumes_per_color_change; std::vector<double> volumes_per_color_change;
double model_extrude_cache; double model_extrude_cache;
std::map<size_t, double> volumes_per_extruder; std::map<size_t, double> model_volumes_per_extruder;
double wipe_tower_cache; double wipe_tower_cache;
std::map<size_t, double>wipe_tower_volume_per_extruder; std::map<size_t, double>wipe_tower_volumes_per_extruder;
double support_volume_cache; double support_volume_cache;
std::map<size_t, double>support_volume_per_extruder; std::map<size_t, double>support_volumes_per_extruder;
//BBS: the flush amount of every filament //BBS: the flush amount of every filament
std::map<size_t, double> flush_per_filament; std::map<size_t, double> flush_per_filament;
double total_volume_cache;
std::map<size_t, double>total_volumes_per_extruder;
double role_cache; double role_cache;
std::map<ExtrusionRole, std::pair<double, double>> filaments_per_role; std::map<ExtrusionRole, std::pair<double, double>> filaments_per_role;
@ -524,6 +530,7 @@ namespace Slic3r {
void process_model_cache(GCodeProcessor* processor); void process_model_cache(GCodeProcessor* processor);
void process_wipe_tower_cache(GCodeProcessor* processor); void process_wipe_tower_cache(GCodeProcessor* processor);
void process_support_cache(GCodeProcessor* processor); void process_support_cache(GCodeProcessor* processor);
void process_total_volume_cache(GCodeProcessor* processor);
void update_flush_per_filament(size_t extrude_id, float flush_length); void update_flush_per_filament(size_t extrude_id, float flush_length);
void process_role_cache(GCodeProcessor* processor); void process_role_cache(GCodeProcessor* processor);

View file

@ -160,10 +160,12 @@ VoronoiDiagram::detect_known_issues(const VoronoiDiagram &voronoi_diagram, Segme
return IssueType::FINITE_EDGE_WITH_NON_FINITE_VERTEX; return IssueType::FINITE_EDGE_WITH_NON_FINITE_VERTEX;
} else if (const IssueType cell_issue_type = detect_known_voronoi_cell_issues(voronoi_diagram, segment_begin, segment_end); cell_issue_type != IssueType::NO_ISSUE_DETECTED) { } else if (const IssueType cell_issue_type = detect_known_voronoi_cell_issues(voronoi_diagram, segment_begin, segment_end); cell_issue_type != IssueType::NO_ISSUE_DETECTED) {
return cell_issue_type; return cell_issue_type;
} else if (!VoronoiUtilsCgal::is_voronoi_diagram_planar_angle(voronoi_diagram, segment_begin, segment_end)) {
// Detection of non-planar Voronoi diagram detects at least GH issues #8474, #8514 and #8446.
return IssueType::NON_PLANAR_VORONOI_DIAGRAM;
} }
// BBS: test no problem in BBS
//} else if (!VoronoiUtilsCgal::is_voronoi_diagram_planar_angle(voronoi_diagram, segment_begin, segment_end)) {
// // Detection of non-planar Voronoi diagram detects at least GH issues #8474, #8514 and #8446.
// return IssueType::NON_PLANAR_VORONOI_DIAGRAM;
//}
return IssueType::NO_ISSUE_DETECTED; return IssueType::NO_ISSUE_DETECTED;
} }

View file

@ -24,9 +24,6 @@
#include "TriangleSelector.hpp" #include "TriangleSelector.hpp"
#include "Format/AMF.hpp" #include "Format/AMF.hpp"
#include "Format/OBJ.hpp"
#include "Format/STL.hpp"
#include "Format/STEP.hpp"
#include "Format/svg.hpp" #include "Format/svg.hpp"
// BBS // BBS
#include "FaceDetector.hpp" #include "FaceDetector.hpp"
@ -60,6 +57,9 @@
#define _L(s) Slic3r::I18N::translate(s) #define _L(s) Slic3r::I18N::translate(s)
namespace Slic3r { namespace Slic3r {
const std::vector<std::string> CONST_FILAMENTS = {
"", "4", "8", "0C", "1C", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "AC", "BC", "CC", "DC",
}; // 5 10 15 16
// BBS initialization of static variables // BBS initialization of static variables
std::map<size_t, ExtruderParams> Model::extruderParamsMap = { {0,{"",0,0}}}; std::map<size_t, ExtruderParams> Model::extruderParamsMap = { {0,{"",0,0}}};
GlobalSpeedMap Model::printSpeedMap{}; GlobalSpeedMap Model::printSpeedMap{};
@ -190,7 +190,12 @@ Model::~Model()
// Loading model from a file, it may be a simple geometry file as STL or OBJ, however it may be a project file as well. // Loading model from a file, it may be a simple geometry file as STL or OBJ, however it may be a project file as well.
Model Model::read_from_file(const std::string& input_file, DynamicPrintConfig* config, ConfigSubstitutionContext* config_substitutions, Model Model::read_from_file(const std::string& input_file, DynamicPrintConfig* config, ConfigSubstitutionContext* config_substitutions,
LoadStrategy options, PlateDataPtrs* plate_data, std::vector<Preset*>* project_presets, bool *is_xxx, Semver* file_version, Import3mfProgressFn proFn, LoadStrategy options, PlateDataPtrs* plate_data, std::vector<Preset*>* project_presets, bool *is_xxx, Semver* file_version, Import3mfProgressFn proFn,
ImportstlProgressFn stlFn, ImportStepProgressFn stepFn, StepIsUtf8Fn stepIsUtf8Fn, BBLProject* project, int plate_id) ImportstlProgressFn stlFn,
ImportStepProgressFn stepFn,
StepIsUtf8Fn stepIsUtf8Fn,
BBLProject * project,
int plate_id,
ObjImportColorFn objFn)
{ {
Model model; Model model;
@ -221,8 +226,46 @@ Model Model::read_from_file(const std::string& input_file, DynamicPrintConfig* c
result = load_stl(input_file.c_str(), &model, nullptr, stlFn); result = load_stl(input_file.c_str(), &model, nullptr, stlFn);
else if (boost::algorithm::iends_with(input_file, ".oltp")) else if (boost::algorithm::iends_with(input_file, ".oltp"))
result = load_stl(input_file.c_str(), &model, nullptr, stlFn,256); result = load_stl(input_file.c_str(), &model, nullptr, stlFn,256);
else if (boost::algorithm::iends_with(input_file, ".obj")) else if (boost::algorithm::iends_with(input_file, ".obj")) {
result = load_obj(input_file.c_str(), &model, message); ObjInfo obj_info;
result = load_obj(input_file.c_str(), &model, obj_info, message);
if (result){
unsigned char first_extruder_id;
if (obj_info.vertex_colors.size() > 0) {
std::vector<unsigned char> vertex_filament_ids;
if (objFn) { // 1.result is ok and pop up a dialog
objFn(obj_info.vertex_colors, false, vertex_filament_ids, first_extruder_id);
if (vertex_filament_ids.size() > 0) {
result = obj_import_vertex_color_deal(vertex_filament_ids, first_extruder_id, & model);
}
} else { // test //todo delete
vertex_filament_ids.push_back(2);
vertex_filament_ids.push_back(3);
vertex_filament_ids.push_back(4);
vertex_filament_ids.push_back(1); // 4
vertex_filament_ids.push_back(1);
vertex_filament_ids.push_back(1);
vertex_filament_ids.push_back(1);
vertex_filament_ids.push_back(1); // 8
result = obj_import_vertex_color_deal(vertex_filament_ids, first_extruder_id, &model);
}
} else if (obj_info.face_colors.size() > 0 && obj_info.has_uv_png == false) { // mtl file
std::vector<unsigned char> face_filament_ids;
if (objFn) { // 1.result is ok and pop up a dialog
objFn(obj_info.face_colors, obj_info.is_single_mtl, face_filament_ids, first_extruder_id);
if (face_filament_ids.size() > 0) {
result = obj_import_face_color_deal(face_filament_ids, first_extruder_id, &model);
}
}
} /*else if (obj_info.has_uv_png && obj_info.uvs.size() > 0) {
boost::filesystem::path full_path(input_file);
std::string obj_directory = full_path.parent_path().string();
obj_info.obj_dircetory = obj_directory;
result = false;
message = _L("Importing obj with png function is developing.");
}*/
}
}
else if (boost::algorithm::iends_with(input_file, ".svg")) else if (boost::algorithm::iends_with(input_file, ".svg"))
result = load_svg(input_file.c_str(), &model, message); result = load_svg(input_file.c_str(), &model, message);
//BBS: remove the old .amf.xml files //BBS: remove the old .amf.xml files
@ -2866,6 +2909,163 @@ void Model::setExtruderParams(const DynamicPrintConfig& config, int extruders_co
} }
} }
static void get_real_filament_id(const unsigned char &id, std::string &result) {
if (id < CONST_FILAMENTS.size()) {
result = CONST_FILAMENTS[id];
} else {
result = "";//error
}
};
bool Model::obj_import_vertex_color_deal(const std::vector<unsigned char> &vertex_filament_ids, const unsigned char &first_extruder_id, Model *model)
{
if (vertex_filament_ids.size() == 0) {
return false;
}
// 2.generate mmu_segmentation_facets
if (model->objects.size() == 1 ) {
auto obj = model->objects[0];
obj->config.set("extruder", first_extruder_id);
if (obj->volumes.size() == 1) {
enum VertexColorCase {
_3_SAME_COLOR,
_3_DIFF_COLOR,
_2_SAME_1_DIFF_COLOR,
};
auto calc_vertex_color_case = [](const unsigned char &c0, const unsigned char &c1, const unsigned char &c2, VertexColorCase &vertex_color_case,
unsigned char &iso_index) {
if (c0 == c1 && c1 == c2) {
vertex_color_case = VertexColorCase::_3_SAME_COLOR;
} else if (c0 != c1 && c1 != c2 && c0 != c2) {
vertex_color_case = VertexColorCase::_3_DIFF_COLOR;
} else if (c0 == c1) {
vertex_color_case = _2_SAME_1_DIFF_COLOR;
iso_index = 2;
} else if (c1 == c2) {
vertex_color_case = _2_SAME_1_DIFF_COLOR;
iso_index = 0;
} else if (c0 == c2) {
vertex_color_case = _2_SAME_1_DIFF_COLOR;
iso_index = 1;
} else {
std::cout << "error";
}
};
auto calc_tri_area = [](const Vec3f &v0, const Vec3f &v1, const Vec3f &v2) {
return std::abs((v0 - v1).cross(v0 - v2).norm()) / 2;
};
auto volume = obj->volumes[0];
volume->config.set("extruder", first_extruder_id);
auto face_count = volume->mesh().its.indices.size();
volume->mmu_segmentation_facets.reserve(face_count);
if (volume->mesh().its.vertices.size() != vertex_filament_ids.size()) {
return false;
}
for (size_t i = 0; i < volume->mesh().its.indices.size(); i++) {
auto face = volume->mesh().its.indices[i];
auto filament_id0 = vertex_filament_ids[face[0]];
auto filament_id1 = vertex_filament_ids[face[1]];
auto filament_id2 = vertex_filament_ids[face[2]];
if (filament_id0 <= 1 && filament_id1 <= 1 && filament_id2 <= 2) {
continue;
}
if (i == 0) {
std::cout << "";
}
VertexColorCase vertex_color_case;
unsigned char iso_index;
calc_vertex_color_case(filament_id0, filament_id1, filament_id2, vertex_color_case, iso_index);
switch (vertex_color_case) {
case _3_SAME_COLOR: {
std::string result;
get_real_filament_id(filament_id0, result);
volume->mmu_segmentation_facets.set_triangle_from_string(i, result);
break;
}
case _3_DIFF_COLOR: {
std::string result0, result1, result2;
get_real_filament_id(filament_id0, result0);
get_real_filament_id(filament_id1, result1);
get_real_filament_id(filament_id2, result2);
auto v0 = volume->mesh().its.vertices[face[0]];
auto v1 = volume->mesh().its.vertices[face[1]];
auto v2 = volume->mesh().its.vertices[face[2]];
auto dir_0_1 = (v1 - v0).normalized();
auto dir_0_2 = (v2 - v0).normalized();
float sita0 = acos(dir_0_1.dot(dir_0_2));
auto dir_1_0 = -dir_0_1;
auto dir_1_2 = (v2 - v1).normalized();
float sita1 = acos(dir_1_0.dot(dir_1_2));
float sita2 = PI - sita0 - sita1;
std::array<float, 3> sitas = {sita0, sita1, sita2};
float max_sita = sitas[0];
int max_sita_vertex_index = 0;
for (size_t j = 1; j < sitas.size(); j++) {
if (sitas[j] > max_sita) {
max_sita_vertex_index = j;
max_sita = sitas[j];
}
}
if (max_sita_vertex_index == 0) {
volume->mmu_segmentation_facets.set_triangle_from_string(i, result0 + result1 + result2 + (result1 + result2 + "5" )+ "3"); //"1C0C2C0C1C13"
} else if (max_sita_vertex_index == 1) {
volume->mmu_segmentation_facets.set_triangle_from_string(i, result0 + result1 + result2 + (result0 + result2 + "9") + "3");
} else{// if (max_sita_vertex_index == 2)
volume->mmu_segmentation_facets.set_triangle_from_string(i, result0 + result1 + result2 + (result1 + result0 + "1") + "3");
}
break;
}
case _2_SAME_1_DIFF_COLOR: {
std::string result0, result1, result2;
get_real_filament_id(filament_id0, result0);
get_real_filament_id(filament_id1, result1);
get_real_filament_id(filament_id2, result2);
if (iso_index == 0) {
volume->mmu_segmentation_facets.set_triangle_from_string(i, result0 + result1 + result1 + "2");
} else if (iso_index == 1) {
volume->mmu_segmentation_facets.set_triangle_from_string(i, result1 + result0 + result0 + "6");
} else if (iso_index == 2) {
volume->mmu_segmentation_facets.set_triangle_from_string(i, result2 + result0 + result0 + "A");
}
break;
}
default: break;
}
}
return true;
}
}
return false;
}
bool Model::obj_import_face_color_deal(const std::vector<unsigned char> &face_filament_ids, const unsigned char &first_extruder_id, Model *model)
{
if (face_filament_ids.size() == 0) { return false; }
// 2.generate mmu_segmentation_facets
if (model->objects.size() == 1) {
auto obj = model->objects[0];
obj->config.set("extruder", first_extruder_id);
if (obj->volumes.size() == 1) {
auto volume = obj->volumes[0];
volume->config.set("extruder", first_extruder_id);
auto face_count = volume->mesh().its.indices.size();
volume->mmu_segmentation_facets.reserve(face_count);
if (volume->mesh().its.indices.size() != face_filament_ids.size()) { return false; }
for (size_t i = 0; i < volume->mesh().its.indices.size(); i++) {
auto face = volume->mesh().its.indices[i];
auto filament_id = face_filament_ids[i];
if (filament_id <= 1) { continue; }
std::string result;
get_real_filament_id(filament_id, result);
volume->mmu_segmentation_facets.set_triangle_from_string(i, result);
}
return true;
}
}
return false;
}
// update the maxSpeed of an object if it is different from the global configuration // update the maxSpeed of an object if it is different from the global configuration
double Model::findMaxSpeed(const ModelObject* object) { double Model::findMaxSpeed(const ModelObject* object) {
auto objectKeys = object->config.keys(); auto objectKeys = object->config.keys();

View file

@ -35,6 +35,7 @@
#include "Format/STEP.hpp" #include "Format/STEP.hpp"
//BBS: add stl //BBS: add stl
#include "Format/STL.hpp" #include "Format/STL.hpp"
#include "Format/OBJ.hpp"
#include <map> #include <map>
#include <memory> #include <memory>
@ -1564,8 +1565,16 @@ public:
DynamicPrintConfig* config = nullptr, ConfigSubstitutionContext* config_substitutions = nullptr, DynamicPrintConfig* config = nullptr, ConfigSubstitutionContext* config_substitutions = nullptr,
LoadStrategy options = LoadStrategy::AddDefaultInstances, PlateDataPtrs* plate_data = nullptr, LoadStrategy options = LoadStrategy::AddDefaultInstances, PlateDataPtrs* plate_data = nullptr,
std::vector<Preset*>* project_presets = nullptr, bool* is_xxx = nullptr, Semver* file_version = nullptr, Import3mfProgressFn proFn = nullptr, std::vector<Preset*>* project_presets = nullptr, bool* is_xxx = nullptr, Semver* file_version = nullptr, Import3mfProgressFn proFn = nullptr,
ImportstlProgressFn stlFn = nullptr, ImportStepProgressFn stepFn = nullptr, StepIsUtf8Fn stepIsUtf8Fn = nullptr, BBLProject* project = nullptr, int plate_id = 0); ImportstlProgressFn stlFn = nullptr,
ImportStepProgressFn stepFn = nullptr,
StepIsUtf8Fn stepIsUtf8Fn = nullptr,
BBLProject * project = nullptr,
int plate_id = 0,
ObjImportColorFn objFn = nullptr
);
// BBS // BBS
static bool obj_import_vertex_color_deal(const std::vector<unsigned char> &vertex_filament_ids, const unsigned char &first_extruder_id, Model *model);
static bool obj_import_face_color_deal(const std::vector<unsigned char> &face_filament_ids, const unsigned char &first_extruder_id, Model *model);
static double findMaxSpeed(const ModelObject* object); static double findMaxSpeed(const ModelObject* object);
static double getThermalLength(const ModelVolume* modelVolumePtr); static double getThermalLength(const ModelVolume* modelVolumePtr);
static double getThermalLength(const std::vector<ModelVolume*> modelVolumePtrs); static double getThermalLength(const std::vector<ModelVolume*> modelVolumePtrs);

View file

@ -0,0 +1,191 @@
#pragma once
#include <iostream>
#include <ctime>
#include "opencv2/opencv.hpp"
class QuantKMeans
{
public:
int m_alpha_thres;
cv::Mat m_flatten_labels;
cv::Mat m_centers8UC3;
QuantKMeans(int alpha_thres = 10) : m_alpha_thres(alpha_thres) {}
void apply(cv::Mat &ori_image, cv::Mat &new_image, int num_cluster, int color_space)
{
cv::Mat image;
convert_color_space(ori_image, image, color_space);
cv::Mat flatten_image = flatten(image);
apply(flatten_image, num_cluster, color_space);
replace_centers(ori_image, new_image);
}
void apply_aplha(cv::Mat &ori_image, cv::Mat &new_image, int num_cluster, int color_space)
{
// cout << " *** DoAlpha *** " << endl;
cv::Mat flatten_image8UC3 = flatten_alpha(ori_image);
cv::Mat image8UC3;
convert_color_space(flatten_image8UC3, image8UC3, color_space);
cv::Mat image32FC3(image8UC3.rows, 1, CV_32FC3);
for (int i = 0; i < image8UC3.rows; i++) image32FC3.at<cv::Vec3f>(i, 0) = image8UC3.at<cv::Vec3b>(i, 0);
apply(image32FC3, num_cluster, color_space);
repalce_centers_aplha(ori_image, new_image);
}
void apply(cv::Mat &flatten_image, int num_cluster, int color_space)
{
cv::Mat centers32FC3;
num_cluster = fmin(flatten_image.rows, num_cluster);
kmeans(flatten_image, num_cluster, this->m_flatten_labels, cv::TermCriteria(cv::TermCriteria::EPS + cv::TermCriteria::COUNT, 300, 0.5), 3, cv::KMEANS_PP_CENTERS,
centers32FC3);
this->m_centers8UC3 = cv::Mat(num_cluster, 1, CV_8UC3);
for (int i = 0; i < num_cluster; i++) this->m_centers8UC3.at<cv::Vec3b>(i) = centers32FC3.at<cv::Vec3f>(i);
convert_color_space(this->m_centers8UC3, this->m_centers8UC3, color_space, true);
}
void apply(const std::vector<std::array<float, 4>> &ori_colors,
std::vector<std::array<float, 4>> & cluster_results,
std::vector<int> & labels,
int num_cluster = -1,
int color_space = 2)
{
// 0~255
cv::Mat flatten_image8UC3 = flatten_vector(ori_colors);
cv::Mat image8UC3;
convert_color_space(flatten_image8UC3, image8UC3, color_space);
cv::Mat image32FC3(image8UC3.rows, 1, CV_32FC3);
for (int i = 0; i < image8UC3.rows; i++)
image32FC3.at<cv::Vec3f>(i, 0) = image8UC3.at<cv::Vec3b>(i, 0);
int best_cluster = 1;
double cur_score, best_score = 100;
int max_cluster = ori_colors.size();
num_cluster = fmin(num_cluster, max_cluster);
if (num_cluster < 1) {
cur_score = kmeans(image32FC3, 1, this->m_flatten_labels, cv::TermCriteria(cv::TermCriteria::EPS + cv::TermCriteria::COUNT, 300, 0.5), 3, cv::KMEANS_PP_CENTERS);
best_score = cur_score;
for (int cur_cluster = 2; cur_cluster < 16; cur_cluster++) {
if (cur_cluster > max_cluster)
break;
cur_score = kmeans(image32FC3, cur_cluster, this->m_flatten_labels, cv::TermCriteria(cv::TermCriteria::EPS + cv::TermCriteria::COUNT, 300, 0.5), 3,
cv::KMEANS_PP_CENTERS);
best_cluster = cur_score < best_score ? cur_cluster : best_cluster;
best_score = cur_score < best_score ? cur_score : best_score;
}
} else
best_cluster = num_cluster;
cv::Mat centers32FC3;
kmeans(image32FC3, best_cluster, this->m_flatten_labels, cv::TermCriteria(cv::TermCriteria::EPS + cv::TermCriteria::COUNT, 300, 0.5), 3, cv::KMEANS_PP_CENTERS,
centers32FC3);
this->m_centers8UC3 = cv::Mat(best_cluster, 1, CV_8UC3);
for (int i = 0; i < best_cluster; i++)
this->m_centers8UC3.at<cv::Vec3b>(i) = centers32FC3.at<cv::Vec3f>(i);
convert_color_space(this->m_centers8UC3, this->m_centers8UC3, color_space, true);
cluster_results.clear();
labels.clear();
for (int i = 0; i < ori_colors.size(); i++)
labels.emplace_back(this->m_flatten_labels.at<int>(i, 0));
for (int i = 0; i < best_cluster; i++) {
cv::Vec3f center = this->m_centers8UC3.at<cv::Vec3b>(i, 0);
cluster_results.emplace_back(std::array<float, 4>{center[0] / 255.f, center[1] / 255.f, center[2] / 255.f, 1.f});
}
}
void replace_centers(cv::Mat &ori_image, cv::Mat &new_image)
{
for (int i = 0; i < ori_image.rows; i++) {
for (int j = 0; j < ori_image.cols; j++) {
int idx = this->m_flatten_labels.at<int>(i * ori_image.cols + j, 0);
cv::Vec3b pixel = this->m_centers8UC3.at<cv::Vec3b>(idx);
new_image.at<cv::Vec3b>(i, j) = pixel;
}
}
}
void repalce_centers_aplha(cv::Mat &ori_image, cv::Mat &new_image)
{
int cnt = 0;
int idx;
cv::Vec3b center;
for (int i = 0; i < ori_image.rows; i++) {
for (int j = 0; j < ori_image.cols; j++) {
cv::Vec4b pixel = ori_image.at<cv::Vec4b>(i, j);
if ((int) pixel[3] < this->m_alpha_thres)
new_image.at<cv::Vec4b>(i, j) = pixel;
else {
idx = this->m_flatten_labels.at<int>(cnt++, 0);
center = this->m_centers8UC3.at<cv::Vec3b>(idx);
new_image.at<cv::Vec4b>(i, j) = cv::Vec4b(center[0], center[1], center[2], pixel[3]);
}
}
}
}
void convert_color_space(cv::Mat &ori_image, cv::Mat &image, int color_space, bool reverse = false)
{
switch (color_space) {
case 0: image = ori_image; break;
case 1:
if (reverse)
cvtColor(ori_image, image, cv::COLOR_HSV2BGR);
else
cvtColor(ori_image, image, cv::COLOR_BGR2HSV);
break;
case 2:
if (reverse)
cvtColor(ori_image, image, cv::COLOR_Lab2BGR);
else
cvtColor(ori_image, image, cv::COLOR_BGR2Lab);
break;
default: break;
}
}
cv::Mat flatten(cv::Mat &image)
{
int num_pixels = image.rows * image.cols;
cv::Mat img(num_pixels, 1, CV_32FC3);
for (int i = 0; i < image.rows; i++) {
for (int j = 0; j < image.cols; j++) {
cv::Vec3f pixel = image.at<cv::Vec3b>(i, j);
img.at<cv::Vec3f>(i * image.cols + j, 0) = pixel;
}
}
return img;
}
cv::Mat flatten_alpha(cv::Mat &image)
{
int num_pixels = image.rows * image.cols;
for (int i = 0; i < image.rows; i++)
for (int j = 0; j < image.cols; j++) {
cv::Vec4b pixel = image.at<cv::Vec4b>(i, j);
if ((int) pixel[3] < this->m_alpha_thres) num_pixels--;
}
cv::Mat img(num_pixels, 1, CV_8UC3);
int cnt = 0;
for (int i = 0; i < image.rows; i++) {
for (int j = 0; j < image.cols; j++) {
cv::Vec4b pixel = image.at<cv::Vec4b>(i, j);
if ((int) pixel[3] >= this->m_alpha_thres) img.at<cv::Vec3b>(cnt++, 0) = cv::Vec3b(pixel[0], pixel[1], pixel[2]);
}
}
return img;
}
cv::Mat flatten_vector(const std::vector<std::array<float, 4>> &ori_colors)
{
int num_pixels = ori_colors.size();
cv::Mat image8UC3(num_pixels, 1, CV_8UC3);
for (int i = 0; i < num_pixels; i++) {
std::array<float, 4> pixel = ori_colors[i];
image8UC3.at<cv::Vec3b>(i, 0) = cv::Vec3b((int) (pixel[0] * 255.f), (int) (pixel[1] * 255.f), (int) (pixel[2] * 255.f));
}
return image8UC3;
}
};

View file

@ -1138,6 +1138,8 @@ void PresetCollection::load_presets(
preset.filament_id = key_values[BBL_JSON_KEY_FILAMENT_ID]; preset.filament_id = key_values[BBL_JSON_KEY_FILAMENT_ID];
if (key_values.find(BBL_JSON_KEY_IS_CUSTOM) != key_values.end()) if (key_values.find(BBL_JSON_KEY_IS_CUSTOM) != key_values.end())
preset.custom_defined = key_values[BBL_JSON_KEY_IS_CUSTOM]; preset.custom_defined = key_values[BBL_JSON_KEY_IS_CUSTOM];
if (key_values.find(BBL_JSON_KEY_DESCRIPTION) != key_values.end())
preset.description = key_values[BBL_JSON_KEY_DESCRIPTION];
if (key_values.find("instantiation") != key_values.end()) if (key_values.find("instantiation") != key_values.end())
preset.is_visible = key_values["instantiation"] != "false"; preset.is_visible = key_values["instantiation"] != "false";

View file

@ -241,6 +241,7 @@ public:
std::string base_id; // base id of preset std::string base_id; // base id of preset
std::string sync_info; // enum: "delete", "create", "update", "" std::string sync_info; // enum: "delete", "create", "update", ""
std::string custom_defined; // enum: "1", "0", "" std::string custom_defined; // enum: "1", "0", ""
std::string description; //
long long updated_time{0}; //last updated time long long updated_time{0}; //last updated time
std::map<std::string, std::string> key_values; std::map<std::string, std::string> key_values;

View file

@ -1964,7 +1964,8 @@ std::set<std::string> PresetBundle::get_printer_names_by_printer_type_and_nozzle
if (printer_it->name.find(nozzle_diameter_str) != std::string::npos) printer_names.insert(printer_it->name); if (printer_it->name.find(nozzle_diameter_str) != std::string::npos) printer_names.insert(printer_it->name);
} }
assert(printer_names.size() == 1);
//assert(printer_names.size() == 1);
for (auto& printer_name : printer_names) { for (auto& printer_name : printer_names) {
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ << " printer name: " << printer_name; BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ << " printer name: " << printer_name;
@ -3463,7 +3464,7 @@ std::pair<PresetsConfigSubstitutions, size_t> PresetBundle::load_vendor_configs_
// Load the print, filament or printer preset. // Load the print, filament or printer preset.
std::string preset_name; std::string preset_name;
DynamicPrintConfig config; DynamicPrintConfig config;
std::string alias_name, inherits, instantiation, setting_id, filament_id; std::string alias_name, inherits, description, instantiation, setting_id, filament_id;
std::vector<std::string> renamed_from; std::vector<std::string> renamed_from;
const DynamicPrintConfig* default_config = nullptr; const DynamicPrintConfig* default_config = nullptr;
std::string reason; std::string reason;
@ -3480,7 +3481,8 @@ std::pair<PresetsConfigSubstitutions, size_t> PresetBundle::load_vendor_configs_
return reason; return reason;
} }
preset_name = key_values[BBL_JSON_KEY_NAME]; preset_name = key_values[BBL_JSON_KEY_NAME];
instantiation = key_values[BBL_JSON_KEY_INSTANTIATION]; description = key_values[BBL_JSON_KEY_DESCRIPTION];
instantiation = key_values[BBL_JSON_KEY_INSTANTIATION];
auto setting_it = key_values.find(BBL_JSON_KEY_SETTING_ID); auto setting_it = key_values.find(BBL_JSON_KEY_SETTING_ID);
if (setting_it != key_values.end()) if (setting_it != key_values.end())
setting_id = setting_it->second; setting_id = setting_it->second;
@ -3603,6 +3605,7 @@ std::pair<PresetsConfigSubstitutions, size_t> PresetBundle::load_vendor_configs_
loaded.is_system = true; loaded.is_system = true;
loaded.vendor = current_vendor_profile; loaded.vendor = current_vendor_profile;
loaded.version = current_vendor_profile->config_version; loaded.version = current_vendor_profile->config_version;
loaded.description = description;
loaded.setting_id = setting_id; loaded.setting_id = setting_id;
loaded.filament_id = filament_id; loaded.filament_id = filament_id;
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ << loaded.name << " load filament_id: " << filament_id; BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << " " << __LINE__ << loaded.name << " load filament_id: " << filament_id;

View file

@ -160,7 +160,8 @@ static t_config_enum_values s_keys_map_InfillPattern {
{ "archimedeanchords", ipArchimedeanChords }, { "archimedeanchords", ipArchimedeanChords },
{ "octagramspiral", ipOctagramSpiral }, { "octagramspiral", ipOctagramSpiral },
{ "supportcubic", ipSupportCubic }, { "supportcubic", ipSupportCubic },
{ "lightning", ipLightning } { "lightning", ipLightning },
{ "crosshatch", ipCrossHatch}
}; };
CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(InfillPattern) CONFIG_OPTION_ENUM_DEFINE_STATIC_MAPS(InfillPattern)
@ -2049,6 +2050,7 @@ def = this->add("filament_loading_speed", coFloats);
def->enum_values.push_back("octagramspiral"); def->enum_values.push_back("octagramspiral");
def->enum_values.push_back("supportcubic"); def->enum_values.push_back("supportcubic");
def->enum_values.push_back("lightning"); def->enum_values.push_back("lightning");
def->enum_values.push_back("crosshatch");
def->enum_labels.push_back(L("Concentric")); def->enum_labels.push_back(L("Concentric"));
def->enum_labels.push_back(L("Rectilinear")); def->enum_labels.push_back(L("Rectilinear"));
def->enum_labels.push_back(L("Grid")); def->enum_labels.push_back(L("Grid"));
@ -2066,6 +2068,7 @@ def = this->add("filament_loading_speed", coFloats);
def->enum_labels.push_back(L("Octagram Spiral")); def->enum_labels.push_back(L("Octagram Spiral"));
def->enum_labels.push_back(L("Support Cubic")); def->enum_labels.push_back(L("Support Cubic"));
def->enum_labels.push_back(L("Lightning")); def->enum_labels.push_back(L("Lightning"));
def->enum_labels.push_back(L("Cross Hatch"));
def->set_default_value(new ConfigOptionEnum<InfillPattern>(ipCubic)); def->set_default_value(new ConfigOptionEnum<InfillPattern>(ipCubic));
auto def_infill_anchor_min = def = this->add("infill_anchor", coFloatOrPercent); auto def_infill_anchor_min = def = this->add("infill_anchor", coFloatOrPercent);

View file

@ -69,7 +69,7 @@ enum AuthorizationType {
enum InfillPattern : int { enum InfillPattern : int {
ipConcentric, ipRectilinear, ipGrid, ipLine, ipCubic, ipTriangles, ipStars, ipGyroid, ipHoneycomb, ipAdaptiveCubic, ipMonotonic, ipMonotonicLine, ipAlignedRectilinear, ip3DHoneycomb, ipConcentric, ipRectilinear, ipGrid, ipLine, ipCubic, ipTriangles, ipStars, ipGyroid, ipHoneycomb, ipAdaptiveCubic, ipMonotonic, ipMonotonicLine, ipAlignedRectilinear, ip3DHoneycomb,
ipHilbertCurve, ipArchimedeanChords, ipOctagramSpiral, ipSupportCubic, ipSupportBase, ipConcentricInternal, ipHilbertCurve, ipArchimedeanChords, ipOctagramSpiral, ipSupportCubic, ipSupportBase, ipConcentricInternal,
ipLightning, ipLightning, ipCrossHatch,
ipCount, ipCount,
}; };

View file

@ -2333,9 +2333,17 @@ void PrintObject::bridge_over_infill()
}; };
// LAMBDA do determine optimal bridging angle // LAMBDA do determine optimal bridging angle
auto determine_bridging_angle = [](const Polygons &bridged_area, const Lines &anchors, InfillPattern dominant_pattern) { auto determine_bridging_angle = [](const Polygons &bridged_area, const Lines &anchors, InfillPattern dominant_pattern, double infill_direction) {
AABBTreeLines::LinesDistancer<Line> lines_tree(anchors); AABBTreeLines::LinesDistancer<Line> lines_tree(anchors);
// Check it the infill that require a fixed infill angle.
switch (dominant_pattern) {
case ip3DHoneycomb:
case ipCrossHatch:
return (infill_direction + 45.0) * 2.0 * M_PI / 360.;
default: break;
}
std::map<double, int> counted_directions; std::map<double, int> counted_directions;
for (const Polygon &p : bridged_area) { for (const Polygon &p : bridged_area) {
double acc_distance = 0; double acc_distance = 0;
@ -2715,11 +2723,12 @@ void PrintObject::bridge_over_infill()
double bridging_angle = 0; double bridging_angle = 0;
if (!anchors.empty()) { if (!anchors.empty()) {
bridging_angle = determine_bridging_angle(area_to_be_bridge, to_lines(anchors), bridging_angle = determine_bridging_angle(area_to_be_bridge, to_lines(anchors),
candidate.region->region().config().sparse_infill_pattern.value); candidate.region->region().config().sparse_infill_pattern.value,
candidate.region->region().config().infill_direction.value);
} else { } else {
// use expansion boundaries as anchors. // use expansion boundaries as anchors.
// Also, use Infill pattern that is neutral for angle determination, since there are no infill lines. // Also, use Infill pattern that is neutral for angle determination, since there are no infill lines.
bridging_angle = determine_bridging_angle(area_to_be_bridge, to_lines(boundary_plines), InfillPattern::ipLine); bridging_angle = determine_bridging_angle(area_to_be_bridge, to_lines(boundary_plines), InfillPattern::ipLine, 0);
} }
boundary_plines.insert(boundary_plines.end(), anchors.begin(), anchors.end()); boundary_plines.insert(boundary_plines.end(), anchors.begin(), anchors.end());

View file

@ -208,6 +208,8 @@ set(SLIC3R_GUI_SOURCES
GUI/Plater.hpp GUI/Plater.hpp
GUI/PartPlate.cpp GUI/PartPlate.cpp
GUI/PartPlate.hpp GUI/PartPlate.hpp
GUI/UserNotification.cpp
GUI/UserNotification.hpp
GUI/PresetComboBoxes.hpp GUI/PresetComboBoxes.hpp
GUI/PresetComboBoxes.cpp GUI/PresetComboBoxes.cpp
GUI/BitmapComboBox.hpp GUI/BitmapComboBox.hpp
@ -304,6 +306,8 @@ set(SLIC3R_GUI_SOURCES
GUI/CameraUtils.hpp GUI/CameraUtils.hpp
GUI/wxExtensions.cpp GUI/wxExtensions.cpp
GUI/wxExtensions.hpp GUI/wxExtensions.hpp
GUI/ObjColorDialog.cpp
GUI/ObjColorDialog.hpp
GUI/WipeTowerDialog.cpp GUI/WipeTowerDialog.cpp
GUI/RammingChart.cpp GUI/RammingChart.cpp
GUI/RammingChart.hpp GUI/RammingChart.hpp
@ -321,6 +325,8 @@ set(SLIC3R_GUI_SOURCES
GUI/ImGuiWrapper.cpp GUI/ImGuiWrapper.cpp
GUI/DeviceManager.hpp GUI/DeviceManager.hpp
GUI/DeviceManager.cpp GUI/DeviceManager.cpp
GUI/UserManager.hpp
GUI/UserManager.cpp
GUI/HttpServer.hpp GUI/HttpServer.hpp
GUI/HttpServer.cpp GUI/HttpServer.cpp
Config/Snapshot.cpp Config/Snapshot.cpp
@ -467,6 +473,24 @@ set(SLIC3R_GUI_SOURCES
Utils/json_diff.cpp Utils/json_diff.cpp
GUI/KBShortcutsDialog.hpp GUI/KBShortcutsDialog.hpp
GUI/KBShortcutsDialog.cpp GUI/KBShortcutsDialog.cpp
GUI/MultiMachine.hpp
GUI/MultiMachine.cpp
GUI/MultiMachinePage.hpp
GUI/MultiMachinePage.cpp
GUI/MultiMachineManagerPage.cpp
GUI/MultiMachineManagerPage.hpp
GUI/MultiPrintJob.cpp
GUI/MultiPrintJob.hpp
GUI/MultiSendMachineModel.hpp
GUI/MultiSendMachineModel.cpp
GUI/MultiTaskManagerPage.hpp
GUI/MultiTaskManagerPage.cpp
GUI/MultiTaskModel.hpp
GUI/MultiTaskModel.cpp
GUI/SendMultiMachinePage.hpp
GUI/SendMultiMachinePage.cpp
GUI/TaskManager.cpp
GUI/TaskManager.hpp
Utils/Http.cpp Utils/Http.cpp
Utils/Http.hpp Utils/Http.hpp
Utils/FixModelByWin10.cpp Utils/FixModelByWin10.cpp
@ -526,6 +550,7 @@ set(SLIC3R_GUI_SOURCES
GUI/calib_dlg.cpp GUI/calib_dlg.cpp
Utils/CalibUtils.cpp Utils/CalibUtils.cpp
Utils/CalibUtils.hpp Utils/CalibUtils.hpp
Utils/ProfileDescription.hpp
GUI/PrinterCloudAuthDialog.cpp GUI/PrinterCloudAuthDialog.cpp
GUI/PrinterCloudAuthDialog.hpp GUI/PrinterCloudAuthDialog.hpp
Utils/Obico.cpp Utils/Obico.cpp

View file

@ -8,12 +8,19 @@
#include <wx/colordlg.h> #include <wx/colordlg.h>
#include <wx/dcgraph.h> #include <wx/dcgraph.h>
#include "CalibUtils.hpp" #include "CalibUtils.hpp"
#include "../Utils/ColorSpaceConvert.hpp"
namespace Slic3r { namespace GUI { namespace Slic3r { namespace GUI {
wxDEFINE_EVENT(EVT_SELECTED_COLOR, wxCommandEvent); wxDEFINE_EVENT(EVT_SELECTED_COLOR, wxCommandEvent);
AMSMaterialsSetting::AMSMaterialsSetting(wxWindow *parent, wxWindowID id) static std::string float_to_string_with_precision(float value, int precision = 3)
{
std::stringstream stream;
stream << std::fixed << std::setprecision(precision) << value;
return stream.str();
}
AMSMaterialsSetting::AMSMaterialsSetting(wxWindow *parent, wxWindowID id)
: DPIDialog(parent, id, _L("AMS Materials Setting"), wxDefaultPosition, wxDefaultSize, wxBORDER_NONE) : DPIDialog(parent, id, _L("AMS Materials Setting"), wxDefaultPosition, wxDefaultSize, wxBORDER_NONE)
, m_color_picker_popup(ColorPickerPopup(this)) , m_color_picker_popup(ColorPickerPopup(this))
{ {
@ -281,6 +288,14 @@ void AMSMaterialsSetting::create_panel_kn(wxWindow* parent)
m_ratio_text->SetForegroundColour(wxColour(50, 58, 61)); m_ratio_text->SetForegroundColour(wxColour(50, 58, 61));
m_ratio_text->SetFont(Label::Head_14); m_ratio_text->SetFont(Label::Head_14);
m_ratio_text->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_HAND); });
m_ratio_text->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_ARROW); });
m_ratio_text->Bind(wxEVT_LEFT_DOWN, [this](auto& e) {
wxLaunchDefaultBrowser(wxT("https://wiki.bambulab.com/en/software/bambu-studio/calibration_pa"));
});
wxBoxSizer *m_sizer_cali_resutl = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer *m_sizer_cali_resutl = new wxBoxSizer(wxHORIZONTAL);
// pa profile // pa profile
m_title_pa_profile = new wxStaticText(parent, wxID_ANY, _L("PA Profile"), wxDefaultPosition, wxSize(AMS_MATERIALS_SETTING_LABEL_WIDTH, -1), 0); m_title_pa_profile = new wxStaticText(parent, wxID_ANY, _L("PA Profile"), wxDefaultPosition, wxSize(AMS_MATERIALS_SETTING_LABEL_WIDTH, -1), 0);
@ -750,6 +765,16 @@ bool AMSMaterialsSetting::Show(bool show)
m_input_nozzle_min->GetTextCtrl()->SetSize(wxSize(-1, FromDIP(20))); m_input_nozzle_min->GetTextCtrl()->SetSize(wxSize(-1, FromDIP(20)));
//m_clr_picker->set_color(m_clr_picker->GetParent()->GetBackgroundColour()); //m_clr_picker->set_color(m_clr_picker->GetParent()->GetBackgroundColour());
/*if (obj && (obj->is_function_supported(PrinterFunction::FUNC_EXTRUSION_CALI) || obj->is_high_printer_type())) {
m_ratio_text->Show();
m_k_param->Show();
m_input_k_val->Show();
}
else {
m_ratio_text->Hide();
m_k_param->Hide();
m_input_k_val->Hide();
}*/
m_ratio_text->Show(); m_ratio_text->Show();
m_k_param->Show(); m_k_param->Show();
m_input_k_val->Show(); m_input_k_val->Show();
@ -922,8 +947,8 @@ void AMSMaterialsSetting::on_select_cali_result(wxCommandEvent &evt)
{ {
m_pa_cali_select_id = evt.GetSelection(); m_pa_cali_select_id = evt.GetSelection();
if (m_pa_cali_select_id >= 0) { if (m_pa_cali_select_id >= 0) {
m_input_k_val->GetTextCtrl()->SetValue(std::to_string(m_pa_profile_items[m_pa_cali_select_id].k_value)); m_input_k_val->GetTextCtrl()->SetValue(float_to_string_with_precision(m_pa_profile_items[m_pa_cali_select_id].k_value));
m_input_n_val->GetTextCtrl()->SetValue(std::to_string(m_pa_profile_items[m_pa_cali_select_id].n_coef)); m_input_n_val->GetTextCtrl()->SetValue(float_to_string_with_precision(m_pa_profile_items[m_pa_cali_select_id].n_coef));
} }
else{ else{
m_input_k_val->GetTextCtrl()->SetValue(std::to_string(0.00)); m_input_k_val->GetTextCtrl()->SetValue(std::to_string(0.00));
@ -1012,6 +1037,8 @@ void AMSMaterialsSetting::on_select_filament(wxCommandEvent &evt)
m_button_confirm->SetBorderColor(wxColour(0x90, 0x90, 0x90)); m_button_confirm->SetBorderColor(wxColour(0x90, 0x90, 0x90));
m_comboBox_cali_result->Clear(); m_comboBox_cali_result->Clear();
m_comboBox_cali_result->SetValue(wxEmptyString); m_comboBox_cali_result->SetValue(wxEmptyString);
m_input_k_val->GetTextCtrl()->SetValue(wxEmptyString);
m_input_n_val->GetTextCtrl()->SetValue(wxEmptyString);
return; return;
} }
else { else {
@ -1076,8 +1103,8 @@ void AMSMaterialsSetting::on_select_filament(wxCommandEvent &evt)
} }
if (cali_select_idx >= 0) { if (cali_select_idx >= 0) {
m_input_k_val->GetTextCtrl()->SetValue(std::to_string(m_pa_profile_items[cali_select_idx].k_value)); m_input_k_val->GetTextCtrl()->SetValue(float_to_string_with_precision(m_pa_profile_items[cali_select_idx].k_value));
m_input_n_val->GetTextCtrl()->SetValue(std::to_string(m_pa_profile_items[cali_select_idx].n_coef)); m_input_n_val->GetTextCtrl()->SetValue(float_to_string_with_precision(m_pa_profile_items[cali_select_idx].n_coef));
} }
} }
else { else {
@ -1121,7 +1148,6 @@ ColorPicker::ColorPicker(wxWindow* parent, wxWindowID id, const wxPoint& pos /*=
m_bitmap_border = create_scaled_bitmap("color_picker_border", nullptr, 25); m_bitmap_border = create_scaled_bitmap("color_picker_border", nullptr, 25);
m_bitmap_border_dark = create_scaled_bitmap("color_picker_border_dark", nullptr, 25); m_bitmap_border_dark = create_scaled_bitmap("color_picker_border_dark", nullptr, 25);
m_bitmap_transparent_def = create_scaled_bitmap("transparent_color_picker", nullptr, 25);
m_bitmap_transparent = create_scaled_bitmap("transparent_color_picker", nullptr, 25); m_bitmap_transparent = create_scaled_bitmap("transparent_color_picker", nullptr, 25);
} }
@ -1185,12 +1211,12 @@ void ColorPicker::doRender(wxDC& dc)
if (m_selected) radius -= FromDIP(1); if (m_selected) radius -= FromDIP(1);
if (alpha == 0) { if (alpha == 0) {
dc.DrawBitmap(m_bitmap_transparent_def, 0, 0); dc.DrawBitmap(m_bitmap_transparent, 0, 0);
} }
else if (alpha != 254 && alpha != 255) { else if (alpha != 254 && alpha != 255) {
if (transparent_changed) { if (transparent_changed) {
std::string rgb = (m_colour.GetAsString(wxC2S_HTML_SYNTAX)).ToStdString(); std::string rgb = (m_colour.GetAsString(wxC2S_HTML_SYNTAX)).ToStdString();
if (rgb.size() == 9) { if (rgb.size() == 8) {
//delete alpha value //delete alpha value
rgb = rgb.substr(0, rgb.size() - 2); rgb = rgb.substr(0, rgb.size() - 2);
} }
@ -1201,8 +1227,8 @@ void ColorPicker::doRender(wxDC& dc)
replace.push_back(fill_replace); replace.push_back(fill_replace);
m_bitmap_transparent = ScalableBitmap(this, "transparent_color_picker", 25, false, false, true, replace).bmp(); m_bitmap_transparent = ScalableBitmap(this, "transparent_color_picker", 25, false, false, true, replace).bmp();
transparent_changed = false; transparent_changed = false;
dc.DrawBitmap(m_bitmap_transparent, 0, 0);
} }
dc.DrawBitmap(m_bitmap_transparent, 0, 0);
} }
else { else {
dc.SetPen(wxPen(m_colour)); dc.SetPen(wxPen(m_colour));
@ -1439,11 +1465,22 @@ ColorPickerPopup::ColorPickerPopup(wxWindow* parent)
void ColorPickerPopup::on_custom_clr_picker(wxMouseEvent& event) void ColorPickerPopup::on_custom_clr_picker(wxMouseEvent& event)
{ {
std::vector<std::string> colors = wxGetApp().app_config->get_custom_color_from_config();
for (int i = 0; i < colors.size(); i++) {
m_clrData->SetCustomColour(i, string_to_wxColor(colors[i]));
}
auto clr_dialog = new wxColourDialog(nullptr, m_clrData); auto clr_dialog = new wxColourDialog(nullptr, m_clrData);
wxColour picker_color; wxColour picker_color;
if (clr_dialog->ShowModal() == wxID_OK) { if (clr_dialog->ShowModal() == wxID_OK) {
m_clrData = &(clr_dialog->GetColourData()); m_clrData = &(clr_dialog->GetColourData());
if (colors.size() != CUSTOM_COLOR_COUNT) {
colors.resize(CUSTOM_COLOR_COUNT);
}
for (int i = 0; i < CUSTOM_COLOR_COUNT; i++) {
colors[i] = color_to_string(m_clrData->GetCustomColour(i));
}
wxGetApp().app_config->save_custom_color_to_config(colors);
picker_color = wxColour( picker_color = wxColour(
m_clrData->GetColour().Red(), m_clrData->GetColour().Red(),

View file

@ -5,8 +5,8 @@
#include "wxExtensions.hpp" #include "wxExtensions.hpp"
#include "GUI_Utils.hpp" #include "GUI_Utils.hpp"
#include "DeviceManager.hpp" #include "DeviceManager.hpp"
#include "wx/colourdata.h"
#include "wx/clrpicker.h" #include "wx/clrpicker.h"
#include "wx/colourdata.h"
#include "Widgets/RadioBox.hpp" #include "Widgets/RadioBox.hpp"
#include "Widgets/Button.hpp" #include "Widgets/Button.hpp"
#include "Widgets/RoundedRectangle.hpp" #include "Widgets/RoundedRectangle.hpp"
@ -36,7 +36,6 @@ public:
wxBitmap m_bitmap_border; wxBitmap m_bitmap_border;
wxBitmap m_bitmap_border_dark; wxBitmap m_bitmap_border_dark;
wxBitmap m_bitmap_transparent; wxBitmap m_bitmap_transparent;
wxBitmap m_bitmap_transparent_def; //default transparent material
wxColour m_colour; wxColour m_colour;
std::vector<wxColour> m_cols; std::vector<wxColour> m_cols;

View file

@ -193,6 +193,40 @@ void AMSSetting::create()
m_sizer_switch_filament_tip->Add(m_sizer_switch_filament_inline, 1, wxALIGN_CENTER, 0); m_sizer_switch_filament_tip->Add(m_sizer_switch_filament_inline, 1, wxALIGN_CENTER, 0);
// checkbox area 5
wxBoxSizer* m_sizer_air_print = new wxBoxSizer(wxHORIZONTAL);
m_checkbox_air_print = new ::CheckBox(m_panel_body);
m_checkbox_air_print->Bind(wxEVT_TOGGLEBUTTON, &AMSSetting::on_air_print_detect, this);
m_sizer_air_print->Add(m_checkbox_air_print, 0, wxTOP, 1);
m_sizer_air_print->Add(0, 0, 0, wxLEFT, 12);
m_title_air_print = new wxStaticText(m_panel_body, wxID_ANY, _L("Air Printing Detection"), wxDefaultPosition, wxDefaultSize, 0);
m_title_air_print->SetFont(::Label::Head_13);
m_title_air_print->SetForegroundColour(AMS_SETTING_GREY800);
m_title_air_print->Wrap(AMS_SETTING_BODY_WIDTH);
m_sizer_air_print->Add(m_title_air_print, 1, wxEXPAND, 0);
wxBoxSizer* m_sizer_air_print_tip = new wxBoxSizer(wxHORIZONTAL);
m_sizer_air_print_tip->Add(0, 0, 0, wxLEFT, 10);
// tip line
auto m_sizer_air_print_inline = new wxBoxSizer(wxVERTICAL);
m_tip_air_print_line = new Label(m_panel_body,
_L("Detects clogging and filament grinding, halting printing immediately to conserve time and filament.")
);
m_tip_air_print_line->SetFont(::Label::Body_13);
m_tip_air_print_line->SetForegroundColour(AMS_SETTING_GREY700);
m_tip_air_print_line->SetSize(wxSize(AMS_SETTING_BODY_WIDTH, -1));
m_tip_air_print_line->Wrap(AMS_SETTING_BODY_WIDTH);
m_sizer_air_print_inline->Add(m_tip_air_print_line, 0, wxEXPAND, 0);
m_sizer_air_print_tip->Add(m_sizer_air_print_inline, 1, wxALIGN_CENTER, 0);
m_checkbox_air_print->Hide();
m_title_air_print->Hide();
m_tip_air_print_line->Hide();
// panel img // panel img
wxPanel* m_panel_img = new wxPanel(m_panel_body, wxID_ANY, wxDefaultPosition, wxDefaultSize); wxPanel* m_panel_img = new wxPanel(m_panel_body, wxID_ANY, wxDefaultPosition, wxDefaultSize);
m_panel_img->SetBackgroundColour(AMS_SETTING_GREY200); m_panel_img->SetBackgroundColour(AMS_SETTING_GREY200);
@ -221,6 +255,11 @@ void AMSSetting::create()
m_sizerl_body->Add(m_sizer_switch_filament_tip, 0, wxLEFT, 18); m_sizerl_body->Add(m_sizer_switch_filament_tip, 0, wxLEFT, 18);
m_sizerl_body->Add(0, 0, 0, wxTOP, 6); m_sizerl_body->Add(0, 0, 0, wxTOP, 6);
m_sizerl_body->Add(0, 0, 0, wxTOP, FromDIP(5)); m_sizerl_body->Add(0, 0, 0, wxTOP, FromDIP(5));
m_sizerl_body->Add(m_sizer_air_print, 0, wxEXPAND | wxTOP, FromDIP(8));
m_sizerl_body->Add(0, 0, 0, wxTOP, 8);
m_sizerl_body->Add(m_sizer_air_print_tip, 0, wxLEFT, 18);
m_sizerl_body->Add(0, 0, 0, wxTOP, 6);
m_sizerl_body->Add(0, 0, 0, wxTOP, FromDIP(5));
m_sizerl_body->Add(m_panel_img, 1, wxEXPAND | wxALL, FromDIP(5)); m_sizerl_body->Add(m_panel_img, 1, wxEXPAND | wxALL, FromDIP(5));
m_panel_body->SetSizer(m_sizerl_body); m_panel_body->SetSizer(m_sizerl_body);
@ -285,6 +324,9 @@ void AMSSetting::update_insert_material_read_mode(bool selected, std::string ver
void AMSSetting::update_ams_img(std::string ams_icon_str) void AMSSetting::update_ams_img(std::string ams_icon_str)
{ {
if (wxGetApp().dark_mode()&& ams_icon_str=="extra_icon") {
ams_icon_str += "_dark";
}
m_am_img->SetBitmap(create_scaled_bitmap(ams_icon_str, nullptr, 126)); m_am_img->SetBitmap(create_scaled_bitmap(ams_icon_str, nullptr, 126));
} }
@ -336,6 +378,22 @@ void AMSSetting::update_switch_filament(bool selected)
m_checkbox_switch_filament->SetValue(selected); m_checkbox_switch_filament->SetValue(selected);
} }
void AMSSetting::update_air_printing_detection(bool selected)
{
if (false/*obj->is_support_air_print_detection*/) {
m_checkbox_air_print->Show();
m_title_air_print->Show();
m_tip_air_print_line->Show();
}
else {
m_checkbox_air_print->Hide();
m_title_air_print->Hide();
m_tip_air_print_line->Hide();
}
Layout();
m_checkbox_air_print->SetValue(selected);
}
void AMSSetting::on_select_ok(wxMouseEvent &event) void AMSSetting::on_select_ok(wxMouseEvent &event)
{ {
@ -415,6 +473,13 @@ void AMSSetting::on_switch_filament(wxCommandEvent& event)
event.Skip(); event.Skip();
} }
void AMSSetting::on_air_print_detect(wxCommandEvent& event)
{
bool air_print_detect = m_checkbox_air_print->GetValue();
obj->command_ams_air_print_detect(air_print_detect);
event.Skip();
}
wxString AMSSetting::append_title(wxString text) wxString AMSSetting::append_title(wxString text)
{ {
wxString lab; wxString lab;

View file

@ -33,11 +33,13 @@ public:
void update_starting_read_mode(bool selected); void update_starting_read_mode(bool selected);
void update_remain_mode(bool selected); void update_remain_mode(bool selected);
void update_switch_filament(bool selected); void update_switch_filament(bool selected);
void update_air_printing_detection(bool selected);
void on_select_ok(wxMouseEvent& event); void on_select_ok(wxMouseEvent& event);
void on_insert_material_read(wxCommandEvent &event); void on_insert_material_read(wxCommandEvent &event);
void on_starting_read(wxCommandEvent &event); void on_starting_read(wxCommandEvent &event);
void on_remain(wxCommandEvent& event); void on_remain(wxCommandEvent& event);
void on_switch_filament(wxCommandEvent& event); void on_switch_filament(wxCommandEvent& event);
void on_air_print_detect(wxCommandEvent& event);
wxString append_title(wxString text); wxString append_title(wxString text);
wxStaticText *append_text(wxString text); wxStaticText *append_text(wxString text);
MachineObject *obj{nullptr}; MachineObject *obj{nullptr};
@ -70,6 +72,10 @@ protected:
wxStaticText* m_title_switch_filament; wxStaticText* m_title_switch_filament;
Label* m_tip_switch_filament_line1; Label* m_tip_switch_filament_line1;
CheckBox* m_checkbox_air_print;
wxStaticText* m_title_air_print;
Label* m_tip_air_print_line;
wxStaticText *m_tip_ams_img; wxStaticText *m_tip_ams_img;
Button * m_button_auto_demarcate; Button * m_button_auto_demarcate;

View file

@ -412,6 +412,48 @@ void AmsMapingPopup::on_left_down(wxMouseEvent &evt)
} }
} }
void AmsMapingPopup::update_ams_data_multi_machines()
{
m_has_unmatch_filament = false;
for (auto& ams_container : m_amsmapping_container_list) {
ams_container->Hide();
}
for (wxWindow* mitem : m_mapping_item_list) {
mitem->Destroy();
mitem = nullptr;
}
m_mapping_item_list.clear();
if (m_amsmapping_container_sizer_list.size() > 0) {
for (wxBoxSizer* siz : m_amsmapping_container_sizer_list) {
siz->Clear(true);
}
}
int m_amsmapping_container_list_index = 0;
std::vector<TrayData> tray_datas;
for (int i = 0; i < 4; ++i) {
TrayData td;
td.id = i;
td.type = EMPTY;
td.colour = wxColour(166, 169, 170);
td.name = "";
td.filament_type = "";
td.ctype = 0;
tray_datas.push_back(td);
}
m_amsmapping_container_list[m_amsmapping_container_list_index]->Show();
add_ams_mapping(tray_datas, m_amsmapping_container_list[m_amsmapping_container_list_index], m_amsmapping_container_sizer_list[m_amsmapping_container_list_index]);
m_warning_text->Show(m_has_unmatch_filament);
Layout();
Fit();
}
void AmsMapingPopup::update_ams_data(std::map<std::string, Ams*> amsList) void AmsMapingPopup::update_ams_data(std::map<std::string, Ams*> amsList)
{ {
m_has_unmatch_filament = false; m_has_unmatch_filament = false;

View file

@ -157,6 +157,7 @@ public:
void update_materials_list(std::vector<std::string> list); void update_materials_list(std::vector<std::string> list);
void set_tag_texture(std::string texture); void set_tag_texture(std::string texture);
void update_ams_data(std::map<std::string, Ams *> amsList); void update_ams_data(std::map<std::string, Ams *> amsList);
void update_ams_data_multi_machines();
void add_ams_mapping(std::vector<TrayData> tray_data, wxWindow* container, wxBoxSizer* sizer); void add_ams_mapping(std::vector<TrayData> tray_data, wxWindow* container, wxBoxSizer* sizer);
void set_current_filament_id(int id){m_current_filament_id = id;}; void set_current_filament_id(int id){m_current_filament_id = id;};
int get_current_filament_id(){return m_current_filament_id;}; int get_current_filament_id(){return m_current_filament_id;};

View file

@ -54,6 +54,300 @@ wxString get_fail_reason(int code)
return _L("Unknown Failure"); return _L("Unknown Failure");
} }
PingCodeBindDialog::PingCodeBindDialog(Plater* plater /*= nullptr*/)
: DPIDialog(static_cast<wxWindow*>(wxGetApp().mainframe), wxID_ANY, _L("Bind with Pin Code"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX)
{
#ifdef __WINDOWS__
SetDoubleBuffered(true);
#endif //__WINDOWS__
wxBoxSizer* sizer_main = new wxBoxSizer(wxVERTICAL);
std::string icon_path = (boost::format("%1%/images/OrcaSlicerTitle.ico") % resources_dir()).str();
SetIcon(wxIcon(encode_path(icon_path.c_str()), wxBITMAP_TYPE_ICO));
SetBackgroundColour(*wxWHITE);
wxBoxSizer* m_sizer_main = new wxBoxSizer(wxVERTICAL);
auto m_line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL);
m_line_top->SetBackgroundColour(wxColour(166, 169, 170));
m_simplebook = new wxSimplebook(this);
m_simplebook->SetSize(wxSize(FromDIP(460), FromDIP(240)));
m_simplebook->SetMinSize(wxSize(FromDIP(460), FromDIP(240)));
m_simplebook->SetMaxSize(wxSize(FromDIP(460), FromDIP(240)));
request_bind_panel = new wxPanel(m_simplebook);
binding_panel = new wxPanel(m_simplebook);
request_bind_panel->SetSize(wxSize(FromDIP(460), FromDIP(240)));
request_bind_panel->SetMinSize(wxSize(FromDIP(460), FromDIP(240)));
request_bind_panel->SetMaxSize(wxSize(FromDIP(460), FromDIP(240)));
binding_panel->SetSize(wxSize(FromDIP(460), FromDIP(240)));
binding_panel->SetMinSize(wxSize(FromDIP(460), FromDIP(240)));
binding_panel->SetMaxSize(wxSize(FromDIP(460), FromDIP(240)));
request_bind_panel->SetBackgroundColour(*wxWHITE);
binding_panel->SetBackgroundColour(*wxWHITE);
m_status_text = new Label(request_bind_panel, _L("Please Find the Pin Code in Account page on printer screen,\n and type in the Pin Code below."));
m_status_text->SetBackgroundColour(*wxWHITE);
m_status_text->SetFont(Label::Body_14);
m_status_text->SetMaxSize(wxSize(FromDIP(440), -1));
m_status_text->Wrap(FromDIP(440));
m_status_text->SetForegroundColour(wxColour(38, 46, 48));
m_link_show_ping_code_wiki = new wxStaticText(request_bind_panel, wxID_ANY, _L("Can't find Pin Code?"));
m_link_show_ping_code_wiki->SetFont(Label::Body_14);
m_link_show_ping_code_wiki->SetBackgroundColour(*wxWHITE);
m_link_show_ping_code_wiki->SetForegroundColour(wxColour(31, 142, 234));
m_link_show_ping_code_wiki->Bind(wxEVT_ENTER_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_HAND); });
m_link_show_ping_code_wiki->Bind(wxEVT_LEAVE_WINDOW, [this](auto& e) {SetCursor(wxCURSOR_ARROW); });
m_link_show_ping_code_wiki->Bind(wxEVT_LEFT_DOWN, [this](auto& e) {
m_ping_code_wiki = "https://wiki.bambulab.com/en/bambu-studio/manual/pin-code";
wxLaunchDefaultBrowser(m_ping_code_wiki);
});
m_text_input_title = new wxStaticText(request_bind_panel, wxID_ANY, _L("Pin Code"));
m_text_input_title->SetFont(Label::Body_14);
m_text_input_title->SetBackgroundColour(*wxWHITE);
wxBoxSizer* ping_code_input = new wxBoxSizer(wxHORIZONTAL);
for (int i = 0; i < PING_CODE_LENGTH; i++) {
m_text_input_single_code[i] = new TextInput(request_bind_panel, wxEmptyString, "", "", wxDefaultPosition, wxSize(FromDIP(38), FromDIP(38)), wxTE_PROCESS_ENTER | wxTE_CENTER);
wxTextAttr textAttr;
textAttr.SetAlignment(wxTEXT_ALIGNMENT_CENTER);
textAttr.SetTextColour(wxColour(34, 139, 34));
m_text_input_single_code[i]->GetTextCtrl()->SetDefaultStyle(textAttr);
m_text_input_single_code[i]->SetFont(Label::Body_16);
m_text_input_single_code[i]->GetTextCtrl()->SetMaxLength(1);
m_text_input_single_code[i]->GetTextCtrl()->Bind(wxEVT_TEXT, &PingCodeBindDialog::on_text_changed, this);
m_text_input_single_code[i]->GetTextCtrl()->Bind(wxEVT_KEY_DOWN, &PingCodeBindDialog::on_key_backspace, this);
m_text_input_single_code[i]->GetTextCtrl()->Bind(wxEVT_CHAR, &PingCodeBindDialog::on_key_input, this);
ping_code_input->Add(m_text_input_single_code[i], 0, wxALL, FromDIP(5));
}
wxBoxSizer* m_sizer_button = new wxBoxSizer(wxHORIZONTAL);
m_sizer_button->Add(0, 0, 1, wxEXPAND, 5);
m_button_bind = new Button(request_bind_panel, _L("Confirm"));
StateColor btn_bg_green(std::pair<wxColour, int>(wxColour(206, 206, 206), StateColor::Disabled),
std::pair<wxColour, int>(wxColour(0, 137, 123), StateColor::Pressed),
std::pair<wxColour, int>(wxColour(38, 166, 154), StateColor::Hovered),
std::pair<wxColour, int>(wxColour(0, 150, 136), StateColor::Normal));
m_button_bind->SetBackgroundColor(btn_bg_green);
m_button_bind->SetBorderColor(*wxWHITE);
m_button_bind->SetTextColor(wxColour("#FFFFFE"));
m_button_bind->SetSize(BIND_DIALOG_BUTTON_SIZE);
m_button_bind->SetMinSize(BIND_DIALOG_BUTTON_SIZE);
m_button_bind->SetCornerRadius(FromDIP(12));
m_button_bind->Enable(false);
StateColor btn_bg_white(std::pair<wxColour, int>(wxColour(206, 206, 206), StateColor::Hovered),
std::pair<wxColour, int>(*wxWHITE, StateColor::Normal));
m_button_cancel = new Button(request_bind_panel, _L("Cancel"));
m_button_cancel->SetBackgroundColor(btn_bg_white);
m_button_cancel->SetBorderColor(BIND_DIALOG_GREY900);
m_button_cancel->SetSize(BIND_DIALOG_BUTTON_SIZE);
m_button_cancel->SetMinSize(BIND_DIALOG_BUTTON_SIZE);
m_button_cancel->SetTextColor(BIND_DIALOG_GREY900);
m_button_cancel->SetCornerRadius(FromDIP(12));
m_sizer_button->Add(m_button_bind, 0, wxALIGN_CENTER, 0);
m_sizer_button->Add(0, 0, 0, wxLEFT, FromDIP(13));
m_sizer_button->Add(m_button_cancel, 0, wxALIGN_CENTER, 0);
m_simplebook->AddPage(request_bind_panel, wxEmptyString, true);
m_simplebook->AddPage(binding_panel, wxEmptyString, false);
auto sizer_request = new wxBoxSizer(wxVERTICAL);
sizer_request->Add(0, 0, 0, wxTOP, FromDIP(10));
sizer_request->Add(m_status_text, 0, wxLEFT, FromDIP(13));
sizer_request->Add(0, 0, 0, wxTOP, FromDIP(10));
sizer_request->Add(m_link_show_ping_code_wiki, 0, wxLEFT, FromDIP(13));
sizer_request->Add(0, 0, 0, wxTOP, FromDIP(15));
sizer_request->Add(m_text_input_title, 0, wxLEFT, FromDIP(13));
sizer_request->Add(0, 0, 0, wxTOP, FromDIP(5));
sizer_request->Add(ping_code_input, 0, wxLEFT, FromDIP(10));
sizer_request->Add(0, 0, 0, wxTOP, FromDIP(10));
sizer_request->Add(m_sizer_button, 0, wxALIGN_RIGHT | wxRIGHT | wxBOTTOM, FromDIP(15));
request_bind_panel->SetSizer(sizer_request);
request_bind_panel->Layout();
request_bind_panel->Fit();
auto m_loading_txt = new Label(binding_panel, _L("Binding..."));
m_loading_txt->SetBackgroundColour(*wxWHITE);
m_loading_txt->SetFont(Label::Head_16);
auto m_loading_tip_txt = new Label(binding_panel, _L("Please confirm on the printer screen"));
m_loading_tip_txt->SetBackgroundColour(*wxWHITE);
m_loading_tip_txt->SetFont(Label::Body_15);
wxBoxSizer* m_sizer_binding_button = new wxBoxSizer(wxHORIZONTAL);
m_sizer_binding_button->Add(0, 0, 1, wxEXPAND, 5);
m_button_close = new Button(binding_panel, _L("Close"));
m_button_close->SetBackgroundColor(btn_bg_white);
m_button_close->SetBorderColor(BIND_DIALOG_GREY900);
m_button_close->SetSize(BIND_DIALOG_BUTTON_SIZE);
m_button_close->SetMinSize(BIND_DIALOG_BUTTON_SIZE);
m_button_close->SetTextColor(BIND_DIALOG_GREY900);
m_button_close->SetCornerRadius(FromDIP(12));
m_sizer_binding_button->Add(m_button_close, 0, wxALIGN_CENTER, 0);
auto sizer_binding = new wxBoxSizer(wxVERTICAL);
sizer_binding->Add(0, 0, 0, wxTOP, FromDIP(80));
sizer_binding->Add(m_loading_txt, 0, wxALIGN_CENTER, 0);
sizer_binding->Add(0, 0, 0, wxTOP, FromDIP(10));
sizer_binding->Add(m_loading_tip_txt, 0, wxALIGN_CENTER, 0);
sizer_binding->Add(0, 0, 0, wxTOP, FromDIP(30));
sizer_binding->Add(m_sizer_binding_button, 0, wxALIGN_RIGHT | wxRIGHT, FromDIP(20));
binding_panel->SetSizer(sizer_binding);
binding_panel->Layout();
binding_panel->Fit();
sizer_main->Add(m_line_top, 0, wxEXPAND, 0);
sizer_main->Add(m_simplebook, 0, wxEXPAND, 0);
SetSizer(sizer_main);
Layout();
Fit();
m_button_bind->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PingCodeBindDialog::on_bind_printer), NULL, this);
m_button_cancel->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PingCodeBindDialog::on_cancel), NULL, this);
m_button_close->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PingCodeBindDialog::on_cancel), NULL, this);
m_simplebook->SetSelection(0);
}
void PingCodeBindDialog::on_key_input(wxKeyEvent& evt)
{
int keyCode = evt.GetKeyCode();
if (keyCode == WXK_BACK || (keyCode >= '0' && keyCode <= '9') || (keyCode >= 'a' && keyCode <= 'z') || (keyCode >= 'A' && keyCode <= 'Z'))
{
evt.Skip();
}
else
{
wxBell();
return;
}
}
void PingCodeBindDialog::on_text_changed(wxCommandEvent& event) {
//switch focus to the text text input
wxTextCtrl* text_input = static_cast<wxTextCtrl*>(event.GetEventObject());
int idx = -1;
for (int i = 0; i < PING_CODE_LENGTH; i++) {
if (text_input == m_text_input_single_code[i]->GetTextCtrl()) {
idx = i;
break;
}
}
if (idx != -1 && text_input->GetValue().Length() == 1) {
if (idx < PING_CODE_LENGTH-1) {
m_text_input_single_code[idx + 1]->SetFocus();
}
auto has_empty = false;
for (int i = 0; i < PING_CODE_LENGTH; i++) {
if (m_text_input_single_code[i]->GetTextCtrl()->GetValue().ToStdString().empty()) {
has_empty = true;
}
}
if (has_empty) {
m_button_bind->Enable(false);
}
else {
m_button_bind->Enable(true);
}
/*if (idx == PING_CODE_LENGTH - 1) {
m_button_bind->Enable(true);
}*/
}
}
void PingCodeBindDialog::on_key_backspace(wxKeyEvent& event)
{
wxTextCtrl* text_input = static_cast<wxTextCtrl*>(event.GetEventObject());
int idx = -1;
for (int i = 0; i < 6; i++) {
if (text_input == m_text_input_single_code[i]->GetTextCtrl()) {
idx = i;
break;
}
}
if (event.GetKeyCode() == WXK_BACK && idx >= 0) {
CallAfter([this, idx]() {
m_text_input_single_code[idx - 1]->SetFocus();
m_button_bind->Enable(false);
});
}
event.Skip();
}
void PingCodeBindDialog::on_bind_printer(wxCommandEvent& event)
{
wxString ping_code;
for (int i = 0; i < PING_CODE_LENGTH; i++) {
ping_code += m_text_input_single_code[i]->GetTextCtrl()->GetValue().ToStdString();
}
NetworkAgent* agent = wxGetApp().getAgent();
if (agent && agent->is_user_login() && ping_code.length() == PING_CODE_LENGTH) {
auto result = agent->ping_bind(ping_code.ToStdString());
if(result < 0){
MessageDialog msg_wingow(nullptr, _L("Log in failed. Please check the Pin Code."), "", wxAPPLY | wxOK);
msg_wingow.ShowModal();
return;
}
m_simplebook->SetSelection(1);
}
}
void PingCodeBindDialog::on_cancel(wxCommandEvent& event)
{
EndModal(wxCLOSE);
}
void PingCodeBindDialog::on_dpi_changed(const wxRect& suggested_rect)
{
Fit();
Refresh();
}
PingCodeBindDialog::~PingCodeBindDialog() {
m_button_bind->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PingCodeBindDialog::on_bind_printer), NULL, this);
m_button_cancel->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PingCodeBindDialog::on_cancel), NULL, this);
m_button_close->Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(PingCodeBindDialog::on_cancel), NULL, this);
}
BindMachineDialog::BindMachineDialog(Plater *plater /*= nullptr*/) BindMachineDialog::BindMachineDialog(Plater *plater /*= nullptr*/)
: DPIDialog(static_cast<wxWindow *>(wxGetApp().mainframe), wxID_ANY, _L("Log in printer"), wxDefaultPosition, wxDefaultSize, wxCAPTION) : DPIDialog(static_cast<wxWindow *>(wxGetApp().mainframe), wxID_ANY, _L("Log in printer"), wxDefaultPosition, wxDefaultSize, wxCAPTION)
{ {

View file

@ -19,7 +19,6 @@
#include <wx/webrequest.h> #include <wx/webrequest.h>
#include <wx/hyperlink.h> #include <wx/hyperlink.h>
#include "wxExtensions.hpp" #include "wxExtensions.hpp"
#include "Plater.hpp"
#include "Widgets/StepCtrl.hpp" #include "Widgets/StepCtrl.hpp"
#include "Widgets/ProgressDialog.hpp" #include "Widgets/ProgressDialog.hpp"
#include "Widgets/Button.hpp" #include "Widgets/Button.hpp"
@ -29,15 +28,21 @@
#include "BBLStatusBar.hpp" #include "BBLStatusBar.hpp"
#include "BBLStatusBarBind.hpp" #include "BBLStatusBarBind.hpp"
#include "Jobs/Worker.hpp" #include "Jobs/Worker.hpp"
#include "GUI_Utils.hpp"
#include "Widgets/TextInput.hpp"
#include "Jobs/PrintJob.hpp"
#include "Jobs/SendJob.hpp"
#include "DeviceManager.hpp"
#define BIND_DIALOG_GREY200 wxColour(248, 248, 248) #define BIND_DIALOG_GREY200 wxColour(248, 248, 248)
#define BIND_DIALOG_GREY800 wxColour(50, 58, 61) #define BIND_DIALOG_GREY800 wxColour(50, 58, 61)
#define BIND_DIALOG_GREY900 wxColour(38, 46, 48) #define BIND_DIALOG_GREY900 wxColour(38, 46, 48)
#define BIND_DIALOG_BUTTON_SIZE wxSize(FromDIP(68), FromDIP(24)) #define BIND_DIALOG_BUTTON_SIZE wxSize(FromDIP(68), FromDIP(24))
#define BIND_DIALOG_BUTTON_PANEL_SIZE wxSize(FromDIP(450), FromDIP(30)) #define BIND_DIALOG_BUTTON_PANEL_SIZE wxSize(FromDIP(450), FromDIP(30))
#define PING_CODE_LENGTH 6
namespace Slic3r { namespace GUI { namespace Slic3r { namespace GUI {
class Plater;
struct MemoryStruct struct MemoryStruct
{ {
char * memory; char * memory;
@ -45,6 +50,47 @@ struct MemoryStruct
size_t size; size_t size;
}; };
class PingCodeBindDialog : public DPIDialog
{
private:
Label* m_status_text;
wxStaticText* m_text_input_title;
wxStaticText* m_link_show_ping_code_wiki;
TextInput* m_text_input_single_code[PING_CODE_LENGTH];
Button* m_button_bind;
Button* m_button_cancel;
Button* m_button_close;
wxSimplebook* m_simplebook;
wxPanel* request_bind_panel;
wxPanel* binding_panel;
wxScrolledWindow* m_sw_bind_failed_info;
Label* m_bind_failed_info;
Label* m_st_txt_error_code{ nullptr };
Label* m_st_txt_error_desc{ nullptr };
Label* m_st_txt_extra_info{ nullptr };
wxHyperlinkCtrl* m_link_network_state{ nullptr };
wxString m_result_info;
wxString m_result_extra;
wxString m_ping_code_wiki;
bool m_show_error_info_state = true;
int m_result_code;
std::shared_ptr<BBLStatusBarBind> m_status_bar;
public:
PingCodeBindDialog(Plater* plater = nullptr);
~PingCodeBindDialog();
void on_key_input(wxKeyEvent& evt);
void on_text_changed(wxCommandEvent& event);
void on_key_backspace(wxKeyEvent& event);
void on_cancel(wxCommandEvent& event);
void on_bind_printer(wxCommandEvent& event);
void on_dpi_changed(const wxRect& suggested_rect) override;
};
class BindMachineDialog : public DPIDialog class BindMachineDialog : public DPIDialog
{ {
private: private:

View file

@ -323,7 +323,7 @@ wxBitmap* BitmapCache::load_svg(const std::string &bitmap_name, unsigned target_
// map of color replaces // map of color replaces
std::map<std::string, std::string> replaces; std::map<std::string, std::string> replaces;
replaces["\"#0x00AE42\""] = "\"#009688\""; replaces["\"#0x00AE42\""] = "\"#009688\"";
replaces["\"#00FF00\""] = "\"#52c7b8\""; replaces["\"#00FF00\""] = "\"#52c7b8\"";
if (dark_mode) { if (dark_mode) {
replaces["\"#262E30\""] = "\"#EFEFF0\""; replaces["\"#262E30\""] = "\"#EFEFF0\"";
@ -334,7 +334,7 @@ replaces["\"#0x00AE42\""] = "\"#009688\"";
replaces["\"#6B6B6B\""] = "\"#818182\""; replaces["\"#6B6B6B\""] = "\"#818182\"";
replaces["\"#909090\""] = "\"#FFFFFF\""; replaces["\"#909090\""] = "\"#FFFFFF\"";
replaces["\"#00FF00\""] = "\"#FF0000\""; replaces["\"#00FF00\""] = "\"#FF0000\"";
replaces["\"#009688\""] = "\"#00675b\""; replaces["\"#009688\""] = "\"#00675b\"";
} }
//if (!new_color.empty()) //if (!new_color.empty())
// replaces["\"#ED6B21\""] = "\"" + new_color + "\""; // replaces["\"#ED6B21\""] = "\"" + new_color + "\"";

View file

@ -55,9 +55,10 @@ static wxString get_preset_name_by_filament_id(std::string filament_id)
return preset_name; return preset_name;
} }
HistoryWindow::HistoryWindow(wxWindow* parent, const std::vector<PACalibResult>& calib_results_history) HistoryWindow::HistoryWindow(wxWindow* parent, const std::vector<PACalibResult>& calib_results_history, bool& show)
: DPIDialog(parent, wxID_ANY, _L("Flow Dynamics Calibration Result"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE) : DPIDialog(parent, wxID_ANY, _L("Flow Dynamics Calibration Result"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE)
, m_calib_results_history(calib_results_history) , m_calib_results_history(calib_results_history)
, m_show_history_dialog(show)
{ {
this->SetBackgroundColour(*wxWHITE); this->SetBackgroundColour(*wxWHITE);
auto main_sizer = new wxBoxSizer(wxVERTICAL); auto main_sizer = new wxBoxSizer(wxVERTICAL);
@ -73,11 +74,11 @@ HistoryWindow::HistoryWindow(wxWindow* parent, const std::vector<PACalibResult>&
scroll_window->SetSizer(scroll_sizer); scroll_window->SetSizer(scroll_sizer);
Button * mew_btn = new Button(scroll_window, _L("New")); Button * mew_btn = new Button(scroll_window, _L("New"));
StateColor btn_bg_green(std::pair<wxColour, int>(wxColour(27, 136, 68), StateColor::Pressed), std::pair<wxColour, int>(wxColour(61, 203, 115), StateColor::Hovered), StateColor btn_bg_green(std::pair<wxColour, int>(wxColour(0, 137, 123), StateColor::Pressed), std::pair<wxColour, int>(wxColour(38, 166, 154), StateColor::Hovered),
std::pair<wxColour, int>(wxColour(0, 174, 66), StateColor::Normal)); std::pair<wxColour, int>(wxColour(0, 150, 136), StateColor::Normal));
mew_btn->SetBackgroundColour(*wxWHITE); mew_btn->SetBackgroundColour(*wxWHITE);
mew_btn->SetBackgroundColor(btn_bg_green); mew_btn->SetBackgroundColor(btn_bg_green);
mew_btn->SetBorderColor(wxColour(0, 174, 66)); mew_btn->SetBorderColor(wxColour(0, 150, 136));
mew_btn->SetTextColor(wxColour("#FFFFFE")); mew_btn->SetTextColor(wxColour("#FFFFFE"));
mew_btn->SetMinSize(wxSize(FromDIP(100), FromDIP(24))); mew_btn->SetMinSize(wxSize(FromDIP(100), FromDIP(24)));
mew_btn->SetMaxSize(wxSize(FromDIP(100), FromDIP(24))); mew_btn->SetMaxSize(wxSize(FromDIP(100), FromDIP(24)));
@ -138,11 +139,14 @@ HistoryWindow::HistoryWindow(wxWindow* parent, const std::vector<PACalibResult>&
m_refresh_timer->SetOwner(this); m_refresh_timer->SetOwner(this);
m_refresh_timer->Start(200); m_refresh_timer->Start(200);
Bind(wxEVT_TIMER, &HistoryWindow::on_timer, this); Bind(wxEVT_TIMER, &HistoryWindow::on_timer, this);
m_show_history_dialog = true;
} }
HistoryWindow::~HistoryWindow() HistoryWindow::~HistoryWindow()
{ {
m_refresh_timer->Stop(); m_refresh_timer->Stop();
m_show_history_dialog = false;
} }
void HistoryWindow::sync_history_result(MachineObject* obj) void HistoryWindow::sync_history_result(MachineObject* obj)
@ -364,6 +368,12 @@ float HistoryWindow::get_nozzle_value()
void HistoryWindow::on_click_new_button(wxCommandEvent& event) void HistoryWindow::on_click_new_button(wxCommandEvent& event)
{ {
if (curr_obj && curr_obj->get_printer_series() == PrinterSeries::SERIES_P1P && m_calib_results_history.size() >= 16) {
MessageDialog msg_dlg(nullptr, wxString::Format(_L("This machine type can only hold %d history results per nozzle."), 16), wxEmptyString, wxICON_WARNING | wxOK);
msg_dlg.ShowModal();
return;
}
NewCalibrationHistoryDialog dlg(this, m_calib_results_history); NewCalibrationHistoryDialog dlg(this, m_calib_results_history);
dlg.ShowModal(); dlg.ShowModal();
} }
@ -560,7 +570,7 @@ wxArrayString NewCalibrationHistoryDialog::get_all_filaments(const MachineObject
} }
NewCalibrationHistoryDialog::NewCalibrationHistoryDialog(wxWindow *parent, const std::vector<PACalibResult> history_results) NewCalibrationHistoryDialog::NewCalibrationHistoryDialog(wxWindow *parent, const std::vector<PACalibResult> history_results)
: DPIDialog(parent, wxID_ANY, _L("New Flow Dynamics Calibration"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE) : DPIDialog(parent, wxID_ANY, _L("New Flow Dynamic Calibration"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE)
, m_history_results(history_results) , m_history_results(history_results)
{ {
Slic3r::DeviceManager *dev = Slic3r::GUI::wxGetApp().getDeviceManager(); Slic3r::DeviceManager *dev = Slic3r::GUI::wxGetApp().getDeviceManager();
@ -570,6 +580,8 @@ NewCalibrationHistoryDialog::NewCalibrationHistoryDialog(wxWindow *parent, const
if (!obj) if (!obj)
return; return;
curr_obj = obj;
this->SetBackgroundColour(*wxWHITE); this->SetBackgroundColour(*wxWHITE);
auto main_sizer = new wxBoxSizer(wxVERTICAL); auto main_sizer = new wxBoxSizer(wxVERTICAL);
@ -628,11 +640,11 @@ NewCalibrationHistoryDialog::NewCalibrationHistoryDialog(wxWindow *parent, const
auto btn_sizer = new wxBoxSizer(wxHORIZONTAL); auto btn_sizer = new wxBoxSizer(wxHORIZONTAL);
Button * ok_btn = new Button(top_panel, _L("Ok")); Button * ok_btn = new Button(top_panel, _L("Ok"));
StateColor btn_bg_green(std::pair<wxColour, int>(wxColour(27, 136, 68), StateColor::Pressed), std::pair<wxColour, int>(wxColour(61, 203, 115), StateColor::Hovered), StateColor btn_bg_green(std::pair<wxColour, int>(wxColour(0, 137, 123), StateColor::Pressed), std::pair<wxColour, int>(wxColour(38, 166, 154), StateColor::Hovered),
std::pair<wxColour, int>(wxColour(0, 174, 66), StateColor::Normal)); std::pair<wxColour, int>(wxColour(0, 150, 136), StateColor::Normal));
ok_btn->SetBackgroundColour(*wxWHITE); ok_btn->SetBackgroundColour(*wxWHITE);
ok_btn->SetBackgroundColor(btn_bg_green); ok_btn->SetBackgroundColor(btn_bg_green);
ok_btn->SetBorderColor(wxColour(0, 174, 66)); ok_btn->SetBorderColor(wxColour(0, 150, 136));
ok_btn->SetTextColor(wxColour("#FFFFFE")); ok_btn->SetTextColor(wxColour("#FFFFFE"));
ok_btn->SetMinSize(wxSize(-1, FromDIP(24))); ok_btn->SetMinSize(wxSize(-1, FromDIP(24)));
ok_btn->SetCornerRadius(FromDIP(12)); ok_btn->SetCornerRadius(FromDIP(12));
@ -699,26 +711,18 @@ void NewCalibrationHistoryDialog::on_ok(wxCommandEvent &event)
// Check for duplicate names from history // Check for duplicate names from history
{ {
struct PACalibResult auto iter = std::find_if(m_history_results.begin(), m_history_results.end(), [this](const PACalibResult &item) {
{ return item.name == m_new_result.name && item.filament_id == m_new_result.filament_id;
size_t operator()(const std::pair<std::string, std::string> &item) const });
{
return std::hash<string>()(item.first) * std::hash<string>()(item.second);
}
};
std::unordered_set<std::pair<std::string, std::string>, PACalibResult> set;
set.insert({m_new_result.name, m_new_result.filament_id});
for (auto &result : m_history_results) { if (iter != m_history_results.end()) {
if (!set.insert({result.name, result.filament_id}).second) { MessageDialog msg_dlg(nullptr,
MessageDialog msg_dlg(nullptr, wxString::Format(_L("There is already a historical calibration result with the same name: %s. Only one of the results with the same name "
wxString::Format(_L("There is already a historical calibration result with the same name: %s. Only one of the results with the same name " "is saved. Are you sure you want to override the historical result?"),
"is saved. Are you sure you want to override the historical result?"), m_new_result.name),
result.name), wxEmptyString, wxICON_WARNING | wxYES_NO);
wxEmptyString, wxICON_WARNING | wxYES_NO); if (msg_dlg.ShowModal() != wxID_YES)
if (msg_dlg.ShowModal() != wxID_YES) return;
return;
}
} }
} }

View file

@ -11,7 +11,7 @@ namespace GUI {
class HistoryWindow : public DPIDialog { class HistoryWindow : public DPIDialog {
public: public:
HistoryWindow(wxWindow* parent, const std::vector<PACalibResult>& calib_results_history); HistoryWindow(wxWindow* parent, const std::vector<PACalibResult>& calib_results_history, bool& show);
~HistoryWindow(); ~HistoryWindow();
void on_dpi_changed(const wxRect& suggested_rect) {} void on_dpi_changed(const wxRect& suggested_rect) {}
void on_select_nozzle(wxCommandEvent& evt); void on_select_nozzle(wxCommandEvent& evt);
@ -33,6 +33,7 @@ protected:
wxTimer* m_refresh_timer { nullptr }; wxTimer* m_refresh_timer { nullptr };
bool& m_show_history_dialog;
std::vector<PACalibResult> m_calib_results_history; std::vector<PACalibResult> m_calib_results_history;
MachineObject* curr_obj { nullptr }; MachineObject* curr_obj { nullptr };
int history_version = -1; int history_version = -1;
@ -74,6 +75,7 @@ protected:
protected: protected:
PACalibResult m_new_result; PACalibResult m_new_result;
std::vector<PACalibResult> m_history_results; std::vector<PACalibResult> m_history_results;
MachineObject * curr_obj;
TextInput *m_name_value{nullptr}; TextInput *m_name_value{nullptr};
TextInput *m_k_value{nullptr}; TextInput *m_k_value{nullptr};

View file

@ -18,6 +18,7 @@ static const wxString NA_STR = _L("N/A");
static const float MIN_PA_K_VALUE = 0.0; static const float MIN_PA_K_VALUE = 0.0;
static const float MAX_PA_K_VALUE = 0.3; static const float MAX_PA_K_VALUE = 0.3;
static const float MIN_PA_K_VALUE_STEP = 0.001; static const float MIN_PA_K_VALUE_STEP = 0.001;
static const int MAX_PA_HISTORY_RESULTS_NUMS = 16;
std::map<int, Preset*> get_cached_selected_filament(MachineObject* obj) { std::map<int, Preset*> get_cached_selected_filament(MachineObject* obj) {
std::map<int, Preset*> selected_filament_map; std::map<int, Preset*> selected_filament_map;
@ -429,7 +430,7 @@ void PressureAdvanceWizard::on_cali_action(wxCommandEvent& evt)
{ {
CaliPageActionType action = static_cast<CaliPageActionType>(evt.GetInt()); CaliPageActionType action = static_cast<CaliPageActionType>(evt.GetInt());
if (action == CaliPageActionType::CALI_ACTION_MANAGE_RESULT) { if (action == CaliPageActionType::CALI_ACTION_MANAGE_RESULT) {
HistoryWindow history_dialog(this, m_calib_results_history); HistoryWindow history_dialog(this, m_calib_results_history, m_show_result_dialog);
history_dialog.on_device_connected(curr_obj); history_dialog.on_device_connected(curr_obj);
history_dialog.ShowModal(); history_dialog.ShowModal();
} }
@ -467,7 +468,17 @@ void PressureAdvanceWizard::on_cali_action(wxCommandEvent& evt)
void PressureAdvanceWizard::update(MachineObject* obj) void PressureAdvanceWizard::update(MachineObject* obj)
{ {
if (!obj)
return;
CalibrationWizard::update(obj); CalibrationWizard::update(obj);
if (!m_show_result_dialog) {
if (obj->cali_version != -1 && obj->cali_version != cali_version) {
cali_version = obj->cali_version;
CalibUtils::emit_get_PA_calib_info(obj->nozzle_diameter, "");
}
}
} }
void PressureAdvanceWizard::on_device_connected(MachineObject* obj) void PressureAdvanceWizard::on_device_connected(MachineObject* obj)
@ -648,11 +659,21 @@ void PressureAdvanceWizard::on_cali_start()
cali_page->set_pa_cali_image(int(pa_cali_method)); cali_page->set_pa_cali_image(int(pa_cali_method));
curr_obj->manual_pa_cali_method = pa_cali_method; curr_obj->manual_pa_cali_method = pa_cali_method;
CalibUtils::calib_generic_PA(calib_info, wx_err_string); if (curr_obj->pa_calib_tab.size() >= MAX_PA_HISTORY_RESULTS_NUMS) {
MessageDialog msg_dlg(nullptr, wxString::Format(_L("This machine type can only hold 16 history results per nozzle. "
"You can delete the existing historical results and then start calibration. "
"Or you can continue the calibration, but you cannot create new calibration historical results. \n"
"Do you still want to continue the calibration?"), MAX_PA_HISTORY_RESULTS_NUMS), wxEmptyString, wxICON_WARNING | wxYES | wxCANCEL);
if (msg_dlg.ShowModal() != wxID_YES) {
return;
}
}
if (!wx_err_string.empty()) { if (!CalibUtils::calib_generic_PA(calib_info, wx_err_string)) {
MessageDialog msg_dlg(nullptr, wx_err_string, wxEmptyString, wxICON_WARNING | wxOK); if (!wx_err_string.empty()) {
msg_dlg.ShowModal(); MessageDialog msg_dlg(nullptr, wx_err_string, wxEmptyString, wxICON_WARNING | wxOK);
msg_dlg.ShowModal();
}
return; return;
} }
@ -713,6 +734,30 @@ void PressureAdvanceWizard::on_cali_save()
if (!save_page->get_manual_result(new_pa_cali_result)) { if (!save_page->get_manual_result(new_pa_cali_result)) {
return; return;
} }
auto iter = std::find_if(curr_obj->pa_calib_tab.begin(), curr_obj->pa_calib_tab.end(), [&new_pa_cali_result](const PACalibResult &item) {
return item.name == new_pa_cali_result.name && item.filament_id == item.filament_id;
});
if (iter != curr_obj->pa_calib_tab.end()) {
MessageDialog
msg_dlg(nullptr,
wxString::Format(_L("There is already a historical calibration result with the same name: %s. Only one of the results with the same name "
"is saved. Are you sure you want to override the historical result?"),
new_pa_cali_result.name),
wxEmptyString, wxICON_WARNING | wxYES_NO);
if (msg_dlg.ShowModal() != wxID_YES)
return;
}
else if (curr_obj->pa_calib_tab.size() >= MAX_PA_HISTORY_RESULTS_NUMS) {
MessageDialog msg_dlg(nullptr,
wxString::Format(_L("This machine type can only hold %d history results per nozzle. This result will not be saved."), MAX_PA_HISTORY_RESULTS_NUMS),
wxEmptyString, wxICON_WARNING | wxOK);
msg_dlg.ShowModal();
return;
}
CalibUtils::set_PA_calib_result({new_pa_cali_result}, false); CalibUtils::set_PA_calib_result({new_pa_cali_result}, false);
} else { } else {
auto save_page = static_cast<CalibrationPASavePage *>(save_step->page); auto save_page = static_cast<CalibrationPASavePage *>(save_step->page);
@ -1020,7 +1065,13 @@ void FlowRateWizard::on_cali_start(CaliPresetStage stage, float cali_value, Flow
calib_info.filament_prest = temp_filament_preset; calib_info.filament_prest = temp_filament_preset;
if (cali_stage > 0) { if (cali_stage > 0) {
CalibUtils::calib_flowrate(cali_stage, calib_info, wx_err_string); if (!CalibUtils::calib_flowrate(cali_stage, calib_info, wx_err_string)) {
if (!wx_err_string.empty()) {
MessageDialog msg_dlg(nullptr, wx_err_string, wxEmptyString, wxICON_WARNING | wxOK);
msg_dlg.ShowModal();
}
return;
}
} }
else { else {
wx_err_string = _L("Internal Error") + wxString(": Invalid calibration stage"); wx_err_string = _L("Internal Error") + wxString(": Invalid calibration stage");

View file

@ -121,7 +121,9 @@ protected:
void on_device_connected(MachineObject* obj) override; void on_device_connected(MachineObject* obj) override;
bool m_show_result_dialog = false;
std::vector<PACalibResult> m_calib_results_history; std::vector<PACalibResult> m_calib_results_history;
int cali_version = -1;
}; };
class FlowRateWizard : public CalibrationWizard { class FlowRateWizard : public CalibrationWizard {

View file

@ -382,7 +382,7 @@ void CalibrationCaliPage::update_subtask(MachineObject* obj)
m_printing_panel->update_subtask_name(wxString::Format("%s", GUI::from_u8(obj->subtask_name))); m_printing_panel->update_subtask_name(wxString::Format("%s", GUI::from_u8(obj->subtask_name)));
if (obj->get_modeltask() && obj->get_modeltask()->design_id > 0) { if (obj->get_modeltask() && obj->get_modeltask()->design_id > 0) {
m_printing_panel->show_profile_info(true, wxString::FromUTF8(obj->get_modeltask()->profile_name)); m_printing_panel->show_profile_info(wxString::FromUTF8(obj->get_modeltask()->profile_name));
} }
else { else {
m_printing_panel->show_profile_info(false); m_printing_panel->show_profile_info(false);
@ -502,4 +502,4 @@ float CalibrationCaliPage::get_selected_calibration_nozzle_dia(MachineObject* ob
return 0.4; return 0.4;
} }
}} }}

View file

@ -1,3 +1,4 @@
#include <regex>
#include "CalibrationWizardPresetPage.hpp" #include "CalibrationWizardPresetPage.hpp"
#include "I18N.hpp" #include "I18N.hpp"
#include "Widgets/Label.hpp" #include "Widgets/Label.hpp"
@ -312,7 +313,7 @@ void CaliPresetCustomRangePanel::create_panel(wxWindow* parent)
m_title_texts[i]->Wrap(-1); m_title_texts[i]->Wrap(-1);
m_title_texts[i]->SetFont(::Label::Body_14); m_title_texts[i]->SetFont(::Label::Body_14);
item_sizer->Add(m_title_texts[i], 0, wxALL, 0); item_sizer->Add(m_title_texts[i], 0, wxALL, 0);
m_value_inputs[i] = new TextInput(parent, wxEmptyString, _L("\u2103"), "", wxDefaultPosition, CALIBRATION_FROM_TO_INPUT_SIZE, 0); m_value_inputs[i] = new TextInput(parent, wxEmptyString, wxString::FromUTF8("°C"), "", wxDefaultPosition, CALIBRATION_FROM_TO_INPUT_SIZE, 0);
m_value_inputs[i]->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC)); m_value_inputs[i]->GetTextCtrl()->SetValidator(wxTextValidator(wxFILTER_NUMERIC));
m_value_inputs[i]->GetTextCtrl()->Bind(wxEVT_TEXT, [this, i](wxCommandEvent& event) { m_value_inputs[i]->GetTextCtrl()->Bind(wxEVT_TEXT, [this, i](wxCommandEvent& event) {
std::string number = m_value_inputs[i]->GetTextCtrl()->GetValue().ToStdString(); std::string number = m_value_inputs[i]->GetTextCtrl()->GetValue().ToStdString();
@ -391,7 +392,7 @@ void CaliPresetTipsPanel::create_panel(wxWindow* parent)
auto nozzle_temp_sizer = new wxBoxSizer(wxVERTICAL); auto nozzle_temp_sizer = new wxBoxSizer(wxVERTICAL);
auto nozzle_temp_text = new Label(parent, _L("Nozzle temperature")); auto nozzle_temp_text = new Label(parent, _L("Nozzle temperature"));
nozzle_temp_text->SetFont(Label::Body_12); nozzle_temp_text->SetFont(Label::Body_12);
m_nozzle_temp = new TextInput(parent, wxEmptyString, _L("\u2103"), "", wxDefaultPosition, CALIBRATION_FROM_TO_INPUT_SIZE, wxTE_READONLY); m_nozzle_temp = new TextInput(parent, wxEmptyString, wxString::FromUTF8("°C"), "", wxDefaultPosition, CALIBRATION_FROM_TO_INPUT_SIZE, wxTE_READONLY);
m_nozzle_temp->SetBorderWidth(0); m_nozzle_temp->SetBorderWidth(0);
nozzle_temp_sizer->Add(nozzle_temp_text, 0, wxALIGN_LEFT); nozzle_temp_sizer->Add(nozzle_temp_text, 0, wxALIGN_LEFT);
nozzle_temp_sizer->Add(m_nozzle_temp, 0, wxEXPAND); nozzle_temp_sizer->Add(m_nozzle_temp, 0, wxEXPAND);
@ -406,7 +407,7 @@ void CaliPresetTipsPanel::create_panel(wxWindow* parent)
auto bed_temp_text = new Label(parent, _L("Bed temperature")); auto bed_temp_text = new Label(parent, _L("Bed temperature"));
bed_temp_text->SetFont(Label::Body_12); bed_temp_text->SetFont(Label::Body_12);
m_bed_temp = new Label(parent, _L("- \u2103")); m_bed_temp = new Label(parent, wxString::FromUTF8("- °C"));
m_bed_temp->SetFont(Label::Body_12); m_bed_temp->SetFont(Label::Body_12);
bed_temp_sizer->Add(bed_temp_text, 0, wxALIGN_CENTER | wxRIGHT, FromDIP(10)); bed_temp_sizer->Add(bed_temp_text, 0, wxALIGN_CENTER | wxRIGHT, FromDIP(10));
bed_temp_sizer->Add(m_bed_temp, 0, wxALIGN_CENTER); bed_temp_sizer->Add(m_bed_temp, 0, wxALIGN_CENTER);
@ -414,7 +415,7 @@ void CaliPresetTipsPanel::create_panel(wxWindow* parent)
auto max_flow_sizer = new wxBoxSizer(wxVERTICAL); auto max_flow_sizer = new wxBoxSizer(wxVERTICAL);
auto max_flow_text = new Label(parent, _L("Max volumetric speed")); auto max_flow_text = new Label(parent, _L("Max volumetric speed"));
max_flow_text->SetFont(Label::Body_12); max_flow_text->SetFont(Label::Body_12);
m_max_volumetric_speed = new TextInput(parent, wxEmptyString, _L("mm\u00B3"), "", wxDefaultPosition, CALIBRATION_FROM_TO_INPUT_SIZE, wxTE_READONLY); m_max_volumetric_speed = new TextInput(parent, wxEmptyString, wxString::FromUTF8("mm³"), "", wxDefaultPosition, CALIBRATION_FROM_TO_INPUT_SIZE, wxTE_READONLY);
m_max_volumetric_speed->SetBorderWidth(0); m_max_volumetric_speed->SetBorderWidth(0);
max_flow_sizer->Add(max_flow_text, 0, wxALIGN_LEFT); max_flow_sizer->Add(max_flow_text, 0, wxALIGN_LEFT);
max_flow_sizer->Add(m_max_volumetric_speed, 0, wxEXPAND); max_flow_sizer->Add(m_max_volumetric_speed, 0, wxEXPAND);
@ -1204,7 +1205,7 @@ void CalibrationPresetPage::update_show_status()
show_status(CaliPresetPageStatus::CaliPresetStatusInPrinting); show_status(CaliPresetPageStatus::CaliPresetStatusInPrinting);
return; return;
} }
else if (need_check_sdcard(obj_) && obj_->get_sdcard_state() == MachineObject::SdcardState::NO_SDCARD) { else if (!obj_->is_support_print_without_sd && (obj_->get_sdcard_state() == MachineObject::SdcardState::NO_SDCARD)) {
show_status(CaliPresetPageStatus::CaliPresetStatusNoSdcard); show_status(CaliPresetPageStatus::CaliPresetStatusNoSdcard);
return; return;
} }
@ -1424,10 +1425,10 @@ void CalibrationPresetPage::set_cali_method(CalibrationMethod method)
m_custom_range_panel->set_titles(titles); m_custom_range_panel->set_titles(titles);
wxArrayString values; wxArrayString values;
values.push_back(_L("0")); values.push_back(wxString::Format(wxT("%.0f"), 0));
values.push_back(_L("0.5")); values.push_back(wxString::Format(wxT("%.2f"), 0.05));
values.push_back(_L("0.005")); values.push_back(wxString::Format(wxT("%.3f"), 0.005));
m_custom_range_panel->set_values(values); m_custom_range_panel->set_values(values);
m_custom_range_panel->set_unit(""); m_custom_range_panel->set_unit("");
m_custom_range_panel->Show(); m_custom_range_panel->Show();
@ -1479,7 +1480,7 @@ void CalibrationPresetPage::on_cali_cancel_job()
{ {
BOOST_LOG_TRIVIAL(info) << "CalibrationWizard::print_job: enter canceled"; BOOST_LOG_TRIVIAL(info) << "CalibrationWizard::print_job: enter canceled";
if (CalibUtils::print_worker) { if (CalibUtils::print_worker) {
BOOST_LOG_TRIVIAL(info) << "calibration_print_job: canceled"; BOOST_LOG_TRIVIAL(info) << "calibration_print_job: canceled";
CalibUtils::print_worker->cancel_all(); CalibUtils::print_worker->cancel_all();
CalibUtils::print_worker->wait_for_idle(); CalibUtils::print_worker->wait_for_idle();
} }
@ -1913,7 +1914,7 @@ MaxVolumetricSpeedPresetPage::MaxVolumetricSpeedPresetPage(
titles.push_back(_L("Step")); titles.push_back(_L("Step"));
m_custom_range_panel->set_titles(titles); m_custom_range_panel->set_titles(titles);
m_custom_range_panel->set_unit(_L("mm\u00B3/s")); m_custom_range_panel->set_unit("mm³/s");
} }
} }
}} }}

View file

@ -150,7 +150,7 @@ public:
// returns true if the camera z axis (forward) is pointing in the negative direction of the world z axis // returns true if the camera z axis (forward) is pointing in the negative direction of the world z axis
bool is_looking_downward() const { return get_dir_forward().dot(Vec3d::UnitZ()) < 0.0; } bool is_looking_downward() const { return get_dir_forward().dot(Vec3d::UnitZ()) < 0.0; }
bool is_looking_front() const { return abs(get_dir_up().dot(Vec3d::UnitZ())-1) < 0.001; }
// forces camera right vector to be parallel to XY plane // forces camera right vector to be parallel to XY plane
void recover_from_free_camera() { void recover_from_free_camera() {
if (std::abs(get_dir_right()(2)) > EPSILON) if (std::abs(get_dir_right()(2)) > EPSILON)

File diff suppressed because it is too large Load diff

View file

@ -325,6 +325,9 @@ private:
std::string access_code; std::string access_code;
std::string user_access_code; std::string user_access_code;
// type, time stamp, delay
std::vector<std::tuple<std::string, uint64_t, uint64_t>> message_delay;
public: public:
enum LIGHT_EFFECT { enum LIGHT_EFFECT {
@ -488,6 +491,7 @@ public:
bool ams_power_on_flag { false }; bool ams_power_on_flag { false };
bool ams_calibrate_remain_flag { false }; bool ams_calibrate_remain_flag { false };
bool ams_auto_switch_filament_flag { false }; bool ams_auto_switch_filament_flag { false };
bool ams_air_print_status { false };
bool ams_support_use_ams { false }; bool ams_support_use_ams { false };
bool ams_support_virtual_tray { true }; bool ams_support_virtual_tray { true };
int ams_humidity; int ams_humidity;
@ -569,7 +573,7 @@ public:
int upgrade_display_state = 0; // 0 : upgrade unavailable, 1: upgrade idle, 2: upgrading, 3: upgrade_finished int upgrade_display_state = 0; // 0 : upgrade unavailable, 1: upgrade idle, 2: upgrading, 3: upgrade_finished
int upgrade_display_hold_count = 0; int upgrade_display_hold_count = 0;
PrinterFirmwareType firmware_type; // engineer|production PrinterFirmwareType firmware_type; // engineer|production
PrinterFirmwareType lifecycle { PrinterFirmwareType::FIRMEARE_TYPE_UKNOWN }; PrinterFirmwareType lifecycle { PrinterFirmwareType::FIRMWARE_TYPE_PRODUCTION };
std::string upgrade_progress; std::string upgrade_progress;
std::string upgrade_message; std::string upgrade_message;
std::string upgrade_status; std::string upgrade_status;
@ -615,6 +619,7 @@ public:
int curr_layer = 0; int curr_layer = 0;
int total_layers = 0; int total_layers = 0;
bool is_support_layer_num { false }; bool is_support_layer_num { false };
bool nozzle_blob_detection_enabled{ false };
int cali_version = -1; int cali_version = -1;
float cali_selected_nozzle_dia { 0.0 }; float cali_selected_nozzle_dia { 0.0 };
@ -754,6 +759,8 @@ public:
bool is_support_wait_sending_finish{false}; bool is_support_wait_sending_finish{false};
bool is_support_user_preset{false}; bool is_support_user_preset{false};
bool is_support_p1s_plus{false}; bool is_support_p1s_plus{false};
bool is_support_nozzle_blob_detection{false};
bool is_support_air_print_detection{false};
int nozzle_max_temperature = -1; int nozzle_max_temperature = -1;
int bed_temperature_limit = -1; int bed_temperature_limit = -1;
@ -844,6 +851,7 @@ public:
int command_ams_user_settings(int ams_id, bool start_read_opt, bool tray_read_opt, bool remain_flag = false); int command_ams_user_settings(int ams_id, bool start_read_opt, bool tray_read_opt, bool remain_flag = false);
int command_ams_user_settings(int ams_id, AmsOptionType op, bool value); int command_ams_user_settings(int ams_id, AmsOptionType op, bool value);
int command_ams_switch_filament(bool switch_filament); int command_ams_switch_filament(bool switch_filament);
int command_ams_air_print_detect(bool air_print_detect);
int command_ams_calibrate(int ams_id); int command_ams_calibrate(int ams_id);
int command_ams_filament_settings(int ams_id, int tray_id, std::string filament_id, std::string setting_id, std::string tray_color, std::string tray_type, int nozzle_temp_min, int nozzle_temp_max); int command_ams_filament_settings(int ams_id, int tray_id, std::string filament_id, std::string setting_id, std::string tray_color, std::string tray_type, int nozzle_temp_min, int nozzle_temp_max);
int command_ams_select_tray(std::string tray_id); int command_ams_select_tray(std::string tray_id);
@ -868,6 +876,8 @@ public:
// set print option // set print option
int command_set_printing_option(bool auto_recovery); int command_set_printing_option(bool auto_recovery);
int command_nozzle_blob_detect(bool nozzle_blob_detect);
// axis string is X, Y, Z, E // axis string is X, Y, Z, E
int command_axis_control(std::string axis, double unit = 1.0f, double input_val = 1.0f, int speed = 3000); int command_axis_control(std::string axis, double unit = 1.0f, double input_val = 1.0f, int speed = 3000);
@ -932,7 +942,7 @@ public:
int publish_json(std::string json_str, int qos = 0); int publish_json(std::string json_str, int qos = 0);
int cloud_publish_json(std::string json_str, int qos = 0); int cloud_publish_json(std::string json_str, int qos = 0);
int local_publish_json(std::string json_str, int qos = 0); int local_publish_json(std::string json_str, int qos = 0);
int parse_json(std::string payload); int parse_json(std::string payload, bool key_filed_only = false);
int publish_gcode(std::string gcode_str); int publish_gcode(std::string gcode_str);
std::string setting_id_to_type(std::string setting_id, std::string tray_type); std::string setting_id_to_type(std::string setting_id, std::string tray_type);
@ -946,14 +956,16 @@ public:
bool m_firmware_thread_started { false }; bool m_firmware_thread_started { false };
void get_firmware_info(); void get_firmware_info();
bool is_firmware_info_valid(); bool is_firmware_info_valid();
std::string get_string_from_fantype(FanType type);
}; };
class DeviceManager class DeviceManager
{ {
private: private:
NetworkAgent* m_agent { nullptr }; NetworkAgent* m_agent { nullptr };
public: public:
static bool EnableMultiMachine;
DeviceManager(NetworkAgent* agent = nullptr); DeviceManager(NetworkAgent* agent = nullptr);
~DeviceManager(); ~DeviceManager();
void set_agent(NetworkAgent* agent); void set_agent(NetworkAgent* agent);
@ -978,9 +990,14 @@ public:
bool set_selected_machine(std::string dev_id, bool need_disconnect = false); bool set_selected_machine(std::string dev_id, bool need_disconnect = false);
MachineObject* get_selected_machine(); MachineObject* get_selected_machine();
void add_user_subscribe();
void del_user_subscribe();
void subscribe_device_list(std::vector<std::string> dev_list);
/* return machine has access code and user machine if login*/ /* return machine has access code and user machine if login*/
std::map<std::string, MachineObject*> get_my_machine_list(); std::map<std::string, MachineObject*> get_my_machine_list();
std::map<std::string, MachineObject*> get_my_cloud_machine_list();
std::string get_first_online_user_machine(); std::string get_first_online_user_machine();
void modify_device_name(std::string dev_id, std::string dev_name); void modify_device_name(std::string dev_id, std::string dev_name);
void update_user_machine_list_info(); void update_user_machine_list_info();
@ -997,6 +1014,11 @@ public:
std::map<std::string, MachineObject*> get_local_machine_list(); std::map<std::string, MachineObject*> get_local_machine_list();
void load_last_machine(); void load_last_machine();
std::vector<std::string> subscribe_list_cache;
static void set_key_field_parsing(bool enable) { DeviceManager::key_field_only = enable; }
static bool key_field_only;
static json function_table; static json function_table;
static json filaments_blacklist; static json filaments_blacklist;

View file

@ -28,6 +28,7 @@
#include "Widgets/ComboBox.hpp" #include "Widgets/ComboBox.hpp"
#include "Widgets/TextCtrl.h" #include "Widgets/TextCtrl.h"
#include "../Utils/ColorSpaceConvert.hpp"
#ifdef __WXOSX__ #ifdef __WXOSX__
#define wxOSX true #define wxOSX true
#else #else
@ -1704,6 +1705,7 @@ void ColourPicker::BUILD()
if (parent_is_custom_ctrl && m_opt.height < 0) if (parent_is_custom_ctrl && m_opt.height < 0)
opt_height = (double)temp->GetSize().GetHeight() / m_em_unit; opt_height = (double)temp->GetSize().GetHeight() / m_em_unit;
temp->SetFont(Slic3r::GUI::wxGetApp().normal_font()); temp->SetFont(Slic3r::GUI::wxGetApp().normal_font());
convert_to_picker_widget(temp);
if (!wxOSX) temp->SetBackgroundStyle(wxBG_STYLE_PAINT); if (!wxOSX) temp->SetBackgroundStyle(wxBG_STYLE_PAINT);
wxGetApp().UpdateDarkUI(temp->GetPickerCtrl()); wxGetApp().UpdateDarkUI(temp->GetPickerCtrl());
@ -1760,6 +1762,7 @@ void ColourPicker::set_value(const boost::any& value, bool change_event)
boost::any& ColourPicker::get_value() boost::any& ColourPicker::get_value()
{ {
save_colors_to_config();
auto colour = static_cast<wxColourPickerCtrl*>(window)->GetColour(); auto colour = static_cast<wxColourPickerCtrl*>(window)->GetColour();
if (colour == wxTransparentColour) if (colour == wxTransparentColour)
m_value = std::string(""); m_value = std::string("");
@ -1798,6 +1801,44 @@ void ColourPicker::sys_color_changed()
#endif #endif
} }
void ColourPicker::on_button_click(wxCommandEvent &event) {
#if !defined(__linux__) && !defined(__LINUX__)
if (m_clrData) {
std::vector<std::string> colors = wxGetApp().app_config->get_custom_color_from_config();
for (int i = 0; i < colors.size(); i++) {
m_clrData->SetCustomColour(i, string_to_wxColor(colors[i]));
}
}
m_picker_widget->OnButtonClick(event);
#endif
}
void ColourPicker::convert_to_picker_widget(wxColourPickerCtrl *widget)
{
#if !defined(__linux__) && !defined(__LINUX__)
m_picker_widget = dynamic_cast<wxColourPickerWidget*>(widget->GetPickerCtrl());
if (m_picker_widget) {
m_picker_widget->Bind(wxEVT_BUTTON, &ColourPicker::on_button_click, this);
m_clrData = m_picker_widget->GetColourData();
}
#endif
}
void ColourPicker::save_colors_to_config() {
#if !defined(__linux__) && !defined(__LINUX__)
if (m_clrData) {
std::vector<std::string> colors;
if (colors.size() != CUSTOM_COLOR_COUNT) {
colors.resize(CUSTOM_COLOR_COUNT);
}
for (int i = 0; i < CUSTOM_COLOR_COUNT; i++) {
colors[i] = color_to_string(m_clrData->GetCustomColour(i));
}
wxGetApp().app_config->save_custom_color_to_config(colors);
}
#endif
}
void PointCtrl::BUILD() void PointCtrl::BUILD()
{ {
auto temp = new wxBoxSizer(wxHORIZONTAL); auto temp = new wxBoxSizer(wxHORIZONTAL);

View file

@ -481,6 +481,14 @@ public:
void enable() override { dynamic_cast<wxColourPickerCtrl*>(window)->Enable(); } void enable() override { dynamic_cast<wxColourPickerCtrl*>(window)->Enable(); }
void disable() override{ dynamic_cast<wxColourPickerCtrl*>(window)->Disable(); } void disable() override{ dynamic_cast<wxColourPickerCtrl*>(window)->Disable(); }
wxWindow* getWindow() override { return window; } wxWindow* getWindow() override { return window; }
private:
void convert_to_picker_widget(wxColourPickerCtrl *widget);
void on_button_click(wxCommandEvent &WXUNUSED(ev));
void save_colors_to_config();
private:
wxColourData* m_clrData{nullptr};
wxColourPickerWidget* m_picker_widget{nullptr};
}; };
class PointCtrl : public Field { class PointCtrl : public Field {

View file

@ -4183,10 +4183,10 @@ void GCodeViewer::render_all_plates_stats(const std::vector<const GCodeProcessor
auto plate_extruders = plate->get_extruders(true); auto plate_extruders = plate->get_extruders(true);
for (size_t extruder_id : plate_extruders) { for (size_t extruder_id : plate_extruders) {
extruder_id -= 1; extruder_id -= 1;
if (plate_print_statistics.volumes_per_extruder.find(extruder_id) == plate_print_statistics.volumes_per_extruder.end()) if (plate_print_statistics.model_volumes_per_extruder.find(extruder_id) == plate_print_statistics.model_volumes_per_extruder.end())
flushed_volume_of_extruders_all_plates[extruder_id] += 0; model_volume_of_extruders_all_plates[extruder_id] += 0;
else { else {
double model_volume = plate_print_statistics.volumes_per_extruder.at(extruder_id); double model_volume = plate_print_statistics.model_volumes_per_extruder.at(extruder_id);
model_volume_of_extruders_all_plates[extruder_id] += model_volume; model_volume_of_extruders_all_plates[extruder_id] += model_volume;
} }
if (plate_print_statistics.flush_per_filament.find(extruder_id) == plate_print_statistics.flush_per_filament.end()) if (plate_print_statistics.flush_per_filament.find(extruder_id) == plate_print_statistics.flush_per_filament.end())
@ -4736,12 +4736,12 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv
// used filament statistics // used filament statistics
for (size_t extruder_id : m_extruder_ids) { for (size_t extruder_id : m_extruder_ids) {
if (m_print_statistics.volumes_per_extruder.find(extruder_id) == m_print_statistics.volumes_per_extruder.end()) { if (m_print_statistics.model_volumes_per_extruder.find(extruder_id) == m_print_statistics.model_volumes_per_extruder.end()) {
model_used_filaments_m.push_back(0.0); model_used_filaments_m.push_back(0.0);
model_used_filaments_g.push_back(0.0); model_used_filaments_g.push_back(0.0);
} }
else { else {
double volume = m_print_statistics.volumes_per_extruder.at(extruder_id); double volume = m_print_statistics.model_volumes_per_extruder.at(extruder_id);
auto [model_used_filament_m, model_used_filament_g] = get_used_filament_from_volume(volume, extruder_id); auto [model_used_filament_m, model_used_filament_g] = get_used_filament_from_volume(volume, extruder_id);
model_used_filaments_m.push_back(model_used_filament_m); model_used_filaments_m.push_back(model_used_filament_m);
model_used_filaments_g.push_back(model_used_filament_g); model_used_filaments_g.push_back(model_used_filament_g);
@ -4862,9 +4862,9 @@ void GCodeViewer::render_legend(float &legend_height, int canvas_width, int canv
{ {
// calculate used filaments data // calculate used filaments data
for (size_t extruder_id : m_extruder_ids) { for (size_t extruder_id : m_extruder_ids) {
if (m_print_statistics.volumes_per_extruder.find(extruder_id) == m_print_statistics.volumes_per_extruder.end()) if (m_print_statistics.model_volumes_per_extruder.find(extruder_id) == m_print_statistics.model_volumes_per_extruder.end())
continue; continue;
double volume = m_print_statistics.volumes_per_extruder.at(extruder_id); double volume = m_print_statistics.model_volumes_per_extruder.at(extruder_id);
auto [model_used_filament_m, model_used_filament_g] = get_used_filament_from_volume(volume, extruder_id); auto [model_used_filament_m, model_used_filament_g] = get_used_filament_from_volume(volume, extruder_id);
model_used_filaments_m.push_back(model_used_filament_m); model_used_filaments_m.push_back(model_used_filament_m);

View file

@ -35,6 +35,8 @@ wxDEFINE_EVENT(EVT_GLTOOLBAR_EXPORT_ALL_SLICED_FILE, SimpleEvent);
wxDEFINE_EVENT(EVT_GLTOOLBAR_PRINT_SELECT, SimpleEvent); wxDEFINE_EVENT(EVT_GLTOOLBAR_PRINT_SELECT, SimpleEvent);
wxDEFINE_EVENT(EVT_GLTOOLBAR_SEND_TO_PRINTER, SimpleEvent); wxDEFINE_EVENT(EVT_GLTOOLBAR_SEND_TO_PRINTER, SimpleEvent);
wxDEFINE_EVENT(EVT_GLTOOLBAR_SEND_TO_PRINTER_ALL, SimpleEvent); wxDEFINE_EVENT(EVT_GLTOOLBAR_SEND_TO_PRINTER_ALL, SimpleEvent);
wxDEFINE_EVENT(EVT_GLTOOLBAR_PRINT_MULTI_MACHINE, SimpleEvent);
wxDEFINE_EVENT(EVT_GLTOOLBAR_ADD, SimpleEvent); wxDEFINE_EVENT(EVT_GLTOOLBAR_ADD, SimpleEvent);
wxDEFINE_EVENT(EVT_GLTOOLBAR_DELETE, SimpleEvent); wxDEFINE_EVENT(EVT_GLTOOLBAR_DELETE, SimpleEvent);

Some files were not shown because too many files have changed in this diff Show more