Fixed conflicts after merge with master
@ -409,7 +409,7 @@ find_package(cereal REQUIRED)
|
||||
# l10n
|
||||
set(L10N_DIR "${SLIC3R_RESOURCES_DIR}/localization")
|
||||
add_custom_target(gettext_make_pot
|
||||
COMMAND xgettext --keyword=L --keyword=L_CONTEXT:1,2c --keyword=_L_PLURAL:1,2 --add-comments=TRN --from-code=UTF-8 --debug
|
||||
COMMAND xgettext --keyword=L --keyword=_L --keyword=_u8L --keyword=L_CONTEXT:1,2c --keyword=_L_PLURAL:1,2 --add-comments=TRN --from-code=UTF-8 --debug
|
||||
-f "${L10N_DIR}/list.txt"
|
||||
-o "${L10N_DIR}/PrusaSlicer.pot"
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
|
18
deps/GMP/GMP.cmake
vendored
@ -17,11 +17,27 @@ if (MSVC)
|
||||
add_custom_target(dep_GMP SOURCES ${_output})
|
||||
|
||||
else ()
|
||||
set(_gmp_ccflags "-O2 -DNDEBUG -fPIC -DPIC -Wall -Wmissing-prototypes -Wpointer-arith -pedantic -fomit-frame-pointer -fno-common")
|
||||
set(_gmp_build_tgt "${CMAKE_SYSTEM_PROCESSOR}")
|
||||
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm")
|
||||
set(_gmp_ccflags "${_gmp_ccflags} -march=armv7-a") # Works on RPi-4
|
||||
set(_gmp_build_tgt armv7)
|
||||
endif()
|
||||
|
||||
if (APPLE)
|
||||
set(_gmp_ccflags "${_gmp_ccflags} -mmacosx-version-min=${DEP_OSX_TARGET}")
|
||||
set(_gmp_build_tgt "--build=${_gmp_build_tgt}-apple-darwin")
|
||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
set(_gmp_build_tgt "--build=${_gmp_build_tgt}-pc-linux-gnu")
|
||||
else ()
|
||||
set(_gmp_build_tgt "") # let it guess
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(dep_GMP
|
||||
# URL https://gmplib.org/download/gmp/gmp-6.1.2.tar.bz2
|
||||
URL https://gmplib.org/download/gmp/gmp-6.2.0.tar.lz
|
||||
BUILD_IN_SOURCE ON
|
||||
CONFIGURE_COMMAND ./configure --enable-shared=no --enable-cxx=yes --enable-static=yes "--prefix=${DESTDIR}/usr/local" --with-pic
|
||||
CONFIGURE_COMMAND env "CFLAGS=${_gmp_ccflags}" "CXXFLAGS=${_gmp_ccflags}" ./configure --enable-shared=no --enable-cxx=yes --enable-static=yes "--prefix=${DESTDIR}/usr/local" ${_gmp_build_tgt}
|
||||
BUILD_COMMAND make -j
|
||||
INSTALL_COMMAND make install
|
||||
)
|
||||
|
4
deps/MPFR/MPFR.cmake
vendored
@ -21,9 +21,9 @@ else ()
|
||||
ExternalProject_Add(dep_MPFR
|
||||
URL http://ftp.vim.org/ftp/gnu/mpfr/mpfr-3.1.6.tar.bz2 https://www.mpfr.org/mpfr-3.1.6/mpfr-3.1.6.tar.bz2 # mirrors are allowed
|
||||
BUILD_IN_SOURCE ON
|
||||
CONFIGURE_COMMAND ./configure --prefix=${DESTDIR}/usr/local --enable-shared=no --enable-static=yes --with-gmp=${DESTDIR}/usr/local --with-pic
|
||||
CONFIGURE_COMMAND env "CFLAGS=${_gmp_ccflags}" "CXXFLAGS=${_gmp_ccflags}" ./configure --prefix=${DESTDIR}/usr/local --enable-shared=no --enable-static=yes --with-gmp=${DESTDIR}/usr/local ${_gmp_build_tgt}
|
||||
BUILD_COMMAND make -j
|
||||
INSTALL_COMMAND make install
|
||||
DEPENDS dep_GMP
|
||||
)
|
||||
endif ()
|
||||
endif ()
|
||||
|
8
deps/deps-linux.cmake
vendored
@ -31,6 +31,7 @@ ExternalProject_Add(dep_libopenssl
|
||||
BUILD_IN_SOURCE 1
|
||||
CONFIGURE_COMMAND ./config
|
||||
"--prefix=${DESTDIR}/usr/local"
|
||||
"--libdir=lib"
|
||||
no-shared
|
||||
no-ssl3-method
|
||||
no-dynamic-engine
|
||||
@ -54,7 +55,12 @@ ExternalProject_Add(dep_libcurl
|
||||
--enable-versioned-symbols
|
||||
--enable-threaded-resolver
|
||||
--with-random=/dev/urandom
|
||||
--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt
|
||||
|
||||
# CA root certificate paths will be set for openssl at runtime.
|
||||
--without-ca-bundle
|
||||
--without-ca-path
|
||||
--with-ca-fallback # to look for the ssl backend's ca store
|
||||
|
||||
--disable-ldap
|
||||
--disable-ldaps
|
||||
--disable-manual
|
||||
|
Before Width: | Height: | Size: 61 KiB |
@ -337,6 +337,10 @@ msgstr "Logický výraz může používat konfigurační hodnoty aktivního prof
|
||||
msgid "A boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile."
|
||||
msgstr "Logický výraz může používat konfigurační hodnoty aktivního profilu tiskárny. Pokud je tento logický výraz pravdivý, potom je tento profil považován za kompatibilní s aktivním profilem tiskárny."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:975
|
||||
msgid "A copy of the current system preset will be created, which will be detached from the system preset."
|
||||
msgstr "Bude vytvořena oddělená kopie aktuálního systémového přednastavení."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1034
|
||||
msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS."
|
||||
msgstr "Obecným pravidlem je 160 až 230 °C pro PLA a 215 až 250 °C pro ABS."
|
||||
@ -1088,6 +1092,34 @@ msgstr "Ukončování..."
|
||||
msgid "Cannot calculate extrusion width for %1%: Variable \"%2%\" not accessible."
|
||||
msgstr "Nelze vypočítat šířku extrudování pro %1%: Proměnná \"%2%\" není dostupná."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:3017
|
||||
msgid ""
|
||||
"Cannot insert a new layer range after the current layer range.\n"
|
||||
"Current layer range overlaps with the next layer range."
|
||||
msgstr ""
|
||||
"Nelze vložit nový rozsah vrstev za aktuální rozsah vrstev.\n"
|
||||
"Aktuální rozsah vrstev se překrývá s dalším rozsahem vrstev."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:3008
|
||||
msgid ""
|
||||
"Cannot insert a new layer range after the current layer range.\n"
|
||||
"The next layer range is too thin to be split to two\n"
|
||||
"without violating the minimum layer height."
|
||||
msgstr ""
|
||||
"Nelze vložit nový rozsah vrstev za aktuální rozsah vrstev.\n"
|
||||
"Další rozsah vrstev je příliš tenký na to, aby byl rozdělen na dva\n"
|
||||
"bez porušení minimální výšky vrstvy."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:3012
|
||||
msgid ""
|
||||
"Cannot insert a new layer range between the current and the next layer range.\n"
|
||||
"The gap between the current layer range and the next layer range\n"
|
||||
"is thinner than the minimum layer height allowed."
|
||||
msgstr ""
|
||||
"Nelze vložit nový rozsah vrstev mezi aktuální a následující rozsah vrstev.\n"
|
||||
"Mezera mezi aktuálním rozsahem vrstev a dalším rozsahem vrstev\n"
|
||||
"je tenčí, než je minimální povolená výška vrstvy."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3073
|
||||
msgid "Cannot overwrite a system profile."
|
||||
msgstr "Nelze přepsat systémový profil."
|
||||
@ -1569,15 +1601,6 @@ msgstr "Aktuální nastavení je zděděné od"
|
||||
msgid "Current preset is inherited from the default preset."
|
||||
msgstr "Aktuální nastavení je zděděno z výchozího nastavení."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:960
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Current preset is inherited from:\n"
|
||||
"\t%s"
|
||||
msgstr ""
|
||||
"Aktuální nastavení je zděděné od:\n"
|
||||
"%s"
|
||||
|
||||
#: src/slic3r/GUI/UpdateDialogs.cpp:43
|
||||
msgid "Current version:"
|
||||
msgstr "Aktuální verze:"
|
||||
@ -1877,6 +1900,18 @@ msgstr "Odznačit obdélníkovým výběrem myši"
|
||||
msgid "Deselects all objects"
|
||||
msgstr "Odznačit všechny objekty"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:963
|
||||
msgid "Detach from system preset"
|
||||
msgstr "Oddělit od systémového přednastavení"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:984
|
||||
msgid "Detach preset"
|
||||
msgstr "Oddělení přednastavení"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgid "Detached"
|
||||
msgstr "Odpojeno"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1373
|
||||
msgid "Detect bridging perimeters"
|
||||
msgstr "Detekovat perimetry přemostění"
|
||||
@ -2025,14 +2060,6 @@ msgstr ""
|
||||
"Vyberte ANO, pokud chcete změnit tuto hodnotu na %s%%,\n"
|
||||
"nebo NE, pokud jste si jisti, že %s %s je správná hodnota."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1761
|
||||
msgid "Do you want to automatic select default filaments?"
|
||||
msgstr "Chcete automaticky vybrat výchozí filamenty?"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1772
|
||||
msgid "Do you want to automatic select default materials?"
|
||||
msgstr "Chcete automaticky vybrat výchozí materiály?"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1920
|
||||
msgid "Do you want to delete all saved tool changes?"
|
||||
msgstr "Opravdu chcete odstranit všechny uložené změny nástrojů?"
|
||||
@ -2049,6 +2076,14 @@ msgstr "Chcete to zkusit znovu"
|
||||
msgid "Do you want to save your manually edited support points?"
|
||||
msgstr "Chcete uložit ručně upravené podpěrné body?"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1834
|
||||
msgid "Do you want to select default filaments for these FFF printer models?"
|
||||
msgstr "Chcete pro tyto modely FFF tiskáren vybrat výchozí filamenty?"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1852
|
||||
msgid "Do you want to select default SLA materials for these printer models?"
|
||||
msgstr "Chcete pro tyto modely tiskáren vybrat výchozí SLA materiály?"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:3429
|
||||
msgid "Don't arrange"
|
||||
msgstr "Neuspořádávat"
|
||||
@ -2065,6 +2100,10 @@ msgstr "Nevytvářet podpěry pod mosty"
|
||||
msgid "Downgrade"
|
||||
msgstr "Downgrade"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1695
|
||||
msgid "Draft shield"
|
||||
msgstr "Ochranný štít"
|
||||
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1365
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1368
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1369
|
||||
@ -2152,6 +2191,11 @@ msgstr "Vysunout SD kartu / Flash disk"
|
||||
msgid "Eject SD card / Flash drive after the G-code was exported to it."
|
||||
msgstr "Vysunout SD kartu / Flash disk po vyexportování G-codu."
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2202
|
||||
#, c-format
|
||||
msgid "Ejecting of device %s(%s) has failed."
|
||||
msgstr "Vysunutí zařízení %s(%s) se nezdařilo."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:118
|
||||
msgid "Elephant foot compensation"
|
||||
msgstr "Kompenzace rozplácnutí první vrstvy"
|
||||
@ -2971,15 +3015,6 @@ msgstr "Pro více informací prosím navštivte naší wiki stránku:"
|
||||
msgid "For support enforcers only"
|
||||
msgstr "Pouze pro vynucené podpěry"
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3265
|
||||
msgid ""
|
||||
"for the left button: \tindicates a non-system (or non-default) preset,\n"
|
||||
"for the right button: \tindicates that the settings hasn't been modified."
|
||||
msgstr ""
|
||||
"na levé straně: indikuje nesystémové (jiné než výchozí) přednastavení,\n"
|
||||
"na pravé straně: indikuje, že nastavení nebylo změněno."
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3267
|
||||
msgid ""
|
||||
@ -3401,16 +3436,6 @@ msgstr "Soubor HTTPS CA"
|
||||
msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed certificate."
|
||||
msgstr "Soubor HTTPS CA je volitelný. Je nutný pouze pokud použijte HTTPS certifikát s vlastním podpisem."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:1757
|
||||
#, c-format
|
||||
msgid ""
|
||||
"HTTPS CA File:\n"
|
||||
" \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n"
|
||||
" \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain."
|
||||
msgstr ""
|
||||
"Soubor HTTPS CA:\n"
|
||||
"V tomto systému používá %s certifikáty HTTPS ze systému Certificate Store nebo Keychain. Chcete-li použít vlastní soubor CA, importujte soubor CA do Certificate Store / Keychain."
|
||||
|
||||
#: src/slic3r/GUI/Preferences.cpp:222
|
||||
msgid "Icon size in a respect to the default size"
|
||||
msgstr "Velikost ikon vůči výchozí velikosti"
|
||||
@ -3461,6 +3486,10 @@ msgstr "Pokud je povoleno, stáhne Slic3r na pozadí aktualizace vestavěných s
|
||||
msgid "If enabled, the 3D scene will be rendered in Retina resolution. If you are experiencing 3D performance problems, disabling this option may help."
|
||||
msgstr "Pokud je tato volba povolena, bude 3D scéna vykreslena v rozlišení Retina. Pokud dochází k potížím s výkonem, zkuste tuto volbu vypnout."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1696
|
||||
msgid "If enabled, the skirt will be as tall as a highest printed object. This is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft."
|
||||
msgstr "Pokud je tato možnost povolena, bude obrys (skirt) stejně vysoký jako nejvyšší tištěný objekt. To je užitečné k ochraně modelu při tisku z ABS nebo ASA před deformací a odlepením od tiskové podložky v důsledku průvanu."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1858
|
||||
msgid "If enabled, the wipe tower will not be printed on layers with no toolchanges. On layers with a toolchange, extruder will travel downward to print the wipe tower. User is responsible for ensuring there is no collision with the print."
|
||||
msgstr "Pokud je tato možnost povolena, nebude čistící věž vytištěna ve vrstvách bez změny barvy. U vrstev s výměnou sjede extruder směrem dolů a vytiskne vrstvu čistící věže. Uživatel je odpovědný za to, že nedojde ke kolizi tiskové hlavy s tiskem."
|
||||
@ -4627,6 +4656,10 @@ msgstr "Oprava modelu byla dokončena"
|
||||
msgid "Model repaired successfully"
|
||||
msgstr "Model byl úspěšně opraven"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:979
|
||||
msgid "Modifications to the current profile will be saved."
|
||||
msgstr "Úpravy aktuálního profilu budou uloženy."
|
||||
|
||||
#: src/slic3r/GUI/Preset.cpp:247
|
||||
msgid "modified"
|
||||
msgstr "upraveno"
|
||||
@ -5425,10 +5458,10 @@ msgstr "Přednastavení (%s)"
|
||||
msgid "Preset with name \"%1%\" already exists."
|
||||
msgstr "Přednastavení s názvem \"%1%\" již existuje."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3045
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgctxt "PresetName"
|
||||
msgid "%1% - Copy"
|
||||
msgstr "%1% - Kopie"
|
||||
msgid "Copy"
|
||||
msgstr "Kopie"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:163
|
||||
msgid "Press to activate deselection rectangle"
|
||||
@ -5947,9 +5980,9 @@ msgstr "Odebrat označené body"
|
||||
msgid "Remove the selected object"
|
||||
msgstr "Odstranit vybraný objekt"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:438
|
||||
msgid "Remove user profiles - install from scratch (a snapshot will be taken beforehand)"
|
||||
msgstr "Odstranit uživatelské profily - čistá instalace (nejprve bude provedena záloha)"
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:453
|
||||
msgid "Remove user profiles (a snapshot will be taken beforehand)"
|
||||
msgstr "Odstranit uživatelské profily (předtím bude proveden snapshot)"
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:1636
|
||||
msgid "Rename"
|
||||
@ -6468,16 +6501,6 @@ msgstr "Vyberte, jaký typ podložky potřebujete"
|
||||
msgid "Select what kind of support do you need"
|
||||
msgstr "Vyberte typ podpěr, které potřebujete"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
"\tNO if you want all tool changes switch to color changes, \n"
|
||||
"\tor CANCEL to leave it unchanged."
|
||||
msgstr ""
|
||||
"Vyberte ANO, pokud chcete odstranit všechny uložené změny nástroje,\n"
|
||||
"NE, pokud chcete, aby se všechny změny nástroje přepnout na změny barev,\n"
|
||||
"nebo ZRUŠIT pro ponechání beze změny."
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
@ -7641,6 +7664,10 @@ msgid ""
|
||||
"If the device is connected, please press the Reset button next to the USB connector ..."
|
||||
msgstr "Zařízení %s nebylo nalezeno. Pokud je zařízení připojeno, stiskněte tlačítko Reset vedle USB konektoru ..."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:976
|
||||
msgid "The current custom preset will be detached from the parent system preset."
|
||||
msgstr "Aktuální vlastní přednastavení bude odděleno od rodičovského systémového přednastavení."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:875
|
||||
msgid ""
|
||||
"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n"
|
||||
@ -7701,6 +7728,14 @@ msgstr "První vrstva bude v rovině XY zmenšena nakonfigurovanou hodnotou, kte
|
||||
msgid "the following characters are not allowed:"
|
||||
msgstr "následující znaky nejsou povolené:"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1830
|
||||
msgid "The following FFF printer models have no filament selected:"
|
||||
msgstr "Následující modely FFF tiskáren nemají vybraný filament:"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1848
|
||||
msgid "The following SLA printer models have no materials selected:"
|
||||
msgstr "Následující modely SLA tiskáren nemají vybrané žádné materiály:"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3461
|
||||
msgid "the following suffix is not allowed:"
|
||||
msgstr "následující přípona není povolená:"
|
||||
@ -7795,18 +7830,14 @@ msgstr "Vybraný objekt nemůže být rozdělen, protože obsahuje více než je
|
||||
msgid "The selected object couldn't be split because it contains only one part."
|
||||
msgstr "Vybraný objekt nemůže být rozdělen, protože obsahuje pouze jednu část."
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:432
|
||||
#: src/slic3r/GUI/MainFrame.cpp:461
|
||||
msgid ""
|
||||
"The selected project is no longer available.\n"
|
||||
"Do you want to remove it from the recent projects list ?"
|
||||
"Do you want to remove it from the recent projects list?"
|
||||
msgstr ""
|
||||
"Vybraný projekt již není k dispozici.\n"
|
||||
"Chcete ho odstranit ze seznamu posledních projektů?"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:422
|
||||
msgid "The selected project is no more available"
|
||||
msgstr "Vybraný projekt již není dostupný"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:998
|
||||
msgid ""
|
||||
"The sequential print is on.\n"
|
||||
@ -7982,6 +8013,14 @@ msgstr ""
|
||||
msgid "This %s version: %s"
|
||||
msgstr "Tento %s verze: %s"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:982
|
||||
msgid ""
|
||||
"This action is not revertable.\n"
|
||||
"Do you want to proceed?"
|
||||
msgstr ""
|
||||
"Tato akce je nevratná.\n"
|
||||
"Chcete pokračovat?"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:165
|
||||
msgid "This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want."
|
||||
msgstr "Tento kód je vložen mezi objekty, pokud je použit sekvenční tisk. Ve výchozím nastavení je resetován extruder a tisková podložka pomocí non-wait (nečekacím) příkazem; nicméně pokud jsou příkazy M104, M109, 140 nebo M190 detekovány v tomto vlastním kódu, Slic3r nebude přidávat teplotní příkazy. Můžete přidávat zástupné proměnné pro veškeré nastavení Slic3ru, takže můžete vložit příkaz “M109 S[first_layer_temperature]” kamkoliv chcete."
|
||||
@ -8149,10 +8188,6 @@ msgstr "Toto je největší možná výška vrstvy pro tento extruder, který se
|
||||
msgid "This is the lowest printable layer height for this extruder and limits the resolution for variable layer height. Typical values are between 0.05 mm and 0.1 mm."
|
||||
msgstr "Nejmenší tisknutelná výška vrstvy pro tento extruder. Omezuje rozlišení pro výšku proměnné vrstvy. Typické hodnoty jsou mezi 0,05 mm a 0,1 mm."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "To je obvykle způsobeno zanedbatelně malým množstvím extrudovaného materiálu nebo chybným modelem. Zkuste model opravit nebo změnit jeho orientaci na podložce."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "To je obvykle způsobeno zanedbatelně malým množstvím extrudovaného materiálu nebo chybným modelem. Zkuste model opravit nebo změnit jeho orientaci na podložce."
|
||||
@ -9056,14 +9091,6 @@ msgstr "Nelze načíst SLA projekt s objektem na podložce, který je složený
|
||||
msgid "You cannot use non-uniform scaling mode for multiple objects/parts selection"
|
||||
msgstr "Nemůžete použít nestejnoměrnou změnu měřítka pro více vybraných objektů/částí"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1760
|
||||
msgid "You have to select at least one filament for selected printers"
|
||||
msgstr "Pro vybrané tiskárny musíte vybrat alespoň jeden filament"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1771
|
||||
msgid "You have to select at least one material for selected printers"
|
||||
msgstr "Pro vybrané tiskárny musíte vybrat alespoň jeden materiál"
|
||||
|
||||
#: src/slic3r/GUI/GLCanvas3DManager.cpp:287
|
||||
msgid "You may need to update your graphics card driver."
|
||||
msgstr "Možná budete muset aktualizovat ovladač grafické karty."
|
||||
|
@ -337,6 +337,10 @@ msgstr "Ein boolescher Ausdruck, der die Konfigurationswerte eines aktiven Druck
|
||||
msgid "A boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile."
|
||||
msgstr "Ein boolescher Ausdruck, der die Konfigurationswerte eines aktiven Druckerprofils verwendet. Wenn dieser Ausdruck als wahr bewertet wird, wird dieses Profil als kompatibel mit dem aktiven Druckerprofil angesehen."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:975
|
||||
msgid "A copy of the current system preset will be created, which will be detached from the system preset."
|
||||
msgstr "Es wird eine Kopie der aktuellen Systemvoreinstellung erstellt, die von der Systemvoreinstellung gelöst wird."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1034
|
||||
msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS."
|
||||
msgstr "Ein Daumenwert ist 160 bis 230 °C für PLA, und 215 bis 250 °C für ABS."
|
||||
@ -1084,6 +1088,32 @@ msgstr "Abbrechen..."
|
||||
msgid "Cannot calculate extrusion width for %1%: Variable \"%2%\" not accessible."
|
||||
msgstr "Kann die Extrusionsbreite für %1% nicht berechnen: Variable \"%2%\" nicht zugänglich."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:3017
|
||||
msgid ""
|
||||
"Cannot insert a new layer range after the current layer range.\n"
|
||||
"Current layer range overlaps with the next layer range."
|
||||
msgstr ""
|
||||
"Es kann kein neuer Schichtenbereich nach dem aktuellen Schichtenbereich eingefügt werden.\n"
|
||||
"Der aktuelle Schichtenbereich überschneidet sich mit dem nächsten Schichtenbereich."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:3008
|
||||
msgid ""
|
||||
"Cannot insert a new layer range after the current layer range.\n"
|
||||
"The next layer range is too thin to be split to two\n"
|
||||
"without violating the minimum layer height."
|
||||
msgstr ""
|
||||
"Es kann kein neuer Schichtenbereich nach dem aktuellen Schichtenbereich eingefügt werden.\n"
|
||||
"Der nächste Schichtenbereich ist zu schmal, um auf zwei Schichten aufgeteilt zu werden ohne die Mindestschichthöhe zu verletzen."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:3012
|
||||
msgid ""
|
||||
"Cannot insert a new layer range between the current and the next layer range.\n"
|
||||
"The gap between the current layer range and the next layer range\n"
|
||||
"is thinner than the minimum layer height allowed."
|
||||
msgstr ""
|
||||
"Es kann kein neuer Schichtenbereich zwischen dem aktuellen und dem nächsten Schichtenbereich eingefügt werden.\n"
|
||||
"Die Lücke zwischen dem aktuellen und dem nächsten Schichtenbereich ist ist schmaler als die minimal zulässige Schichthöhe."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3073
|
||||
msgid "Cannot overwrite a system profile."
|
||||
msgstr "Systemprofil kann nicht überschrieben werden."
|
||||
@ -1565,15 +1595,6 @@ msgstr "Aktuelle Voreinstellung ist abgeleitet von"
|
||||
msgid "Current preset is inherited from the default preset."
|
||||
msgstr "Aktuelle Voreinstellung ist abgeleitet von der Standardvoreinstellung."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:960
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Current preset is inherited from:\n"
|
||||
"\t%s"
|
||||
msgstr ""
|
||||
"Aktuelle Voreinstellung ist abgeleitet von:\n"
|
||||
"%s"
|
||||
|
||||
#: src/slic3r/GUI/UpdateDialogs.cpp:43
|
||||
msgid "Current version:"
|
||||
msgstr "Aktuelle Version:"
|
||||
@ -1873,6 +1894,18 @@ msgstr "Abwahl über Rechteck"
|
||||
msgid "Deselects all objects"
|
||||
msgstr "Alle Objekte abwählen"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:963
|
||||
msgid "Detach from system preset"
|
||||
msgstr "Lösen von der Systemvoreinstellung"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:984
|
||||
msgid "Detach preset"
|
||||
msgstr "Lösen der Voreinstellugen"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgid "Detached"
|
||||
msgstr "Losgelöst"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1373
|
||||
msgid "Detect bridging perimeters"
|
||||
msgstr "Umfangbrücken entdecken"
|
||||
@ -2021,14 +2054,6 @@ msgstr ""
|
||||
"Wählen Sie JA, wenn Sie diesen Wert auf %s%% ändern möchten, \n"
|
||||
"oder NEIN, wenn Sie sicher sind, dass %s %s ein korrekter Wert ist."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1761
|
||||
msgid "Do you want to automatic select default filaments?"
|
||||
msgstr "Möchten Sie die Standardfilamente automatisch auswählen?"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1772
|
||||
msgid "Do you want to automatic select default materials?"
|
||||
msgstr "Möchten Sie automatisch Standardmaterialien auswählen?"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1920
|
||||
msgid "Do you want to delete all saved tool changes?"
|
||||
msgstr "Möchten Sie alle gespeicherten Werkzeugänderungen löschen?"
|
||||
@ -2045,6 +2070,14 @@ msgstr "Möchten Sie es erneut versuchen"
|
||||
msgid "Do you want to save your manually edited support points?"
|
||||
msgstr "Möchten Sie Ihre manuell bearbeiteten Stützpunkte speichern?"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1834
|
||||
msgid "Do you want to select default filaments for these FFF printer models?"
|
||||
msgstr "Möchten Sie Standardfilamente für diese FFF-Druckermodelle auswählen?"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1852
|
||||
msgid "Do you want to select default SLA materials for these printer models?"
|
||||
msgstr "Möchten Sie Standard-SLA-Materialien für diese Druckermodelle auswählen?"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:3429
|
||||
msgid "Don't arrange"
|
||||
msgstr "Nicht Anordnen"
|
||||
@ -2061,6 +2094,10 @@ msgstr "Brücken nicht unterstützen"
|
||||
msgid "Downgrade"
|
||||
msgstr "Downgrade"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1695
|
||||
msgid "Draft shield"
|
||||
msgstr "Windschutz"
|
||||
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1365
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1368
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1369
|
||||
@ -2136,6 +2173,23 @@ msgstr "Häkchen bearbeiten - Rechtsklick"
|
||||
msgid "Editing"
|
||||
msgstr "Bearbeitung"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:547
|
||||
msgid "Ejec&t SD card / Flash drive"
|
||||
msgstr "SD-Kar&te/Flash-Laufwerk auswerfen"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:126
|
||||
msgid "Eject SD card / Flash drive"
|
||||
msgstr "SD-Karte/Flash-Laufwerk auswerfen"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:547
|
||||
msgid "Eject SD card / Flash drive after the G-code was exported to it."
|
||||
msgstr "SD-Karte / Flash-Laufwerk auswerfen, nachdem der G-Code dorthin exportiert wurde."
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2202
|
||||
#, c-format
|
||||
msgid "Ejecting of device %s(%s) has failed."
|
||||
msgstr "Das Auswerfen von Gerät %s(%s) ist fehlgeschlagen."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:118
|
||||
msgid "Elephant foot compensation"
|
||||
msgstr "Elefantenfußkompensation"
|
||||
@ -2426,6 +2480,10 @@ msgstr "Exportiere die aktuelle Plattenbelegung als AMF"
|
||||
msgid "Export current plate as G-code"
|
||||
msgstr "Exportiere die aktuelle Plattenbelegung als G-Code"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:521
|
||||
msgid "Export current plate as G-code to SD card / Flash drive"
|
||||
msgstr "Aktuelle Druckplatte als G-Code auf SD-Karte/Flash-Laufwerk exportieren"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:486
|
||||
msgid "Export current plate as STL"
|
||||
msgstr "Exportiere die aktuelle Plattenbelegung als STL"
|
||||
@ -2447,6 +2505,10 @@ msgstr "Exportieren Sie die vollständigen Pfadnamen der Modelle und Teilequelle
|
||||
msgid "Export G-code"
|
||||
msgstr "Export G-Code"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:521
|
||||
msgid "Export G-code to SD card / Flash drive"
|
||||
msgstr "G-Code auf SD-Karte/Flash-Laufwerk exportieren"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:3320
|
||||
msgid "Export OBJ"
|
||||
msgstr "Exportiere OBJ"
|
||||
@ -2947,15 +3009,6 @@ msgstr "Für weitere Informationen besuchen Sie bitte unsere Wiki-Seite:"
|
||||
msgid "For support enforcers only"
|
||||
msgstr "Nur für Stützverstärker"
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3265
|
||||
msgid ""
|
||||
"for the left button: \tindicates a non-system (or non-default) preset,\n"
|
||||
"for the right button: \tindicates that the settings hasn't been modified."
|
||||
msgstr ""
|
||||
"Beim linken Knopf: zeigt eine Nicht-System- (oder Nicht-Standard-) Einstellung an.\n"
|
||||
"Beim rechten Knopf: zeigt an, dass die Einstellung nicht geändert wurde."
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3267
|
||||
msgid ""
|
||||
@ -3373,16 +3426,6 @@ msgstr "HTTPS CA Datei"
|
||||
msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed certificate."
|
||||
msgstr "HTTPS-CA-Datei ist optional. Sie wird nur benötigt, wenn Sie HTTPS mit einem selbstsignierten Zertifikat verwenden."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:1757
|
||||
#, c-format
|
||||
msgid ""
|
||||
"HTTPS CA File:\n"
|
||||
" \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n"
|
||||
" \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain."
|
||||
msgstr ""
|
||||
"HTTPS CA-Datei:\n"
|
||||
"Auf diesem System verwendet %s HTTPS-Zertifikate aus dem System Zertifikatsspeicher oder Schlüsselbund. Um eine benutzerdefinierte CA-Datei zu verwenden, importieren Sie bitte Ihre CA-Datei in den Zertifikatsspeicher / Schlüsselbund."
|
||||
|
||||
#: src/slic3r/GUI/Preferences.cpp:222
|
||||
msgid "Icon size in a respect to the default size"
|
||||
msgstr "Symbolgröße in Bezug auf die Standardgröße"
|
||||
@ -3433,6 +3476,10 @@ msgstr "Wenn aktiviert, lädt Slic3r Updates der eingebauten Systemvoreinstellun
|
||||
msgid "If enabled, the 3D scene will be rendered in Retina resolution. If you are experiencing 3D performance problems, disabling this option may help."
|
||||
msgstr "Wenn aktiviert, wird die 3D-Szene in Retina-Auflösung gerendert. Wenn Sie Probleme mit der 3D-Leistung haben, kann es hilfreich sein, diese Option zu deaktivieren."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1696
|
||||
msgid "If enabled, the skirt will be as tall as a highest printed object. This is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft."
|
||||
msgstr "Wenn diese Option aktiviert ist, wird die Schürze so hoch wie das höchste gedruckte Objekt sein. Dies ist nützlich, um einen ABS- oder ASA-Druck vor dem Verziehen und Ablösen vom Druckbett aufgrund von Zugluft zu schützen."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1858
|
||||
msgid "If enabled, the wipe tower will not be printed on layers with no toolchanges. On layers with a toolchange, extruder will travel downward to print the wipe tower. User is responsible for ensuring there is no collision with the print."
|
||||
msgstr "Wenn aktiviert, wird der Reinigungsturm nicht auf Schichten ohne Werkzeugwechsel gedruckt. Bei Schichten mit Werkzeugwechsel fährt der Extruder nach unten, um den Reinigungsturm zu drucken. Der Benutzer ist dafür verantwortlich, dass es nicht zu einer Kollision mit dem Druck kommt."
|
||||
@ -4599,6 +4646,10 @@ msgstr "Modellreparatur beendet"
|
||||
msgid "Model repaired successfully"
|
||||
msgstr "Modellreparatur erfolgreich"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:979
|
||||
msgid "Modifications to the current profile will be saved."
|
||||
msgstr "Änderungen am aktuellen Profil werden gespeichert."
|
||||
|
||||
#: src/slic3r/GUI/Preset.cpp:247
|
||||
msgid "modified"
|
||||
msgstr "geändert"
|
||||
@ -5397,10 +5448,10 @@ msgstr "Voreinstellung (%s)"
|
||||
msgid "Preset with name \"%1%\" already exists."
|
||||
msgstr "Eine Voreinstellung mit dem Namen \"%1%\" existiert bereits."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3045
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgctxt "PresetName"
|
||||
msgid "%1% - Copy"
|
||||
msgstr "%1% - Kopieren"
|
||||
msgid "Copy"
|
||||
msgstr "Kopieren"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:163
|
||||
msgid "Press to activate deselection rectangle"
|
||||
@ -5918,9 +5969,9 @@ msgstr "Ausgewählte Punkte entfernen"
|
||||
msgid "Remove the selected object"
|
||||
msgstr "Ausgewähltes Objekt entfernen"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:438
|
||||
msgid "Remove user profiles - install from scratch (a snapshot will be taken beforehand)"
|
||||
msgstr "Benutzerprofile entfernen - von Grund auf neu installieren (eine Momentaufnahme wird vorab erstellt)"
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:453
|
||||
msgid "Remove user profiles (a snapshot will be taken beforehand)"
|
||||
msgstr "Benutzerprofile entfernen (eine Momentaufnahme wird vorab erstellt)"
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:1636
|
||||
msgid "Rename"
|
||||
@ -6437,16 +6488,6 @@ msgstr "Wählen Sie aus, welche Art von Grundschicht Sie benötigen"
|
||||
msgid "Select what kind of support do you need"
|
||||
msgstr "Wählen Sie aus, welche Art von Unterstützung Sie benötigen"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
"\tNO if you want all tool changes switch to color changes, \n"
|
||||
"\tor CANCEL to leave it unchanged."
|
||||
msgstr ""
|
||||
"Wählen Sie JA, wenn Sie alle gespeicherten Werkzeugänderungen löschen möchten, \n"
|
||||
"NEIN, wenn Sie möchten, dass alle Werkzeugänderungen auf Farbwechsel umgestellt werden, \n"
|
||||
"oder ABBRECHEN, um sie unverändert zu lassen."
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
@ -7612,6 +7653,10 @@ msgstr ""
|
||||
"Das %s-Gerät wurde nicht gefunden.\n"
|
||||
"Wenn das Gerät angeschlossen ist, drücken Sie bitte die Reset-Taste neben dem USB-Anschluss...."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:976
|
||||
msgid "The current custom preset will be detached from the parent system preset."
|
||||
msgstr "Die aktuelle benutzerdefinierte Voreinstellung wird von der Voreinstellung des übergeordneten Systems gelöst."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:875
|
||||
msgid ""
|
||||
"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n"
|
||||
@ -7675,6 +7720,14 @@ msgstr "Die erste Schicht wird in der XY-Ebene um den vorgegebenen Wert verklein
|
||||
msgid "the following characters are not allowed:"
|
||||
msgstr "die folgenden Zeichen sind nicht erlaubt:"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1830
|
||||
msgid "The following FFF printer models have no filament selected:"
|
||||
msgstr "Bei den folgenden FFF-Druckermodellen wurde kein Filament ausgewählt:"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1848
|
||||
msgid "The following SLA printer models have no materials selected:"
|
||||
msgstr "Bei den folgenden SLA-Druckermodellen wurden keine Materialien ausgewählt:"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3461
|
||||
msgid "the following suffix is not allowed:"
|
||||
msgstr "das folgenden Suffix ist nicht erlaubt:"
|
||||
@ -7769,17 +7822,13 @@ msgstr "Das ausgewählte Objekt konnte nicht getrennt werden, weil es aus mehr a
|
||||
msgid "The selected object couldn't be split because it contains only one part."
|
||||
msgstr "Das ausgewählte Objekt konnte nicht getrennt werden, da es nur aus einem Teil besteht."
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:432
|
||||
#: src/slic3r/GUI/MainFrame.cpp:461
|
||||
msgid ""
|
||||
"The selected project is no longer available.\n"
|
||||
"Do you want to remove it from the recent projects list ?"
|
||||
"Do you want to remove it from the recent projects list?"
|
||||
msgstr ""
|
||||
"Das ausgewählte Projekt ist nicht mehr verfügbar.\n"
|
||||
"Wollen Sie es aus der Liste der letzten Projekte entfernen ?"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:422
|
||||
msgid "The selected project is no more available"
|
||||
msgstr "Das ausgewählte Projekt ist nicht mehr verfügbar"
|
||||
"Wollen Sie es aus der Liste der letzten Projekte entfernen?"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:998
|
||||
msgid ""
|
||||
@ -7952,6 +8001,14 @@ msgstr ""
|
||||
msgid "This %s version: %s"
|
||||
msgstr "Diese %s Version: %s"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:982
|
||||
msgid ""
|
||||
"This action is not revertable.\n"
|
||||
"Do you want to proceed?"
|
||||
msgstr ""
|
||||
"Diese Aktion ist nicht umkehrbar.\n"
|
||||
"Wollen Sie fortfahren?"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:165
|
||||
msgid "This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want."
|
||||
msgstr "Dieser Code wird beim sequentiellen Drucken zwischen Objekten eingefügt. Standardmäßig werden Extruder- und Betttemperatur mit dem Befehl, der nicht auf die Änderung wartet, zurückgesetzt. Wenn jedoch M104, M109, M140 oder M190 in diesem benutzerdefinierten Code erkannt werden, fügt Slic3r keine Temperaturbefehle hinzu. Beachten Sie, dass Sie Platzhaltervariablen für alle PrusaSlicer-Einstellungen verwenden können, so dass Sie einen \"M109 S[first_layer_temperature]\"-Befehl an beliebiger Stelle platzieren können."
|
||||
@ -8117,10 +8174,6 @@ msgstr "Dies ist die höchste druckbare Schichthöhe für diesen Extruder, mit d
|
||||
msgid "This is the lowest printable layer height for this extruder and limits the resolution for variable layer height. Typical values are between 0.05 mm and 0.1 mm."
|
||||
msgstr "Dies ist die niedrigste druckbare Schichthöhe für diesen Extruder und begrenzt die Auflösung bei variabler Schichthöhe. Typische Werte liegen zwischen 0,05 mm und 0,1 mm."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "Dies wird in der Regel durch vernachlässigbar kleine Extrusionen oder durch ein fehlerhaftes Modell verursacht. Versuchen Sie, das Modell zu reparieren oder seine Ausrichtung auf dem Druckbett zu ändern."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "Dies wird in der Regel durch vernachlässigbar kleine Extrusionen oder durch ein fehlerhaftes Modell verursacht. Versuchen Sie, das Modell zu reparieren oder seine Ausrichtung auf dem Druckbett zu ändern."
|
||||
@ -9025,14 +9078,6 @@ msgstr "Sie können kein SLA-Projekt mit einem mehrteiligen Objekt auf das Druck
|
||||
msgid "You cannot use non-uniform scaling mode for multiple objects/parts selection"
|
||||
msgstr "Sie können den nichtgleichmäßigen Skalierungsmodus nicht für mehrere Objekte/Teileauswahlen verwenden"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1760
|
||||
msgid "You have to select at least one filament for selected printers"
|
||||
msgstr "Sie müssen mindestens ein Filament für die ausgewählten Drucker auswählen"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1771
|
||||
msgid "You have to select at least one material for selected printers"
|
||||
msgstr "Sie müssen mindestens ein Material für die ausgewählten Drucker auswählen"
|
||||
|
||||
#: src/slic3r/GUI/GLCanvas3DManager.cpp:287
|
||||
msgid "You may need to update your graphics card driver."
|
||||
msgstr "Möglicherweise müssen Sie Ihren Grafikkartentreiber aktualisieren."
|
||||
|
BIN
resources/localization/en/PrusaSlicer.mo
Normal file
155
resources/localization/en/PrusaSlicer_en.po
Normal file
@ -0,0 +1,155 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Language: en\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
|
||||
#: src/slic3r/GUI/UpdateDialogs.cpp:71
|
||||
msgid "Don't notify about new releases any more"
|
||||
msgstr "Don't notify about new releases anymore"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:287
|
||||
msgid "A boolean expression using the configuration values of an active print profile. If this expression evaluates to true, this profile is considered compatible with the active print profile."
|
||||
msgstr "A Boolean expression using the configuration values of an active print profile. If this expression evaluates to true, this profile is considered compatible with the active print profile."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:272
|
||||
msgid "A boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile."
|
||||
msgstr "A Boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:409
|
||||
msgid "Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top+bottom solid layers)."
|
||||
msgstr "Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top + bottom solid layers)."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:791
|
||||
msgid "Additionally a backup snapshot of the whole configuration is created before an update is applied."
|
||||
msgstr "Additionally, a backup snapshot of the whole configuration is created before an update is applied."
|
||||
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1268
|
||||
msgid "Autogeneration will erase all manually edited points."
|
||||
msgstr "Auto Generation will erase all manually edited points."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:1171
|
||||
msgid "Autospeed (advanced)"
|
||||
msgstr "Auto Speed (advanced)"
|
||||
|
||||
#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:22
|
||||
msgid "Before roll back"
|
||||
msgstr "Before rollback"
|
||||
|
||||
#: src/slic3r/GUI/ButtonsDescription.cpp:16
|
||||
msgid "Buttons And Text Colors Description"
|
||||
msgstr "Buttons and Text Colors Description"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:791
|
||||
msgid "Density of internal infill, expressed in the range 0% - 100%."
|
||||
msgstr "Density of internal infill, expressed in the range 0 % - 100 %."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:773
|
||||
#, c-format
|
||||
msgid "If enabled, %s checks for new application versions online. When a new version becomes available, a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done."
|
||||
msgstr "If enabled, %s checks for new application versions online. When a new version becomes available, a notification is displayed at the next application startup (never during program usage). This is only a notification mechanism, no automatic installation is done."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:783
|
||||
#, c-format
|
||||
msgid "If enabled, %s downloads updates of built-in system presets in the background.These updates are downloaded into a separate temporary location.When a new preset version becomes available it is offered at application startup."
|
||||
msgstr "If enabled, %s downloads updates of built-in system presets in the background. These updates are downloaded into a separate temporary location. When a new preset version becomes available it is offered at application startup."
|
||||
|
||||
#: src/slic3r/GUI/Preferences.cpp:66
|
||||
msgid "If enabled, PrusaSlicer will check for the new versions of itself online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done."
|
||||
msgstr "If enabled, PrusaSlicer will check for the new versions of itself online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanism, no automatic installation is done."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1858
|
||||
msgid "If enabled, the wipe tower will not be printed on layers with no toolchanges. On layers with a toolchange, extruder will travel downward to print the wipe tower. User is responsible for ensuring there is no collision with the print."
|
||||
msgstr "If enabled, the wipe tower will not be printed on layers with no tool changes. On layers with a tool change, extruder will travel downward to print the wipe tower. User is responsible for ensuring there is no collision with the print."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2262
|
||||
msgid "Object will be used to purge the nozzle after a toolchange to save material that would otherwise end up in the wipe tower and decrease print time. Colours of the objects will be mixed as a result."
|
||||
msgstr "Object will be used to purge the nozzle after a tool change to save material that would otherwise end up in the wipe tower and decrease print time. Colours of the objects will be mixed as a result."
|
||||
|
||||
#: src/libslic3r/Print.cpp:1365
|
||||
msgid "One or more object were assigned an extruder that the printer does not have."
|
||||
msgstr "One or more objects were assigned an extruder that the printer does not have."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2254
|
||||
msgid "Purging after toolchange will done inside this object's infills. This lowers the amount of waste but may result in longer print time due to additional travel moves."
|
||||
msgstr "Purging after tool change will done inside this object's infills. This lowers the amount of waste but may result in longer print time due to additional travel moves."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1552
|
||||
msgid "Retraction Length (Toolchange)"
|
||||
msgstr "Retraction Length (Tool change)"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:556
|
||||
msgid "Set this to a non-zero value to allow a manual extrusion width. If left to zero, Slic3r derives extrusion widths from the nozzle diameter (see the tooltips for perimeter extrusion width, infill extrusion width etc). If expressed as percentage (for example: 230%), it will be computed over layer height."
|
||||
msgstr "Set this to a non-zero value to allow a manual extrusion width. If left to zero, Slic3r derives extrusion widths from the nozzle diameter (see the tooltips for perimeter extrusion width, infill extrusion width etc.). If expressed as percentage (for example: 230%), it will be computed over layer height."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2824
|
||||
msgid "Some objects can get along with a few smaller pads instead of a single big one. This parameter defines how far the center of two smaller pads should be. If theyare closer, they will get merged into one pad."
|
||||
msgstr "Some objects can get along with a few smaller pads instead of a single big one. This parameter defines how far the center of two smaller pads should be. If they are closer, they will get merged into one pad."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:624
|
||||
msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming)."
|
||||
msgstr "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming)."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2044
|
||||
msgid "Support material will not be generated for overhangs whose slope angle (90° = vertical) is above the given threshold. In other words, this value represent the most horizontal slope (measured from the horizontal plane) that you can print without support material. Set to zero for automatic detection (recommended)."
|
||||
msgstr "Support material will not be generated for overhangs whose slope angle (90° = vertical) is above the given threshold. In other words, this value represents the most horizontal slope (measured from the horizontal plane) that you can print without support material. Set to zero for automatic detection (recommended)."
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:998
|
||||
msgid ""
|
||||
"The sequential print is on.\n"
|
||||
"It's impossible to apply any custom G-code for objects printing sequentually.\n"
|
||||
"This code won't be processed during G-code generation."
|
||||
msgstr ""
|
||||
"The sequential print is on.\n"
|
||||
"It's impossible to apply any custom G-code for objects printing sequentially.\n"
|
||||
"This code won't be processed during G-code generation."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2094
|
||||
msgid "This custom code is inserted before every toolchange. Placeholder variables for all PrusaSlicer settings as well as {previous_extruder} and {next_extruder} can be used. When a tool-changing command which changes to the correct extruder is included (such as T{next_extruder}), PrusaSlicer will emit no other such command. It is therefore possible to script custom behaviour both before and after the toolchange."
|
||||
msgstr "This custom code is inserted before every tool change. Placeholder variables for all PrusaSlicer settings as well as {previous_extruder} and {next_extruder} can be used. When a tool-changing command which changes to the correct extruder is included (such as T{next_extruder}), PrusaSlicer will emit no other such command. It is therefore possible to script custom behaviour both before and after the tool change."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:396
|
||||
msgid "This end procedure is inserted at the end of the output file, before the printer end gcode (and before any toolchange from this filament in case of multimaterial printers). Note that you can use placeholder variables for all PrusaSlicer settings. If you have multiple extruders, the gcode is processed in extruder order."
|
||||
msgstr "This end procedure is inserted at the end of the output file, before the printer end gcode (and before any tool change from this filament in case of multimaterial printers). Note that you can use placeholder variables for all PrusaSlicer settings. If you have multiple extruders, the gcode is processed in extruder order."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2215
|
||||
msgid "This matrix describes volumes (in cubic milimetres) required to purge the new filament on the wipe tower for any given pair of tools."
|
||||
msgstr "This matrix describes volumes (in cubic millimetres) required to purge the new filament on the wipe tower for any given pair of tools."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1829
|
||||
msgid "This start procedure is inserted at the beginning, after any printer start gcode (and after any toolchange to this filament in case of multi-material printers). This is used to override settings for a specific filament. If PrusaSlicer detects M104, M109, M140 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in extruder order."
|
||||
msgstr "This start procedure is inserted at the beginning, after any printer start gcode (and after any tool change to this filament in case of multi-material printers). This is used to override settings for a specific filament. If PrusaSlicer detects M104, M109, M140 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in extruder order."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:641
|
||||
msgid "Time to wait after the filament is unloaded. May help to get reliable toolchanges with flexible materials that may need more time to shrink to original dimensions."
|
||||
msgstr "Time to wait after the filament is unloaded. May help to get reliable tool changes with flexible materials that may need more time to shrink to original dimensions."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:1491
|
||||
msgid "Toolchange parameters with single extruder MM printers"
|
||||
msgstr "Toolchange parameters with single extruder MM printers"
|
||||
|
||||
#: src/slic3r/Utils/Duet.cpp:82 src/slic3r/Utils/Duet.cpp:137
|
||||
#: src/slic3r/Utils/FlashAir.cpp:119 src/slic3r/Utils/FlashAir.cpp:140
|
||||
#: src/slic3r/Utils/FlashAir.cpp:156
|
||||
msgid "Unknown error occured"
|
||||
msgstr "Unknown error occurred"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:253
|
||||
msgid "When printing multi-material objects, this settings will make Slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)."
|
||||
msgstr "When printing multi-material objects, this settings will make Slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc.)."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1391
|
||||
msgid "When set to zero, the distance the filament is moved from parking position during load is exactly the same as it was moved back during unload. When positive, it is loaded further, if negative, the loading move is shorter than unloading."
|
||||
msgstr "When set to zero, the distance the filament is moved from parking position during load is exactly the same as it was moved back during unload. When positive, it is loaded further, if negative, the loading move is shorter than unloading."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3285
|
||||
msgid "WHITE BULLET icon indicates a non system (or non default) preset."
|
||||
msgstr "WHITE BULLET icon indicates a non-system (or non-default) preset."
|
@ -337,6 +337,10 @@ msgstr "Une expression booléenne utilisant les valeurs de configuration d'un pr
|
||||
msgid "A boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile."
|
||||
msgstr "Une expression booléenne utilisant les valeurs de configuration d'un profil d'imprimante actif. Si cette expression est évaluée comme vraie, ce profil est considéré comme compatible avec le profil d'imprimante actif."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:975
|
||||
msgid "A copy of the current system preset will be created, which will be detached from the system preset."
|
||||
msgstr "Une copie du préréglage système actuel sera créé, et il sera détaché du préréglage système."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1034
|
||||
msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS."
|
||||
msgstr "La règle générale est 160 à 230 °C pour le PLA et 215 à 250 °C pour l'ABS."
|
||||
@ -1088,6 +1092,32 @@ msgstr "Annulation..."
|
||||
msgid "Cannot calculate extrusion width for %1%: Variable \"%2%\" not accessible."
|
||||
msgstr "Impossible de calculer la largeur d'extrusion pour %1% : la variable \"%2%\" n'est pas accessible."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:3017
|
||||
msgid ""
|
||||
"Cannot insert a new layer range after the current layer range.\n"
|
||||
"Current layer range overlaps with the next layer range."
|
||||
msgstr ""
|
||||
"Impossible d'insérer une nouvelle zone de couche après la zone de couche actuelle.\n"
|
||||
"La zone de couche actuelle chevauche la prochaine zone de couche."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:3008
|
||||
msgid ""
|
||||
"Cannot insert a new layer range after the current layer range.\n"
|
||||
"The next layer range is too thin to be split to two\n"
|
||||
"without violating the minimum layer height."
|
||||
msgstr ""
|
||||
"Impossible d'insérer une nouvelle zone de couche après la zone de couche actuelle.\n"
|
||||
"La zone de couche suivante est trop fine pour être séparée en deux sans enfreindre la hauteur de couche minimum."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:3012
|
||||
msgid ""
|
||||
"Cannot insert a new layer range between the current and the next layer range.\n"
|
||||
"The gap between the current layer range and the next layer range\n"
|
||||
"is thinner than the minimum layer height allowed."
|
||||
msgstr ""
|
||||
"Impossible d'insérer une nouvelle zone de couche entre l'actuelle et la prochaine.\n"
|
||||
"L'espace entre la zone de couche actuelle et la prochaine est inférieur à la hauteur de couche minimum autorisée."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3073
|
||||
msgid "Cannot overwrite a system profile."
|
||||
msgstr "Impossible d'écraser un profil système."
|
||||
@ -1569,15 +1599,6 @@ msgstr "Le préréglage actuel est hérité de"
|
||||
msgid "Current preset is inherited from the default preset."
|
||||
msgstr "Le préréglage actuel est hérité du préréglage par défaut."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:960
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Current preset is inherited from:\n"
|
||||
"\t%s"
|
||||
msgstr ""
|
||||
"Le préréglage actuel est hérité de :\n"
|
||||
"%s"
|
||||
|
||||
#: src/slic3r/GUI/UpdateDialogs.cpp:43
|
||||
msgid "Current version:"
|
||||
msgstr "Version actuelle :"
|
||||
@ -1877,6 +1898,18 @@ msgstr "Désélectionner par rectangle"
|
||||
msgid "Deselects all objects"
|
||||
msgstr "Désélectionner tous les objets"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:963
|
||||
msgid "Detach from system preset"
|
||||
msgstr "Détacher du préréglage système"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:984
|
||||
msgid "Detach preset"
|
||||
msgstr "Détacher le préréglage"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgid "Detached"
|
||||
msgstr "Détaché"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1373
|
||||
msgid "Detect bridging perimeters"
|
||||
msgstr "Détecter les périmètres faisant des ponts"
|
||||
@ -2025,14 +2058,6 @@ msgstr ""
|
||||
"Sélectionnez OUI si vous voulez changer cette valeur pour %s%%,\n"
|
||||
"ou NON si vous êtes certain que %s%s est une valeur correcte."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1761
|
||||
msgid "Do you want to automatic select default filaments?"
|
||||
msgstr "Voulez-vous sélectionner automatiquement les filaments par défaut ?"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1772
|
||||
msgid "Do you want to automatic select default materials?"
|
||||
msgstr "Voulez-vous sélectionner automatiquement les matériaux par défaut ?"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1920
|
||||
msgid "Do you want to delete all saved tool changes?"
|
||||
msgstr "Voulez-vous supprimer tous les changements d'outils enregistrés ?"
|
||||
@ -2049,6 +2074,14 @@ msgstr "Voulez-vous réessayer"
|
||||
msgid "Do you want to save your manually edited support points?"
|
||||
msgstr "Voulez-vous sauvegarder vos points de support édités manuellement ?"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1834
|
||||
msgid "Do you want to select default filaments for these FFF printer models?"
|
||||
msgstr "Voulez-vous sélectionner les filaments par défaut pour ces modèles d'imprimantes FFF ?"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1852
|
||||
msgid "Do you want to select default SLA materials for these printer models?"
|
||||
msgstr "Voulez-vous sélectionner les matériaux SLA par défaut pour ces modèles d'imprimantes ?"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:3429
|
||||
msgid "Don't arrange"
|
||||
msgstr "Ne pas agencer"
|
||||
@ -2065,6 +2098,10 @@ msgstr "Ne pas supporter les ponts"
|
||||
msgid "Downgrade"
|
||||
msgstr "Rétrograder"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1695
|
||||
msgid "Draft shield"
|
||||
msgstr "Bouclier contre les flux d'air"
|
||||
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1365
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1368
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1369
|
||||
@ -2140,6 +2177,23 @@ msgstr "Modifier la coche - Clic droit"
|
||||
msgid "Editing"
|
||||
msgstr "Édition"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:547
|
||||
msgid "Ejec&t SD card / Flash drive"
|
||||
msgstr "Éjec&ter la carte SD / la clef USB"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:126
|
||||
msgid "Eject SD card / Flash drive"
|
||||
msgstr "Éjecter la carte SD / la clef USB"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:547
|
||||
msgid "Eject SD card / Flash drive after the G-code was exported to it."
|
||||
msgstr "Éjecter la carte SD / la clef USB une fois que la G-code y a été exporté."
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2202
|
||||
#, c-format
|
||||
msgid "Ejecting of device %s(%s) has failed."
|
||||
msgstr "L'éjection de l'appareil %s(%s) a échoué."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:118
|
||||
msgid "Elephant foot compensation"
|
||||
msgstr "Compensation de l'effet patte d'éléphant"
|
||||
@ -2430,6 +2484,10 @@ msgstr "Exporter le plateau courant en AMF"
|
||||
msgid "Export current plate as G-code"
|
||||
msgstr "Exporter le plateau courant en G-code"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:521
|
||||
msgid "Export current plate as G-code to SD card / Flash drive"
|
||||
msgstr "Exporter le plateau actuel en tant que G-code vers la carte SD / la clef USB"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:486
|
||||
msgid "Export current plate as STL"
|
||||
msgstr "Exporter le plateau courant en STL"
|
||||
@ -2451,6 +2509,10 @@ msgstr "Exportez les chemins d'accès complets des modèles et des sources de pi
|
||||
msgid "Export G-code"
|
||||
msgstr "Exporter le G-code"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:521
|
||||
msgid "Export G-code to SD card / Flash drive"
|
||||
msgstr "Exporter le G-code vers la carte SD / la clef USB"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:3320
|
||||
msgid "Export OBJ"
|
||||
msgstr "Exporter OBJ"
|
||||
@ -2951,15 +3013,6 @@ msgstr "Pour plus d'informations, merci de visiter notre page wiki :"
|
||||
msgid "For support enforcers only"
|
||||
msgstr "Seulement pour les générateur de supports"
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3265
|
||||
msgid ""
|
||||
"for the left button: \tindicates a non-system (or non-default) preset,\n"
|
||||
"for the right button: \tindicates that the settings hasn't been modified."
|
||||
msgstr ""
|
||||
"pour le bouton gauche : indique un préréglage non-système (ou non par défaut),\n"
|
||||
"pour le bouton droit : indique que le réglage n'a pas été modifié."
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3267
|
||||
msgid ""
|
||||
@ -3381,17 +3434,6 @@ msgstr "HTTPS CA Fichier"
|
||||
msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed certificate."
|
||||
msgstr "Le fichier HTTPS CA est optionnel. Il est uniquement requis si vous utilisez le HTTPS avec un certificat auto-signé."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:1757
|
||||
#, c-format
|
||||
msgid ""
|
||||
"HTTPS CA File:\n"
|
||||
" \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n"
|
||||
" \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain."
|
||||
msgstr ""
|
||||
"Fichier HTTPS CA :\n"
|
||||
"\tDans ce système, %s utilise des certificats HTTPS issus du système Magasin de Certificats ou Trousseau.\n"
|
||||
"\tPour utiliser un fichier CA personnalisé, veuillez importer votre fichier CA dans le Magasin de Certificats / Trousseau."
|
||||
|
||||
#: src/slic3r/GUI/Preferences.cpp:222
|
||||
msgid "Icon size in a respect to the default size"
|
||||
msgstr "Taille de l'icône par rapport à la taille par défaut"
|
||||
@ -3442,6 +3484,10 @@ msgstr "Si activé, Slic3r télécharge les mises à jours des préréglages sys
|
||||
msgid "If enabled, the 3D scene will be rendered in Retina resolution. If you are experiencing 3D performance problems, disabling this option may help."
|
||||
msgstr "Si ceci est activé, la scène 3D sera affichée avec la résolution Retina. Si vous rencontrez des problèmes de performance 3D, le fait de désactiver cette option vous aidera peut-être."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1696
|
||||
msgid "If enabled, the skirt will be as tall as a highest printed object. This is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft."
|
||||
msgstr "Si elle est activée, la jupe sera aussi haute que l'objet imprimé le plus haut. Cela sert à protéger les impressions ABS ou ASA des phénomènes de déformation ou de décollement du plateau d'impression liés au flux d'air."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1858
|
||||
msgid "If enabled, the wipe tower will not be printed on layers with no toolchanges. On layers with a toolchange, extruder will travel downward to print the wipe tower. User is responsible for ensuring there is no collision with the print."
|
||||
msgstr "Si elle est activée, la tour de nettoyage ne sera pas imprimée sur des couches sans changement d'outil. Sur les couches avec un changement d'outil, l'extrudeur se déplacera vers le bas pour imprimer la tour de nettoyage. C'est à l'utilisateur de s'assurer qu'il n'y a pas de collision avec l'impression."
|
||||
@ -4608,6 +4654,10 @@ msgstr "Réparation du modèle terminée"
|
||||
msgid "Model repaired successfully"
|
||||
msgstr "Réparation du modèle réussie"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:979
|
||||
msgid "Modifications to the current profile will be saved."
|
||||
msgstr "Les modifications du profil actuel vont être sauvegardées."
|
||||
|
||||
#: src/slic3r/GUI/Preset.cpp:247
|
||||
msgid "modified"
|
||||
msgstr "modifié"
|
||||
@ -5406,10 +5456,10 @@ msgstr "Préréglage (%s)"
|
||||
msgid "Preset with name \"%1%\" already exists."
|
||||
msgstr "Un préréglage avec le nom \"%1%\" existe déjà."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3045
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgctxt "PresetName"
|
||||
msgid "%1% - Copy"
|
||||
msgstr "%1% - Copie"
|
||||
msgid "Copy"
|
||||
msgstr "Copie"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:163
|
||||
msgid "Press to activate deselection rectangle"
|
||||
@ -5931,9 +5981,9 @@ msgstr "Retirer les points sélectionnés"
|
||||
msgid "Remove the selected object"
|
||||
msgstr "Retirer l'objet sélectionné"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:438
|
||||
msgid "Remove user profiles - install from scratch (a snapshot will be taken beforehand)"
|
||||
msgstr "Supprimer les profils d'utilisateur - installation à partir de zéro (un instantané des réglages sera pris)"
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:453
|
||||
msgid "Remove user profiles (a snapshot will be taken beforehand)"
|
||||
msgstr "Supprimer les profils utilisateurs (un instantané sera pris au préalable)"
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:1636
|
||||
msgid "Rename"
|
||||
@ -6452,16 +6502,6 @@ msgstr "Choisissez le type de socle dont vous avez besoin"
|
||||
msgid "Select what kind of support do you need"
|
||||
msgstr "Choisissez le type de support dont vous avez besoin"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
"\tNO if you want all tool changes switch to color changes, \n"
|
||||
"\tor CANCEL to leave it unchanged."
|
||||
msgstr ""
|
||||
"Sélectionnez OUI si vous souhaitez supprimer tous les changements d'outil enregistrées, \n"
|
||||
"NON si vous souhaitez que tous les changements d'outil soient remplacés par des modifications de couleur, \n"
|
||||
"ou ANNULER pour ne pas les modifier."
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
@ -7626,6 +7666,10 @@ msgstr ""
|
||||
"L'équipement %s n'a pas été trouvé.\n"
|
||||
"Si l'équipement est connecté, veuillez appuyer sur le bouton Reset à côté du connecteur USB ..."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:976
|
||||
msgid "The current custom preset will be detached from the parent system preset."
|
||||
msgstr "Le préréglage personnalisé actuel sera détaché du préréglage système parent."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:875
|
||||
msgid ""
|
||||
"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n"
|
||||
@ -7686,6 +7730,14 @@ msgstr "La première couche sera réduite sur le plan XY selon la valeur configu
|
||||
msgid "the following characters are not allowed:"
|
||||
msgstr "les caractères suivant ne sont pas autorisés :"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1830
|
||||
msgid "The following FFF printer models have no filament selected:"
|
||||
msgstr "Les modèles d'imprimantes FFF suivants n'ont aucun filament sélectionné :"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1848
|
||||
msgid "The following SLA printer models have no materials selected:"
|
||||
msgstr "Les modèles d'imprimantes SLA suivants n'ont aucun matériau sélectionné :"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3461
|
||||
msgid "the following suffix is not allowed:"
|
||||
msgstr "le suffixe suivant n'est pas autorisé :"
|
||||
@ -7780,17 +7832,13 @@ msgstr "L'objet sélectionné ne peut être scindé car il contient plus d'un vo
|
||||
msgid "The selected object couldn't be split because it contains only one part."
|
||||
msgstr "L'objet sélectionné n'a pu être scindé car il ne contient qu'une seule pièce."
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:432
|
||||
#: src/slic3r/GUI/MainFrame.cpp:461
|
||||
msgid ""
|
||||
"The selected project is no longer available.\n"
|
||||
"Do you want to remove it from the recent projects list ?"
|
||||
"Do you want to remove it from the recent projects list?"
|
||||
msgstr ""
|
||||
"Le projet sélectionné n'est plus disponible.\n"
|
||||
"Voulez-vous le retirer de la liste des projets récents ?"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:422
|
||||
msgid "The selected project is no more available"
|
||||
msgstr "Le projet sélectionné n'est plus disponible"
|
||||
"Voulez-vous le retirer de la liste des projets récents?"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:998
|
||||
msgid ""
|
||||
@ -7964,6 +8012,14 @@ msgstr ""
|
||||
msgid "This %s version: %s"
|
||||
msgstr "Version de ce %s : %s"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:982
|
||||
msgid ""
|
||||
"This action is not revertable.\n"
|
||||
"Do you want to proceed?"
|
||||
msgstr ""
|
||||
"Cette action n'est pas réversible.\n"
|
||||
"Voulez-vous continuer ?"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:165
|
||||
msgid "This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want."
|
||||
msgstr "Ce code est inséré entre des objets lorsque vous utilisez l'impression séquentielle. Par défaut la température de l'extrudeur et du plateau est réinitialisée et utilise la commande sans-attente ; toutefois si des commandes M104, M109, M140 ou M190 sont détectées dans ce code personnalisé, Slic3r n'ajoutera pas de commandes de température. Notez que vous pouvez utiliser des variables génériques pour tous les réglages de Slic3r, donc vous pouvez entrer une commande \"M109S[first_layer_temperature]\" où vous le souhaitez."
|
||||
@ -8131,10 +8187,6 @@ msgstr "Ceci est la hauteur de couche imprimable maximum pour cet extrudeur, uti
|
||||
msgid "This is the lowest printable layer height for this extruder and limits the resolution for variable layer height. Typical values are between 0.05 mm and 0.1 mm."
|
||||
msgstr "Cette valeur est la hauteur de couche imprimable minimum pour cet extrudeur et elle limite la résolution pour la hauteur de couche variable. Les valeurs type se situent entre 0.05 mm et 0.1 mm."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "Ceci est généralement provoqué par de petites extrusions négligeables ou par un modèle défectueux. Essayez de réparer le modèle ou de changer son orientation sur le lit."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "Ceci est généralement provoqué par de petites extrusions négligeables ou par un modèle défectueux. Essayez de réparer le modèle ou de changer son orientation sur le lit."
|
||||
@ -9039,14 +9091,6 @@ msgstr "Vous ne pouvez pas charger un projet SLA avec un objet en plusieurs part
|
||||
msgid "You cannot use non-uniform scaling mode for multiple objects/parts selection"
|
||||
msgstr "Vous ne pouvez pas utiliser un mode de redimensionnement non-uniforme pour une sélection d'objets/de parties multiples"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1760
|
||||
msgid "You have to select at least one filament for selected printers"
|
||||
msgstr "Vous devez sélectionner au moins un filament pour les imprimantes sélectionnées"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1771
|
||||
msgid "You have to select at least one material for selected printers"
|
||||
msgstr "Vous devez sélectionner au moins un matériau pour les imprimantes sélectionnées"
|
||||
|
||||
#: src/slic3r/GUI/GLCanvas3DManager.cpp:287
|
||||
msgid "You may need to update your graphics card driver."
|
||||
msgstr "Vous avez peut-être besoin de mettre à jour le pilote de votre carte graphique."
|
||||
|
@ -8,7 +8,7 @@ msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-08-06 09:54+0200\n"
|
||||
"PO-Revision-Date: 2019-08-25 09:43+0900\n"
|
||||
"PO-Revision-Date: 2020-02-28 09:34+0900\n"
|
||||
"Last-Translator: lee hak-min <hangmini12@naver.com>\n"
|
||||
"Language-Team: ulsanether\n"
|
||||
"Language: ko_KR\n"
|
||||
@ -385,7 +385,7 @@ msgid ""
|
||||
"(both support_material_extruder and support_material_interface_extruder need "
|
||||
"to be set to 0)."
|
||||
msgstr ""
|
||||
"와이프 타워는 현재 비수용성 지원만 지원합니다.\n"
|
||||
"와이프 타워(프라임 타워)는 현재 비수용성 지원만 지원합니다.\n"
|
||||
"공구 교환을 트리거하지 않고 현재 압출기로 인쇄된 경우\n"
|
||||
"(support_material_extruder support_material_interface_extruder 모두 0으로 설"
|
||||
"정해야 합니다)."
|
||||
@ -397,14 +397,14 @@ msgstr "와이프 타워를 활성화하기 위해 이러한 설정을 조정해
|
||||
#: src/slic3r/GUI/ConfigManipulation.cpp:112
|
||||
#: src/slic3r/GUI/ConfigManipulation.cpp:132
|
||||
msgid "Wipe Tower"
|
||||
msgstr "와이프 타워(Wipe Tower)"
|
||||
msgstr "와이프 타워(프라임 타워)"
|
||||
|
||||
#: src/slic3r/GUI/ConfigManipulation.cpp:128
|
||||
msgid ""
|
||||
"For the Wipe Tower to work with the soluble supports, the support layers\n"
|
||||
"need to be synchronized with the object layers."
|
||||
msgstr ""
|
||||
"와이프 타워가 가용성 지지체와 함께 작동 하려면 서포트 레이어를 객체(object) "
|
||||
"와이프 타워(프라임 타워)가 가용성 지지체와 함께 작동 하려면 서포트 레이어를 객체(object) "
|
||||
"레이어와 동기화 해야 합니다."
|
||||
|
||||
#: src/slic3r/GUI/ConfigManipulation.cpp:131
|
||||
@ -532,7 +532,7 @@ msgstr "변종"
|
||||
#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:75
|
||||
#, c-format
|
||||
msgid "Incompatible with this %s"
|
||||
msgstr "%s 과 호환되지 않습니다"
|
||||
msgstr "%s 와 호환되지 않습니다"
|
||||
|
||||
#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:78
|
||||
msgid "Activate"
|
||||
@ -1751,7 +1751,7 @@ msgstr "이 개체를 비우기"
|
||||
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:42
|
||||
msgid "Preview hollowed and drilled model"
|
||||
msgstr "미리 보기 중이 비어 있고 드릴된 모델"
|
||||
msgstr "공동화된 모델 미리보기"
|
||||
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:43
|
||||
msgid "Offset"
|
||||
@ -1805,7 +1805,7 @@ msgstr "배수 구멍 삭제"
|
||||
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:786
|
||||
msgid "Hollowing parameter change"
|
||||
msgstr "공동화 매개변수 변경"
|
||||
msgstr "공동화 변수 변경"
|
||||
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoHollow.cpp:858
|
||||
msgid "Change drainage hole diameter"
|
||||
@ -9348,7 +9348,7 @@ msgstr ""
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2185
|
||||
msgid "Use volumetric E"
|
||||
msgstr "용적 E 사용"
|
||||
msgstr "용적(volumetric) E 사용"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2186
|
||||
msgid ""
|
||||
@ -9607,11 +9607,11 @@ msgstr "느리게"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2425
|
||||
msgid "Slow tilt"
|
||||
msgstr "슬로우 틸트"
|
||||
msgstr "천천히 기울이기"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2426
|
||||
msgid "Time of the slow tilt"
|
||||
msgstr "느린 기울기의 시간"
|
||||
msgstr "천천히 기울이는 속도"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2433
|
||||
msgid "Area fill"
|
||||
@ -9670,7 +9670,7 @@ msgstr "병 볼륨"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2492
|
||||
msgid "ml"
|
||||
msgstr "광년"
|
||||
msgstr ""
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2497 src/libslic3r/PrintConfig.cpp:2498
|
||||
msgid "Bottle weight"
|
||||
@ -9686,7 +9686,7 @@ msgstr "g /ml"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2513
|
||||
msgid "money/bottle"
|
||||
msgstr "돈 /병"
|
||||
msgstr "가격 /병"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2518
|
||||
msgid "Faded layers"
|
||||
@ -10039,11 +10039,11 @@ msgid ""
|
||||
"Performance vs accuracy of calculation. Lower values may produce unwanted "
|
||||
"artifacts."
|
||||
msgstr ""
|
||||
"성능 대 계산의 정확성. 값이 낮을수록 원치 않는 아티팩트가 생성될 수 있습니다."
|
||||
"성능 계산의 정확성. 값이 낮을수록 원치 않는 아티팩트가 생성될 수 있습니다."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2935
|
||||
msgid "Hollowing closing distance"
|
||||
msgstr "공동화된 닫힘 반경"
|
||||
msgstr "속비움된 닫힘 반경"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:3315
|
||||
msgid "Export OBJ"
|
||||
|
@ -337,6 +337,10 @@ msgstr "Wyrażenie logiczne (Boole'owskie) używające wartości konfiguracji ak
|
||||
msgid "A boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile."
|
||||
msgstr "Wyrażenie logiczne (Boole'owskie) używające wartości konfiguracji aktywnego profilu drukarki. Jeśli to wyrażenie jest prawdziwe to znaczy, że aktywny profil jest kompatybilny z drukarką."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:975
|
||||
msgid "A copy of the current system preset will be created, which will be detached from the system preset."
|
||||
msgstr "Zostanie utworzona kopia obecnego zestawu ustawień i odłączona od ustawień systemowych."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1034
|
||||
msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS."
|
||||
msgstr "Generalną zasadą jest 160 do 230 °C dla PLA i 215 do 250 °C dla ABS."
|
||||
@ -1088,6 +1092,34 @@ msgstr "Anulowanie..."
|
||||
msgid "Cannot calculate extrusion width for %1%: Variable \"%2%\" not accessible."
|
||||
msgstr "Nie można przeliczyć szerokości ekstruzji dla %1%: zmienna \"%2%\" jest niedostępna."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:3017
|
||||
msgid ""
|
||||
"Cannot insert a new layer range after the current layer range.\n"
|
||||
"Current layer range overlaps with the next layer range."
|
||||
msgstr ""
|
||||
"Nie można wstawić nowego zakresu wysokości po obecnym.\n"
|
||||
"Zakres pokrywałby się z kolejnym."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:3008
|
||||
msgid ""
|
||||
"Cannot insert a new layer range after the current layer range.\n"
|
||||
"The next layer range is too thin to be split to two\n"
|
||||
"without violating the minimum layer height."
|
||||
msgstr ""
|
||||
"Nie można wstawić nowego zakresu wysokości po obecnym.\n"
|
||||
"Kolejny zakres jest zbyt niski, aby można było go podzielić\n"
|
||||
"z powodu minimalnej grubości warstwy."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:3012
|
||||
msgid ""
|
||||
"Cannot insert a new layer range between the current and the next layer range.\n"
|
||||
"The gap between the current layer range and the next layer range\n"
|
||||
"is thinner than the minimum layer height allowed."
|
||||
msgstr ""
|
||||
"Nie można wstawić nowego zakresu wysokości pomiędzy obecne.\n"
|
||||
"Odstęp pomiędzy zakresami jest niższy \n"
|
||||
"niż dozwolona minimalna wysokość warstwy."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3073
|
||||
msgid "Cannot overwrite a system profile."
|
||||
msgstr "Nie można nadpisać profilu systemowego."
|
||||
@ -1569,15 +1601,6 @@ msgstr "Obecny zestaw ustawień jest dziedziczony z"
|
||||
msgid "Current preset is inherited from the default preset."
|
||||
msgstr "Obecny zestaw ustawień jest dziedziczony z zestawu domyślnego."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:960
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Current preset is inherited from:\n"
|
||||
"\t%s"
|
||||
msgstr ""
|
||||
"Obecny zestaw ustawień jest dziedziczony z:\n"
|
||||
"%s"
|
||||
|
||||
#: src/slic3r/GUI/UpdateDialogs.cpp:43
|
||||
msgid "Current version:"
|
||||
msgstr "Obecna wersja:"
|
||||
@ -1877,6 +1900,18 @@ msgstr "Odznaczenie prostokątem"
|
||||
msgid "Deselects all objects"
|
||||
msgstr "Odznacza wszystkie modele"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:963
|
||||
msgid "Detach from system preset"
|
||||
msgstr "Odłącz od ustawień systemowych"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:984
|
||||
msgid "Detach preset"
|
||||
msgstr "Odłącz zestaw ustawień"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgid "Detached"
|
||||
msgstr "Odłączono"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1373
|
||||
msgid "Detect bridging perimeters"
|
||||
msgstr "Wykrywanie mostów przy obrysach"
|
||||
@ -2025,14 +2060,6 @@ msgstr ""
|
||||
"Kliknij TAK, jeśli chcesz zmienić wartość na %s %%,\n"
|
||||
"lub NIE, jeśli masz pewność, że %s %s jest prawidłową wartością."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1761
|
||||
msgid "Do you want to automatic select default filaments?"
|
||||
msgstr "Czy chcesz automatycznie wybrać domyślne filamenty?"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1772
|
||||
msgid "Do you want to automatic select default materials?"
|
||||
msgstr "Czy chcesz automatycznie wybrać domyślne materiały?"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1920
|
||||
msgid "Do you want to delete all saved tool changes?"
|
||||
msgstr "Czy chcesz usunąć wszystkie zmiany narzędzi?"
|
||||
@ -2049,6 +2076,14 @@ msgstr "Czy chcesz spróbować ponownie"
|
||||
msgid "Do you want to save your manually edited support points?"
|
||||
msgstr "Czy chcesz zapisać ręcznie edytowane punkty podpór?"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1834
|
||||
msgid "Do you want to select default filaments for these FFF printer models?"
|
||||
msgstr "Czy chcesz ustawić domyślne filamenty dla tych modeli drukarek FFF?"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1852
|
||||
msgid "Do you want to select default SLA materials for these printer models?"
|
||||
msgstr "Czy chcesz ustawić domyślne materiały SLA dla tych modeli drukarek?"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:3429
|
||||
msgid "Don't arrange"
|
||||
msgstr "Nie układaj"
|
||||
@ -2065,6 +2100,10 @@ msgstr "Nie używaj podpór pod mostami"
|
||||
msgid "Downgrade"
|
||||
msgstr "Deaktualizacja"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1695
|
||||
msgid "Draft shield"
|
||||
msgstr "Draft shield"
|
||||
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1365
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1368
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1369
|
||||
@ -2140,6 +2179,23 @@ msgstr "Edytuj zaznaczenie - kliknij prawym przyciskiem"
|
||||
msgid "Editing"
|
||||
msgstr "Edytowanie"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:547
|
||||
msgid "Ejec&t SD card / Flash drive"
|
||||
msgstr "Wysuń kar&tę SD / pamięć flash"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:126
|
||||
msgid "Eject SD card / Flash drive"
|
||||
msgstr "Wysuń kartę SD / pamięć flash"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:547
|
||||
msgid "Eject SD card / Flash drive after the G-code was exported to it."
|
||||
msgstr "Wysuń kartę SD / pamięć flash po wyeksportowaniu na nią G-code."
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2202
|
||||
#, c-format
|
||||
msgid "Ejecting of device %s(%s) has failed."
|
||||
msgstr "Wysuwanie urządzenia %s(%s) nie powiodło się."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:118
|
||||
msgid "Elephant foot compensation"
|
||||
msgstr "Kompensacja \"stopy słonia\""
|
||||
@ -2430,6 +2486,10 @@ msgstr "Eksport zawartości stołu jako AMF"
|
||||
msgid "Export current plate as G-code"
|
||||
msgstr "Eksport zawartości stołu jako G-code"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:521
|
||||
msgid "Export current plate as G-code to SD card / Flash drive"
|
||||
msgstr "Eksport zawartości stołu jako G-gode na kartę SD / pamięć flash"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:486
|
||||
msgid "Export current plate as STL"
|
||||
msgstr "Eksport zawartości stołu jako STL"
|
||||
@ -2451,6 +2511,10 @@ msgstr "Eksport pełnych ścieżek źródłowych modeli i części do plików 3M
|
||||
msgid "Export G-code"
|
||||
msgstr "Eksport G-code"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:521
|
||||
msgid "Export G-code to SD card / Flash drive"
|
||||
msgstr "Eksport G-gode na kartę SD / pamięć flash"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:3320
|
||||
msgid "Export OBJ"
|
||||
msgstr "Eksport OBJ"
|
||||
@ -2951,15 +3015,6 @@ msgstr "Aby uzyskać więcej informacji odwiedź naszą wiki:"
|
||||
msgid "For support enforcers only"
|
||||
msgstr "Tylko dla wymuszania podpór"
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3265
|
||||
msgid ""
|
||||
"for the left button: \tindicates a non-system (or non-default) preset,\n"
|
||||
"for the right button: \tindicates that the settings hasn't been modified."
|
||||
msgstr ""
|
||||
"dla lewego przycisku: wskazuje na niesystemowy (lub inny niż domyślny) zestaw ustawień,\n"
|
||||
"dla prawego przycisku: wskazuje, że ustawienia nie zostały zmodyfikowane."
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3267
|
||||
msgid ""
|
||||
@ -3377,16 +3432,6 @@ msgstr "Plik certyfikatu HTTPS CA"
|
||||
msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed certificate."
|
||||
msgstr "Plik HTTPS CA jest opcjonalny. Jest potrzebny jedynie w sytuacji, gdy używasz HTTPS z certyfikatem samopodpisanym."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:1757
|
||||
#, c-format
|
||||
msgid ""
|
||||
"HTTPS CA File:\n"
|
||||
" \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n"
|
||||
" \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain."
|
||||
msgstr ""
|
||||
"Plik certyfikatu HTTPS:\n"
|
||||
"W tym systemie, %s używa certyfikatu HTTPS z magazynu systemowego (Certificate Store) lub Keychain. Aby użyć własnego certyfikatu, zaimportuj plik do Certificate Store / Keychain."
|
||||
|
||||
#: src/slic3r/GUI/Preferences.cpp:222
|
||||
msgid "Icon size in a respect to the default size"
|
||||
msgstr "Rozmiar ikon w odniesieniu do domyślnego"
|
||||
@ -3437,6 +3482,10 @@ msgstr "Włączenie powoduje pobieranie wbudowanych systemowych zestawów ustawi
|
||||
msgid "If enabled, the 3D scene will be rendered in Retina resolution. If you are experiencing 3D performance problems, disabling this option may help."
|
||||
msgstr "Po włączeniu podgląd 3D będzie renderowany w rozdzielczości Retina. Wyłącz tę opcję w przypadku wystąpienia problemów z wydajnością 3D."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1696
|
||||
msgid "If enabled, the skirt will be as tall as a highest printed object. This is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft."
|
||||
msgstr "Po włączeniu, wysokość skirt będzie taka sama, jak najwyższego modelu. Przydaje się podczas druku z ABS lub ASA - chroni wydruk przed podwijaniem się i odklejaniem od stołu przez przeciąg."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1858
|
||||
msgid "If enabled, the wipe tower will not be printed on layers with no toolchanges. On layers with a toolchange, extruder will travel downward to print the wipe tower. User is responsible for ensuring there is no collision with the print."
|
||||
msgstr "Po włączeniu wieża czyszcząca nie będzie drukowana na warstwach, na których nie ma zmian koloru. Na kolejnych warstwach ze zmianami koloru ekstruder zjedzie w dół, aby kontynuować czyszczenie na wieży. Użytkownik musi upewnić się, że nie nastąpi kolizja głowicy z wydrukiem."
|
||||
@ -4016,7 +4065,7 @@ msgstr "Wczytaj kształt z STL..."
|
||||
|
||||
#: src/slic3r/GUI/BedShapeDialog.cpp:182 src/slic3r/GUI/BedShapeDialog.cpp:261
|
||||
msgid "Load..."
|
||||
msgstr "Załaduje..."
|
||||
msgstr "Otwórz..."
|
||||
|
||||
#: src/slic3r/GUI/WipeTowerDialog.cpp:264
|
||||
msgid "loaded"
|
||||
@ -4603,6 +4652,10 @@ msgstr "Ukończono naprawę modelu"
|
||||
msgid "Model repaired successfully"
|
||||
msgstr "Model naprawiono pomyślnie"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:979
|
||||
msgid "Modifications to the current profile will be saved."
|
||||
msgstr "Modyfikacje zostaną zapisane na obecnym profilu."
|
||||
|
||||
#: src/slic3r/GUI/Preset.cpp:247
|
||||
msgid "modified"
|
||||
msgstr "zmodyfikowano"
|
||||
@ -5400,10 +5453,10 @@ msgstr "Zestaw ustawień (%s)"
|
||||
msgid "Preset with name \"%1%\" already exists."
|
||||
msgstr "Zestaw ustawień o nazwie \"%1%\" już istnieje."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3045
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgctxt "PresetName"
|
||||
msgid "%1% - Copy"
|
||||
msgstr "%1% - Kopia"
|
||||
msgid "Copy"
|
||||
msgstr "Kopia"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:163
|
||||
msgid "Press to activate deselection rectangle"
|
||||
@ -5878,7 +5931,7 @@ msgstr "Niższa szczegółowość"
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:879
|
||||
msgid "Remove device"
|
||||
msgstr "Usuń urządzenie"
|
||||
msgstr "Odłącz urządzenie"
|
||||
|
||||
#: src/slic3r/GUI/ExtruderSequenceDialog.cpp:182
|
||||
msgid "Remove extruder from sequence"
|
||||
@ -5925,9 +5978,9 @@ msgstr "Usuń zaznaczone punkty"
|
||||
msgid "Remove the selected object"
|
||||
msgstr "Usuń wybrany model"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:438
|
||||
msgid "Remove user profiles - install from scratch (a snapshot will be taken beforehand)"
|
||||
msgstr "Usuń profile użytkownika - czysta instalacja (najpierw zostanie wykonany zrzut)"
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:453
|
||||
msgid "Remove user profiles (a snapshot will be taken beforehand)"
|
||||
msgstr "Usuń profile użytkownika (zostanie wykonany zrzut)"
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:1636
|
||||
msgid "Rename"
|
||||
@ -6446,16 +6499,6 @@ msgstr "Wybierz rodzaj wymaganej podkładki"
|
||||
msgid "Select what kind of support do you need"
|
||||
msgstr "Wybierz rodzaj potrzebnych podpór"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
"\tNO if you want all tool changes switch to color changes, \n"
|
||||
"\tor CANCEL to leave it unchanged."
|
||||
msgstr ""
|
||||
"Wybierz TAK, jeśli chcesz usunąć wszystkie zapisane zmiany narzędzi,\n"
|
||||
"NIE, jeśli chcesz przełączyć zmiany narzędzi na zmiany koloru lub\n"
|
||||
"ANULUJ, aby pozostawić bez zmian."
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
@ -7618,6 +7661,10 @@ msgstr ""
|
||||
"Nie znaleziono urządzenia %s .\n"
|
||||
"Jeśli urządzenie jest podłączone, to naciśnij przycisk Reset obok złącza USB ..."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:976
|
||||
msgid "The current custom preset will be detached from the parent system preset."
|
||||
msgstr "Obecny niestandardowy zestaw ustawień zostanie odłączony od dziedziczącego zestawu systemowego."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:875
|
||||
msgid ""
|
||||
"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n"
|
||||
@ -7680,6 +7727,14 @@ msgstr "Pierwsza warstwa zostanie zmniejszona o tą wartość w osiach X i Y aby
|
||||
msgid "the following characters are not allowed:"
|
||||
msgstr "następujące znaki nie są dozwolone:"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1830
|
||||
msgid "The following FFF printer models have no filament selected:"
|
||||
msgstr "Następujące modele drukarek FFF nie mają przypisanych filamentów:"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1848
|
||||
msgid "The following SLA printer models have no materials selected:"
|
||||
msgstr "Następujące modele drukarek SLA nie mają przypisanych materiałów:"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3461
|
||||
msgid "the following suffix is not allowed:"
|
||||
msgstr "następujący sufiks nie jest dozwolony:"
|
||||
@ -7774,18 +7829,14 @@ msgstr "Wybrany model nie może być podzielony ponieważ składa się z więcej
|
||||
msgid "The selected object couldn't be split because it contains only one part."
|
||||
msgstr "Wybrany model nie może być rozdzielony ponieważ zawiera tylko jedną część."
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:432
|
||||
#: src/slic3r/GUI/MainFrame.cpp:461
|
||||
msgid ""
|
||||
"The selected project is no longer available.\n"
|
||||
"Do you want to remove it from the recent projects list ?"
|
||||
"Do you want to remove it from the recent projects list?"
|
||||
msgstr ""
|
||||
"Wybrany obiekt nie jest już dostępny.\n"
|
||||
"Czy chcesz usunąć go z listy niedawno używanych projektów?"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:422
|
||||
msgid "The selected project is no more available"
|
||||
msgstr "Wybrany projekt nie jest dostępny"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:998
|
||||
msgid ""
|
||||
"The sequential print is on.\n"
|
||||
@ -7955,6 +8006,14 @@ msgstr ""
|
||||
msgid "This %s version: %s"
|
||||
msgstr "%s wersja: %s"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:982
|
||||
msgid ""
|
||||
"This action is not revertable.\n"
|
||||
"Do you want to proceed?"
|
||||
msgstr ""
|
||||
"Tej czynności nie można odwrócić.\n"
|
||||
"Czy chcesz kontynuować?"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:165
|
||||
msgid "This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want."
|
||||
msgstr "Ten kod jest wykonywany pomiędzy drukiem poszczególnych modeli w trybie druku sekwencyjnego. Domyślnie przy komendzie non-wait temperatury dyszy i stołu są resetowane; jednakże jeśli przy tej opcji zostaną użyte komendy M104, M109, M140 lub M190 to Slic3r nie doda własnych komend do kontroli temperatury. Pamiętaj, że możesz używać zmiennych typu placeholder, więc np. komendę \"M109 S[first_layer_temperature]\" (temperatura pierwszej warstwy) możesz umieścić gdzie chcesz."
|
||||
@ -8123,10 +8182,6 @@ msgstr "To jest najwyższa możliwa do wydrukowania wysokość warstwy dla tego
|
||||
msgid "This is the lowest printable layer height for this extruder and limits the resolution for variable layer height. Typical values are between 0.05 mm and 0.1 mm."
|
||||
msgstr "To jest najniższa możliwa do wydrukowania wysokość warstwy dla tego ekstrudera i jednocześnie dolny limit dla funkcji zmiennej wysokości warstwy. Zazwyczaj jest to 0.05 lub 0.1 mm."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "Dzieje się to zazwyczaj z powodu zbyt małych odcinków ekstruzji (są one pomijane) lub uszkodzenia modelu. Spróbuj naprawić model lub zmienić jego orientację na stole."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "Dzieje się to zazwyczaj z powodu zbyt małych odcinków ekstruzji (są one pomijane) lub uszkodzenia modelu. Spróbuj naprawić model lub zmienić jego orientację na stole."
|
||||
@ -9033,14 +9088,6 @@ msgstr "Nie możesz wczytać projektu SLA mając na stole wieloczęściowy model
|
||||
msgid "You cannot use non-uniform scaling mode for multiple objects/parts selection"
|
||||
msgstr "Nie możesz używać skalowania nierównomiernego dla kliku modeli/części"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1760
|
||||
msgid "You have to select at least one filament for selected printers"
|
||||
msgstr "Musisz wybrać co najmniej jeden filament dla zaznaczonych drukarek"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1771
|
||||
msgid "You have to select at least one material for selected printers"
|
||||
msgstr "Musisz wybrać co najmniej jeden materiał dla zaznaczonych drukarek"
|
||||
|
||||
#: src/slic3r/GUI/GLCanvas3DManager.cpp:287
|
||||
msgid "You may need to update your graphics card driver."
|
||||
msgstr "Może być wymagana aktualizacja sterowników karty graficznej."
|
||||
|
13
resources/profiles/BIBO.idx
Normal file
@ -0,0 +1,13 @@
|
||||
min_slic3r_version = 2.2.0-alpha3
|
||||
0.0.1 Multiple Print models were unified into a single one.
|
||||
0.0.1-beta2 Bed model and textures added. Materials all use the BOBO2 identifier. deretract speed set to 0 to use retract speed.
|
||||
0.0.1-beta1 Added new printer profiles for ditto printing. New retraction settings, new materials. Removed some settings which do not apply. More start gcode improvements.
|
||||
0.0.1-alpha13 Adjusted Jerk, Acceleration, and maximum feedrates to better match the stock firmware. For Dual extrusion, tool change retractions were increased.
|
||||
0.0.1-alpha12 github repo created for version history
|
||||
0.0.1-alpha11 Revised version available to community for testing. Removed PVA and HIPS disolvable support materials from single extruder versions. Improved single extruder second nozzle standby temperature
|
||||
0.0.1-alpha8 Available to community Early adopters for testing. Corrected filament settings to prevent duplicates, and reworked start and end gcode.
|
||||
# The following line (max_slic3r_version) forces the users of PrusaSlicer 2.2.0-alpha3 and newer to update the profiles to 0.0.1-alpha12 and newer,
|
||||
# so they will see the print bed.
|
||||
max_slic3r_version = 2.2.0-alpha2
|
||||
min_slic3r_version = 2.2.0-alpha0
|
||||
0.0.1-alpha Initial version
|
858
resources/profiles/BIBO.ini
Normal file
@ -0,0 +1,858 @@
|
||||
# Print profiles for the BIBO printers.
|
||||
|
||||
[vendor]
|
||||
# Vendor name will be shown by the Config Wizard.
|
||||
name = BIBO
|
||||
# Configuration version of this file. Config file will only be installed, if the config_version differs.
|
||||
# This means, the server may force the PrusaSlicer configuration to be downgraded.
|
||||
config_version = 0.0.1
|
||||
# Where to get the updates from?
|
||||
config_update_url = http://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/BIBO/
|
||||
|
||||
# The printer models will be shown by the Configuration Wizard in this order,
|
||||
# also the first model installed & the first nozzle installed will be activated after install.
|
||||
# Printer model name will be shown by the installation wizard.
|
||||
|
||||
[printer_model:BIBO2]
|
||||
name = BIBO2 Touch
|
||||
variants = 0.4
|
||||
technology = FFF
|
||||
family = BIBO2
|
||||
bed_model = BIBO2_bed.stl
|
||||
bed_texture = BIBO2.svg
|
||||
default_materials = Generic PLA @BIBO2; Generic PETG @BIBO2; Generic ABS @BIBO2; Prusament PLA @BIBO2; Prusament PETG @BIBO2
|
||||
|
||||
# All presets starting with asterisk, for example *common*, are intermediate and they will
|
||||
# not make it into the user interface.
|
||||
|
||||
# Common print preset
|
||||
[print:*common*]
|
||||
avoid_crossing_perimeters = 0
|
||||
bottom_fill_pattern = rectilinear
|
||||
bridge_angle = 0
|
||||
bridge_flow_ratio = 0.95
|
||||
bridge_speed = 25
|
||||
brim_width = 0
|
||||
clip_multipart_objects = 1
|
||||
compatible_printers =
|
||||
complete_objects = 0
|
||||
dont_support_bridges = 1
|
||||
elefant_foot_compensation = 0
|
||||
ensure_vertical_shell_thickness = 1
|
||||
external_fill_pattern = rectilinear
|
||||
external_perimeters_first = 0
|
||||
external_perimeter_extrusion_width = 0.45
|
||||
extra_perimeters = 0
|
||||
extruder_clearance_height = 12
|
||||
extruder_clearance_radius = 45
|
||||
extrusion_width = 0.45
|
||||
fill_angle = 45
|
||||
fill_density = 20%
|
||||
fill_pattern = grid
|
||||
first_layer_extrusion_width = 0.42
|
||||
first_layer_height = 0.2
|
||||
first_layer_speed = 20
|
||||
gap_fill_speed = 30
|
||||
gcode_comments = 0
|
||||
infill_every_layers = 1
|
||||
infill_extruder = 1
|
||||
infill_extrusion_width = 0.45
|
||||
infill_first = 0
|
||||
infill_only_where_needed = 0
|
||||
infill_overlap = 25%
|
||||
interface_shells = 0
|
||||
max_print_speed = 60
|
||||
max_volumetric_extrusion_rate_slope_negative = 0
|
||||
max_volumetric_extrusion_rate_slope_positive = 0
|
||||
max_volumetric_speed = 0
|
||||
min_skirt_length = 4
|
||||
notes =
|
||||
overhangs = 1
|
||||
only_retract_when_crossing_perimeters = 0
|
||||
ooze_prevention = 0
|
||||
output_filename_format = {input_filename_base}_{layer_height}mm_{if num_extruders==1}{filament_type[0]}{else}E1{filament_type[0]}_E2{filament_type[1]}{endif}_{printer_model}_{print_time}.gcode
|
||||
perimeters = 2
|
||||
perimeter_extruder = 1
|
||||
perimeter_extrusion_width = 0.45
|
||||
post_process =
|
||||
print_settings_id =
|
||||
raft_layers = 0
|
||||
resolution = 0
|
||||
seam_position = aligned
|
||||
single_extruder_multi_material_priming = 0
|
||||
skirts = 3
|
||||
skirt_distance = 2
|
||||
skirt_height = 1
|
||||
small_perimeter_speed = 25
|
||||
solid_infill_below_area = 0
|
||||
solid_infill_every_layers = 0
|
||||
solid_infill_extruder = 1
|
||||
solid_infill_extrusion_width = 0.45
|
||||
spiral_vase = 0
|
||||
standby_temperature_delta = -5
|
||||
support_material = 0
|
||||
support_material_extruder = 0
|
||||
support_material_extrusion_width = 0.4
|
||||
support_material_interface_extruder = 0
|
||||
support_material_angle = 0
|
||||
support_material_buildplate_only = 0
|
||||
support_material_enforce_layers = 0
|
||||
support_material_contact_distance = 0.15
|
||||
support_material_interface_contact_loops = 0
|
||||
support_material_interface_layers = 2
|
||||
support_material_interface_spacing = 0.2
|
||||
support_material_interface_speed = 100%
|
||||
support_material_pattern = rectilinear
|
||||
support_material_spacing = 2
|
||||
support_material_speed = 40
|
||||
support_material_synchronize_layers = 0
|
||||
support_material_threshold = 45
|
||||
support_material_with_sheath = 0
|
||||
support_material_xy_spacing = 60%
|
||||
thin_walls = 0
|
||||
top_infill_extrusion_width = 0.45
|
||||
top_solid_infill_speed = 40
|
||||
travel_speed = 130
|
||||
wipe_tower = 0
|
||||
wipe_tower_bridging = 10
|
||||
wipe_tower_rotation_angle = 0
|
||||
wipe_tower_width = 60
|
||||
wipe_tower_x = 50
|
||||
wipe_tower_y = 50
|
||||
xy_size_compensation = 0
|
||||
|
||||
[print:*0.05mm*]
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 10
|
||||
bridge_acceleration = 300
|
||||
bridge_flow_ratio = 0.7
|
||||
default_acceleration = 500
|
||||
external_perimeter_speed = 20
|
||||
fill_density = 20%
|
||||
first_layer_acceleration = 250
|
||||
gap_fill_speed = 20
|
||||
infill_acceleration = 800
|
||||
infill_speed = 30
|
||||
max_print_speed = 60
|
||||
small_perimeter_speed = 20
|
||||
solid_infill_speed = 30
|
||||
support_material_extrusion_width = 0.3
|
||||
support_material_spacing = 1.5
|
||||
layer_height = 0.05
|
||||
perimeter_acceleration = 300
|
||||
perimeter_speed = 30
|
||||
perimeters = 3
|
||||
support_material_speed = 30
|
||||
top_solid_infill_speed = 20
|
||||
top_solid_layers = 15
|
||||
|
||||
[print:*0.07mm*]
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 8
|
||||
bridge_acceleration = 300
|
||||
bridge_flow_ratio = 0.7
|
||||
bridge_speed = 20
|
||||
default_acceleration = 1000
|
||||
external_perimeter_speed = 20
|
||||
fill_density = 15%
|
||||
first_layer_acceleration = 500
|
||||
gap_fill_speed = 20
|
||||
infill_acceleration = 800
|
||||
infill_speed = 40
|
||||
max_print_speed = 60
|
||||
small_perimeter_speed = 20
|
||||
solid_infill_speed = 40
|
||||
support_material_extrusion_width = 0.3
|
||||
support_material_spacing = 1.5
|
||||
layer_height = 0.07
|
||||
perimeter_acceleration = 300
|
||||
perimeter_speed = 30
|
||||
perimeters = 3
|
||||
support_material_speed = 40
|
||||
top_solid_infill_speed = 30
|
||||
top_solid_layers = 11
|
||||
|
||||
[print:*0.10mm*]
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 7
|
||||
bridge_flow_ratio = 0.7
|
||||
layer_height = 0.1
|
||||
perimeter_acceleration = 800
|
||||
top_solid_layers = 9
|
||||
|
||||
[print:*0.12mm*]
|
||||
inherits = *common*
|
||||
perimeter_speed = 40
|
||||
external_perimeter_speed = 25
|
||||
infill_speed = 50
|
||||
solid_infill_speed = 40
|
||||
layer_height = 0.12
|
||||
perimeters = 3
|
||||
top_infill_extrusion_width = 0.4
|
||||
bottom_solid_layers = 6
|
||||
top_solid_layers = 7
|
||||
|
||||
[print:*0.15mm*]
|
||||
inherits = *common*
|
||||
external_perimeter_speed = 40
|
||||
infill_acceleration = 1100
|
||||
infill_speed = 50
|
||||
layer_height = 0.15
|
||||
perimeter_acceleration = 800
|
||||
perimeter_speed = 40
|
||||
solid_infill_speed = 40
|
||||
top_infill_extrusion_width = 0.4
|
||||
bottom_solid_layers = 5
|
||||
top_solid_layers = 7
|
||||
|
||||
[print:*0.20mm*]
|
||||
inherits = *common*
|
||||
perimeter_speed = 40
|
||||
external_perimeter_speed = 25
|
||||
infill_speed = 50
|
||||
solid_infill_speed = 40
|
||||
layer_height = 0.20
|
||||
top_infill_extrusion_width = 0.4
|
||||
bottom_solid_layers = 4
|
||||
top_solid_layers = 5
|
||||
|
||||
[print:*0.24mm*]
|
||||
inherits = *common*
|
||||
perimeter_speed = 40
|
||||
external_perimeter_speed = 25
|
||||
infill_speed = 50
|
||||
solid_infill_speed = 40
|
||||
layer_height = 0.24
|
||||
top_infill_extrusion_width = 0.45
|
||||
bottom_solid_layers = 3
|
||||
top_solid_layers = 4
|
||||
|
||||
[print:*0.28mm*]
|
||||
inherits = *common*
|
||||
perimeter_speed = 40
|
||||
external_perimeter_speed = 25
|
||||
infill_speed = 50
|
||||
solid_infill_speed = 40
|
||||
layer_height = 0.28
|
||||
top_infill_extrusion_width = 0.45
|
||||
bottom_solid_layers = 3
|
||||
top_solid_layers = 4
|
||||
|
||||
[print:*0.30mm*]
|
||||
inherits = *common*
|
||||
bottom_solid_layers = 4
|
||||
bridge_flow_ratio = 0.95
|
||||
external_perimeter_speed = 40
|
||||
infill_acceleration = 1100
|
||||
infill_speed = 60
|
||||
layer_height = 0.3
|
||||
perimeter_acceleration = 800
|
||||
perimeter_speed = 50
|
||||
solid_infill_speed = 50
|
||||
top_infill_extrusion_width = 0.4
|
||||
top_solid_layers = 4
|
||||
|
||||
[print:*soluble_support*]
|
||||
inherits = *common*
|
||||
overhangs = 1
|
||||
skirts = 0
|
||||
support_material = 1
|
||||
support_material_contact_distance = 0
|
||||
support_material_extruder = 2
|
||||
support_material_extrusion_width = 0.45
|
||||
support_material_interface_extruder = 2
|
||||
support_material_interface_layers = 3
|
||||
support_material_interface_spacing = 0.1
|
||||
support_material_synchronize_layers = 1
|
||||
support_material_threshold = 80
|
||||
support_material_with_sheath = 1
|
||||
wipe_tower_bridging = 6
|
||||
support_material_interface_speed = 80%
|
||||
perimeter_speed = 40
|
||||
solid_infill_speed = 40
|
||||
top_infill_extrusion_width = 0.45
|
||||
top_solid_infill_speed = 30
|
||||
|
||||
[print:0.05mm ULTRADETAIL @BIBO2]
|
||||
inherits = *0.05mm*
|
||||
# alias = 0.05mm ULTRADETAIL
|
||||
infill_extrusion_width = 0.5
|
||||
|
||||
[print:0.07mm SUPERDETAIL @BIBO2]
|
||||
inherits = *0.07mm*
|
||||
# alias = 0.07mm SUPERDETAIL
|
||||
infill_extrusion_width = 0.5
|
||||
|
||||
[print:0.10mm HIGHDETAIL @BIBO2]
|
||||
inherits = *0.10mm*
|
||||
# alias = 0.10mm HIGHDETAIL
|
||||
infill_extrusion_width = 0.5
|
||||
|
||||
[print:0.12mm DETAIL @BIBO2]
|
||||
inherits = *0.12mm*
|
||||
# alias = 0.12mm DETAIL
|
||||
travel_speed = 130
|
||||
infill_speed = 50
|
||||
solid_infill_speed = 40
|
||||
top_solid_infill_speed = 30
|
||||
support_material_extrusion_width = 0.38
|
||||
|
||||
[print:0.15mm OPTIMAL @BIBO2]
|
||||
inherits = *0.15mm*
|
||||
# alias = 0.15mm OPTIMAL
|
||||
top_infill_extrusion_width = 0.45
|
||||
|
||||
[print:0.20mm NORMAL @BIBO2]
|
||||
inherits = *0.20mm*
|
||||
# alias = 0.20mm NORMAL
|
||||
travel_speed = 130
|
||||
infill_speed = 50
|
||||
solid_infill_speed = 40
|
||||
top_solid_infill_speed = 30
|
||||
support_material_extrusion_width = 0.38
|
||||
|
||||
[print:0.24mm DRAFT @BIBO2]
|
||||
inherits = *0.24mm*
|
||||
# alias = 0.24mm DRAFT
|
||||
travel_speed = 130
|
||||
infill_speed = 50
|
||||
solid_infill_speed = 40
|
||||
top_solid_infill_speed = 30
|
||||
support_material_extrusion_width = 0.38
|
||||
|
||||
[print:0.28mm SUPERDRAFT @BIBO2]
|
||||
inherits = *0.28mm*
|
||||
# alias = 0.28mm SUPERDRAFT
|
||||
travel_speed = 130
|
||||
infill_speed = 50
|
||||
solid_infill_speed = 40
|
||||
top_solid_infill_speed = 30
|
||||
support_material_extrusion_width = 0.38
|
||||
|
||||
[print:0.30mm ULTRADRAFT @BIBO2]
|
||||
inherits = *0.30mm*
|
||||
# alias = 0.30mm ULTRADRAFT
|
||||
bottom_solid_layers = 3
|
||||
bridge_speed = 30
|
||||
external_perimeter_speed = 35
|
||||
infill_acceleration = 1100
|
||||
infill_speed = 55
|
||||
max_print_speed = 60
|
||||
perimeter_speed = 50
|
||||
small_perimeter_speed = 30
|
||||
solid_infill_speed = 50
|
||||
top_solid_infill_speed = 40
|
||||
support_material_speed = 45
|
||||
external_perimeter_extrusion_width = 0.6
|
||||
extrusion_width = 0.5
|
||||
first_layer_extrusion_width = 0.42
|
||||
infill_extrusion_width = 0.5
|
||||
perimeter_extrusion_width = 0.5
|
||||
solid_infill_extrusion_width = 0.5
|
||||
top_infill_extrusion_width = 0.45
|
||||
support_material_extrusion_width = 0.38
|
||||
|
||||
# Soluble Supports Profiles for dual extrusion #
|
||||
[print:0.15mm OPTIMAL SOLUBLE FULL @BIBO2]
|
||||
inherits = 0.15mm OPTIMAL @BIBO2; *soluble_support*
|
||||
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_BIBO.*/ and num_extruders==2
|
||||
external_perimeter_speed = 25
|
||||
notes = Set your soluble extruder in Multiple Extruders > Support material/raft/skirt extruder & Support material/raft interface extruder
|
||||
support_material_extruder = 2
|
||||
perimeter_speed = 40
|
||||
solid_infill_speed = 40
|
||||
top_infill_extrusion_width = 0.45
|
||||
top_solid_infill_speed = 30
|
||||
|
||||
[print:0.15mm OPTIMAL SOLUBLE INTERFACE @BIBO2]
|
||||
inherits = 0.15mm OPTIMAL SOLUBLE FULL @BIBO2
|
||||
notes = Set your soluble extruder in Multiple Extruders > Support material/raft interface extruder
|
||||
support_material_interface_layers = 3
|
||||
support_material_with_sheath = 0
|
||||
support_material_xy_spacing = 80%
|
||||
|
||||
[print:0.20mm NORMAL SOLUBLE FULL @BIBO2]
|
||||
inherits = 0.20mm NORMAL @BIBO2; *soluble_support*
|
||||
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_BIBO.*/ and num_extruders==2
|
||||
external_perimeter_speed = 30
|
||||
notes = Set your soluble extruder in Multiple Extruders > Support material/raft/skirt extruder & Support material/raft interface extruder
|
||||
support_material_extruder = 2
|
||||
perimeter_speed = 40
|
||||
solid_infill_speed = 40
|
||||
top_solid_infill_speed = 30
|
||||
|
||||
[print:0.20mm NORMAL SOLUBLE INTERFACE @BIBO2]
|
||||
inherits = 0.20mm NORMAL SOLUBLE FULL @BIBO2
|
||||
notes = Set your soluble extruder in Multiple Extruders > Support material/raft interface extruder
|
||||
support_material_interface_layers = 3
|
||||
support_material_with_sheath = 0
|
||||
support_material_xy_spacing = 80%
|
||||
|
||||
# Common filament preset
|
||||
[filament:*common*]
|
||||
cooling = 0
|
||||
compatible_printers =
|
||||
extrusion_multiplier = 1
|
||||
filament_ramming_parameters = "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
|
||||
filament_minimal_purge_on_wipe_tower = 15
|
||||
filament_cost = 0
|
||||
filament_density = 0
|
||||
filament_diameter = 1.75
|
||||
filament_notes = ""
|
||||
filament_settings_id = ""
|
||||
filament_soluble = 0
|
||||
min_print_speed = 15
|
||||
slowdown_below_layer_time = 20
|
||||
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_BIBO.*/
|
||||
|
||||
[filament:*PLA*]
|
||||
inherits = *common*
|
||||
bed_temperature = 60
|
||||
fan_below_layer_time = 100
|
||||
filament_colour = #FF3232
|
||||
filament_max_volumetric_speed = 15
|
||||
filament_type = PLA
|
||||
filament_density = 1.24
|
||||
filament_cost = 20
|
||||
first_layer_bed_temperature = 60
|
||||
first_layer_temperature = 215
|
||||
fan_always_on = 1
|
||||
cooling = 1
|
||||
max_fan_speed = 100
|
||||
min_fan_speed = 100
|
||||
bridge_fan_speed = 100
|
||||
disable_fan_first_layers = 3
|
||||
temperature = 200
|
||||
|
||||
[filament:*PET*]
|
||||
inherits = *common*
|
||||
bed_temperature = 70
|
||||
cooling = 1
|
||||
disable_fan_first_layers = 3
|
||||
fan_below_layer_time = 20
|
||||
filament_colour = #FF8000
|
||||
filament_max_volumetric_speed = 8
|
||||
filament_type = PETG
|
||||
filament_density = 1.27
|
||||
filament_cost = 30
|
||||
first_layer_bed_temperature =70
|
||||
first_layer_temperature = 240
|
||||
fan_always_on = 1
|
||||
max_fan_speed = 50
|
||||
min_fan_speed = 20
|
||||
bridge_fan_speed = 100
|
||||
temperature = 240
|
||||
|
||||
[filament:*ABS*]
|
||||
inherits = *common*
|
||||
bed_temperature = 100
|
||||
cooling = 0
|
||||
disable_fan_first_layers = 3
|
||||
fan_below_layer_time = 20
|
||||
filament_colour = #FFF2EC
|
||||
filament_max_volumetric_speed = 11
|
||||
filament_ramming_parameters = "120 100 5.70968 6.03226 7 8.25806 9 9.19355 9.3871 9.77419 10.129 10.3226 10.4516 10.5161| 0.05 5.69677 0.45 6.15484 0.95 8.76774 1.45 9.20323 1.95 9.95806 2.45 10.3871 2.95 10.5677 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
|
||||
filament_type = ABS
|
||||
filament_density = 1.04
|
||||
filament_cost = 20
|
||||
first_layer_bed_temperature = 100
|
||||
first_layer_temperature = 245
|
||||
fan_always_on = 0
|
||||
max_fan_speed = 0
|
||||
min_fan_speed = 0
|
||||
bridge_fan_speed = 25
|
||||
top_fan_speed = 0
|
||||
temperature = 245
|
||||
|
||||
[filament:*FLEX*]
|
||||
inherits = *common*
|
||||
bed_temperature = 50
|
||||
bridge_fan_speed = 80
|
||||
# For now, all but selected filaments are disabled for the MMU 2.0
|
||||
cooling = 0
|
||||
disable_fan_first_layers = 3
|
||||
extrusion_multiplier = 1.2
|
||||
fan_always_on = 0
|
||||
fan_below_layer_time = 100
|
||||
filament_colour = #008000
|
||||
filament_max_volumetric_speed = 1.5
|
||||
filament_type = FLEX
|
||||
first_layer_bed_temperature = 50
|
||||
first_layer_temperature = 240
|
||||
max_fan_speed = 90
|
||||
min_fan_speed = 70
|
||||
#start_filament_gcode = "M900 K0"; Filament gcode"
|
||||
temperature = 240
|
||||
filament_retract_length = 0.8
|
||||
filament_deretract_speed = 15
|
||||
filament_retract_lift = 0
|
||||
filament_wipe = 0
|
||||
|
||||
[filament:Generic PLA @BIBO2]
|
||||
inherits = *PLA*
|
||||
filament_vendor = Generic
|
||||
filament_notes = "List of materials which typically use standard PLA print settings:\n\nDas Filament\nEsun PLA\nEUMAKERS PLA\nFiberlogy HD-PLA\nFillamentum PLA\nFloreon3D\nHatchbox PLA\nPlasty Mladec PLA\nPrimavalue PLA\nProto pasta Matte Fiber\nVerbatim PLA\nVerbatim BVOH"
|
||||
|
||||
[filament:Generic PETG @BIBO2]
|
||||
inherits = *PET*
|
||||
filament_vendor = Generic
|
||||
|
||||
[filament:Generic ABS @BIBO2]
|
||||
inherits = *ABS*
|
||||
first_layer_bed_temperature = 90
|
||||
bed_temperature = 90
|
||||
filament_vendor = Generic
|
||||
filament_cost = 27.82
|
||||
filament_density = 1.08
|
||||
fan_always_on = 0
|
||||
cooling = 0
|
||||
min_fan_speed = 15
|
||||
max_fan_speed = 15
|
||||
slowdown_below_layer_time = 20
|
||||
disable_fan_first_layers = 4
|
||||
fan_below_layer_time = 20
|
||||
bridge_fan_speed = 25
|
||||
|
||||
[filament:Esun ABS @BIBO2]
|
||||
inherits = Generic ABS @BIBO2
|
||||
filament_vendor = Esun
|
||||
filament_cost = 27.82
|
||||
filament_density = 1.08
|
||||
fan_always_on = 0
|
||||
cooling = 0
|
||||
min_fan_speed = 15
|
||||
max_fan_speed = 15
|
||||
slowdown_below_layer_time = 20
|
||||
disable_fan_first_layers = 4
|
||||
fan_below_layer_time = 20
|
||||
bridge_fan_speed = 25
|
||||
|
||||
[filament:Hatchbox ABS @BIBO2]
|
||||
inherits = Generic ABS @BIBO2
|
||||
filament_vendor = Hatchbox
|
||||
filament_cost = 27.82
|
||||
filament_density = 1.08
|
||||
fan_always_on = 0
|
||||
cooling = 0
|
||||
min_fan_speed = 15
|
||||
max_fan_speed = 15
|
||||
slowdown_below_layer_time = 20
|
||||
disable_fan_first_layers = 4
|
||||
fan_below_layer_time = 20
|
||||
bridge_fan_speed = 25
|
||||
|
||||
[filament:Generic HIPS @BIBO2]
|
||||
inherits = *ABS*
|
||||
filament_vendor = Generic
|
||||
filament_cost = 27.3
|
||||
filament_density = 1.04
|
||||
bridge_fan_speed = 50
|
||||
cooling = 1
|
||||
extrusion_multiplier = 1
|
||||
fan_always_on = 1
|
||||
fan_below_layer_time = 10
|
||||
filament_colour = #FFFFD7
|
||||
filament_soluble = 1
|
||||
filament_type = HIPS
|
||||
first_layer_temperature = 230
|
||||
max_fan_speed = 20
|
||||
min_fan_speed = 20
|
||||
temperature = 230
|
||||
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_BIBO.*/ and num_extruders==2
|
||||
|
||||
[filament:AMOLEN bronze PLA @BIBO2]
|
||||
inherits = *PLA*
|
||||
filament_vendor = AMOLEN
|
||||
temperature = 205
|
||||
bed_temperature = 65
|
||||
filament_colour = #808040
|
||||
first_layer_bed_temperature = 65
|
||||
first_layer_temperature = 215
|
||||
filament_cost = 25.99
|
||||
filament_density = 1.24
|
||||
|
||||
[filament:Prusament PLA @BIBO2]
|
||||
inherits = *PLA*
|
||||
filament_vendor = Prusa Polymers
|
||||
temperature = 215
|
||||
bed_temperature = 60
|
||||
first_layer_temperature = 215
|
||||
first_layer_bed_temperature = 60
|
||||
filament_cost = 24.99
|
||||
filament_density = 1.24
|
||||
|
||||
[filament:Prusament PETG @BIBO2]
|
||||
inherits = *PET*
|
||||
filament_vendor = Prusa Polymers
|
||||
temperature = 245
|
||||
bed_temperature = 70
|
||||
first_layer_temperature = 245
|
||||
first_layer_bed_temperature =70
|
||||
filament_cost = 24.99
|
||||
filament_density = 1.27
|
||||
|
||||
[filament:PrimaSelect PVA+ @BIBO2]
|
||||
inherits = *PLA*
|
||||
filament_vendor = PrimaSelect
|
||||
filament_cost = 108
|
||||
filament_density = 1.23
|
||||
cooling = 0
|
||||
fan_always_on = 0
|
||||
filament_colour = #FFFFD7
|
||||
filament_max_volumetric_speed = 3.8
|
||||
filament_ramming_parameters = "120 100 8.3871 8.6129 8.93548 9.22581 9.48387 9.70968 9.87097 10.0323 10.2258 10.4194 10.6452 10.8065| 0.05 8.34193 0.45 8.73548 0.95 9.34836 1.45 9.78385 1.95 10.0871 2.45 10.5161 2.95 10.8903 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
|
||||
filament_soluble = 1
|
||||
filament_type = PVA
|
||||
first_layer_temperature = 195
|
||||
temperature = 195
|
||||
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_BIBO.*/ and num_extruders==2
|
||||
|
||||
[filament:No Filament - standby only @BIBO2]
|
||||
first_layer_temperature = 170
|
||||
temperature = 170
|
||||
compatible_printers_condition = printer_notes=~/.*PRINTER_VENDOR_BIBO.*/ and num_extruders==2
|
||||
|
||||
[filament:Generic FLEX @BIBO2]
|
||||
inherits = *FLEX*
|
||||
filament_vendor = Generic
|
||||
filament_cost = 82
|
||||
filament_density = 1.22
|
||||
filament_max_volumetric_speed = 1.2
|
||||
filament_retract_length = 0
|
||||
filament_retract_speed = nil
|
||||
filament_retract_lift = nil
|
||||
|
||||
[filament:Overture TPU @BIBO2]
|
||||
inherits = *FLEX*
|
||||
filament_vendor = Overture
|
||||
filament_max_volumetric_speed = 1.5
|
||||
first_layer_temperature = 235
|
||||
first_layer_bed_temperature = 50
|
||||
temperature = 235
|
||||
bed_temperature = 50
|
||||
bridge_fan_speed = 100
|
||||
max_fan_speed = 80
|
||||
min_fan_speed = 80
|
||||
filament_retract_before_travel = 3
|
||||
filament_cost = 23.99
|
||||
filament_density = 1.21
|
||||
|
||||
[filament:SainSmart TPU @BIBO2]
|
||||
inherits = *FLEX*
|
||||
filament_vendor = SainSmart
|
||||
fan_always_on = 1
|
||||
filament_max_volumetric_speed = 2.5
|
||||
extrusion_multiplier = 1.15
|
||||
first_layer_temperature = 230
|
||||
first_layer_bed_temperature = 50
|
||||
temperature = 230
|
||||
bed_temperature = 50
|
||||
bridge_fan_speed = 100
|
||||
max_fan_speed = 80
|
||||
min_fan_speed = 80
|
||||
filament_retract_before_travel = 3
|
||||
filament_cost = 32.99
|
||||
filament_density = 1.21
|
||||
filament_retract_length = 0.5
|
||||
filament_retract_speed = nil
|
||||
filament_deretract_speed = 15
|
||||
filament_retract_lift = 0
|
||||
filament_wipe = 0
|
||||
disable_fan_first_layers = 3
|
||||
min_print_speed = 15
|
||||
slowdown_below_layer_time = 10
|
||||
cooling = 1
|
||||
|
||||
[filament:Filatech FilaFlex40 @BIBO2]
|
||||
inherits = *FLEX*
|
||||
filament_vendor = Filatech
|
||||
fan_always_on = 1
|
||||
filament_max_volumetric_speed = 2.5
|
||||
extrusion_multiplier = 1.15
|
||||
first_layer_temperature = 230
|
||||
first_layer_bed_temperature = 50
|
||||
temperature = 230
|
||||
bed_temperature = 50
|
||||
bridge_fan_speed = 100
|
||||
max_fan_speed = 50
|
||||
min_fan_speed = 50
|
||||
filament_retract_before_travel = 3
|
||||
filament_cost = 51.45
|
||||
filament_density = 1.22
|
||||
filament_retract_length = 0.5
|
||||
filament_retract_speed = 20
|
||||
filament_deretract_speed = 15
|
||||
filament_retract_lift = 0
|
||||
filament_wipe = 0
|
||||
disable_fan_first_layers = 3
|
||||
min_print_speed = 15
|
||||
slowdown_below_layer_time = 10
|
||||
cooling = 1
|
||||
|
||||
# Common printer preset
|
||||
[printer:*common*]
|
||||
printer_technology = FFF
|
||||
bed_shape = -107x-93,107x-93,107x93,-107x93
|
||||
before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\n\n
|
||||
between_objects_gcode =
|
||||
deretract_speed = 0 # By setting this value to 0 deretract used the retract_speed
|
||||
extruder_colour = #FFFF00
|
||||
extruder_offset = 0x0
|
||||
gcode_flavor = marlin
|
||||
silent_mode = 0
|
||||
remaining_times = 0
|
||||
machine_max_acceleration_e = 1100
|
||||
machine_max_acceleration_extruding = 5000
|
||||
machine_max_acceleration_retracting = 1100
|
||||
machine_max_acceleration_x = 500
|
||||
machine_max_acceleration_y = 500
|
||||
machine_max_acceleration_z = 100
|
||||
machine_max_feedrate_e = 20
|
||||
machine_max_feedrate_x = 350
|
||||
machine_max_feedrate_y = 350
|
||||
machine_max_feedrate_z = 2
|
||||
machine_max_jerk_e = 5
|
||||
machine_max_jerk_x = 8
|
||||
machine_max_jerk_y = 8
|
||||
machine_max_jerk_z = 0.3
|
||||
machine_min_extruding_rate = 0
|
||||
machine_min_travel_rate = 0
|
||||
layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z]
|
||||
max_layer_height = 0.30
|
||||
min_layer_height = 0.05
|
||||
max_print_height = 160
|
||||
octoprint_apikey =
|
||||
octoprint_host =
|
||||
printer_notes =
|
||||
printer_settings_id =
|
||||
printer_vendor = BIBO
|
||||
printhost_apikey =
|
||||
printhost_cafile =
|
||||
retract_before_travel = 1
|
||||
retract_before_wipe = 100%
|
||||
retract_layer_change = 1
|
||||
retract_length = 1.5
|
||||
retract_length_toolchange = 1.5
|
||||
retract_lift = 0
|
||||
retract_lift_above = 0
|
||||
retract_lift_below = 0
|
||||
retract_restart_extra = 0
|
||||
retract_restart_extra_toolchange = 0
|
||||
retract_speed = 20
|
||||
serial_port =
|
||||
serial_speed = 250000
|
||||
single_extruder_multi_material = 0
|
||||
toolchange_gcode =
|
||||
use_firmware_retraction = 0
|
||||
use_relative_e_distances = 1
|
||||
use_volumetric_e = 0
|
||||
variable_layer_height = 1
|
||||
wipe = 1
|
||||
z_offset = 0
|
||||
printer_model =
|
||||
default_print_profile =
|
||||
default_filament_profile =
|
||||
|
||||
[printer:BIBO2 Touch Dual extrusion]
|
||||
inherits = *common*
|
||||
printer_model = BIBO2
|
||||
between_objects_gcode =
|
||||
default_filament_profile = Generic PLA @BIBO2
|
||||
default_print_profile = 0.20mm NORMAL @BIBO2
|
||||
deretract_speed = 0,0 # Setting this value to 0 uses the retract speed
|
||||
extruder_colour = #FFFF00;#229403
|
||||
extruder_offset = 0x0,0x0
|
||||
layer_gcode = ;AFTER_LAYER_CHANGE\n;[layer_z]
|
||||
max_layer_height = 0.3,0.3
|
||||
min_layer_height = 0.05,0.05
|
||||
printer_notes = Do not remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_BIBO\nPRINTER_MODEL_BIBO2
|
||||
printer_settings_id =
|
||||
printer_variant = 0.4
|
||||
nozzle_diameter = 0.4,0.4
|
||||
remaining_times = 0
|
||||
retract_before_travel = 1,1
|
||||
retract_before_wipe = 100%,100%
|
||||
retract_layer_change = 1,1
|
||||
retract_length = 1.5,1.5
|
||||
retract_length_toolchange = 1.5,1.5
|
||||
retract_lift = 0,0
|
||||
retract_lift_above = 0,0
|
||||
retract_lift_below = 0,0
|
||||
retract_restart_extra = 0,0
|
||||
retract_restart_extra_toolchange = 0,0
|
||||
retract_speed = 20,20
|
||||
start_gcode = ;Start code PrusaSlicer BIBO 2 printers\nG21 ; set units to metric\nG90 ; absolute positioning\nM107 ; start with the fan off\nM190 S{max(first_layer_bed_temperature[0] - 5, first_layer_bed_temperature[1] - 5)} ; wait for bed temp\nM140 S{max(first_layer_bed_temperature[0], first_layer_bed_temperature[1])} ; continue bed heating to full temp while other things are happening\nM104 S{first_layer_temperature[0]} T0; set 1st nozzle heater to first layer temperature\nM104 S{first_layer_temperature[1]} T1; set 2nd nozzle heater to first layer temperature\nM105 ; Report Temperatures\nM109 S{first_layer_temperature[0]} T0; wait for 1st nozzle heat to first layer temperature\nM109 S{first_layer_temperature[1]} T1; wait for 2nd nozzle heat to first layer temperature\nM105 ; Report Temperatures\nG28 X0 Y0 ; move X/Y to min endstops\nG28 Z0 ; move Z to min endstops\nG1 Z2.0 F400 ; move the platform down 2mm\nT[initial_tool]; switch to initial tool position\nG92 E0.0 ; reset extruder\nG28 ; Home all axis\nG1 Y0 F1200 E0 ; move Y to min endstop and extrude 0 filament\nG92 E0.0 ; reset extruder and zero the current extruder coordinate before printing\nM117 BIBO now Printing... ; Put now printing message on screen
|
||||
end_gcode = ;BIBO End GCode\nM107 ; turn fans off\nG91 ; Relative positioning\nG1 Z1 F100\nM140 S0 ; Disable heated bed\nM104 T0 S0 ; extruder T0 heater off\nM104 T1 S0 ; extruder T1 heater off\nG1 Z+0.5 X-20 Y-20 F300 ; move Z down then move print head a bit out of the way\nG28 X0 Y0 ; move X/Y to min endstops, so the head is out of the way\nG90 ; Absolute positioning\nG92 E0.0 ; Reset extruder position\nM84 ; Turn steppers off\nM117 BIBO Print complete ; Put print complete message on screen
|
||||
thumbnails =
|
||||
toolchange_gcode =
|
||||
use_relative_e_distances = 1
|
||||
wipe = 1,1
|
||||
z_offset = 0
|
||||
|
||||
[printer:BIBO2 Touch E1 right only extrusion]
|
||||
inherits = *common*
|
||||
printer_model = BIBO2
|
||||
printer_variant = 0.4
|
||||
extruder_colour = #FFFF00
|
||||
printer_notes = Do not remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_BIBO\nPRINTER_MODEL_BIBO2
|
||||
nozzle_diameter = 0.4
|
||||
retract_before_travel = 1
|
||||
retract_length = 1.5
|
||||
retract_speed = 20
|
||||
deretract_speed = 0 # Setting this value to 0 uses the retract speed
|
||||
retract_before_wipe = 100%
|
||||
default_print_profile = 0.20mm NORMAL @BIBO2
|
||||
default_filament_profile = Generic PLA @BIBO2
|
||||
start_gcode = ;Start code PrusaSlicer BIBO 2 printers E1 only (i.e. T0)\nG21 ; set units to metric\nG90 ; absolute positioning\nM107 ; start with the fan off\nM190 S{first_layer_bed_temperature[0] - 5} ; wait for bed temp\nM140 S{first_layer_bed_temperature[0]} ; continue bed heating to full temp while other things are happening\nM104 S{first_layer_temperature[0]} T0 ; set 1st nozzle heater to first layer temperature\nM104 S{first_layer_temperature[0] * 0.791} T1 ; set 2nd nozzle heater to 79.1 percent standby temp\nM105 ; Report Temperatures\nM109 S{first_layer_temperature[0]} T0 ; wait for 1st nozzle heat to first layer temperature\nM109 S{first_layer_temperature[0] * 0.791} T1 ; wait for 2nd nozzle heat to 79.1 percent standby temp\nM105 ; Report Temperatures\nG28 X0 Y0 ; move X/Y to min endstops\nG28 Z0 ; move Z to min endstops\nG1 Y0 F1200 E0 ; move Y to min endstop and extrude 0 filament\nT[initial_tool] ; switch to initial tool position\nG92 E0.0 ; reset extruder\nG28 ; Home all axis\nG1 Y0 F1200 E0 ; move Y to min endstop and reset extruder\nG92 E0.0 ; zero the current extruder coordinate\nM117 Cleaning... ; Put Cleaning message on screen, Attempt Nozzle Wipe (for ooze free startup)\nG1 X-15.0 Y-92.9 Z0.3 F2400.0 ; move to start-line position\nG1 X15.0 Y-92.9 Z0.3 F1000.0 E2 ; draw 1st line\nG1 X15.0 Y-92.6 Z0.3 F3000.0 ; move to side a little\nG1 X-15.0 Y-92.6 Z0.3 F1000.0 E4 ; draw 2nd line\nG1 X-15.0 Y-92.3 Z0.3 F3000.0 ; move to side a little\nG1 X15.0 Y-92.3 Z0.3 F1000.0 E6 ; draw 3rd line\nG1 X15.0 Y-92 Z0.3 F3000.0 ; move to side a little\nG1 X-15.0 Y-92 Z0.3 F1000.0 E8 ; draw 4th line\nG92 E0.0 ; reset extruder and zero the current extruder coordinate before printing\nM117 BIBO E1 now Printing... ; Put now printing message on screen
|
||||
end_gcode = ;BIBO End GCode\nM107 ; turn fans off\nG91 ; Relative positioning\nG1 Z1 F100\nM140 S0 ; Disable heated bed\nM104 T0 S0 ; extruder T0 heater off\nM104 T1 S0 ; extruder T1 heater off\nG1 Z+0.5 X-20 Y-20 F300 ; move Z down then move print head a bit out of the way\nG28 X0 Y0 ; move X/Y to min endstops, so the head is out of the way\nG90 ; Absolute positioning\nG92 E0.0 ; Reset extruder position\nM84 ; Turn steppers off\nM117 BIBO Print complete ; Put print complete message on screen
|
||||
thumbnails =
|
||||
toolchange_gcode =
|
||||
use_relative_e_distances = 1
|
||||
wipe = 1
|
||||
z_offset = 0
|
||||
|
||||
|
||||
[printer:BIBO2 Touch E2 left only extrusion]
|
||||
inherits = *common*
|
||||
printer_model = BIBO2
|
||||
printer_variant = 0.4
|
||||
extruder_colour = #229403
|
||||
printer_notes = Do not remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_BIBO\nPRINTER_MODEL_BIBO2
|
||||
nozzle_diameter = 0.4
|
||||
retract_before_travel = 1
|
||||
retract_length = 1.5
|
||||
retract_speed = 20
|
||||
deretract_speed = 0 # Setting this value to 0 uses the retract speed
|
||||
retract_before_wipe = 100%
|
||||
default_print_profile = 0.20mm NORMAL @BIBO2
|
||||
default_filament_profile = Generic PLA @BIBO2
|
||||
start_gcode = ;Start code PrusaSlicer BIBO 2 printers E2 only (i.e. T1)\nG21 ; set units to metric\nG90 ; absolute positioning\nM107 ; start with the fan off\nM140 S{first_layer_bed_temperature[0] - 5} ; set bed temp\nM105 ; Report Temperatures\nM190 S{first_layer_bed_temperature[0]} ; wait for bed temp\nM104 S{first_layer_temperature[0] * 0.791} T0 ; set 1st nozzle heater to 79.1 percent standby temp\nM104 S{first_layer_temperature[0]} T1 ; set 2nd nozzle heater to first layer temperature\nM105 ; Report Temperatures\nM109 S{first_layer_temperature[0] * 0.791} T0 ; set 1st nozzle heater to 79.1 percent standby temp\nM109 S{first_layer_temperature[0]} T1 ; Wait for 2nd nozzle heater to first layer temperature\nM105 ; Report Temperatures\nG28 X0 Y0 ; move X/Y to min endstops\nG28 Z0 ; move Z to min endstops\nG1 Z2 F400 ; move the print bed down 2mm\nT0 ; switch to tool position T0\nG90 ; absolute positioning\nG92 E0.0 ; zero the current extruder coordinate\nG28 ; Home all axis\nG1 Y0 F1200 E0 ; move Y to min endstop and reset extruder\nG92 E0.0 ; zero the current extruder coordinate\nT1 ; switch to tool position T1\nG92 E0.0 ; zero the current extruder coordinate\nM117 E2 nozzle wipe... ; Put Nozzle wipe message on screen, Attempt Nozzle Wipe (for ooze free startup)\nG1 X-15.0 Y-92.9 Z0.3 F2400.0 ; move to start-line position\nG1 X15.0 Y-92.9 Z0.3 F1000.0 E2 ; draw 1st line\nG1 X15.0 Y-92.6 Z0.3 F3000.0 ; move to side a little\nG1 X-15.0 Y-92.6 Z0.3 F1000.0 E4 ; draw 2nd line\nG1 X-15.0 Y-92.3 Z0.3 F3000.0 ; move to side a little\nG1 X15.0 Y-92.3 Z0.3 F1000.0 E6 ; draw 3rd line\nG1 X15.0 Y-92 Z0.3 F3000.0 ; move to side a little\nG1 X-15.0 Y-92 Z0.3 F1000.0 E8 ; draw 4th line\nG92 E0.0 ; reset extruder coordinate to zero before printing\nM117 BIBO Now Printing from E2... ; Put now printing message on screen
|
||||
end_gcode = ;BIBO End GCode\nM107 ; turn fans off\nG91 ; Relative positioning\nG1 Z1 F100\nM140 S0 ; Disable heated bed\nM104 T0 S0 ; extruder T0 heater off\nM104 T1 S0 ; extruder T1 heater off\nG1 Z+0.5 X-20 Y-20 F300 ; move Z down then move print head a bit out of the way\nG28 X0 Y0 ; move X/Y to min endstops, so the head is out of the way\nG90 ; Absolute positioning\nG92 E0.0 ; Reset extruder position\nM84 ; Turn steppers off\nM117 BIBO Print complete ; Put print complete message on screen
|
||||
thumbnails =
|
||||
toolchange_gcode =
|
||||
use_relative_e_distances = 1
|
||||
wipe = 1
|
||||
z_offset = 0
|
||||
|
||||
# Ditto Printing options with custom beds and special start end gcode for print duplication from one nozzle to the other
|
||||
[printer:BIBO2 E1 right E2 Ditto]
|
||||
inherits = BIBO2 Touch E1 right only extrusion
|
||||
printer_model = BIBO2
|
||||
printer_notes = Do not remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_BIBO\nPRINTER_MODEL_BIBO2
|
||||
bed_shape = 0x-93,33x-93,33x93,0x93
|
||||
#bed_model = BIBO2_bed.stl
|
||||
#bed_texture = BIBO2.svg
|
||||
before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\nM104 S{temperature[0]} T1 ; set 2nd nozzle heater to print temperature\n
|
||||
start_gcode = ;Start code PrusaSlicer BIBO 2 printers E1 only (i.e. T0)\nM420 S1 ; Turn on Ditto Printing\nG21 ; set units to metric\nG90 ; absolute positioning\nM107 ; start with the fan off\nM190 S{first_layer_bed_temperature[0] - 5} ; wait for bed temp\nM140 S{first_layer_bed_temperature[0]} ; continue bed heating to full temp while other things are happening\nM104 S{first_layer_temperature[0]} T0 ; set 1st nozzle heater to first layer temperature\nM104 S{first_layer_temperature[0]} T1 ; set 2nd nozzle heater to same first layer temperature\nM105 ; Report Temperatures\nM109 S{first_layer_temperature[0]} T0 ; wait for 1st nozzle heat to first layer temperature\nM109 S{first_layer_temperature[0]} T1 ; wait for 2nd nozzle heat to same first layer temperature\nM105 ; Report Temperatures\nG28 X0 Y0 ; move X/Y to min endstops\nG28 Z0 ; move Z to min endstops\nG1 Y0 F1200 E0 ; move Y to min endstop and extrude 0 filament\nT[initial_tool] ; switch to initial tool position\nG92 E0.0 ; reset extruder\nG28 ; Home all axis\nG1 Y0 F1200 E0 ; move Y to min endstop and reset extruder\nG92 E0.0 ; zero the current extruder coordinate\nM117 Cleaning... ; Put Cleaning message on screen, Attempt Nozzle Wipe (for ooze free startup)\nG1 X-15.0 Y-92.9 Z0.3 F2400.0 ; move to start-line position\nG1 X15.0 Y-92.9 Z0.3 F1000.0 E2 ; draw 1st line\nG1 X15.0 Y-92.6 Z0.3 F3000.0 ; move to side a little\nG1 X-15.0 Y-92.6 Z0.3 F1000.0 E4 ; draw 2nd line\nG1 X-15.0 Y-92.3 Z0.3 F3000.0 ; move to side a little\nG1 X15.0 Y-92.3 Z0.3 F1000.0 E6 ; draw 3rd line\nG1 X15.0 Y-92 Z0.3 F3000.0 ; move to side a little\nG1 X-15.0 Y-92 Z0.3 F1000.0 E8 ; draw 4th line\nG92 E0.0 ; reset extruder and zero the current extruder coordinate before printing\nM117 BIBO E1 now Printing... ; Put now printing message on screen
|
||||
end_gcode = ;BIBO End GCode\nM107 ; turn fans off\nG91 ; Relative positioning\nG1 Z1 F100\nM140 S0 ; Disable heated bed\nM104 T0 S0 ; extruder T0 heater off\nM104 T1 S0 ; extruder T1 heater off\nG1 Z+0.5 X-20 Y-20 F300 ; move Z down then move print head a bit out of the way\nG28 X0 Y0 ; move X/Y to min endstops, so the head is out of the way\nG90 ; Absolute positioning\nG92 E0.0 ; Reset extruder position\nM84 ; Turn steppers off\nM420 S0 ; Turn off Ditto Printing function\nM117 BIBO Print complete ; Put print complete message on screen
|
||||
|
||||
[printer:BIBO2 E2 left E1 Ditto]
|
||||
inherits = BIBO2 Touch E2 left only extrusion
|
||||
printer_model = BIBO2
|
||||
printer_notes = Do not remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_BIBO\nPRINTER_MODEL_BIBO2
|
||||
bed_shape = -33x-93,0x-93,0x93,-33x93
|
||||
#bed_model = BIBO2_bed.stl
|
||||
#bed_texture = BIBO2.svg
|
||||
before_layer_gcode = ;BEFORE_LAYER_CHANGE\n;[layer_z]\nM104 S{temperature[0]} T0 ; set 1st nozzle heater to print temperature\n
|
||||
start_gcode = ;Start code PrusaSlicer BIBO 2 printers E2 only (i.e. T1)\nM420 S1 ; Turn on Ditto Printing\nG21 ; set units to metric\nG90 ; absolute positioning\nM107 ; start with the fan off\nM140 S{first_layer_bed_temperature[0] - 5} ; set bed temp\nM105 ; Report Temperatures\nM190 S{first_layer_bed_temperature[0]} ; wait for bed temp\nM104 S{first_layer_temperature[0]} T0 ; set 1st nozzle heater to ditto print temperature\nM104 S{first_layer_temperature[0]} T1 ; set 2nd nozzle heater to first layer temperature\nM105 ; Report Temperatures\nM109 S{first_layer_temperature[0]} T0 ; set 1st nozzle heater to ditto printing temperature\nM109 S{first_layer_temperature[0]} T1 ; Wait for 2nd nozzle heater to first layer temperature\nM105 ; Report Temperatures\nG28 X0 Y0 ; move X/Y to min endstops\nG28 Z0 ; move Z to min endstops\nG1 Z2 F400 ; move the print bed down 2mm\nT0 ; switch to tool position T0\nG90 ; absolute positioning\nG92 E0.0 ; zero the current extruder coordinate\nG28 ; Home all axis\nG1 Y0 F1200 E0 ; move Y to min endstop and reset extruder\nG92 E0.0 ; zero the current extruder coordinate\nT1 ; switch to tool position T1\nG92 E0.0 ; zero the current extruder coordinate\nM117 E2 nozzle wipe... ; Put Nozzle wipe message on screen, Attempt Nozzle Wipe (for ooze free startup)\nG1 X-15.0 Y-92.9 Z0.3 F2400.0 ; move to start-line position\nG1 X15.0 Y-92.9 Z0.3 F1000.0 E2 ; draw 1st line\nG1 X15.0 Y-92.6 Z0.3 F3000.0 ; move to side a little\nG1 X-15.0 Y-92.6 Z0.3 F1000.0 E4 ; draw 2nd line\nG1 X-15.0 Y-92.3 Z0.3 F3000.0 ; move to side a little\nG1 X15.0 Y-92.3 Z0.3 F1000.0 E6 ; draw 3rd line\nG1 X15.0 Y-92 Z0.3 F3000.0 ; move to side a little\nG1 X-15.0 Y-92 Z0.3 F1000.0 E8 ; draw 4th line\nG92 E0.0 ; reset extruder coordinate to zero before printing\nM117 BIBO Now Printing from E2... ; Put now printing message on screen
|
||||
end_gcode = ;BIBO End GCode\nM107 ; turn fans off\nG91 ; Relative positioning\nG1 Z1 F100\nM140 S0 ; Disable heated bed\nM104 T0 S0 ; extruder T0 heater off\nM104 T1 S0 ; extruder T1 heater off\nG1 Z+0.5 X-20 Y-20 F300 ; move Z down then move print head a bit out of the way\nG28 X0 Y0 ; move X/Y to min endstops, so the head is out of the way\nG90 ; Absolute positioning\nG92 E0.0 ; Reset extruder position\nM84 ; Turn steppers off\nM420 S0 ; Turn off Ditto Printing function\nM117 BIBO Print complete ; Put print complete message on screen
|
108
resources/profiles/BIBO/BIBO2.svg
Normal file
@ -0,0 +1,108 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="606.6" height="527.2" viewBox="0 0 606.6 527.2">
|
||||
<title>BIBO2_new</title>
|
||||
<line y2="527.2" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.41999995708466px"/>
|
||||
<line x1="141.7" x2="141.7" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.41999995708466px"/>
|
||||
<line x1="283.5" x2="283.5" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.41999995708466px"/>
|
||||
<line x1="425.2" x2="425.2" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.41999995708466px"/>
|
||||
<line x1="566.9" x2="566.9" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.41999995708466px"/>
|
||||
<line x1="606.6" y1="514.7" x2="606.6" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.41999995708466px"/>
|
||||
<line x1="11.6" y1="513.1" x2="606.6" y2="513.1" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.41999995708466px"/>
|
||||
<line y1="527.2" x2="606.6" y2="527.2" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.41999995708466px"/>
|
||||
<line x1="11.6" y1="371.3" x2="606.6" y2="371.3" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.41999995708466px"/>
|
||||
<line x1="11.6" y1="229.6" x2="606.6" y2="229.6" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.41999995708466px"/>
|
||||
<line x1="11.6" y1="87.9" x2="606.6" y2="87.9" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.41999995708466px"/>
|
||||
<line x1="606.6" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 1.41999995708466px"/>
|
||||
<line x1="85" x2="85" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="113.4" x2="113.4" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="170.1" x2="170.1" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="198.4" x2="198.4" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="226.8" x2="226.8" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="255.1" x2="255.1" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="311.8" x2="311.8" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="340.2" x2="340.2" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="368.5" x2="368.5" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="396.9" x2="396.9" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="453.5" x2="453.5" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="481.9" x2="481.9" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="510.2" x2="510.2" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="538.6" x2="538.6" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="595.3" x2="595.3" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="28.3" x2="28.3" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="56.7" x2="56.7" y2="514.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="11.6" y1="399.7" x2="606.6" y2="399.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="11.6" y1="428" x2="606.6" y2="428" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="11.6" y1="456.4" x2="606.6" y2="456.4" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="11.6" y1="484.7" x2="606.6" y2="484.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="11.6" y1="343" x2="606.6" y2="343" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="11.6" y1="314.7" x2="606.6" y2="314.7" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="11.6" y1="286.3" x2="606.6" y2="286.3" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="11.6" y1="258" x2="606.6" y2="258" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="11.6" y1="201.3" x2="606.6" y2="201.3" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="11.6" y1="172.9" x2="606.6" y2="172.9" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="11.6" y1="144.6" x2="606.6" y2="144.6" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="11.6" y1="116.2" x2="606.6" y2="116.2" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="11.6" y1="59.5" x2="606.6" y2="59.5" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="11.6" y1="31.2" x2="606.6" y2="31.2" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<line x1="11.6" y1="2.8" x2="606.6" y2="2.8" style="fill: none;stroke: #fff;stroke-linecap: round;stroke-linejoin: round;stroke-width: 0.370000004768372px"/>
|
||||
<path d="M26.4,519.7H27l.5-.2a.5.5,0,0,0,.4-.3c.1-.1.1-.2.2-.4h.7v5.6h-1v-4H26.4Z" style="fill: #fff"/>
|
||||
<path d="M58.1,524.4H54.3a2.7,2.7,0,0,1,.3-1.2,3.8,3.8,0,0,1,.9-.9l.6-.4.6-.4.4-.5a1.3,1.3,0,0,0,.1-.6v-.3a.4.4,0,0,0-.1-.3l-.3-.2-.5-.2-.4.2a.3.3,0,0,0-.3.3.5.5,0,0,0-.2.4v.6h-1c0-.3.1-.6.1-.9a4.3,4.3,0,0,1,.4-.7l.6-.4a1.7,1.7,0,0,1,1.7,0l.6.4.3.5c0,.2.1.4.1.6a1.4,1.4,0,0,1-.2.6.8.8,0,0,1-.2.5c-.1.2-.3.3-.4.4l-.5.4-.5.3-.4.3-.4.3c-.1.1-.1.3-.2.4h2.7Z" style="fill: #fff"/>
|
||||
<path d="M84.2,521.1h.4l.4-.2.3-.2a.9.9,0,0,0,.1-.5,1.4,1.4,0,0,0-.2-.6,1.2,1.2,0,0,0-1-.1l-.3.3a.5.5,0,0,0-.2.4v.4h-.9a2.2,2.2,0,0,1,.1-.8l.4-.6.6-.4h1.4l.6.2.4.5a1.5,1.5,0,0,1,.1.7,1,1,0,0,1-.2.7,1,1,0,0,1-.6.5h0a1.2,1.2,0,0,1,.8.4,2,2,0,0,1,.1,1.7l-.4.5-.7.4h-.7l-.9-.2-.6-.4a.9.9,0,0,1-.4-.6,1.9,1.9,0,0,1-.1-.8h.9a1.6,1.6,0,0,0,.3.9,1,1,0,0,0,.8.3l.7-.2a1.1,1.1,0,0,0,.3-.8.9.9,0,0,0-.1-.5l-.3-.3h-1Z" style="fill: #fff"/>
|
||||
<path d="M114.7,523H114v1.4h-.9v-1.3h-2.4v-.9l2.4-3.4h.9v3.6h.7Zm-3.3-.7h1.7v-2.5h0Z" style="fill: #fff"/>
|
||||
<path d="M140,518.8h2.9v.8h-2.2l-.3,1.4h0a.9.9,0,0,1,.5-.3h1.3a1,1,0,0,1,.5.4,2.1,2.1,0,0,1,.4.6,1.7,1.7,0,0,1,.1.7,1.5,1.5,0,0,1-.1.7l-.3.7a1.8,1.8,0,0,1-1.5.6h-.8a.9.9,0,0,1-.6-.3,1,1,0,0,1-.4-.5,1.9,1.9,0,0,1-.2-.8h.9a.8.8,0,0,0,.3.7,1.1,1.1,0,0,0,.8.3h.4l.4-.3c0-.1.1-.2.1-.4a.6.6,0,0,0,.1-.4.9.9,0,0,0-.1-.5.8.8,0,0,0-.2-.4l-.3-.2h-1l-.4.4h-.9Z" style="fill: #fff"/>
|
||||
<path d="M170.4,520.2a1.4,1.4,0,0,0-.2-.6l-.6-.2h-.4l-.3.2a.8.8,0,0,0-.2.4.6.6,0,0,0-.1.4.6.6,0,0,1-.1.4v.4h0a1.2,1.2,0,0,1,.5-.5h1.4a1.3,1.3,0,0,1,.6.4.9.9,0,0,1,.3.6,1.9,1.9,0,0,1,.2.7,1.9,1.9,0,0,1-.2.8c0,.2-.2.4-.3.6l-.6.4-.8.2a1.9,1.9,0,0,1-1-.3,1.2,1.2,0,0,1-.6-.6,1.6,1.6,0,0,1-.3-.9,4.9,4.9,0,0,1-.1-1.2,3.8,3.8,0,0,1,.1-1l.3-.9a2.3,2.3,0,0,1,.7-.7,1.7,1.7,0,0,1,1-.3l.6.2a.5.5,0,0,1,.5.3l.4.4a1.4,1.4,0,0,1,.2.7Zm-.9,3.5h.5c.1-.1.2-.1.3-.3l.2-.3v-.9c-.1-.1-.1-.3-.2-.4l-.3-.2h-.9l-.3.2c-.1.1-.1.3-.2.4s-.1.3-.1.4.1.3.1.5l.2.4.3.2Z" style="fill: #fff"/>
|
||||
<path d="M196,518.8h3.8v.7l-.8,1-.6,1.1a6.5,6.5,0,0,0-.4,1.3l-.3,1.4h-1l.3-1.3c.1-.4.3-.8.4-1.2a12.7,12.7,0,0,1,.7-1.2,7.6,7.6,0,0,1,.8-1.1H196Z" style="fill: #fff"/>
|
||||
<path d="M226.3,524.5l-.8-.2a.9.9,0,0,1-.6-.3l-.5-.6a1.7,1.7,0,0,1-.1-.7,1.2,1.2,0,0,1,.3-.9c.1-.3.4-.4.7-.5h0l-.6-.5a1.4,1.4,0,0,1-.2-.7,1.6,1.6,0,0,1,.5-1.1,2.4,2.4,0,0,1,2.6,0,1.5,1.5,0,0,1,.4,1.1,1.4,1.4,0,0,1-.2.7,1.5,1.5,0,0,1-.6.5h0a1.4,1.4,0,0,1,.8.5,2,2,0,0,1,.2.9,1.7,1.7,0,0,1-.1.7l-.4.6-.7.3Zm0-.8a.8.8,0,0,0,.8-.2,1.1,1.1,0,0,0,.3-.8.9.9,0,0,0-.3-.7,1.2,1.2,0,0,0-1.6,0,.9.9,0,0,0-.3.7,1.1,1.1,0,0,0,.3.8A.8.8,0,0,0,226.3,523.7Zm0-4.3c-.2,0-.5,0-.6.2a.8.8,0,0,0,0,1.2.9.9,0,0,0,1.2,0,.7.7,0,0,0,0-1.2c-.1-.2-.4-.2-.6-.2Z" style="fill: #fff"/>
|
||||
<path d="M253.8,522.9a.9.9,0,0,0,.3.6.8.8,0,0,0,.6.2l.5-.2a1,1,0,0,0,.4-.5c.1-.2.1-.4.2-.6v-.6h0a1.2,1.2,0,0,1-.5.5l-.7.2-.7-.2-.6-.4a1.6,1.6,0,0,1-.3-.6,1.9,1.9,0,0,1-.2-.7,1.9,1.9,0,0,1,.2-.8,2.1,2.1,0,0,1,.4-.6.9.9,0,0,1,.6-.4l.8-.2a1.9,1.9,0,0,1,1,.3,1.7,1.7,0,0,1,.6.6l.3.9c0,.4.1.8.1,1.2s-.1.7-.1,1a3.6,3.6,0,0,1-.4.9l-.6.7a1.9,1.9,0,0,1-1,.3H254a1,1,0,0,1-.5-.4,1.3,1.3,0,0,1-.5-1.1Zm.9-3.5h-.4l-.3.2c-.1.2-.2.3-.2.4s-.1.3-.1.4.1.3.1.5a.8.8,0,0,0,.2.4l.3.2h.9l.3-.2c.1-.2.1-.3.2-.4v-.9l-.2-.4-.3-.2Z" style="fill: #fff"/>
|
||||
<path d="M278.1,519.7h.5l.5-.2c.2,0,.3-.1.4-.3a.5.5,0,0,0,.2-.4h.7v5.6h-1v-4H278Z" style="fill: #fff"/>
|
||||
<path d="M284.3,518.6a1.7,1.7,0,0,1,1,.3,1.3,1.3,0,0,1,.6.7,1.7,1.7,0,0,1,.3,1,6.7,6.7,0,0,1,0,2,1.6,1.6,0,0,1-.3.9,1.3,1.3,0,0,1-.6.7,1.7,1.7,0,0,1-1,.3,1.9,1.9,0,0,1-1-.3,1.8,1.8,0,0,1-.5-.7,1.6,1.6,0,0,1-.3-.9,6.7,6.7,0,0,1,0-2,1.7,1.7,0,0,1,.3-1,1.8,1.8,0,0,1,.5-.7A1.9,1.9,0,0,1,284.3,518.6Zm0,5.1c.2,0,.4,0,.5-.2a.8.8,0,0,0,.4-.4c0-.2.1-.5.1-.7a4.9,4.9,0,0,0,0-1.7c0-.2-.1-.4-.1-.7l-.4-.4-.5-.2-.5.2-.3.4a2,2,0,0,0-.1.7,4.9,4.9,0,0,0,0,1.7,1.7,1.7,0,0,0,.1.7l.3.4A.6.6,0,0,0,284.3,523.7Z" style="fill: #fff"/>
|
||||
<path d="M307.2,519.7h.6l.5-.2a.5.5,0,0,0,.4-.3c.1-.1.1-.2.2-.4h.7v5.6h-1v-4h-1.4Z" style="fill: #fff"/>
|
||||
<path d="M311.7,519.7h.6l.4-.2c.2,0,.3-.1.4-.3a.5.5,0,0,0,.2-.4h.8v5.6h-1v-4h-1.4Z" style="fill: #fff"/>
|
||||
<path d="M334.8,519.7h.5l.5-.2c.2,0,.3-.1.4-.3a.5.5,0,0,0,.2-.4h.7v5.6h-1v-4h-1.3Z" style="fill: #fff"/>
|
||||
<path d="M342.9,524.4h-3.8a1.9,1.9,0,0,1,.4-1.2,2,2,0,0,1,.9-.9l.5-.4.6-.4.4-.5a1.3,1.3,0,0,0,.1-.6.2.2,0,0,0,0-.3.4.4,0,0,0-.1-.3l-.3-.2-.5-.2-.4.2-.3.3-.2.4v.6h-.9a2.8,2.8,0,0,1,.1-.9,1.6,1.6,0,0,1,.4-.7.9.9,0,0,1,.6-.4,1.7,1.7,0,0,1,1.6,0l.6.4.3.5a1.9,1.9,0,0,1,0,1.2l-.3.5a.8.8,0,0,1-.4.4l-.5.4-.4.3-.5.3-.3.3-.3.4H343Z" style="fill: #fff"/>
|
||||
<path d="M363.1,519.7h.6l.5-.2q.2,0,.3-.3c.2-.1.2-.2.3-.4h.7v5.6h-1v-4h-1.4Z" style="fill: #fff"/>
|
||||
<path d="M369,521.1h.4l.4-.2.3-.2a.9.9,0,0,0,.1-.5,1.4,1.4,0,0,0-.2-.6l-.7-.2h-.4l-.3.3c0,.1-.1.2-.1.4s-.1.2,0,.4h-1c.1-.3.1-.5.2-.8a2.1,2.1,0,0,1,.4-.6.9.9,0,0,1,.6-.4h1.4l.5.2.4.5a1.4,1.4,0,0,1,.2.7,1.9,1.9,0,0,1-.2.7,1.5,1.5,0,0,1-.6.5h0a.8.8,0,0,1,.7.4,1.7,1.7,0,0,1,.1,1.7,1,1,0,0,1-.4.5l-.6.4h-.8l-.8-.2a.7.7,0,0,1-.6-.4.9.9,0,0,1-.4-.6c-.1-.2-.1-.5-.2-.8h1a1,1,0,0,0,.2.9,1.1,1.1,0,0,0,.8.3l.8-.2a1.3,1.3,0,0,0,.2-1.3l-.4-.3h-1Z" style="fill: #fff"/>
|
||||
<path d="M391.3,519.7h.6l.5-.2a.5.5,0,0,0,.4-.3c.1-.1.1-.2.2-.4h.7v5.6h-1v-4h-1.4Z" style="fill: #fff"/>
|
||||
<path d="M399.5,523h-.7v1.4h-.9v-1.3h-2.4v-.9l2.4-3.4h.9v3.6h.7Zm-3.2-.7h1.6v-2.5h0Z" style="fill: #fff"/>
|
||||
<path d="M419.8,519.7h.6l.5-.2q.2,0,.3-.3c.2-.1.2-.2.2-.4h.8v5.6h-1v-4h-1.4Z" style="fill: #fff"/>
|
||||
<path d="M424.8,518.8h2.9v.8h-2.2l-.3,1.4h0a.9.9,0,0,1,.5-.3H427a1,1,0,0,1,.5.4,2.1,2.1,0,0,1,.4.6,1.7,1.7,0,0,1,.1.7,1.5,1.5,0,0,1-.1.7l-.3.7-.7.5a1.1,1.1,0,0,1-.8.1h-.8a.9.9,0,0,1-.6-.3,1,1,0,0,1-.4-.5,1.9,1.9,0,0,1-.2-.8h.9a1.1,1.1,0,0,0,1,1h.5l.3-.3a.5.5,0,0,0,.2-.4c0-.1.1-.3.1-.4s-.1-.3-.1-.5a.8.8,0,0,0-.2-.4l-.3-.2h-1.1c-.1.1-.3.2-.3.4h-.9Z" style="fill: #fff"/>
|
||||
<path d="M448.2,519.7h.5l.5-.2c.2,0,.3-.1.4-.3a.5.5,0,0,0,.2-.4h.7v5.6h-1v-4h-1.3Z" style="fill: #fff"/>
|
||||
<path d="M455.4,520.2c-.1-.2-.1-.4-.3-.6l-.6-.2a.9.9,0,0,0-.7.3.8.8,0,0,0-.2.4.6.6,0,0,0-.1.4.6.6,0,0,0-.1.4v.4h0a1.2,1.2,0,0,1,.5-.5h1.5a1,1,0,0,1,.5.4,2.1,2.1,0,0,1,.4.6,1.7,1.7,0,0,1,.1.7c0,.3-.1.6-.1.8l-.4.6-.6.4-.8.2a1.9,1.9,0,0,1-1-.3,1.2,1.2,0,0,1-.6-.6,1.6,1.6,0,0,1-.3-.9,4.9,4.9,0,0,1-.1-1.2,3.8,3.8,0,0,1,.1-1,3.6,3.6,0,0,1,.4-.9,1.3,1.3,0,0,1,.6-.7,1.9,1.9,0,0,1,1-.3,2.1,2.1,0,0,1,1.2.5c.1.1.3.3.3.4a1.4,1.4,0,0,1,.2.7Zm-1,3.5h.5c.1-.1.2-.1.3-.3l.2-.3v-.9l-.2-.4-.3-.2H454c-.3.1-.4.3-.5.6a.6.6,0,0,0-.1.4.9.9,0,0,0,.1.5c0,.1.1.2.2.4l.3.2Z" style="fill: #fff"/>
|
||||
<path d="M476.5,519.7h.6l.5-.2q.1,0,.3-.3a.5.5,0,0,0,.2-.4h.8v5.6h-1v-4h-1.4Z" style="fill: #fff"/>
|
||||
<path d="M480.8,518.8h3.9v.7l-.8,1-.7,1.1a9.3,9.3,0,0,0-.4,1.3,6.8,6.8,0,0,0-.2,1.4h-1a5.9,5.9,0,0,1,.2-1.3,6.1,6.1,0,0,1,.5-1.2,4.5,4.5,0,0,1,.6-1.2l.8-1.1h-2.9Z" style="fill: #fff"/>
|
||||
<path d="M504.9,519.7h.5l.5-.2a.5.5,0,0,0,.4-.3.5.5,0,0,0,.2-.4h.7v5.6h-1v-4h-1.4Z" style="fill: #fff"/>
|
||||
<path d="M511.1,524.5l-.8-.2a.9.9,0,0,1-.6-.3,1.3,1.3,0,0,1-.4-.6,1.4,1.4,0,0,1-.2-.7,1.6,1.6,0,0,1,.3-.9l.7-.5h0a1,1,0,0,1-.5-.4,1,1,0,0,1-.2-.7,1.1,1.1,0,0,1,.4-1.1,1.9,1.9,0,0,1,2.6,0,1.1,1.1,0,0,1,.4,1.1.7.7,0,0,1-.2.7,1,1,0,0,1-.5.4h0a1.8,1.8,0,0,1,.7.5,1.6,1.6,0,0,1,.3.9,1.4,1.4,0,0,1-.2.7,1.3,1.3,0,0,1-.4.6.9.9,0,0,1-.6.3Zm0-.8a.8.8,0,0,0,.8-.2,1.1,1.1,0,0,0,.3-.8.9.9,0,0,0-.3-.7,1.1,1.1,0,0,0-.8-.3,1.3,1.3,0,0,0-.8.3.9.9,0,0,0-.3.7,1.1,1.1,0,0,0,.3.8A.8.8,0,0,0,511.1,523.7Zm0-4.3c-.2-.1-.4,0-.6.2a.9.9,0,0,0,0,1.2,1,1,0,0,0,1.3,0,.9.9,0,0,0,0-1.2,1,1,0,0,0-.7-.2Z" style="fill: #fff"/>
|
||||
<path d="M533.3,519.7h.6l.5-.2a.5.5,0,0,0,.4-.3c.1-.1.1-.2.2-.4h.7v5.6h-1v-4h-1.4Z" style="fill: #fff"/>
|
||||
<path d="M538.6,522.9c.1.2.1.4.3.6l.6.2.6-.2.3-.5c.1-.2.1-.4.2-.6v-.6h0a1.2,1.2,0,0,1-.5.5l-.7.2-.7-.2-.6-.4a1.6,1.6,0,0,1-.3-.6,1.7,1.7,0,0,1-.1-.7,1.9,1.9,0,0,1,.1-.8,2.1,2.1,0,0,1,.4-.6.9.9,0,0,1,.6-.4l.8-.2a1.9,1.9,0,0,1,1,.3l.6.6.3.9a4.9,4.9,0,0,1,.1,1.2c0,.3-.1.7-.1,1a3.6,3.6,0,0,1-.4.9c-.1.3-.4.5-.6.7a1.9,1.9,0,0,1-1,.3h-.7l-.5-.4-.4-.4a1.5,1.5,0,0,1-.1-.7Zm.9-3.5h-.4l-.3.2c-.1.2-.2.3-.2.4s-.1.3-.1.4.1.3.1.5a.8.8,0,0,0,.2.4l.3.2h.9l.3-.2c.1-.1.1-.3.2-.4v-.9l-.2-.4-.3-.2Z" style="fill: #fff"/>
|
||||
<path d="M565.7,524.4h-3.9a2.8,2.8,0,0,1,.4-1.2,2,2,0,0,1,.9-.9l.5-.4.6-.4.4-.5a.8.8,0,0,0,.2-.6v-.3l-.2-.3-.3-.2-.4-.2-.5.2q-.1,0-.3.3c-.1.1-.1.2-.1.4a1.3,1.3,0,0,0-.1.6H562a2.8,2.8,0,0,1,.1-.9,1.6,1.6,0,0,1,.4-.7.9.9,0,0,1,.6-.4,1.7,1.7,0,0,1,1.7,0,1,1,0,0,1,.5.4.5.5,0,0,1,.3.5,1.9,1.9,0,0,1,0,1.2l-.3.5a.8.8,0,0,1-.4.4l-.4.4-.5.3-.5.3-.3.3a.8.8,0,0,0-.2.4h2.7Z" style="fill: #fff"/>
|
||||
<path d="M568.2,518.6a1.7,1.7,0,0,1,1,.3,1.3,1.3,0,0,1,.6.7l.3,1a6.7,6.7,0,0,1,0,2l-.3.9a1.3,1.3,0,0,1-.6.7,1.8,1.8,0,0,1-2,0,1.3,1.3,0,0,1-.6-.7l-.3-.9a6.7,6.7,0,0,1,0-2l.3-1a1.3,1.3,0,0,1,.6-.7A1.7,1.7,0,0,1,568.2,518.6Zm0,5.1c.2,0,.4,0,.5-.2s.3-.2.3-.4a1.9,1.9,0,0,0,.2-.7v-1.7a2.5,2.5,0,0,0-.2-.7c0-.1-.2-.3-.3-.4l-.5-.2-.5.2-.3.4a6.4,6.4,0,0,1-.2.7v1.7c.1.2.1.5.2.7l.3.4C567.8,523.7,568,523.7,568.2,523.7Z" style="fill: #fff"/>
|
||||
<path d="M594.8,524.4H591a2.7,2.7,0,0,1,.3-1.2,3.8,3.8,0,0,1,.9-.9l.6-.4.5-.4c.2-.1.3-.3.5-.5a1.3,1.3,0,0,0,.1-.6v-.3c0-.1-.1-.2-.1-.3l-.3-.2-.5-.2-.4.2a.3.3,0,0,0-.3.3.5.5,0,0,0-.2.4v.6h-1a2.9,2.9,0,0,1,.2-.9,1.5,1.5,0,0,1,.3-.7l.6-.4a1.5,1.5,0,0,1,.9-.2,1.1,1.1,0,0,1,.8.2l.6.4.3.5c0,.2.1.4.1.6s-.1.4-.1.6l-.3.5c-.1.2-.3.3-.4.4l-.5.4-.5.3-.4.3-.4.3c-.1.1-.1.3-.2.4h2.8Z" style="fill: #fff"/>
|
||||
<path d="M595.6,519.7h.5l.5-.2c.2,0,.3-.1.4-.3a.5.5,0,0,0,.2-.4h.7v5.6h-1v-4h-1.3Z" style="fill: #fff"/>
|
||||
<path d="M1.7,482.8h.5l.5-.2c.2,0,.3-.1.4-.3a.5.5,0,0,0,.2-.4h.8v5.6h-1v-3.9H1.7Z" style="fill: #fff"/>
|
||||
<path d="M6.2,459.1H2.4a1.9,1.9,0,0,1,.4-1.2,2,2,0,0,1,.9-.9l.5-.4.6-.4.4-.5c.1-.1.1-.3.2-.5v-.4l-.2-.3-.3-.2H4q-.2,0-.3.3c-.1.1-.1.3-.2.4v.6h-1a2.8,2.8,0,0,1,.1-.9A2.5,2.5,0,0,1,3,454l.6-.4.8-.2.9.2a1,1,0,0,1,.5.4.7.7,0,0,1,.3.6.7.7,0,0,1,.1.5,1.3,1.3,0,0,1-.1.6.8.8,0,0,1-.2.5l-.4.5L5,457l-.5.3-.4.3a.8.8,0,0,0-.4.4c-.1.1-.2.2-.2.3H6.2Z" style="fill: #fff"/>
|
||||
<path d="M3.9,427.5h.8q.3-.1.3-.3a.8.8,0,0,0-.1-1,.7.7,0,0,0-.6-.2H3.8l-.2.2a.8.8,0,0,0-.2.4v.4h-1a1.9,1.9,0,0,1,.2-.7.9.9,0,0,1,.4-.6.7.7,0,0,1,.5-.4l.8-.2h.6l.6.3a1,1,0,0,1,.4.5,1.4,1.4,0,0,1,.2.6,1.4,1.4,0,0,1-.2.7,1.3,1.3,0,0,1-.6.5h0a1.2,1.2,0,0,1,.7.5,1.4,1.4,0,0,1,.3.9,1.4,1.4,0,0,1-.2.7,2.1,2.1,0,0,1-.4.6l-.6.3H3.4l-.6-.4c-.1-.2-.3-.4-.3-.6a3.1,3.1,0,0,1-.2-.8h.9a1.1,1.1,0,0,0,.3.8,1.2,1.2,0,0,0,.8.4,1.3,1.3,0,0,0,.8-.3,1.1,1.1,0,0,0,.3-.7,1.4,1.4,0,0,0-.2-.6c0-.1-.2-.2-.3-.3h-1Z" style="fill: #fff"/>
|
||||
<path d="M6.3,401.1H5.5v1.3H4.7v-1.3H2.3v-.9l2.4-3.4h.8v3.6h.7ZM3,400.4H4.7v-2.5h0Z" style="fill: #fff"/>
|
||||
<path d="M3.1,368.5H6v.8H3.7l-.3,1.4h0l.5-.3H5.2l.6.4.3.6a2.2,2.2,0,0,1,.1.8,2,2,0,0,1-.1.7l-.3.6-.6.5-.9.2H3.5l-.6-.4a1,1,0,0,1-.4-.5,1.9,1.9,0,0,1-.2-.7h.9a1.1,1.1,0,0,0,.3.7l.8.2h.4a.5.5,0,0,0,.4-.2.8.8,0,0,0,.1-.4.4.4,0,0,0,0-.5c.1-.2,0-.3,0-.5l-.2-.3-.3-.3H3.6c-.1.1-.3.2-.3.4H2.4Z" style="fill: #fff"/>
|
||||
<path d="M5,341.5a.5.5,0,0,0-.3-.5c-.1-.2-.3-.2-.6-.2H3.7l-.3.2c-.1.1-.1.2-.2.4s-.1.2-.1.4-.1.3-.1.4v.4H3l.5-.5.7-.2.8.2a1,1,0,0,1,.5.4l.4.6a1.7,1.7,0,0,1,.1.7,2.2,2.2,0,0,1-.1.8,2.1,2.1,0,0,1-.4.6l-.6.4H4.1a1.2,1.2,0,0,1-1-.2l-.6-.6a1.6,1.6,0,0,1-.3-.9,4.9,4.9,0,0,1-.1-1.2,3.4,3.4,0,0,1,.1-1,3.6,3.6,0,0,1,.4-.9c.1-.3.4-.5.6-.7a1.9,1.9,0,0,1,1-.3h.7l.5.4.3.4a.8.8,0,0,1,.2.7Zm-.9,3.6h.4l.3-.3c.1-.1.2-.2.2-.3a.9.9,0,0,0,.1-.5.6.6,0,0,0-.1-.4.8.8,0,0,0-.2-.4l-.3-.2H3.6l-.3.2c-.1.1-.1.2-.2.4v.4a1.9,1.9,0,0,0,.2.8l.3.3Z" style="fill: #fff"/>
|
||||
<path d="M2.4,311.8H6.2v.7l-.8,1a3.4,3.4,0,0,0-.6,1.2,6.1,6.1,0,0,0-.5,1.2,7.7,7.7,0,0,0-.2,1.5h-1a5.9,5.9,0,0,1,.2-1.3,6.9,6.9,0,0,1,.5-1.3l.6-1.2.8-1H2.4Z" style="fill: #fff"/>
|
||||
<path d="M4.3,289.2l-.8-.2c-.2,0-.4-.2-.6-.3l-.4-.6a1.9,1.9,0,0,1-.2-.7,1.6,1.6,0,0,1,.3-.9l.7-.5h0a1,1,0,0,1-.5-.4,1,1,0,0,1-.2-.7,1.3,1.3,0,0,1,.4-1.2,2.8,2.8,0,0,1,1.3-.4,2.8,2.8,0,0,1,1.3.4,1.3,1.3,0,0,1,.4,1.2.7.7,0,0,1-.2.7.9.9,0,0,1-.6.4h0l.8.5a1.6,1.6,0,0,1,.3.9,1.9,1.9,0,0,1-.2.7,2.1,2.1,0,0,1-.4.6c-.2.1-.4.3-.6.3Zm0-.8.8-.2a1.1,1.1,0,0,0,.3-.8.8.8,0,0,0-.3-.7,1.3,1.3,0,0,0-.8-.3,1.3,1.3,0,0,0-.8.3.9.9,0,0,0-.3.7,1.1,1.1,0,0,0,.3.8l.8.2Zm0-4.4a.9.9,0,0,0-.6.3.7.7,0,0,0,0,1.2c.1.2.4.2.6.2s.5,0,.6-.2a.7.7,0,0,0,0-1.2.7.7,0,0,0-.6-.3Z" style="fill: #fff"/>
|
||||
<path d="M3.4,259.3a.8.8,0,0,0,.2.5c.2.2.4.3.6.2a.7.7,0,0,0,.6-.1l.3-.5a6.4,6.4,0,0,0,.2-.7v-.6h0l-.5.5-.7.2H3.4l-.5-.4a2.1,2.1,0,0,1-.4-.6,3.2,3.2,0,0,1,0-1.6,2.1,2.1,0,0,1,.4-.6l.6-.4h.8a1.8,1.8,0,0,1,1,.2c.2.2.5.4.6.6a1.7,1.7,0,0,1,.3,1,4.1,4.1,0,0,1,.1,1.1,3.1,3.1,0,0,1-.1,1,3,3,0,0,1-.4,1,1.7,1.7,0,0,1-.6.6,1.9,1.9,0,0,1-1,.3H3.6l-.6-.3a2.4,2.4,0,0,1-.6-1.1Zm.8-3.6H3.8l-.3.3c-.1.1-.1.2-.2.4v.8c.1.2.1.3.2.4l.3.3h.9l.3-.3a.5.5,0,0,0,.2-.4c0-.1.1-.3,0-.4s0-.3,0-.4-.1-.3-.2-.4l-.3-.3Z" style="fill: #fff"/>
|
||||
<path d="M1.7,227.7h.5l.5-.2.4-.3a.5.5,0,0,0,.2-.4h.8v5.6h-1v-4H1.7Z" style="fill: #fff"/>
|
||||
<path d="M7.9,226.6a1.7,1.7,0,0,1,1,.3,1.3,1.3,0,0,1,.6.7,1.7,1.7,0,0,1,.3,1,3.1,3.1,0,0,1,.1,1,3.8,3.8,0,0,1-.1,1,1.6,1.6,0,0,1-.3.9,1.3,1.3,0,0,1-.6.7,1.7,1.7,0,0,1-1,.3,1.9,1.9,0,0,1-1-.3,1.8,1.8,0,0,1-.5-.7,1.6,1.6,0,0,1-.3-.9,3.8,3.8,0,0,1-.1-1,3.1,3.1,0,0,1,.1-1,1.7,1.7,0,0,1,.3-1,1.8,1.8,0,0,1,.5-.7A1.9,1.9,0,0,1,7.9,226.6Zm0,5.1.5-.2.4-.4c0-.3.1-.5.1-.7v-1.7c0-.2-.1-.4-.1-.7l-.4-.4a.7.7,0,0,0-1,0l-.3.4a2,2,0,0,0-.1.7,1.1,1.1,0,0,0,0,.8,1.4,1.4,0,0,0,0,.9,2,2,0,0,0,.1.7l.3.4.5.2Z" style="fill: #fff"/>
|
||||
<path d="M1.7,199.3h.5l.5-.2.4-.3a.5.5,0,0,0,.2-.4h.8V204h-1v-4H1.7Z" style="fill: #fff"/>
|
||||
<path d="M6.1,199.3h.6l.5-.2c.1-.1.3-.1.4-.3l.2-.4h.7V204h-1v-4H6.1Z" style="fill: #fff"/>
|
||||
<path d="M1.7,171h1l.4-.3a.8.8,0,0,0,.2-.4h.8v5.6h-1v-4H1.7Z" style="fill: #fff"/>
|
||||
<path d="M9.9,175.7H6a2,2,0,0,1,.4-1.3,2,2,0,0,1,.9-.9l.5-.4.6-.4.4-.5a.4.4,0,0,0,.1-.5c.1-.2.1-.3,0-.4a.4.4,0,0,0-.1-.3l-.3-.2H7.6l-.3.3-.2.4v.6h-1a2.9,2.9,0,0,1,.2-.9,1.5,1.5,0,0,1,.3-.7l.6-.4a1.7,1.7,0,0,1,1.7,0l.6.4.3.5c0,.2.1.4.1.6s-.1.4-.1.6l-.3.5-.4.5-.5.3-.5.3-.4.3-.4.4-.2.3H9.9Z" style="fill: #fff"/>
|
||||
<path d="M1.7,142.6h1l.4-.3.2-.4h.8v5.6h-1v-4H1.7Z" style="fill: #fff"/>
|
||||
<path d="M7.5,144h.9l.3-.3a.6.6,0,0,0,.1-.4.7.7,0,0,0-.3-.6l-.6-.2H7.5l-.3.2-.2.4v.4H6.1a1.7,1.7,0,0,1,.1-.7c.1-.2.2-.5.4-.6l.6-.4.7-.2h.7l.5.3a1,1,0,0,1,.4.5.7.7,0,0,1,.2.6,2.4,2.4,0,0,1-.2.8c-.1.2-.4.3-.6.4h0a1.3,1.3,0,0,1,.7.5,1.6,1.6,0,0,1,.2,1.6c-.1.3-.3.4-.5.6l-.6.3H7.1c-.2-.1-.5-.2-.6-.4l-.4-.6a2.2,2.2,0,0,1-.1-.8h.9a1.1,1.1,0,0,0,.2.8.9.9,0,0,0,.8.4,1.1,1.1,0,0,0,.8-.3.9.9,0,0,0,.3-.7.7.7,0,0,0-.1-.5c-.1-.2-.2-.3-.4-.3l-.4-.2H7.5Z" style="fill: #fff"/>
|
||||
<path d="M1.7,114.3h.5l.5-.2c.2,0,.3-.1.4-.3a.5.5,0,0,0,.2-.4h.8V119h-1v-4H1.7Z" style="fill: #fff"/>
|
||||
<path d="M9.9,117.6H9.2V119H8.3v-1.4H5.9v-.9l2.4-3.3h.9V117h.7Zm-3.3-.7H8.3v-2.5h0Z" style="fill: #fff"/>
|
||||
<path d="M1.7,85.9h1l.4-.3a.8.8,0,0,0,.2-.4h.8v5.6h-1v-4H1.7Z" style="fill: #fff"/>
|
||||
<path d="M6.7,85H9.6v.8H7.4l-.3,1.5h0l.5-.4h.6l.7.2a1,1,0,0,1,.5.4,2.1,2.1,0,0,1,.4.6,1.9,1.9,0,0,1,.1.8c0,.2-.1.4-.1.6a1.6,1.6,0,0,1-.4.7,1,1,0,0,1-.6.5l-.9.2H7.2l-.6-.4a1,1,0,0,1-.4-.5,1.9,1.9,0,0,1-.2-.7h.9a.9.9,0,0,0,.9.9h.6l.3-.3a.5.5,0,0,0,.2-.4v-.9l-.2-.4-.3-.2H7.3c-.1.1-.3.2-.3.4H6.1Z" style="fill: #fff"/>
|
||||
<path d="M1.7,57.6h.5l.5-.2c.2,0,.3-.1.4-.3a.5.5,0,0,0,.2-.4h.8v5.6h-1v-4H1.7Z" style="fill: #fff"/>
|
||||
<path d="M8.9,58.1a.9.9,0,0,0-.3-.6l-.5-.2H7.6c-.1.1-.2.1-.3.3l-.2.3c0,.1-.1.3-.1.4s-.1.3-.1.4v.4h0c.2-.2.3-.4.6-.5H8.9l.6.4.3.6a1.7,1.7,0,0,1,.1.7,1.9,1.9,0,0,1-.1.8,2.1,2.1,0,0,1-.4.6l-.6.4-.8.2-1-.3a1.7,1.7,0,0,1-.6-.6l-.3-.9A4.9,4.9,0,0,1,6,59.4c0-.3.1-.6.1-1l.3-.9a2.3,2.3,0,0,1,.7-.7,1.2,1.2,0,0,1,1-.2h.6a.5.5,0,0,1,.5.3,1,1,0,0,1,.4.5,1.1,1.1,0,0,1,.2.6ZM8,61.6h.4c.1,0,.3-.1.3-.2a.8.8,0,0,0,.2-.4.6.6,0,0,0,.1-.4.9.9,0,0,0-.1-.5c0-.1-.1-.2-.2-.3a.7.7,0,0,0-.7-.4H7.6c-.2.1-.3.1-.3.2s-.2.3-.2.4a.9.9,0,0,0-.1.5.6.6,0,0,0,.1.4.8.8,0,0,0,.2.4c0,.1.1.2.3.2Z" style="fill: #fff"/>
|
||||
<path d="M1.7,29.2a.4.4,0,0,0,.5,0h.5l.4-.3a.8.8,0,0,0,.2-.4h.8V34h-1V30H1.7Z" style="fill: #fff"/>
|
||||
<path d="M6,28.3H9.8v.8l-.8,1-.6,1.1L8,32.5a6.8,6.8,0,0,0-.2,1.4h-1A5.9,5.9,0,0,1,7,32.6c.1-.4.3-.8.4-1.2a7.5,7.5,0,0,1,.7-1.2l.8-1H6Z" style="fill: #fff"/>
|
||||
<path d="M1.7.9h.5L2.7.7c.2,0,.3-.2.4-.3A.8.8,0,0,0,3.3,0h.8V5.6h-1v-4H1.7Z" style="fill: #fff"/>
|
||||
<path d="M7.9,5.7H7.2l-.7-.4-.4-.5A2.2,2.2,0,0,1,6,3.9,2.9,2.9,0,0,1,6.2,3,1.2,1.2,0,0,1,7,2.6H7l-.6-.5a1.9,1.9,0,0,1-.2-.7A1.6,1.6,0,0,1,6.7.3,1.5,1.5,0,0,1,8-.1,1.7,1.7,0,0,1,9.3.3a1.5,1.5,0,0,1,.4,1.1,1.4,1.4,0,0,1-.2.7l-.6.5h0a1.2,1.2,0,0,1,.8.4,2.9,2.9,0,0,1,.2.9,2.2,2.2,0,0,1-.1.8l-.4.5-.7.4Zm0-.7a1.1,1.1,0,0,0,.8-.3A1.1,1.1,0,0,0,9,3.9a.9.9,0,0,0-.3-.7,1.1,1.1,0,0,0-.8-.3,1,1,0,0,0-1,1,1.1,1.1,0,0,0,.3.8A1.1,1.1,0,0,0,7.9,5ZM7.9.6,7.3.8c-.2.2-.3.4-.2.6a.6.6,0,0,0,.2.7,1.5,1.5,0,0,0,1.3,0,1,1,0,0,0,.2-.7A1.1,1.1,0,0,0,8.6.8.8.8,0,0,0,7.9.6Z" style="fill: #fff"/>
|
||||
<path d="M5.1,510a1.5,1.5,0,0,1,1,.3,1.3,1.3,0,0,1,.6.7,1.6,1.6,0,0,1,.3.9,3.8,3.8,0,0,1,.1,1,3.1,3.1,0,0,1-.1,1,1.7,1.7,0,0,1-.3,1,1.9,1.9,0,0,1-.6.7,1.1,1.1,0,0,1-1,.2,1.2,1.2,0,0,1-1-.2l-.5-.7a1.7,1.7,0,0,1-.3-1,3.1,3.1,0,0,1-.1-1,3.8,3.8,0,0,1,.1-1,1.6,1.6,0,0,1,.3-.9,1.8,1.8,0,0,1,.5-.7A1.9,1.9,0,0,1,5.1,510Zm0,5.1.5-.2a1,1,0,0,0,.4-.5c0-.2.1-.4.1-.6v-1.7c0-.2-.1-.5-.1-.7l-.4-.5h-1l-.3.5c0,.2-.1.5-.1.7v1.7c0,.2.1.4.1.6l.3.5Z" style="fill: #fff"/>
|
||||
</svg>
|
After Width: | Height: | Size: 24 KiB |
BIN
resources/profiles/BIBO/BIBO2_bed.stl
Normal file
BIN
resources/profiles/BIBO/BIBO2_thumbnail.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
resources/profiles/Creality/ENDER3_thumbnail.png
Normal file
After Width: | Height: | Size: 58 KiB |
2
resources/profiles/LulzBot.idx
Normal file
@ -0,0 +1,2 @@
|
||||
min_slic3r_version = 2.2.0-alpha3
|
||||
0.0.1 Initial version
|
@ -2,9 +2,9 @@
|
||||
|
||||
[vendor]
|
||||
# Vendor name will be shown by the Config Wizard.
|
||||
name = Lulzbot
|
||||
name = LulzBot
|
||||
config_version = 0.0.1
|
||||
config_update_url = http://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Lulzbot/
|
||||
config_update_url = http://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/LulzBot/
|
||||
|
||||
[printer_model:MINI_AERO]
|
||||
name = Mini Aero
|
BIN
resources/profiles/LulzBot/MINI_AERO_thumbnail.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
resources/profiles/LulzBot/TAZ6_AERO_thumbnail.png
Normal file
After Width: | Height: | Size: 62 KiB |
@ -1,4 +1,5 @@
|
||||
min_slic3r_version = 2.2.0-alpha3
|
||||
1.1.2 Added renamed_from fields for PETG filaments to indicate that they were renamed from PET.
|
||||
1.1.1 Added Verbatim and Fiberlogy PETG filament profiles. Updated auto cooling settings for ABS.
|
||||
1.1.1-beta Updated for PrusaSlicer 2.2.0-beta
|
||||
1.1.1-alpha4 Extended list of default filaments to be installed, top/bottom_solid_min_thickness defined, infill_acceleration changed etc
|
||||
|
@ -5,7 +5,7 @@
|
||||
name = Prusa Research
|
||||
# Configuration version of this file. Config file will only be installed, if the config_version differs.
|
||||
# This means, the server may force the PrusaSlicer configuration to be downgraded.
|
||||
config_version = 1.1.1
|
||||
config_version = 1.1.2
|
||||
# Where to get the updates from?
|
||||
config_update_url = http://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/PrusaResearch/
|
||||
changelog_url = http://files.prusa3d.com/?latest=slicer-profiles&lng=%1%
|
||||
@ -148,7 +148,7 @@ external_fill_pattern = rectilinear
|
||||
external_perimeters_first = 0
|
||||
external_perimeter_extrusion_width = 0.45
|
||||
extra_perimeters = 0
|
||||
extruder_clearance_height = 25
|
||||
extruder_clearance_height = 20
|
||||
extruder_clearance_radius = 45
|
||||
extrusion_width = 0.45
|
||||
fill_angle = 45
|
||||
@ -1874,6 +1874,7 @@ filament_density = 1.04
|
||||
|
||||
[filament:Generic PETG]
|
||||
inherits = *PET*
|
||||
renamed_from = "Generic PET"
|
||||
filament_vendor = Generic
|
||||
filament_cost = 27.82
|
||||
filament_density = 1.27
|
||||
@ -2076,6 +2077,7 @@ temperature = 230
|
||||
|
||||
[filament:Prusa PETG]
|
||||
inherits = *PET*
|
||||
renamed_from = "Prusa PET"
|
||||
filament_vendor = Made for Prusa
|
||||
filament_cost = 27.82
|
||||
filament_density = 1.27
|
||||
@ -2107,6 +2109,7 @@ compatible_printers_condition = nozzle_diameter[0]!=0.6 and printer_model!="MK2S
|
||||
|
||||
[filament:Prusa PETG @0.6 nozzle]
|
||||
inherits = *PET06*
|
||||
renamed_from = "Prusa PET 0.6 nozzle"; "Prusa PETG 0.6 nozzle"
|
||||
filament_vendor = Made for Prusa
|
||||
filament_cost = 27.82
|
||||
filament_density = 1.27
|
||||
@ -2172,6 +2175,7 @@ filament_max_volumetric_speed = 13
|
||||
|
||||
[filament:Generic PETG @MMU2]
|
||||
inherits = *PET MMU2*
|
||||
renamed_from = "Generic PET MMU2"; "Generic PETG MMU2"
|
||||
filament_vendor = Generic
|
||||
|
||||
[filament:Plasty Mladec PETG @MMU2]
|
||||
@ -2180,6 +2184,7 @@ filament_vendor = Plasty Mladec
|
||||
|
||||
[filament:Prusa PETG @MMU2]
|
||||
inherits = *PET MMU2*
|
||||
renamed_from = "Prusa PET MMU2"; "Prusa PETG MMU2"
|
||||
filament_vendor = Made for Prusa
|
||||
|
||||
[filament:Prusament PETG @MMU2]
|
||||
@ -2189,10 +2194,12 @@ filament_vendor = Prusa Polymers
|
||||
|
||||
[filament:Generic PETG @MMU2 0.6 nozzle]
|
||||
inherits = *PET MMU2 06*
|
||||
renamed_from = "Generic PET MMU2 0.6 nozzle"; "Generic PETG MMU2 0.6 nozzle"
|
||||
filament_vendor = Generic
|
||||
|
||||
[filament:Prusa PETG @MMU2 0.6 nozzle]
|
||||
inherits = *PET MMU2 06*
|
||||
renamed_from = "Prusa PET MMU2 0.6 nozzle"; "Prusa PETG MMU2 0.6 nozzle"
|
||||
filament_vendor = Made for Prusa
|
||||
|
||||
[filament:Prusament PETG @MMU2 0.6 nozzle]
|
||||
@ -2525,6 +2532,7 @@ temperature = 275
|
||||
|
||||
[filament:Generic PETG @MMU1]
|
||||
inherits = *PETMMU1*
|
||||
renamed_from = "Generic PET MMU1"; "Generic PETG MMU1"
|
||||
filament_vendor = Generic
|
||||
filament_cost = 27.82
|
||||
filament_density = 1.27
|
||||
@ -2549,6 +2557,7 @@ filament_density = 1.27
|
||||
|
||||
[filament:Prusa PETG @MMU1]
|
||||
inherits = *PETMMU1*
|
||||
renamed_from = "Prusa PET MMU1"; "Prusa PETG MMU1"
|
||||
filament_vendor = Made for Prusa
|
||||
filament_cost = 27.82
|
||||
filament_density = 1.27
|
||||
@ -2602,6 +2611,7 @@ compatible_printers_condition = printer_model=="MK2SMM"
|
||||
|
||||
[filament:Generic PETG @MINI]
|
||||
inherits = Generic PETG; *PETMINI*
|
||||
renamed_from = "Generic PET MINI"; "Generic PETG MINI"
|
||||
filament_vendor = Generic
|
||||
filament_cost = 27.82
|
||||
filament_density = 1.27
|
||||
@ -2702,6 +2712,7 @@ filament_cost = 24.99
|
||||
|
||||
[filament:Generic PETG @0.6 nozzle MINI]
|
||||
inherits = Generic PETG; *PETMINI06*
|
||||
renamed_from = "Generic PET 0.6 nozzle MINI"; "Generic PETG 0.6 nozzle MINI"
|
||||
|
||||
[filament:Plasty Mladec PETG @0.6 nozzle MINI]
|
||||
inherits = Generic PETG; *PETMINI06*
|
||||
@ -2983,6 +2994,7 @@ filament_type = EDGE
|
||||
|
||||
[filament:Prusa PETG @MINI]
|
||||
inherits = *PETMINI*
|
||||
renamed_from = "Prusa PET MINI"; "Prusa PETG MINI"
|
||||
filament_vendor = Made for Prusa
|
||||
filament_cost = 27.82
|
||||
filament_density = 1.27
|
||||
@ -2990,6 +3002,7 @@ compatible_printers_condition = printer_model=="MINI" and nozzle_diameter[0]!=0.
|
||||
|
||||
[filament:Prusa PETG @0.6 nozzle MINI]
|
||||
inherits = *PETMINI06*
|
||||
renamed_from = "Prusa PET 0.6 nozzle MINI"; "Prusa PETG 0.6 nozzle MINI"
|
||||
filament_vendor = Made for Prusa
|
||||
filament_cost = 27.82
|
||||
filament_density = 1.27
|
||||
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
@ -132,14 +132,18 @@ int CLI::run(int argc, char **argv)
|
||||
Model model;
|
||||
try {
|
||||
// When loading an AMF or 3MF, config is imported as well, including the printer technology.
|
||||
model = Model::read_from_file(file, &m_print_config, true);
|
||||
PrinterTechnology other_printer_technology = get_printer_technology(m_print_config);
|
||||
DynamicPrintConfig config;
|
||||
model = Model::read_from_file(file, &config, true);
|
||||
PrinterTechnology other_printer_technology = get_printer_technology(config);
|
||||
if (printer_technology == ptUnknown) {
|
||||
printer_technology = other_printer_technology;
|
||||
} else if (printer_technology != other_printer_technology && other_printer_technology != ptUnknown) {
|
||||
boost::nowide::cerr << "Mixing configurations for FFF and SLA technologies" << std::endl;
|
||||
return 1;
|
||||
}
|
||||
// config is applied to m_print_config before the current m_config values.
|
||||
config += std::move(m_print_config);
|
||||
m_print_config = std::move(config);
|
||||
} catch (std::exception &e) {
|
||||
boost::nowide::cerr << file << ": " << e.what() << std::endl;
|
||||
return 1;
|
||||
@ -642,6 +646,14 @@ void CLI::print_help(bool include_print_options, PrinterTechnology printer_techn
|
||||
<< "Other options:" << std::endl;
|
||||
cli_misc_config_def.print_cli_help(boost::nowide::cout, false);
|
||||
|
||||
boost::nowide::cout
|
||||
<< std::endl
|
||||
<< "Print options are processed in the following order:" << std::endl
|
||||
<< "\t1) Config keys from the command line, for example --fill-pattern=stars" << std::endl
|
||||
<< "\t (highest priority, overwrites everything below)" << std::endl
|
||||
<< "\t2) Config files loaded with --load" << std::endl
|
||||
<< "\t3) Config values loaded from amf or 3mf files" << std::endl;
|
||||
|
||||
if (include_print_options) {
|
||||
boost::nowide::cout << std::endl;
|
||||
print_config_def.print_cli_help(boost::nowide::cout, true, [printer_technology](const ConfigOptionDef &def)
|
||||
|
@ -159,7 +159,7 @@ static int hid_wrapper_udev_init()
|
||||
{
|
||||
// Error, close the shared library handle and finish.
|
||||
hid_wrapper_udev_close();
|
||||
return -1;
|
||||
return -2;
|
||||
}
|
||||
|
||||
// Success.
|
||||
|
5
src/imgui/README.md
Normal file
@ -0,0 +1,5 @@
|
||||
** Dear ImGui is a bloat-free graphical user interface library for C++.**
|
||||
|
||||
For more information go to https://github.com/ocornut/imgui
|
||||
|
||||
THIS DIRECTORY CONTAINS THE imgui-1.75 58b3e02 SOURCE DISTRIBUTION.
|
@ -3,10 +3,10 @@
|
||||
// Runtime options (clipboard callbacks, enabling various features, etc.) can generally be set via the ImGuiIO structure.
|
||||
// You can use ImGui::SetAllocatorFunctions() before calling ImGui::CreateContext() to rewire memory allocation functions.
|
||||
//-----------------------------------------------------------------------------
|
||||
// A) You may edit imconfig.h (and not overwrite it when updating imgui, or maintain a patch/branch with your modifications to imconfig.h)
|
||||
// A) You may edit imconfig.h (and not overwrite it when updating Dear ImGui, or maintain a patch/branch with your modifications to imconfig.h)
|
||||
// B) or add configuration directives in your own file and compile with #define IMGUI_USER_CONFIG "myfilename.h"
|
||||
// If you do so you need to make sure that configuration settings are defined consistently _everywhere_ dear imgui is used, which include
|
||||
// the imgui*.cpp files but also _any_ of your code that uses imgui. This is because some compile-time options have an affect on data structures.
|
||||
// If you do so you need to make sure that configuration settings are defined consistently _everywhere_ Dear ImGui is used, which include
|
||||
// the imgui*.cpp files but also _any_ of your code that uses Dear ImGui. This is because some compile-time options have an affect on data structures.
|
||||
// Defining those options in imconfig.h will ensure every compilation unit gets to see the same data structure layouts.
|
||||
// Call IMGUI_CHECKVERSION() from your .cpp files to verify that the data structures your files are using are matching the ones imgui.cpp is using.
|
||||
//-----------------------------------------------------------------------------
|
||||
@ -14,25 +14,32 @@
|
||||
#pragma once
|
||||
|
||||
//---- Define assertion handler. Defaults to calling assert().
|
||||
// If your macro uses multiple statements, make sure is enclosed in a 'do { .. } while (0)' block so it can be used as a single statement.
|
||||
//#define IM_ASSERT(_EXPR) MyAssert(_EXPR)
|
||||
//#define IM_ASSERT(_EXPR) ((void)(_EXPR)) // Disable asserts
|
||||
|
||||
//---- Define attributes of all API symbols declarations, e.g. for DLL under Windows.
|
||||
//---- Define attributes of all API symbols declarations, e.g. for DLL under Windows
|
||||
// Using dear imgui via a shared library is not recommended, because of function call overhead and because we don't guarantee backward nor forward ABI compatibility.
|
||||
//#define IMGUI_API __declspec( dllexport )
|
||||
//#define IMGUI_API __declspec( dllimport )
|
||||
|
||||
//---- Don't define obsolete functions/enums names. Consider enabling from time to time after updating to avoid using soon-to-be obsolete function/names.
|
||||
//---- Don't define obsolete functions/enums/behaviors. Consider enabling from time to time after updating to avoid using soon-to-be obsolete function/names.
|
||||
//#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS
|
||||
|
||||
//---- Don't implement demo windows functionality (ShowDemoWindow()/ShowStyleEditor()/ShowUserGuide() methods will be empty)
|
||||
//---- It is very strongly recommended to NOT disable the demo windows during development. Please read the comments in imgui_demo.cpp.
|
||||
//#define IMGUI_DISABLE_DEMO_WINDOWS
|
||||
//---- Disable all of Dear ImGui or don't implement standard windows.
|
||||
// It is very strongly recommended to NOT disable the demo windows during development. Please read comments in imgui_demo.cpp.
|
||||
//#define IMGUI_DISABLE // Disable everything: all headers and source files will be empty.
|
||||
//#define IMGUI_DISABLE_DEMO_WINDOWS // Disable demo windows: ShowDemoWindow()/ShowStyleEditor() will be empty. Not recommended.
|
||||
//#define IMGUI_DISABLE_METRICS_WINDOW // Disable debug/metrics window: ShowMetricsWindow() will be empty.
|
||||
|
||||
//---- Don't implement some functions to reduce linkage requirements.
|
||||
//#define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS // [Win32] Don't implement default clipboard handler. Won't use and link with OpenClipboard/GetClipboardData/CloseClipboard etc.
|
||||
//#define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS // [Win32] Don't implement default IME handler. Won't use and link with ImmGetContext/ImmSetCompositionWindow.
|
||||
//#define IMGUI_DISABLE_FORMAT_STRING_FUNCTIONS // Don't implement ImFormatString/ImFormatStringV so you can implement them yourself if you don't want to link with vsnprintf.
|
||||
//#define IMGUI_DISABLE_MATH_FUNCTIONS // Don't implement ImFabs/ImSqrt/ImPow/ImFmod/ImCos/ImSin/ImAcos/ImAtan2 wrapper so you can implement them yourself. Declare your prototypes in imconfig.h.
|
||||
//#define IMGUI_DISABLE_WIN32_FUNCTIONS // [Win32] Won't use and link with any Win32 function (clipboard, ime).
|
||||
//#define IMGUI_ENABLE_OSX_DEFAULT_CLIPBOARD_FUNCTIONS // [OSX] Implement default OSX clipboard handler (need to link with '-framework ApplicationServices', this is why this is not the default).
|
||||
//#define IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS // Don't implement ImFormatString/ImFormatStringV so you can implement them yourself (e.g. if you don't want to link with vsnprintf)
|
||||
//#define IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS // Don't implement ImFabs/ImSqrt/ImPow/ImFmod/ImCos/ImSin/ImAcos/ImAtan2 so you can implement them yourself.
|
||||
//#define IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS // Don't implement ImFileOpen/ImFileClose/ImFileRead/ImFileWrite so you can implement them yourself if you don't want to link with fopen/fclose/fread/fwrite. This will also disable the LogToTTY() function.
|
||||
//#define IMGUI_DISABLE_DEFAULT_ALLOCATORS // Don't implement default allocators calling malloc()/free() to avoid linking with them. You will need to call ImGui::SetAllocatorFunctions().
|
||||
|
||||
//---- Include imgui_user.h at the end of imgui.h as a convenience
|
||||
@ -48,6 +55,10 @@
|
||||
//#define IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION
|
||||
//#define IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION
|
||||
|
||||
//---- Unless IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS is defined, use the much faster STB sprintf library implementation of vsnprintf instead of the one from the default C library.
|
||||
// Note that stb_sprintf.h is meant to be provided by the user and available in the include path at compile time. Also, the compatibility checks of the arguments and formats done by clang and GCC will be disabled in order to support the extra formats provided by STB sprintf.
|
||||
// #define IMGUI_USE_STB_SPRINTF
|
||||
|
||||
//---- Define constructor and implicit cast operators to convert back<>forth between your math types and ImVec2/ImVec4.
|
||||
// This will be inlined as part of ImVec2 and ImVec4 class declarations.
|
||||
/*
|
||||
@ -60,9 +71,31 @@
|
||||
operator MyVec4() const { return MyVec4(x,y,z,w); }
|
||||
*/
|
||||
|
||||
//---- Use 32-bit vertex indices (default is 16-bit) to allow meshes with more than 64K vertices. Render function needs to support it.
|
||||
//---- Use 32-bit vertex indices (default is 16-bit) is one way to allow large meshes with more than 64K vertices.
|
||||
// Your renderer back-end will need to support it (most example renderer back-ends support both 16/32-bit indices).
|
||||
// Another way to allow large meshes while keeping 16-bit indices is to handle ImDrawCmd::VtxOffset in your renderer.
|
||||
// Read about ImGuiBackendFlags_RendererHasVtxOffset for details.
|
||||
//#define ImDrawIdx unsigned int
|
||||
|
||||
//---- Override ImDrawCallback signature (will need to modify renderer back-ends accordingly)
|
||||
//struct ImDrawList;
|
||||
//struct ImDrawCmd;
|
||||
//typedef void (*MyImDrawCallback)(const ImDrawList* draw_list, const ImDrawCmd* cmd, void* my_renderer_user_data);
|
||||
//#define ImDrawCallback MyImDrawCallback
|
||||
|
||||
//---- Debug Tools: Macro to break in Debugger
|
||||
// (use 'Metrics->Tools->Item Picker' to pick widgets with the mouse and break into them for easy debugging.)
|
||||
//#define IM_DEBUG_BREAK IM_ASSERT(0)
|
||||
//#define IM_DEBUG_BREAK __debugbreak()
|
||||
|
||||
//---- Debug Tools: Have the Item Picker break in the ItemAdd() function instead of ItemHoverable(),
|
||||
// (which comes earlier in the code, will catch a few extra items, allow picking items other than Hovered one.)
|
||||
// This adds a small runtime cost which is why it is not enabled by default.
|
||||
//#define IMGUI_DEBUG_TOOL_ITEM_PICKER_EX
|
||||
|
||||
//---- Debug Tools: Enable slower asserts
|
||||
//#define IMGUI_DEBUG_PARANOID
|
||||
|
||||
//---- Tip: You can add extra functions within the ImGui:: namespace, here or in your own headers files.
|
||||
/*
|
||||
namespace ImGui
|
||||
|
6133
src/imgui/imgui.cpp
1614
src/imgui/imgui.h
@ -1,4 +1,10 @@
|
||||
// stb_rect_pack.h - v0.11 - public domain - rectangle packing
|
||||
// [DEAR IMGUI]
|
||||
// This is a slightly modified version of stb_rect_pack.h 1.00.
|
||||
// Those changes would need to be pushed into nothings/stb:
|
||||
// - Added STBRP__CDECL
|
||||
// Grep for [DEAR IMGUI] to find the changes.
|
||||
|
||||
// stb_rect_pack.h - v1.00 - public domain - rectangle packing
|
||||
// Sean Barrett 2014
|
||||
//
|
||||
// Useful for e.g. packing rectangular textures into an atlas.
|
||||
@ -31,9 +37,12 @@
|
||||
//
|
||||
// Bugfixes / warning fixes
|
||||
// Jeremy Jaussaud
|
||||
// Fabian Giesen
|
||||
//
|
||||
// Version history:
|
||||
//
|
||||
// 1.00 (2019-02-25) avoid small space waste; gracefully fail too-wide rectangles
|
||||
// 0.99 (2019-02-07) warning fixes
|
||||
// 0.11 (2017-03-03) return packing success/fail result
|
||||
// 0.10 (2016-10-25) remove cast-away-const to avoid warnings
|
||||
// 0.09 (2016-08-27) fix compiler warnings
|
||||
@ -204,6 +213,7 @@ struct stbrp_context
|
||||
#define STBRP_ASSERT assert
|
||||
#endif
|
||||
|
||||
// [DEAR IMGUI] Added STBRP__CDECL
|
||||
#ifdef _MSC_VER
|
||||
#define STBRP__NOTUSED(v) (void)(v)
|
||||
#define STBRP__CDECL __cdecl
|
||||
@ -349,6 +359,13 @@ static stbrp__findresult stbrp__skyline_find_best_pos(stbrp_context *c, int widt
|
||||
width -= width % c->align;
|
||||
STBRP_ASSERT(width % c->align == 0);
|
||||
|
||||
// if it can't possibly fit, bail immediately
|
||||
if (width > c->width || height > c->height) {
|
||||
fr.prev_link = NULL;
|
||||
fr.x = fr.y = 0;
|
||||
return fr;
|
||||
}
|
||||
|
||||
node = c->active_head;
|
||||
prev = &c->active_head;
|
||||
while (node->x + width <= c->width) {
|
||||
@ -412,7 +429,7 @@ static stbrp__findresult stbrp__skyline_find_best_pos(stbrp_context *c, int widt
|
||||
}
|
||||
STBRP_ASSERT(node->next->x > xpos && node->x <= xpos);
|
||||
y = stbrp__skyline_find_min_y(c, node, xpos, width, &waste);
|
||||
if (y + height < c->height) {
|
||||
if (y + height <= c->height) {
|
||||
if (y <= best_y) {
|
||||
if (y < best_y || waste < best_waste || (waste==best_waste && xpos < best_x)) {
|
||||
best_x = xpos;
|
||||
@ -512,6 +529,7 @@ static stbrp__findresult stbrp__skyline_pack_rectangle(stbrp_context *context, i
|
||||
return res;
|
||||
}
|
||||
|
||||
// [DEAR IMGUI] Added STBRP__CDECL
|
||||
static int STBRP__CDECL rect_height_compare(const void *a, const void *b)
|
||||
{
|
||||
const stbrp_rect *p = (const stbrp_rect *) a;
|
||||
@ -523,6 +541,7 @@ static int STBRP__CDECL rect_height_compare(const void *a, const void *b)
|
||||
return (p->w > q->w) ? -1 : (p->w < q->w);
|
||||
}
|
||||
|
||||
// [DEAR IMGUI] Added STBRP__CDECL
|
||||
static int STBRP__CDECL rect_original_order(const void *a, const void *b)
|
||||
{
|
||||
const stbrp_rect *p = (const stbrp_rect *) a;
|
||||
@ -543,9 +562,6 @@ STBRP_DEF int stbrp_pack_rects(stbrp_context *context, stbrp_rect *rects, int nu
|
||||
// we use the 'was_packed' field internally to allow sorting/unsorting
|
||||
for (i=0; i < num_rects; ++i) {
|
||||
rects[i].was_packed = i;
|
||||
#ifndef STBRP_LARGE_RECTS
|
||||
STBRP_ASSERT(rects[i].w <= 0xffff && rects[i].h <= 0xffff);
|
||||
#endif
|
||||
}
|
||||
|
||||
// sort according to heuristic
|
||||
|
@ -1,9 +1,10 @@
|
||||
// [ImGui] this is a slightly modified version of stb_textedit.h 1.12. Those changes would need to be pushed into nothings/stb
|
||||
// [ImGui] - 2018-06: fixed undo/redo after pasting large amount of text (over 32 kb). Redo will still fail when undo buffers are exhausted, but text won't be corrupted (see nothings/stb issue #620)
|
||||
// [ImGui] - 2018-06: fix in stb_textedit_discard_redo (see https://github.com/nothings/stb/issues/321)
|
||||
// [ImGui] - fixed some minor warnings
|
||||
// [DEAR IMGUI]
|
||||
// This is a slightly modified version of stb_textedit.h 1.13.
|
||||
// Those changes would need to be pushed into nothings/stb:
|
||||
// - Fix in stb_textedit_discard_redo (see https://github.com/nothings/stb/issues/321)
|
||||
// Grep for [DEAR IMGUI] to find the changes.
|
||||
|
||||
// stb_textedit.h - v1.12 - public domain - Sean Barrett
|
||||
// stb_textedit.h - v1.13 - public domain - Sean Barrett
|
||||
// Development of this library was sponsored by RAD Game Tools
|
||||
//
|
||||
// This C header file implements the guts of a multi-line text-editing
|
||||
@ -34,6 +35,7 @@
|
||||
//
|
||||
// VERSION HISTORY
|
||||
//
|
||||
// 1.13 (2019-02-07) fix bug in undo size management
|
||||
// 1.12 (2018-01-29) user can change STB_TEXTEDIT_KEYTYPE, fix redo to avoid crash
|
||||
// 1.11 (2017-03-03) fix HOME on last line, dragging off single-line textfield
|
||||
// 1.10 (2016-10-25) supress warnings about casting away const with -Wcast-qual
|
||||
@ -563,7 +565,6 @@ static void stb_textedit_find_charpos(StbFindState *find, STB_TEXTEDIT_STRING *s
|
||||
|
||||
// now scan to find xpos
|
||||
find->x = r.x0;
|
||||
i = 0;
|
||||
for (i=0; first+i < n; ++i)
|
||||
find->x += STB_TEXTEDIT_GETWIDTH(str, first, i);
|
||||
}
|
||||
@ -693,7 +694,7 @@ static void stb_textedit_prep_selection_at_cursor(STB_TexteditState *state)
|
||||
static int stb_textedit_cut(STB_TEXTEDIT_STRING *str, STB_TexteditState *state)
|
||||
{
|
||||
if (STB_TEXT_HAS_SELECTION(state)) {
|
||||
stb_textedit_delete_selection(str,state); // implicity clamps
|
||||
stb_textedit_delete_selection(str,state); // implicitly clamps
|
||||
state->has_preferred_x = 0;
|
||||
return 1;
|
||||
}
|
||||
@ -745,7 +746,7 @@ retry:
|
||||
state->has_preferred_x = 0;
|
||||
}
|
||||
} else {
|
||||
stb_textedit_delete_selection(str,state); // implicity clamps
|
||||
stb_textedit_delete_selection(str,state); // implicitly clamps
|
||||
if (STB_TEXTEDIT_INSERTCHARS(str, state->cursor, &ch, 1)) {
|
||||
stb_text_makeundo_insert(state, state->cursor, 1);
|
||||
++state->cursor;
|
||||
@ -1133,7 +1134,14 @@ static void stb_textedit_discard_redo(StbUndoState *state)
|
||||
state->undo_rec[i].char_storage += n;
|
||||
}
|
||||
// now move all the redo records towards the end of the buffer; the first one is at 'redo_point'
|
||||
STB_TEXTEDIT_memmove(state->undo_rec + state->redo_point+1, state->undo_rec + state->redo_point, (size_t) ((STB_TEXTEDIT_UNDOSTATECOUNT - state->redo_point)*sizeof(state->undo_rec[0])));
|
||||
// {DEAR IMGUI]
|
||||
size_t move_size = (size_t)((STB_TEXTEDIT_UNDOSTATECOUNT - state->redo_point - 1) * sizeof(state->undo_rec[0]));
|
||||
const char* buf_begin = (char*)state->undo_rec; (void)buf_begin;
|
||||
const char* buf_end = (char*)state->undo_rec + sizeof(state->undo_rec); (void)buf_end;
|
||||
IM_ASSERT(((char*)(state->undo_rec + state->redo_point)) >= buf_begin);
|
||||
IM_ASSERT(((char*)(state->undo_rec + state->redo_point + 1) + move_size) <= buf_end);
|
||||
STB_TEXTEDIT_memmove(state->undo_rec + state->redo_point+1, state->undo_rec + state->redo_point, move_size);
|
||||
|
||||
// now move redo_point to point to the new one
|
||||
++state->redo_point;
|
||||
}
|
||||
|
@ -1,4 +1,9 @@
|
||||
// stb_truetype.h - v1.19 - public domain
|
||||
// [DEAR IMGUI]
|
||||
// This is a slightly modified version of stb_truetype.h 1.20.
|
||||
// Mostly fixing for compiler and static analyzer warnings.
|
||||
// Grep for [DEAR IMGUI] to find the changes.
|
||||
|
||||
// stb_truetype.h - v1.20 - public domain
|
||||
// authored from 2009-2016 by Sean Barrett / RAD Game Tools
|
||||
//
|
||||
// This library processes TrueType files:
|
||||
@ -49,6 +54,7 @@
|
||||
//
|
||||
// VERSION HISTORY
|
||||
//
|
||||
// 1.20 (2019-02-07) PackFontRange skips missing codepoints; GetScaleFontVMetrics()
|
||||
// 1.19 (2018-02-11) GPOS kerning, STBTT_fmod
|
||||
// 1.18 (2018-01-29) add missing function
|
||||
// 1.17 (2017-07-23) make more arguments const; doc fix
|
||||
@ -75,7 +81,7 @@
|
||||
//
|
||||
// USAGE
|
||||
//
|
||||
// Include this file in whatever places neeed to refer to it. In ONE C/C++
|
||||
// Include this file in whatever places need to refer to it. In ONE C/C++
|
||||
// file, write:
|
||||
// #define STB_TRUETYPE_IMPLEMENTATION
|
||||
// before the #include of this file. This expands out the actual
|
||||
@ -247,8 +253,8 @@
|
||||
// Documentation & header file 520 LOC \___ 660 LOC documentation
|
||||
// Sample code 140 LOC /
|
||||
// Truetype parsing 620 LOC ---- 620 LOC TrueType
|
||||
// Software rasterization 240 LOC \ .
|
||||
// Curve tesselation 120 LOC \__ 550 LOC Bitmap creation
|
||||
// Software rasterization 240 LOC \.
|
||||
// Curve tessellation 120 LOC \__ 550 LOC Bitmap creation
|
||||
// Bitmap management 100 LOC /
|
||||
// Baked bitmap interface 70 LOC /
|
||||
// Font name matching & access 150 LOC ---- 150
|
||||
@ -556,6 +562,8 @@ STBTT_DEF void stbtt_GetBakedQuad(const stbtt_bakedchar *chardata, int pw, int p
|
||||
//
|
||||
// It's inefficient; you might want to c&p it and optimize it.
|
||||
|
||||
STBTT_DEF void stbtt_GetScaledFontVMetrics(const unsigned char *fontdata, int index, float size, float *ascent, float *descent, float *lineGap);
|
||||
// Query the font vertical metrics without having to create a font first.
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
@ -641,6 +649,12 @@ STBTT_DEF void stbtt_PackSetOversampling(stbtt_pack_context *spc, unsigned int h
|
||||
// To use with PackFontRangesGather etc., you must set it before calls
|
||||
// call to PackFontRangesGatherRects.
|
||||
|
||||
STBTT_DEF void stbtt_PackSetSkipMissingCodepoints(stbtt_pack_context *spc, int skip);
|
||||
// If skip != 0, this tells stb_truetype to skip any codepoints for which
|
||||
// there is no corresponding glyph. If skip=0, which is the default, then
|
||||
// codepoints without a glyph recived the font's "missing character" glyph,
|
||||
// typically an empty box by convention.
|
||||
|
||||
STBTT_DEF void stbtt_GetPackedQuad(const stbtt_packedchar *chardata, int pw, int ph, // same data as above
|
||||
int char_index, // character to display
|
||||
float *xpos, float *ypos, // pointers to current position in screen pixel space
|
||||
@ -669,6 +683,7 @@ struct stbtt_pack_context {
|
||||
int height;
|
||||
int stride_in_bytes;
|
||||
int padding;
|
||||
int skip_missing;
|
||||
unsigned int h_oversample, v_oversample;
|
||||
unsigned char *pixels;
|
||||
void *nodes;
|
||||
@ -694,7 +709,7 @@ STBTT_DEF int stbtt_GetFontOffsetForIndex(const unsigned char *data, int index);
|
||||
// file will only define one font and it always be at offset 0, so it will
|
||||
// return '0' for index 0, and -1 for all other indices.
|
||||
|
||||
// The following structure is defined publically so you can declare one on
|
||||
// The following structure is defined publicly so you can declare one on
|
||||
// the stack or as a global or etc, but you should treat it as opaque.
|
||||
struct stbtt_fontinfo
|
||||
{
|
||||
@ -733,6 +748,7 @@ STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unicode_codep
|
||||
// and you want a speed-up, call this function with the character you're
|
||||
// going to process, then use glyph-based functions instead of the
|
||||
// codepoint-based functions.
|
||||
// Returns 0 if the character codepoint is not defined in the font.
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
@ -820,7 +836,7 @@ STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, s
|
||||
// returns # of vertices and fills *vertices with the pointer to them
|
||||
// these are expressed in "unscaled" coordinates
|
||||
//
|
||||
// The shape is a series of countours. Each one starts with
|
||||
// The shape is a series of contours. Each one starts with
|
||||
// a STBTT_moveto, then consists of a series of mixed
|
||||
// STBTT_lineto and STBTT_curveto segments. A lineto
|
||||
// draws a line from previous endpoint to its x,y; a curveto
|
||||
@ -916,7 +932,7 @@ STBTT_DEF unsigned char * stbtt_GetGlyphSDF(const stbtt_fontinfo *info, float sc
|
||||
STBTT_DEF unsigned char * stbtt_GetCodepointSDF(const stbtt_fontinfo *info, float scale, int codepoint, int padding, unsigned char onedge_value, float pixel_dist_scale, int *width, int *height, int *xoff, int *yoff);
|
||||
// These functions compute a discretized SDF field for a single character, suitable for storing
|
||||
// in a single-channel texture, sampling with bilinear filtering, and testing against
|
||||
// larger than some threshhold to produce scalable fonts.
|
||||
// larger than some threshold to produce scalable fonts.
|
||||
// info -- the font
|
||||
// scale -- controls the size of the resulting SDF bitmap, same as it would be creating a regular bitmap
|
||||
// glyph/codepoint -- the character to generate the SDF for
|
||||
@ -1825,7 +1841,7 @@ static int stbtt__GetGlyphShapeTT(const stbtt_fontinfo *info, int glyph_index, s
|
||||
if (comp_verts) STBTT_free(comp_verts, info->userdata);
|
||||
return 0;
|
||||
}
|
||||
if (num_vertices > 0) STBTT_memcpy(tmp, vertices, num_vertices*sizeof(stbtt_vertex));
|
||||
if (num_vertices > 0) STBTT_memcpy(tmp, vertices, num_vertices*sizeof(stbtt_vertex)); //-V595
|
||||
STBTT_memcpy(tmp+num_vertices, comp_verts, comp_num_verts*sizeof(stbtt_vertex));
|
||||
if (vertices) STBTT_free(vertices, info->userdata);
|
||||
vertices = tmp;
|
||||
@ -2196,7 +2212,7 @@ static int stbtt__run_charstring(const stbtt_fontinfo *info, int glyph_index, st
|
||||
} break;
|
||||
|
||||
default:
|
||||
if (b0 != 255 && b0 != 28 && (b0 < 32 || b0 > 254))
|
||||
if (b0 != 255 && b0 != 28 && (b0 < 32 || b0 > 254)) //-V560
|
||||
return STBTT__CSERR("reserved operator");
|
||||
|
||||
// push immediate
|
||||
@ -2368,7 +2384,8 @@ static stbtt_int32 stbtt__GetGlyphClass(stbtt_uint8 *classDefTable, int glyph)
|
||||
if (glyph >= startGlyphID && glyph < startGlyphID + glyphCount)
|
||||
return (stbtt_int32)ttUSHORT(classDef1ValueArray + 2 * (glyph - startGlyphID));
|
||||
|
||||
classDefTable = classDef1ValueArray + 2 * glyphCount;
|
||||
// [DEAR IMGUI] Commented to fix static analyzer warning
|
||||
//classDefTable = classDef1ValueArray + 2 * glyphCount;
|
||||
} break;
|
||||
|
||||
case 2: {
|
||||
@ -2392,7 +2409,8 @@ static stbtt_int32 stbtt__GetGlyphClass(stbtt_uint8 *classDefTable, int glyph)
|
||||
return (stbtt_int32)ttUSHORT(classRangeRecord + 4);
|
||||
}
|
||||
|
||||
classDefTable = classRangeRecords + 6 * classRangeCount;
|
||||
// [DEAR IMGUI] Commented to fix static analyzer warning
|
||||
//classDefTable = classRangeRecords + 6 * classRangeCount;
|
||||
} break;
|
||||
|
||||
default: {
|
||||
@ -3024,6 +3042,8 @@ static void stbtt__fill_active_edges_new(float *scanline, float *scanline_fill,
|
||||
dx = -dx;
|
||||
dy = -dy;
|
||||
t = x0, x0 = xb, xb = t;
|
||||
// [DEAR IMGUI] Fix static analyzer warning
|
||||
(void)dx; // [ImGui: fix static analyzer warning]
|
||||
}
|
||||
|
||||
x1 = (int) x_top;
|
||||
@ -3161,7 +3181,13 @@ static void stbtt__rasterize_sorted_edges(stbtt__bitmap *result, stbtt__edge *e,
|
||||
if (e->y0 != e->y1) {
|
||||
stbtt__active_edge *z = stbtt__new_active(&hh, e, off_x, scan_y_top, userdata);
|
||||
if (z != NULL) {
|
||||
STBTT_assert(z->ey >= scan_y_top);
|
||||
if (j == 0 && off_y != 0) {
|
||||
if (z->ey < scan_y_top) {
|
||||
// this can happen due to subpixel positioning and some kind of fp rounding error i think
|
||||
z->ey = scan_y_top;
|
||||
}
|
||||
}
|
||||
STBTT_assert(z->ey >= scan_y_top); // if we get really unlucky a tiny bit of an edge can be out of bounds
|
||||
// insert at front
|
||||
z->next = active;
|
||||
active = z;
|
||||
@ -3230,7 +3256,7 @@ static void stbtt__sort_edges_ins_sort(stbtt__edge *p, int n)
|
||||
|
||||
static void stbtt__sort_edges_quicksort(stbtt__edge *p, int n)
|
||||
{
|
||||
/* threshhold for transitioning to insertion sort */
|
||||
/* threshold for transitioning to insertion sort */
|
||||
while (n > 12) {
|
||||
stbtt__edge t;
|
||||
int c01,c12,c,m,i,j;
|
||||
@ -3365,7 +3391,7 @@ static void stbtt__add_point(stbtt__point *points, int n, float x, float y)
|
||||
points[n].y = y;
|
||||
}
|
||||
|
||||
// tesselate until threshhold p is happy... @TODO warped to compensate for non-linear stretching
|
||||
// tessellate until threshold p is happy... @TODO warped to compensate for non-linear stretching
|
||||
static int stbtt__tesselate_curve(stbtt__point *points, int *num_points, float x0, float y0, float x1, float y1, float x2, float y2, float objspace_flatness_squared, int n)
|
||||
{
|
||||
// midpoint
|
||||
@ -3790,6 +3816,7 @@ STBTT_DEF int stbtt_PackBegin(stbtt_pack_context *spc, unsigned char *pixels, in
|
||||
spc->stride_in_bytes = stride_in_bytes != 0 ? stride_in_bytes : pw;
|
||||
spc->h_oversample = 1;
|
||||
spc->v_oversample = 1;
|
||||
spc->skip_missing = 0;
|
||||
|
||||
stbrp_init_target(context, pw-padding, ph-padding, nodes, num_nodes);
|
||||
|
||||
@ -3815,6 +3842,11 @@ STBTT_DEF void stbtt_PackSetOversampling(stbtt_pack_context *spc, unsigned int h
|
||||
spc->v_oversample = v_oversample;
|
||||
}
|
||||
|
||||
STBTT_DEF void stbtt_PackSetSkipMissingCodepoints(stbtt_pack_context *spc, int skip)
|
||||
{
|
||||
spc->skip_missing = skip;
|
||||
}
|
||||
|
||||
#define STBTT__OVER_MASK (STBTT_MAX_OVERSAMPLE-1)
|
||||
|
||||
static void stbtt__h_prefilter(unsigned char *pixels, int w, int h, int stride_in_bytes, unsigned int kernel_width)
|
||||
@ -3968,13 +4000,17 @@ STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, const stb
|
||||
int x0,y0,x1,y1;
|
||||
int codepoint = ranges[i].array_of_unicode_codepoints == NULL ? ranges[i].first_unicode_codepoint_in_range + j : ranges[i].array_of_unicode_codepoints[j];
|
||||
int glyph = stbtt_FindGlyphIndex(info, codepoint);
|
||||
stbtt_GetGlyphBitmapBoxSubpixel(info,glyph,
|
||||
scale * spc->h_oversample,
|
||||
scale * spc->v_oversample,
|
||||
0,0,
|
||||
&x0,&y0,&x1,&y1);
|
||||
rects[k].w = (stbrp_coord) (x1-x0 + spc->padding + spc->h_oversample-1);
|
||||
rects[k].h = (stbrp_coord) (y1-y0 + spc->padding + spc->v_oversample-1);
|
||||
if (glyph == 0 && spc->skip_missing) {
|
||||
rects[k].w = rects[k].h = 0;
|
||||
} else {
|
||||
stbtt_GetGlyphBitmapBoxSubpixel(info,glyph,
|
||||
scale * spc->h_oversample,
|
||||
scale * spc->v_oversample,
|
||||
0,0,
|
||||
&x0,&y0,&x1,&y1);
|
||||
rects[k].w = (stbrp_coord) (x1-x0 + spc->padding + spc->h_oversample-1);
|
||||
rects[k].h = (stbrp_coord) (y1-y0 + spc->padding + spc->v_oversample-1);
|
||||
}
|
||||
++k;
|
||||
}
|
||||
}
|
||||
@ -4027,7 +4063,7 @@ STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *spc, const
|
||||
sub_y = stbtt__oversample_shift(spc->v_oversample);
|
||||
for (j=0; j < ranges[i].num_chars; ++j) {
|
||||
stbrp_rect *r = &rects[k];
|
||||
if (r->was_packed) {
|
||||
if (r->was_packed && r->w != 0 && r->h != 0) {
|
||||
stbtt_packedchar *bc = &ranges[i].chardata_for_range[j];
|
||||
int advance, lsb, x0,y0,x1,y1;
|
||||
int codepoint = ranges[i].array_of_unicode_codepoints == NULL ? ranges[i].first_unicode_codepoint_in_range + j : ranges[i].array_of_unicode_codepoints[j];
|
||||
@ -4141,6 +4177,19 @@ STBTT_DEF int stbtt_PackFontRange(stbtt_pack_context *spc, const unsigned char *
|
||||
return stbtt_PackFontRanges(spc, fontdata, font_index, &range, 1);
|
||||
}
|
||||
|
||||
STBTT_DEF void stbtt_GetScaledFontVMetrics(const unsigned char *fontdata, int index, float size, float *ascent, float *descent, float *lineGap)
|
||||
{
|
||||
int i_ascent, i_descent, i_lineGap;
|
||||
float scale;
|
||||
stbtt_fontinfo info;
|
||||
stbtt_InitFont(&info, fontdata, stbtt_GetFontOffsetForIndex(fontdata, index));
|
||||
scale = size > 0 ? stbtt_ScaleForPixelHeight(&info, size) : stbtt_ScaleForMappingEmToPixels(&info, -size);
|
||||
stbtt_GetFontVMetrics(&info, &i_ascent, &i_descent, &i_lineGap);
|
||||
*ascent = (float) i_ascent * scale;
|
||||
*descent = (float) i_descent * scale;
|
||||
*lineGap = (float) i_lineGap * scale;
|
||||
}
|
||||
|
||||
STBTT_DEF void stbtt_GetPackedQuad(const stbtt_packedchar *chardata, int pw, int ph, int char_index, float *xpos, float *ypos, stbtt_aligned_quad *q, int align_to_integer)
|
||||
{
|
||||
float ipw = 1.0f / pw, iph = 1.0f / ph;
|
||||
@ -4253,7 +4302,7 @@ static int stbtt__compute_crossings_x(float x, float y, int nverts, stbtt_vertex
|
||||
int winding = 0;
|
||||
|
||||
orig[0] = x;
|
||||
orig[1] = y;
|
||||
//orig[1] = y; // [DEAR IMGUI] commmented double assignment
|
||||
|
||||
// make sure y never passes through a vertex of the shape
|
||||
y_frac = (float) STBTT_fmod(y, 1.0f);
|
||||
|
@ -278,6 +278,8 @@ template<class RawShape> class EdgeCache {
|
||||
|
||||
inline Vertex coords(const ContourCache& cache, double distance) const {
|
||||
assert(distance >= .0 && distance <= 1.0);
|
||||
if (cache.distances.empty() || cache.emap.empty()) return Vertex{};
|
||||
if (distance > 1.0) distance = std::fmod(distance, 1.0);
|
||||
|
||||
// distance is from 0.0 to 1.0, we scale it up to the full length of
|
||||
// the circumference
|
||||
|
@ -43,7 +43,10 @@ protected:
|
||||
|
||||
Placer p{bin};
|
||||
p.configure(pcfg);
|
||||
if (itm.area() <= 0 || !p.pack(cpy)) it = c.erase(it);
|
||||
if (itm.area() <= 0 || !p.pack(cpy)) {
|
||||
static_cast<Item&>(*it).binId(BIN_ID_UNSET);
|
||||
it = c.erase(it);
|
||||
}
|
||||
else it++;
|
||||
}
|
||||
}
|
||||
|
@ -577,7 +577,7 @@ void _arrange(
|
||||
std::function<bool()> stopfn)
|
||||
{
|
||||
// Integer ceiling the min distance from the bed perimeters
|
||||
coord_t md = minobjd - 2 * scaled(0.1 + EPSILON);
|
||||
coord_t md = minobjd;
|
||||
md = (md % 2) ? md / 2 + 1 : md / 2;
|
||||
|
||||
auto corrected_bin = bin;
|
||||
|
@ -62,7 +62,8 @@ std::vector<std::pair<double, unsigned int>> custom_tool_changes(const Info& cus
|
||||
for (const Item& custom_gcode : custom_gcode_per_print_z.gcodes)
|
||||
if (custom_gcode.gcode == ToolChangeCode) {
|
||||
// If extruder count in PrinterSettings was changed, use default (0) extruder for extruders, more than num_extruders
|
||||
custom_tool_changes.emplace_back(custom_gcode.print_z, static_cast<unsigned int>(custom_gcode.extruder > num_extruders ? 1 : custom_gcode.extruder));
|
||||
assert(custom_gcode.extruder >= 0);
|
||||
custom_tool_changes.emplace_back(custom_gcode.print_z, static_cast<unsigned int>(size_t(custom_gcode.extruder) > num_extruders ? 1 : custom_gcode.extruder));
|
||||
}
|
||||
return custom_tool_changes;
|
||||
}
|
||||
|
@ -1147,7 +1147,7 @@ EdgeGrid::Grid::ClosestPointResult EdgeGrid::Grid::closest_point(const Point &pt
|
||||
}
|
||||
}
|
||||
}
|
||||
if (result.contour_idx != -1 && d_min <= double(search_radius)) {
|
||||
if (result.contour_idx != size_t(-1) && d_min <= double(search_radius)) {
|
||||
result.distance = d_min * sign_min;
|
||||
result.t /= l2_seg_min;
|
||||
assert(result.t >= 0. && result.t < 1.);
|
||||
|
@ -114,7 +114,7 @@ std::vector<SurfaceFill> group_fills(const Layer &layer)
|
||||
if (surface.surface_type == stInternalVoid)
|
||||
has_internal_voids = true;
|
||||
else {
|
||||
FlowRole extrusion_role = (surface.surface_type == stTop) ? frTopSolidInfill : (surface.is_solid() ? frSolidInfill : frInfill);
|
||||
FlowRole extrusion_role = surface.is_top() ? frTopSolidInfill : (surface.is_solid() ? frSolidInfill : frInfill);
|
||||
bool is_bridge = layer.id() > 0 && surface.is_bridge();
|
||||
params.extruder = layerm.region()->extruder(extrusion_role);
|
||||
params.pattern = layerm.region()->config().fill_pattern.value;
|
||||
@ -132,7 +132,7 @@ std::vector<SurfaceFill> group_fills(const Layer &layer)
|
||||
is_bridge ?
|
||||
erBridgeInfill :
|
||||
(surface.is_solid() ?
|
||||
((surface.surface_type == stTop) ? erTopSolidInfill : erSolidInfill) :
|
||||
(surface.is_top() ? erTopSolidInfill : erSolidInfill) :
|
||||
erInternalInfill);
|
||||
params.bridge_angle = float(surface.bridge_angle);
|
||||
params.angle = float(Geometry::deg2rad(layerm.region()->config().fill_angle.value));
|
||||
|
@ -611,7 +611,7 @@ static inline SegmentPoint clip_start_segment_and_point(const Points &polyline,
|
||||
SegmentPoint out;
|
||||
if (polyline.size() >= 2) {
|
||||
Vec2d pt_prev = polyline.front().cast<double>();
|
||||
for (int i = 1; i < polyline.size(); ++ i) {
|
||||
for (size_t i = 1; i < polyline.size(); ++ i) {
|
||||
Vec2d pt = polyline[i].cast<double>();
|
||||
Vec2d v = pt - pt_prev;
|
||||
double l2 = v.squaredNorm();
|
||||
@ -674,7 +674,7 @@ static inline double segment_point_distance_squared(const Vec2d &p1a, const Vec2
|
||||
if (l2 < EPSILON)
|
||||
// p1a == p1b
|
||||
return (p2 - p1a).squaredNorm();
|
||||
return segment_point_distance_squared(p1a, p1b, v, v.squaredNorm(), p2);
|
||||
return segment_point_distance_squared(p1a, p1b, v, v.squaredNorm(), p2);
|
||||
}
|
||||
|
||||
// Distance to the closest point of line.
|
||||
@ -692,7 +692,7 @@ static inline double min_distance_of_segments(const Vec2d &p1a, const Vec2d &p1b
|
||||
// p2a == p2b: Return distance of p2a from the (p1a, p1b) segment.
|
||||
return segment_point_distance_squared(p1a, p1b, v1, l1_2, p2a);
|
||||
|
||||
return std::min(
|
||||
return std::min(
|
||||
std::min(segment_point_distance_squared(p1a, p1b, v1, l1_2, p2a), segment_point_distance_squared(p1a, p1b, v1, l1_2, p2b)),
|
||||
std::min(segment_point_distance_squared(p2a, p2b, v2, l2_2, p1a), segment_point_distance_squared(p2a, p2b, v2, l2_2, p1b)));
|
||||
}
|
||||
|
@ -156,7 +156,7 @@ void FillGyroid::_fill_surface_single(
|
||||
Polylines &polylines_out)
|
||||
{
|
||||
float infill_angle = this->angle + (CorrectionAngle * 2*M_PI) / 360.;
|
||||
if(abs(infill_angle) >= EPSILON)
|
||||
if(std::abs(infill_angle) >= EPSILON)
|
||||
expolygon.rotate(-infill_angle);
|
||||
|
||||
BoundingBox bb = expolygon.contour.bounding_box();
|
||||
@ -197,8 +197,9 @@ void FillGyroid::_fill_surface_single(
|
||||
append(polylines_out, std::move(polylines));
|
||||
else
|
||||
this->connect_infill(std::move(polylines), expolygon, polylines_out, this->spacing, params);
|
||||
|
||||
// new paths must be rotated back
|
||||
if (abs(infill_angle) >= EPSILON) {
|
||||
if (std::abs(infill_angle) >= EPSILON) {
|
||||
for (auto it = polylines_out.begin() + polylines_out_first_idx; it != polylines_out.end(); ++ it)
|
||||
it->rotate(infill_angle);
|
||||
}
|
||||
|
@ -3,9 +3,7 @@
|
||||
#include "../Utils.hpp"
|
||||
#include "../GCode.hpp"
|
||||
#include "../Geometry.hpp"
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
#include "../GCode/ThumbnailData.hpp"
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
#include "../I18N.hpp"
|
||||
|
||||
@ -47,9 +45,7 @@ const std::string MODEL_EXTENSION = ".model";
|
||||
const std::string MODEL_FILE = "3D/3dmodel.model"; // << this is the only format of the string which works with CURA
|
||||
const std::string CONTENT_TYPES_FILE = "[Content_Types].xml";
|
||||
const std::string RELATIONSHIPS_FILE = "_rels/.rels";
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
const std::string THUMBNAIL_FILE = "Metadata/thumbnail.png";
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
const std::string PRINT_CONFIG_FILE = "Metadata/Slic3r_PE.config";
|
||||
const std::string MODEL_CONFIG_FILE = "Metadata/Slic3r_PE_model.config";
|
||||
const std::string LAYER_HEIGHTS_PROFILE_FILE = "Metadata/Slic3r_PE_layer_heights_profile.txt";
|
||||
@ -1722,7 +1718,7 @@ namespace Slic3r {
|
||||
}
|
||||
|
||||
// Added because of github #3435, currently not used by PrusaSlicer
|
||||
int instances_count_id = get_attribute_value_int(attributes, num_attributes, INSTANCESCOUNT_ATTR);
|
||||
// int instances_count_id = get_attribute_value_int(attributes, num_attributes, INSTANCESCOUNT_ATTR);
|
||||
|
||||
m_objects_metadata.insert(IdToMetadataMap::value_type(object_id, ObjectMetadata()));
|
||||
m_curr_config.object_id = object_id;
|
||||
@ -1969,22 +1965,12 @@ namespace Slic3r {
|
||||
bool m_fullpath_sources{ true };
|
||||
|
||||
public:
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
bool save_model_to_file(const std::string& filename, Model& model, const DynamicPrintConfig* config, bool fullpath_sources, const ThumbnailData* thumbnail_data = nullptr);
|
||||
#else
|
||||
bool save_model_to_file(const std::string& filename, Model& model, const DynamicPrintConfig* config, bool fullpath_sources);
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
private:
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
bool _save_model_to_file(const std::string& filename, Model& model, const DynamicPrintConfig* config, const ThumbnailData* thumbnail_data);
|
||||
#else
|
||||
bool _save_model_to_file(const std::string& filename, Model& model, const DynamicPrintConfig* config);
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
bool _add_content_types_file_to_archive(mz_zip_archive& archive);
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
bool _add_thumbnail_file_to_archive(mz_zip_archive& archive, const ThumbnailData& thumbnail_data);
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
bool _add_relationships_file_to_archive(mz_zip_archive& archive);
|
||||
bool _add_model_file_to_archive(mz_zip_archive& archive, const Model& model, IdToObjectDataMap &objects_data);
|
||||
bool _add_object_to_model_stream(std::stringstream& stream, unsigned int& object_id, ModelObject& object, BuildItemsList& build_items, VolumeToOffsetsMap& volumes_offsets);
|
||||
@ -1999,26 +1985,14 @@ namespace Slic3r {
|
||||
bool _add_custom_gcode_per_print_z_file_to_archive(mz_zip_archive& archive, Model& model);
|
||||
};
|
||||
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
bool _3MF_Exporter::save_model_to_file(const std::string& filename, Model& model, const DynamicPrintConfig* config, bool fullpath_sources, const ThumbnailData* thumbnail_data)
|
||||
{
|
||||
clear_errors();
|
||||
m_fullpath_sources = fullpath_sources;
|
||||
return _save_model_to_file(filename, model, config, thumbnail_data);
|
||||
}
|
||||
#else
|
||||
bool _3MF_Exporter::save_model_to_file(const std::string& filename, Model& model, const DynamicPrintConfig* config, bool fullpath_sources)
|
||||
{
|
||||
clear_errors();
|
||||
return _save_model_to_file(filename, model, config);
|
||||
}
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
bool _3MF_Exporter::_save_model_to_file(const std::string& filename, Model& model, const DynamicPrintConfig* config, const ThumbnailData* thumbnail_data)
|
||||
#else
|
||||
bool _3MF_Exporter::_save_model_to_file(const std::string& filename, Model& model, const DynamicPrintConfig* config)
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
{
|
||||
mz_zip_archive archive;
|
||||
mz_zip_zero_struct(&archive);
|
||||
@ -2037,7 +2011,6 @@ namespace Slic3r {
|
||||
return false;
|
||||
}
|
||||
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
if ((thumbnail_data != nullptr) && thumbnail_data->is_valid())
|
||||
{
|
||||
// Adds the file Metadata/thumbnail.png.
|
||||
@ -2048,7 +2021,6 @@ namespace Slic3r {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
// Adds relationships file ("_rels/.rels").
|
||||
// The content of this file is the same for each PrusaSlicer 3mf.
|
||||
@ -2160,9 +2132,7 @@ namespace Slic3r {
|
||||
stream << "<Types xmlns=\"http://schemas.openxmlformats.org/package/2006/content-types\">\n";
|
||||
stream << " <Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\" />\n";
|
||||
stream << " <Default Extension=\"model\" ContentType=\"application/vnd.ms-package.3dmanufacturing-3dmodel+xml\" />\n";
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
stream << " <Default Extension=\"png\" ContentType=\"image/png\" />\n";
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
stream << "</Types>";
|
||||
|
||||
std::string out = stream.str();
|
||||
@ -2176,7 +2146,6 @@ namespace Slic3r {
|
||||
return true;
|
||||
}
|
||||
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
bool _3MF_Exporter::_add_thumbnail_file_to_archive(mz_zip_archive& archive, const ThumbnailData& thumbnail_data)
|
||||
{
|
||||
bool res = false;
|
||||
@ -2194,7 +2163,6 @@ namespace Slic3r {
|
||||
|
||||
return res;
|
||||
}
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
bool _3MF_Exporter::_add_relationships_file_to_archive(mz_zip_archive& archive)
|
||||
{
|
||||
@ -2202,9 +2170,7 @@ namespace Slic3r {
|
||||
stream << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
|
||||
stream << "<Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">\n";
|
||||
stream << " <Relationship Target=\"/" << MODEL_FILE << "\" Id=\"rel-1\" Type=\"http://schemas.microsoft.com/3dmanufacturing/2013/01/3dmodel\" />\n";
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
stream << " <Relationship Target=\"/" << THUMBNAIL_FILE << "\" Id=\"rel-2\" Type=\"http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail\" />\n";
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
stream << "</Relationships>";
|
||||
|
||||
std::string out = stream.str();
|
||||
@ -2795,22 +2761,13 @@ bool load_3mf(const char* path, DynamicPrintConfig* config, Model* model, bool c
|
||||
return res;
|
||||
}
|
||||
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
bool store_3mf(const char* path, Model* model, const DynamicPrintConfig* config, bool fullpath_sources, const ThumbnailData* thumbnail_data)
|
||||
#else
|
||||
bool store_3mf(const char* path, Model* model, const DynamicPrintConfig* config, bool fullpath_sources)
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
{
|
||||
if ((path == nullptr) || (model == nullptr))
|
||||
return false;
|
||||
|
||||
_3MF_Exporter exporter;
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
bool res = exporter.save_model_to_file(path, *model, config, fullpath_sources, thumbnail_data);
|
||||
#else
|
||||
bool res = exporter.save_model_to_file(path, *model, config, fullpath_sources);
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
if (!res)
|
||||
exporter.log_errors();
|
||||
|
||||
|
@ -26,20 +26,14 @@ namespace Slic3r {
|
||||
|
||||
class Model;
|
||||
class DynamicPrintConfig;
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
struct ThumbnailData;
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
// Load the content of a 3mf file into the given model and preset bundle.
|
||||
extern bool load_3mf(const char* path, DynamicPrintConfig* config, Model* model, bool check_version);
|
||||
|
||||
// Save the given model and the config data contained in the given Print into a 3mf file.
|
||||
// The model could be modified during the export process if meshes are not repaired or have no shared vertices
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
extern bool store_3mf(const char* path, Model* model, const DynamicPrintConfig* config, bool fullpath_sources, const ThumbnailData* thumbnail_data = nullptr);
|
||||
#else
|
||||
extern bool store_3mf(const char* path, Model* model, const DynamicPrintConfig* config, bool fullpath_sources);
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
}; // namespace Slic3r
|
||||
|
||||
|
@ -20,9 +20,7 @@
|
||||
#include <boost/foreach.hpp>
|
||||
#include <boost/filesystem.hpp>
|
||||
#include <boost/log/trivial.hpp>
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
#include <boost/beast/core/detail/base64.hpp>
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
#include <boost/nowide/iostream.hpp>
|
||||
#include <boost/nowide/cstdio.hpp>
|
||||
@ -291,7 +289,7 @@ std::string WipeTowerIntegration::append_tcr(GCode &gcodegen, const WipeTower::T
|
||||
|
||||
std::string gcode;
|
||||
|
||||
// Toolchangeresult.gcode assumes the wipe tower corner is at the origin
|
||||
// Toolchangeresult.gcode assumes the wipe tower corner is at the origin (except for priming lines)
|
||||
// We want to rotate and shift all extrusions (gcode postprocessing) and starting and ending position
|
||||
float alpha = m_wipe_tower_rotation/180.f * float(M_PI);
|
||||
Vec2f start_pos = tcr.start_pos;
|
||||
@ -431,7 +429,6 @@ std::string WipeTowerIntegration::post_process_wipe_tower_moves(const WipeTower:
|
||||
Vec2f pos = tcr.start_pos;
|
||||
Vec2f transformed_pos = pos;
|
||||
Vec2f old_pos(-1000.1f, -1000.1f);
|
||||
std::string never_skip_tag = WipeTower::never_skip_tag();
|
||||
|
||||
while (gcode_str) {
|
||||
std::getline(gcode_str, line); // we read the gcode line by line
|
||||
@ -441,11 +438,11 @@ std::string WipeTowerIntegration::post_process_wipe_tower_moves(const WipeTower:
|
||||
// WT generator can override this by appending the never_skip_tag
|
||||
if (line.find("G1 ") == 0) {
|
||||
bool never_skip = false;
|
||||
auto it = line.find(never_skip_tag);
|
||||
auto it = line.find(WipeTower::never_skip_tag());
|
||||
if (it != std::string::npos) {
|
||||
// remove the tag and remember we saw it
|
||||
never_skip = true;
|
||||
line.erase(it, it+never_skip_tag.size());
|
||||
line.erase(it, it+WipeTower::never_skip_tag().size());
|
||||
}
|
||||
std::ostringstream line_out;
|
||||
std::istringstream line_str(line);
|
||||
@ -701,11 +698,7 @@ std::vector<std::pair<coordf_t, std::vector<GCode::LayerToPrint>>> GCode::collec
|
||||
return layers_to_print;
|
||||
}
|
||||
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
void GCode::do_export(Print* print, const char* path, GCodePreviewData* preview_data, ThumbnailsGeneratorCallback thumbnail_cb)
|
||||
#else
|
||||
void GCode::do_export(Print *print, const char *path, GCodePreviewData *preview_data)
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
{
|
||||
PROFILE_CLEAR();
|
||||
|
||||
@ -731,11 +724,7 @@ void GCode::do_export(Print *print, const char *path, GCodePreviewData *preview_
|
||||
|
||||
try {
|
||||
m_placeholder_parser_failed_templates.clear();
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
this->_do_export(*print, file, thumbnail_cb);
|
||||
#else
|
||||
this->_do_export(*print, file);
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
fflush(file);
|
||||
if (ferror(file)) {
|
||||
fclose(file);
|
||||
@ -975,7 +964,6 @@ namespace DoExport {
|
||||
}
|
||||
}
|
||||
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
template<typename WriteToOutput, typename ThrowIfCanceledCallback>
|
||||
static void export_thumbnails_to_file(ThumbnailsGeneratorCallback &thumbnail_cb, const std::vector<Vec2d> &sizes, WriteToOutput output, ThrowIfCanceledCallback throw_if_canceled)
|
||||
{
|
||||
@ -1019,7 +1007,6 @@ namespace DoExport {
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
// Fill in print_statistics and return formatted string containing filament statistics to be inserted into G-code comment section.
|
||||
static std::string update_print_stats_and_format_filament_stats(
|
||||
@ -1125,11 +1112,7 @@ std::vector<const PrintInstance*> sort_object_instances_by_model_order(const Pri
|
||||
return instances;
|
||||
}
|
||||
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
void GCode::_do_export(Print& print, FILE* file, ThumbnailsGeneratorCallback thumbnail_cb)
|
||||
#else
|
||||
void GCode::_do_export(Print& print, FILE* file)
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
{
|
||||
PROFILE_FUNC();
|
||||
|
||||
@ -1752,7 +1735,6 @@ std::vector<GCode::InstanceToPrint> GCode::sort_print_object_instances(
|
||||
std::sort(sorted.begin(), sorted.end());
|
||||
|
||||
if (! sorted.empty()) {
|
||||
const Print &print = *sorted.front().first->print();
|
||||
out.reserve(sorted.size());
|
||||
for (const PrintInstance *instance : *ordering) {
|
||||
const PrintObject &print_object = *instance->print_object;
|
||||
@ -1798,13 +1780,14 @@ namespace ProcessLayer
|
||||
// we should add or not colorprint_change in respect to nozzle_diameter count instead of really used extruders count
|
||||
if (color_change || tool_change)
|
||||
{
|
||||
assert(m600_extruder_before_layer >= 0);
|
||||
// Color Change or Tool Change as Color Change.
|
||||
// add tag for analyzer
|
||||
gcode += "; " + GCodeAnalyzer::Color_Change_Tag + ",T" + std::to_string(m600_extruder_before_layer) + "\n";
|
||||
// add tag for time estimator
|
||||
gcode += "; " + GCodeTimeEstimator::Color_Change_Tag + "\n";
|
||||
|
||||
if (!single_extruder_printer && m600_extruder_before_layer >= 0 && first_extruder_id != m600_extruder_before_layer
|
||||
if (!single_extruder_printer && m600_extruder_before_layer >= 0 && first_extruder_id != (unsigned)m600_extruder_before_layer
|
||||
// && !MMU1
|
||||
) {
|
||||
//! FIXME_in_fw show message during print pause
|
||||
@ -2880,11 +2863,12 @@ std::string GCode::extrude_path(ExtrusionPath path, std::string description, dou
|
||||
std::string GCode::extrude_perimeters(const Print &print, const std::vector<ObjectByExtruder::Island::Region> &by_region, std::unique_ptr<EdgeGrid::Grid> &lower_layer_edge_grid)
|
||||
{
|
||||
std::string gcode;
|
||||
for (const ObjectByExtruder::Island::Region ®ion : by_region) {
|
||||
m_config.apply(print.regions()[®ion - &by_region.front()]->config());
|
||||
for (const ExtrusionEntity *ee : region.perimeters)
|
||||
gcode += this->extrude_entity(*ee, "perimeter", -1., &lower_layer_edge_grid);
|
||||
}
|
||||
for (const ObjectByExtruder::Island::Region ®ion : by_region)
|
||||
if (! region.perimeters.empty()) {
|
||||
m_config.apply(print.regions()[®ion - &by_region.front()]->config());
|
||||
for (const ExtrusionEntity *ee : region.perimeters)
|
||||
gcode += this->extrude_entity(*ee, "perimeter", -1., &lower_layer_edge_grid);
|
||||
}
|
||||
return gcode;
|
||||
}
|
||||
|
||||
@ -2892,19 +2876,20 @@ std::string GCode::extrude_perimeters(const Print &print, const std::vector<Obje
|
||||
std::string GCode::extrude_infill(const Print &print, const std::vector<ObjectByExtruder::Island::Region> &by_region)
|
||||
{
|
||||
std::string gcode;
|
||||
for (const ObjectByExtruder::Island::Region ®ion : by_region) {
|
||||
m_config.apply(print.regions()[®ion - &by_region.front()]->config());
|
||||
ExtrusionEntitiesPtr extrusions { region.infills };
|
||||
chain_and_reorder_extrusion_entities(extrusions, &m_last_pos);
|
||||
for (const ExtrusionEntity *fill : extrusions) {
|
||||
auto *eec = dynamic_cast<const ExtrusionEntityCollection*>(fill);
|
||||
if (eec) {
|
||||
for (ExtrusionEntity *ee : eec->chained_path_from(m_last_pos).entities)
|
||||
gcode += this->extrude_entity(*ee, "infill");
|
||||
} else
|
||||
gcode += this->extrude_entity(*fill, "infill");
|
||||
for (const ObjectByExtruder::Island::Region ®ion : by_region)
|
||||
if (! region.infills.empty()) {
|
||||
m_config.apply(print.regions()[®ion - &by_region.front()]->config());
|
||||
ExtrusionEntitiesPtr extrusions { region.infills };
|
||||
chain_and_reorder_extrusion_entities(extrusions, &m_last_pos);
|
||||
for (const ExtrusionEntity *fill : extrusions) {
|
||||
auto *eec = dynamic_cast<const ExtrusionEntityCollection*>(fill);
|
||||
if (eec) {
|
||||
for (ExtrusionEntity *ee : eec->chained_path_from(m_last_pos).entities)
|
||||
gcode += this->extrude_entity(*ee, "infill");
|
||||
} else
|
||||
gcode += this->extrude_entity(*fill, "infill");
|
||||
}
|
||||
}
|
||||
}
|
||||
return gcode;
|
||||
}
|
||||
|
||||
@ -3370,17 +3355,18 @@ const std::vector<GCode::ObjectByExtruder::Island::Region>& GCode::ObjectByExtru
|
||||
has_overrides = true;
|
||||
break;
|
||||
}
|
||||
|
||||
// Data is cleared, but the memory is not.
|
||||
by_region_per_copy_cache.clear();
|
||||
|
||||
if (! has_overrides)
|
||||
// Simple case. No need to copy the regions.
|
||||
return this->by_region;
|
||||
return wiping_entities ? by_region_per_copy_cache : this->by_region;
|
||||
|
||||
// Complex case. Some of the extrusions of some object instances are to be printed first - those are the wiping extrusions.
|
||||
// Some of the extrusions of some object instances are printed later - those are the clean print extrusions.
|
||||
// Filter out the extrusions based on the infill_overrides / perimeter_overrides:
|
||||
|
||||
// Data is cleared, but the memory is not.
|
||||
by_region_per_copy_cache.clear();
|
||||
|
||||
for (const auto& reg : by_region) {
|
||||
by_region_per_copy_cache.emplace_back(); // creates a region in the newly created Island
|
||||
|
||||
@ -3441,15 +3427,17 @@ void GCode::ObjectByExtruder::Island::Region::append(const Type type, const Extr
|
||||
|
||||
// First we append the entities, there are eec->entities.size() of them:
|
||||
size_t old_size = perimeters_or_infills->size();
|
||||
perimeters_or_infills->reserve(perimeters_or_infills->size() + eec->entities.size());
|
||||
size_t new_size = old_size + eec->entities.size();
|
||||
perimeters_or_infills->reserve(new_size);
|
||||
for (auto* ee : eec->entities)
|
||||
perimeters_or_infills->emplace_back(ee);
|
||||
|
||||
if (copies_extruder != nullptr) {
|
||||
perimeters_or_infills_overrides->reserve(old_size + eec->entities.size());
|
||||
perimeters_or_infills_overrides->resize(old_size, nullptr);
|
||||
for (unsigned int i = 0; i < eec->entities.size(); ++ i)
|
||||
perimeters_or_infills_overrides->emplace_back(copies_extruder);
|
||||
// Don't reallocate overrides if not needed.
|
||||
// Missing overrides are implicitely considered non-overridden.
|
||||
perimeters_or_infills_overrides->reserve(new_size);
|
||||
perimeters_or_infills_overrides->resize(old_size, nullptr);
|
||||
perimeters_or_infills_overrides->resize(new_size, copies_extruder);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -17,9 +17,7 @@
|
||||
#include "GCodeTimeEstimator.hpp"
|
||||
#include "EdgeGrid.hpp"
|
||||
#include "GCode/Analyzer.hpp"
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
#include "GCode/ThumbnailData.hpp"
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
#include <memory>
|
||||
#include <string>
|
||||
@ -166,11 +164,7 @@ public:
|
||||
|
||||
// throws std::runtime_exception on error,
|
||||
// throws CanceledException through print->throw_if_canceled().
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
void do_export(Print* print, const char* path, GCodePreviewData* preview_data = nullptr, ThumbnailsGeneratorCallback thumbnail_cb = nullptr);
|
||||
#else
|
||||
void do_export(Print *print, const char *path, GCodePreviewData *preview_data = nullptr);
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
// Exported for the helper classes (OozePrevention, Wipe) and for the Perl binding for unit tests.
|
||||
const Vec2d& origin() const { return m_origin; }
|
||||
@ -210,11 +204,7 @@ public:
|
||||
};
|
||||
|
||||
private:
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
void _do_export(Print &print, FILE *file, ThumbnailsGeneratorCallback thumbnail_cb);
|
||||
#else
|
||||
void _do_export(Print &print, FILE *file);
|
||||
#endif //ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
static std::vector<LayerToPrint> collect_layers_to_print(const PrintObject &object);
|
||||
static std::vector<std::pair<coordf_t, std::vector<LayerToPrint>>> collect_layers_to_print(const Print &print);
|
||||
|
@ -444,8 +444,10 @@ void GCodeAnalyzer::_processG92(const GCodeReader::GCodeLine& line)
|
||||
anyFound = true;
|
||||
}
|
||||
|
||||
if (!anyFound)
|
||||
if (!anyFound && ! line.has_unknown_axis())
|
||||
{
|
||||
// The G92 may be called for axes that PrusaSlicer does not recognize, for example see GH issue #3510,
|
||||
// where G92 A0 B0 is called although the extruder axis is till E.
|
||||
for (unsigned char a = X; a < Num_Axis; ++a)
|
||||
{
|
||||
_set_axis_origin((EAxis)a, _get_axis_position((EAxis)a));
|
||||
@ -470,7 +472,7 @@ void GCodeAnalyzer::_processM106(const GCodeReader::GCodeLine& line)
|
||||
// The absence of P means the print cooling fan, so ignore anything else.
|
||||
float new_fan_speed;
|
||||
if (line.has_value('S', new_fan_speed))
|
||||
_set_fan_speed((100.0f / 256.0f) * new_fan_speed);
|
||||
_set_fan_speed((100.0f / 255.0f) * new_fan_speed);
|
||||
else
|
||||
_set_fan_speed(100.0f);
|
||||
}
|
||||
@ -644,7 +646,7 @@ bool GCodeAnalyzer::_process_tags(const GCodeReader::GCodeLine& line)
|
||||
if (pos != comment.npos)
|
||||
{
|
||||
pos = comment.find_last_of(",T");
|
||||
int extruder = pos == comment.npos ? 0 : std::atoi(comment.substr(pos + 1, comment.npos).c_str());
|
||||
unsigned extruder = pos == comment.npos ? 0 : std::stoi(comment.substr(pos + 1, comment.npos));
|
||||
_process_color_change_tag(extruder);
|
||||
return true;
|
||||
}
|
||||
@ -702,7 +704,7 @@ void GCodeAnalyzer::_process_height_tag(const std::string& comment, size_t pos)
|
||||
_set_height((float)::strtod(comment.substr(pos + Height_Tag.length()).c_str(), nullptr));
|
||||
}
|
||||
|
||||
void GCodeAnalyzer::_process_color_change_tag(int extruder)
|
||||
void GCodeAnalyzer::_process_color_change_tag(unsigned extruder)
|
||||
{
|
||||
m_extruder_color[extruder] = m_extruders_count + m_state.cp_color_counter; // color_change position in list of color for preview
|
||||
m_state.cp_color_counter++;
|
||||
|
@ -220,7 +220,7 @@ private:
|
||||
void _process_height_tag(const std::string& comment, size_t pos);
|
||||
|
||||
// Processes color change tag
|
||||
void _process_color_change_tag(int extruder);
|
||||
void _process_color_change_tag(unsigned extruder);
|
||||
|
||||
// Processes pause print and custom gcode tag
|
||||
void _process_pause_print_or_custom_code_tag();
|
||||
|
@ -72,7 +72,7 @@ Color GCodePreviewData::RangeBase::get_color_at(float value) const
|
||||
{
|
||||
// Input value scaled to the color range
|
||||
float step = step_size();
|
||||
const float global_t = (step != 0.0f) ? std::max(0.0f, value - min()) / step_size() : 0.0f; // lower limit of 0.0f
|
||||
const float global_t = (step != 0.0f) ? std::max(0.0f, value - min()) / step : 0.0f; // lower limit of 0.0f
|
||||
|
||||
constexpr std::size_t color_max_idx = range_rainbow_colors.size() - 1;
|
||||
|
||||
@ -241,6 +241,7 @@ void GCodePreviewData::reset()
|
||||
ranges.width.reset();
|
||||
ranges.height.reset();
|
||||
ranges.feedrate.reset();
|
||||
ranges.fan_speed.reset();
|
||||
ranges.volumetric_rate.reset();
|
||||
extrusion.layers.clear();
|
||||
travel.polylines.clear();
|
||||
|
@ -1,8 +1,6 @@
|
||||
#include "libslic3r/libslic3r.h"
|
||||
#include "ThumbnailData.hpp"
|
||||
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
namespace Slic3r {
|
||||
|
||||
void ThumbnailData::set(unsigned int w, unsigned int h)
|
||||
@ -32,5 +30,3 @@ bool ThumbnailData::is_valid() const
|
||||
}
|
||||
|
||||
} // namespace Slic3r
|
||||
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
@ -1,8 +1,6 @@
|
||||
#ifndef slic3r_ThumbnailData_hpp_
|
||||
#define slic3r_ThumbnailData_hpp_
|
||||
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
#include <vector>
|
||||
#include "libslic3r/Point.hpp"
|
||||
|
||||
@ -26,6 +24,4 @@ typedef std::function<void(ThumbnailsList & thumbnails, const Vec2ds & sizes, bo
|
||||
|
||||
} // namespace Slic3r
|
||||
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
#endif // slic3r_ThumbnailData_hpp_
|
@ -64,7 +64,7 @@ private:
|
||||
std::map<const ExtrusionEntity*, ExtruderPerCopy> entity_map; // to keep track of who prints what
|
||||
bool something_overridable = false;
|
||||
bool something_overridden = false;
|
||||
const LayerTools* m_layer_tools; // so we know which LayerTools object this belongs to
|
||||
const LayerTools* m_layer_tools = nullptr; // so we know which LayerTools object this belongs to
|
||||
};
|
||||
|
||||
|
||||
|
@ -492,6 +492,9 @@ WipeTower::WipeTower(const PrintConfig& config, const std::vector<std::vector<fl
|
||||
const std::vector<Vec2d>& bed_points = config.bed_shape.values;
|
||||
m_bed_shape = (bed_points.size() == 4 ? RectangularBed : CircularBed);
|
||||
m_bed_width = float(BoundingBoxf(bed_points).size().x());
|
||||
m_bed_bottom_left = m_bed_shape == RectangularBed
|
||||
? Vec2f(bed_points.front().x(), bed_points.front().y())
|
||||
: Vec2f::Zero();
|
||||
}
|
||||
|
||||
|
||||
@ -566,6 +569,8 @@ std::vector<WipeTower::ToolChangeResult> WipeTower::prime(
|
||||
// In case of a circular bed, place it so it goes across the diameter and hope it will fit
|
||||
if (m_bed_shape == CircularBed)
|
||||
cleaning_box.translate(-m_bed_width/2 + m_bed_width * 0.03f, -m_bed_width * 0.12f);
|
||||
if (m_bed_shape == RectangularBed)
|
||||
cleaning_box.translate(m_bed_bottom_left);
|
||||
|
||||
std::vector<ToolChangeResult> results;
|
||||
|
||||
|
@ -21,7 +21,7 @@ enum GCodeFlavor : unsigned char;
|
||||
class WipeTower
|
||||
{
|
||||
public:
|
||||
static char const* never_skip_tag() { return "_GCODE_WIPE_TOWER_NEVER_SKIP_TAG"; }
|
||||
static const std::string never_skip_tag() { return "_GCODE_WIPE_TOWER_NEVER_SKIP_TAG"; }
|
||||
|
||||
struct Extrusion
|
||||
{
|
||||
@ -189,8 +189,6 @@ public:
|
||||
};
|
||||
|
||||
private:
|
||||
WipeTower();
|
||||
|
||||
enum wipe_shape // A fill-in direction
|
||||
{
|
||||
SHAPE_NORMAL = 1,
|
||||
@ -236,6 +234,7 @@ private:
|
||||
CircularBed
|
||||
} m_bed_shape;
|
||||
float m_bed_width; // width of the bed bounding box
|
||||
Vec2f m_bed_bottom_left; // bottom-left corner coordinates (for rectangular beds)
|
||||
|
||||
float m_perimeter_width = 0.4f * Width_To_Nozzle_Ratio; // Width of an extrusion line, also a perimeter spacing for 100% infill.
|
||||
float m_extrusion_flow = 0.038f; //0.029f;// Extrusion flow is derived from m_perimeter_width, layer height and filament diameter.
|
||||
|
@ -40,7 +40,7 @@ const char* GCodeReader::parse_line_internal(const char *ptr, GCodeLine &gline,
|
||||
if (is_end_of_gcode_line(*c))
|
||||
break;
|
||||
// Check the name of the axis.
|
||||
Axis axis = NUM_AXES;
|
||||
Axis axis = NUM_AXES_WITH_UNKNOWN;
|
||||
switch (*c) {
|
||||
case 'X': axis = X; break;
|
||||
case 'Y': axis = Y; break;
|
||||
@ -49,15 +49,19 @@ const char* GCodeReader::parse_line_internal(const char *ptr, GCodeLine &gline,
|
||||
default:
|
||||
if (*c == m_extrusion_axis)
|
||||
axis = E;
|
||||
else if (*c >= 'A' && *c <= 'Z')
|
||||
// Unknown axis, but we still want to remember that such a axis was seen.
|
||||
axis = UNKNOWN_AXIS;
|
||||
break;
|
||||
}
|
||||
if (axis != NUM_AXES) {
|
||||
if (axis != NUM_AXES_WITH_UNKNOWN) {
|
||||
// Try to parse the numeric value.
|
||||
char *pend = nullptr;
|
||||
double v = strtod(++ c, &pend);
|
||||
if (pend != nullptr && is_end_of_word(*pend)) {
|
||||
// The axis value has been parsed correctly.
|
||||
gline.m_axis[int(axis)] = float(v);
|
||||
if (axis != UNKNOWN_AXIS)
|
||||
gline.m_axis[int(axis)] = float(v);
|
||||
gline.m_mask |= 1 << int(axis);
|
||||
c = pend;
|
||||
} else
|
||||
|
@ -58,6 +58,7 @@ public:
|
||||
bool has_z() const { return this->has(Z); }
|
||||
bool has_e() const { return this->has(E); }
|
||||
bool has_f() const { return this->has(F); }
|
||||
bool has_unknown_axis() const { return this->has(UNKNOWN_AXIS); }
|
||||
float x() const { return m_axis[X]; }
|
||||
float y() const { return m_axis[Y]; }
|
||||
float z() const { return m_axis[Z]; }
|
||||
|
@ -112,72 +112,82 @@ void Layer::make_perimeters()
|
||||
// keep track of regions whose perimeters we have already generated
|
||||
std::vector<unsigned char> done(m_regions.size(), false);
|
||||
|
||||
for (LayerRegionPtrs::iterator layerm = m_regions.begin(); layerm != m_regions.end(); ++ layerm) {
|
||||
size_t region_id = layerm - m_regions.begin();
|
||||
if (done[region_id])
|
||||
continue;
|
||||
BOOST_LOG_TRIVIAL(trace) << "Generating perimeters for layer " << this->id() << ", region " << region_id;
|
||||
done[region_id] = true;
|
||||
const PrintRegionConfig &config = (*layerm)->region()->config();
|
||||
|
||||
// find compatible regions
|
||||
LayerRegionPtrs layerms;
|
||||
layerms.push_back(*layerm);
|
||||
for (LayerRegionPtrs::const_iterator it = layerm + 1; it != m_regions.end(); ++it) {
|
||||
LayerRegion* other_layerm = *it;
|
||||
const PrintRegionConfig &other_config = other_layerm->region()->config();
|
||||
if (config.perimeter_extruder == other_config.perimeter_extruder
|
||||
&& config.perimeters == other_config.perimeters
|
||||
&& config.perimeter_speed == other_config.perimeter_speed
|
||||
&& config.external_perimeter_speed == other_config.external_perimeter_speed
|
||||
&& config.gap_fill_speed == other_config.gap_fill_speed
|
||||
&& config.overhangs == other_config.overhangs
|
||||
&& config.opt_serialize("perimeter_extrusion_width") == other_config.opt_serialize("perimeter_extrusion_width")
|
||||
&& config.thin_walls == other_config.thin_walls
|
||||
&& config.external_perimeters_first == other_config.external_perimeters_first
|
||||
&& config.infill_overlap == other_config.infill_overlap) {
|
||||
layerms.push_back(other_layerm);
|
||||
done[it - m_regions.begin()] = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (layerms.size() == 1) { // optimization
|
||||
(*layerm)->fill_surfaces.surfaces.clear();
|
||||
(*layerm)->make_perimeters((*layerm)->slices, &(*layerm)->fill_surfaces);
|
||||
(*layerm)->fill_expolygons = to_expolygons((*layerm)->fill_surfaces.surfaces);
|
||||
} else {
|
||||
SurfaceCollection new_slices;
|
||||
// Use the region with highest infill rate, as the make_perimeters() function below decides on the gap fill based on the infill existence.
|
||||
LayerRegion *layerm_config = layerms.front();
|
||||
{
|
||||
// group slices (surfaces) according to number of extra perimeters
|
||||
std::map<unsigned short, Surfaces> slices; // extra_perimeters => [ surface, surface... ]
|
||||
for (LayerRegion *layerm : layerms) {
|
||||
for (Surface &surface : layerm->slices.surfaces)
|
||||
slices[surface.extra_perimeters].emplace_back(surface);
|
||||
if (layerm->region()->config().fill_density > layerm_config->region()->config().fill_density)
|
||||
layerm_config = layerm;
|
||||
}
|
||||
// merge the surfaces assigned to each group
|
||||
for (std::pair<const unsigned short,Surfaces> &surfaces_with_extra_perimeters : slices)
|
||||
new_slices.append(union_ex(surfaces_with_extra_perimeters.second, true), surfaces_with_extra_perimeters.second.front());
|
||||
}
|
||||
|
||||
// make perimeters
|
||||
SurfaceCollection fill_surfaces;
|
||||
layerm_config->make_perimeters(new_slices, &fill_surfaces);
|
||||
for (LayerRegionPtrs::iterator layerm = m_regions.begin(); layerm != m_regions.end(); ++ layerm)
|
||||
if ((*layerm)->slices.empty()) {
|
||||
(*layerm)->perimeters.clear();
|
||||
(*layerm)->fills.clear();
|
||||
(*layerm)->thin_fills.clear();
|
||||
} else {
|
||||
size_t region_id = layerm - m_regions.begin();
|
||||
if (done[region_id])
|
||||
continue;
|
||||
BOOST_LOG_TRIVIAL(trace) << "Generating perimeters for layer " << this->id() << ", region " << region_id;
|
||||
done[region_id] = true;
|
||||
const PrintRegionConfig &config = (*layerm)->region()->config();
|
||||
|
||||
// find compatible regions
|
||||
LayerRegionPtrs layerms;
|
||||
layerms.push_back(*layerm);
|
||||
for (LayerRegionPtrs::const_iterator it = layerm + 1; it != m_regions.end(); ++it)
|
||||
if (! (*it)->slices.empty()) {
|
||||
LayerRegion* other_layerm = *it;
|
||||
const PrintRegionConfig &other_config = other_layerm->region()->config();
|
||||
if (config.perimeter_extruder == other_config.perimeter_extruder
|
||||
&& config.perimeters == other_config.perimeters
|
||||
&& config.perimeter_speed == other_config.perimeter_speed
|
||||
&& config.external_perimeter_speed == other_config.external_perimeter_speed
|
||||
&& config.gap_fill_speed == other_config.gap_fill_speed
|
||||
&& config.overhangs == other_config.overhangs
|
||||
&& config.opt_serialize("perimeter_extrusion_width") == other_config.opt_serialize("perimeter_extrusion_width")
|
||||
&& config.thin_walls == other_config.thin_walls
|
||||
&& config.external_perimeters_first == other_config.external_perimeters_first
|
||||
&& config.infill_overlap == other_config.infill_overlap)
|
||||
{
|
||||
other_layerm->perimeters.clear();
|
||||
other_layerm->fills.clear();
|
||||
other_layerm->thin_fills.clear();
|
||||
layerms.push_back(other_layerm);
|
||||
done[it - m_regions.begin()] = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (layerms.size() == 1) { // optimization
|
||||
(*layerm)->fill_surfaces.surfaces.clear();
|
||||
(*layerm)->make_perimeters((*layerm)->slices, &(*layerm)->fill_surfaces);
|
||||
(*layerm)->fill_expolygons = to_expolygons((*layerm)->fill_surfaces.surfaces);
|
||||
} else {
|
||||
SurfaceCollection new_slices;
|
||||
// Use the region with highest infill rate, as the make_perimeters() function below decides on the gap fill based on the infill existence.
|
||||
LayerRegion *layerm_config = layerms.front();
|
||||
{
|
||||
// group slices (surfaces) according to number of extra perimeters
|
||||
std::map<unsigned short, Surfaces> slices; // extra_perimeters => [ surface, surface... ]
|
||||
for (LayerRegion *layerm : layerms) {
|
||||
for (Surface &surface : layerm->slices.surfaces)
|
||||
slices[surface.extra_perimeters].emplace_back(surface);
|
||||
if (layerm->region()->config().fill_density > layerm_config->region()->config().fill_density)
|
||||
layerm_config = layerm;
|
||||
}
|
||||
// merge the surfaces assigned to each group
|
||||
for (std::pair<const unsigned short,Surfaces> &surfaces_with_extra_perimeters : slices)
|
||||
new_slices.append(union_ex(surfaces_with_extra_perimeters.second, true), surfaces_with_extra_perimeters.second.front());
|
||||
}
|
||||
|
||||
// make perimeters
|
||||
SurfaceCollection fill_surfaces;
|
||||
layerm_config->make_perimeters(new_slices, &fill_surfaces);
|
||||
|
||||
// assign fill_surfaces to each layer
|
||||
if (!fill_surfaces.surfaces.empty()) {
|
||||
for (LayerRegionPtrs::iterator l = layerms.begin(); l != layerms.end(); ++l) {
|
||||
// Separate the fill surfaces.
|
||||
ExPolygons expp = intersection_ex(to_polygons(fill_surfaces), (*l)->slices);
|
||||
(*l)->fill_expolygons = expp;
|
||||
(*l)->fill_surfaces.set(std::move(expp), fill_surfaces.surfaces.front());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// assign fill_surfaces to each layer
|
||||
if (!fill_surfaces.surfaces.empty()) {
|
||||
for (LayerRegionPtrs::iterator l = layerms.begin(); l != layerms.end(); ++l) {
|
||||
// Separate the fill surfaces.
|
||||
ExPolygons expp = intersection_ex(to_polygons(fill_surfaces), (*l)->slices);
|
||||
(*l)->fill_expolygons = expp;
|
||||
(*l)->fill_surfaces.set(std::move(expp), fill_surfaces.surfaces.front());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
BOOST_LOG_TRIVIAL(trace) << "Generating perimeters for layer " << this->id() << " - Done";
|
||||
}
|
||||
|
||||
|
@ -117,7 +117,7 @@ void LayerRegion::process_external_surfaces(const Layer *lower_layer, const Poly
|
||||
// Voids are sparse infills if infill rate is zero.
|
||||
Polygons voids;
|
||||
for (const Surface &surface : this->fill_surfaces.surfaces) {
|
||||
if (surface.surface_type == stTop) {
|
||||
if (surface.is_top()) {
|
||||
// Collect the top surfaces, inflate them and trim them by the bottom surfaces.
|
||||
// This gives the priority to bottom surfaces.
|
||||
surfaces_append(top, offset_ex(surface.expolygon, margin, EXTERNAL_SURFACES_OFFSET_PARAMETERS), surface);
|
||||
@ -313,7 +313,7 @@ void LayerRegion::process_external_surfaces(const Layer *lower_layer, const Poly
|
||||
s2.clear();
|
||||
}
|
||||
}
|
||||
if (s1.surface_type == stTop)
|
||||
if (s1.is_top())
|
||||
// Trim the top surfaces by the bottom surfaces. This gives the priority to the bottom surfaces.
|
||||
polys = diff(polys, bottom_polygons);
|
||||
surfaces_append(
|
||||
|
@ -161,6 +161,7 @@ bool Print::invalidate_state_by_config_options(const std::vector<t_config_option
|
||||
} else if (
|
||||
opt_key == "skirts"
|
||||
|| opt_key == "skirt_height"
|
||||
|| opt_key == "draft_shield"
|
||||
|| opt_key == "skirt_distance"
|
||||
|| opt_key == "min_skirt_length"
|
||||
|| opt_key == "ooze_prevention"
|
||||
@ -1146,14 +1147,12 @@ Print::ApplyStatus Print::apply(const Model &model, DynamicPrintConfig new_full_
|
||||
|
||||
bool Print::has_infinite_skirt() const
|
||||
{
|
||||
return (m_config.skirt_height == -1 && m_config.skirts > 0)
|
||||
|| (m_config.ooze_prevention && this->extruders().size() > 1);
|
||||
return (m_config.draft_shield && m_config.skirts > 0) || (m_config.ooze_prevention && this->extruders().size() > 1);
|
||||
}
|
||||
|
||||
bool Print::has_skirt() const
|
||||
{
|
||||
return (m_config.skirt_height > 0 && m_config.skirts > 0)
|
||||
|| this->has_infinite_skirt();
|
||||
return (m_config.skirt_height > 0 && m_config.skirts > 0) || this->has_infinite_skirt();
|
||||
}
|
||||
|
||||
static inline bool sequential_print_horizontal_clearance_valid(const Print &print)
|
||||
@ -1623,11 +1622,7 @@ void Print::process()
|
||||
// The export_gcode may die for various reasons (fails to process output_filename_format,
|
||||
// write error into the G-code, cannot execute post-processing scripts).
|
||||
// It is up to the caller to show an error message.
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
std::string Print::export_gcode(const std::string& path_template, GCodePreviewData* preview_data, ThumbnailsGeneratorCallback thumbnail_cb)
|
||||
#else
|
||||
std::string Print::export_gcode(const std::string &path_template, GCodePreviewData *preview_data)
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
{
|
||||
// output everything to a G-code file
|
||||
// The following call may die if the output_filename_format template substitution fails.
|
||||
@ -1644,11 +1639,7 @@ std::string Print::export_gcode(const std::string &path_template, GCodePreviewDa
|
||||
|
||||
// The following line may die for multiple reasons.
|
||||
GCode gcode;
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
gcode.do_export(this, path.c_str(), preview_data, thumbnail_cb);
|
||||
#else
|
||||
gcode.do_export(this, path.c_str(), preview_data);
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
return path.c_str();
|
||||
}
|
||||
|
||||
@ -1936,7 +1927,7 @@ void Print::_make_brim()
|
||||
// Find all pieces that the initial loop was split into.
|
||||
size_t j = i + 1;
|
||||
for (; j < loops_trimmed_order.size() && loops_trimmed_order[i].second == loops_trimmed_order[j].second; ++ j) ;
|
||||
const ClipperLib_Z::Path &first_path = *loops_trimmed_order[i].first;
|
||||
const ClipperLib_Z::Path &first_path = *loops_trimmed_order[i].first;
|
||||
if (i + 1 == j && first_path.size() > 3 && first_path.front().X == first_path.back().X && first_path.front().Y == first_path.back().Y) {
|
||||
auto *loop = new ExtrusionLoop();
|
||||
m_brim.entities.emplace_back(loop);
|
||||
@ -2138,6 +2129,7 @@ std::string Print::output_filename(const std::string &filename_base) const
|
||||
// Set the placeholders for the data know first after the G-code export is finished.
|
||||
// These values will be just propagated into the output file name.
|
||||
DynamicConfig config = this->finished() ? this->print_statistics().config() : this->print_statistics().placeholders();
|
||||
config.set_key_value("num_extruders", new ConfigOptionInt((int)m_config.nozzle_diameter.size()));
|
||||
return this->PrintBase::output_filename(m_config.output_filename_format.value, ".gcode", filename_base, &config);
|
||||
}
|
||||
|
||||
|
@ -11,9 +11,7 @@
|
||||
#include "Slicing.hpp"
|
||||
#include "GCode/ToolOrdering.hpp"
|
||||
#include "GCode/WipeTower.hpp"
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
#include "GCode/ThumbnailData.hpp"
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
#include "libslic3r.h"
|
||||
|
||||
@ -364,11 +362,7 @@ public:
|
||||
void process() override;
|
||||
// Exports G-code into a file name based on the path_template, returns the file path of the generated G-code file.
|
||||
// If preview_data is not null, the preview_data is filled in for the G-code visualization (not used by the command line Slic3r).
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
std::string export_gcode(const std::string& path_template, GCodePreviewData* preview_data, ThumbnailsGeneratorCallback thumbnail_cb = nullptr);
|
||||
#else
|
||||
std::string export_gcode(const std::string &path_template, GCodePreviewData *preview_data);
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
|
||||
// methods for handling state
|
||||
bool is_step_done(PrintStep step) const { return Inherited::is_step_done(step); }
|
||||
|
@ -254,7 +254,7 @@ void PrintConfigDef::init_fff_params()
|
||||
"to clip the overlapping object parts one by the other "
|
||||
"(2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc).");
|
||||
def->mode = comExpert;
|
||||
def->set_default_value(new ConfigOptionBool(false));
|
||||
def->set_default_value(new ConfigOptionBool(true));
|
||||
|
||||
def = this->add("colorprint_heights", coFloats);
|
||||
def->label = L("Colorprint height");
|
||||
@ -1691,6 +1691,13 @@ void PrintConfigDef::init_fff_params()
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionInt(1));
|
||||
|
||||
def = this->add("draft_shield", coBool);
|
||||
def->label = L("Draft shield");
|
||||
def->tooltip = L("If enabled, the skirt will be as tall as a highest printed object. "
|
||||
"This is useful to protect an ABS or ASA print from warping and detaching from print bed due to wind draft.");
|
||||
def->mode = comAdvanced;
|
||||
def->set_default_value(new ConfigOptionBool(false));
|
||||
|
||||
def = this->add("skirts", coInt);
|
||||
def->label = L("Loops (minimum)");
|
||||
def->full_label = L("Skirt Loops");
|
||||
@ -2998,6 +3005,11 @@ void PrintConfigDef::handle_legacy(t_config_option_key &opt_key, std::string &va
|
||||
} else if (opt_key == "support_material_pattern" && value == "pillars") {
|
||||
// Slic3r PE does not support the pillars. They never worked well.
|
||||
value = "rectilinear";
|
||||
} else if (opt_key == "skirt_height" && value == "-1") {
|
||||
// PrusaSlicer no more accepts skirt_height == -1 to print a draft shield to the top of the highest object.
|
||||
// A new "draft_shield" boolean config value is used instead.
|
||||
opt_key = "draft_shield";
|
||||
value = "1";
|
||||
} else if (opt_key == "octoprint_host") {
|
||||
opt_key = "print_host";
|
||||
} else if (opt_key == "octoprint_cafile") {
|
||||
@ -3206,7 +3218,7 @@ std::string FullPrintConfig::validate()
|
||||
return "Invalid value for --infill-every-layers";
|
||||
|
||||
// --skirt-height
|
||||
if (this->skirt_height < -1) // -1 means as tall as the object
|
||||
if (this->skirt_height < 0)
|
||||
return "Invalid value for --skirt-height";
|
||||
|
||||
// --bridge-flow-ratio
|
||||
|
@ -800,6 +800,7 @@ public:
|
||||
ConfigOptionBools retract_layer_change;
|
||||
ConfigOptionFloat skirt_distance;
|
||||
ConfigOptionInt skirt_height;
|
||||
ConfigOptionBool draft_shield;
|
||||
ConfigOptionInt skirts;
|
||||
ConfigOptionInts slowdown_below_layer_time;
|
||||
ConfigOptionBool spiral_vase;
|
||||
@ -872,6 +873,7 @@ protected:
|
||||
OPT_PTR(retract_layer_change);
|
||||
OPT_PTR(skirt_distance);
|
||||
OPT_PTR(skirt_height);
|
||||
OPT_PTR(draft_shield);
|
||||
OPT_PTR(skirts);
|
||||
OPT_PTR(slowdown_below_layer_time);
|
||||
OPT_PTR(spiral_vase);
|
||||
|
@ -817,11 +817,12 @@ void PrintObject::detect_surfaces_type()
|
||||
m_layers[idx_layer]->m_regions[idx_region]->slices.surfaces = std::move(surfaces_new[idx_layer]);
|
||||
}
|
||||
|
||||
if (spiral_vase && num_layers > 1) {
|
||||
// Turn the last bottom layer infill to a top infill, so it will be extruded with a proper pattern.
|
||||
Surfaces &surfaces = m_layers[num_layers - 1]->m_regions[idx_region]->slices.surfaces;
|
||||
for (Surface &surface : surfaces)
|
||||
surface.surface_type = stTop;
|
||||
if (spiral_vase) {
|
||||
if (num_layers > 1)
|
||||
// Turn the last bottom layer infill to a top infill, so it will be extruded with a proper pattern.
|
||||
m_layers[num_layers - 1]->m_regions[idx_region]->slices.set_type(stTop);
|
||||
for (size_t i = num_layers; i < m_layers.size(); ++ i)
|
||||
m_layers[i]->m_regions[idx_region]->slices.set_type(stInternal);
|
||||
}
|
||||
|
||||
BOOST_LOG_TRIVIAL(debug) << "Detecting solid surfaces for region " << idx_region << " - clipping in parallel - start";
|
||||
|
@ -101,6 +101,9 @@ public:
|
||||
|
||||
// Iterates over hits and holes and returns the true hit, possibly
|
||||
// on the inside of a hole.
|
||||
// This function is currently not used anywhere, it was written when the
|
||||
// holes were subtracted on slices, that is, before we started using CGAL
|
||||
// to actually cut the holes into the mesh.
|
||||
hit_result filter_hits(const std::vector<EigenMesh3D::hit_result>& obj_hits) const;
|
||||
|
||||
class si_result {
|
||||
|
@ -34,6 +34,10 @@ public:
|
||||
void remove_type(const SurfaceType type);
|
||||
void remove_types(const SurfaceType *types, int ntypes);
|
||||
void filter_by_type(SurfaceType type, Polygons* polygons);
|
||||
void set_type(SurfaceType type) {
|
||||
for (Surface &surface : this->surfaces)
|
||||
surface.surface_type = type;
|
||||
}
|
||||
|
||||
void clear() { surfaces.clear(); }
|
||||
bool empty() const { return surfaces.empty(); }
|
||||
|
@ -1,5 +1,5 @@
|
||||
#ifndef _technologies_h_
|
||||
#define _technologies_h_
|
||||
#ifndef _prusaslicer_technologies_h_
|
||||
#define _prusaslicer_technologies_h_
|
||||
|
||||
//============
|
||||
// debug techs
|
||||
@ -17,37 +17,20 @@
|
||||
#define ENABLE_CAMERA_STATISTICS 0
|
||||
// Render the picking pass instead of the main scene (use [T] key to toggle between regular rendering and picking pass only rendering)
|
||||
#define ENABLE_RENDER_PICKING_PASS 0
|
||||
|
||||
|
||||
//====================
|
||||
// 1.42.0.alpha1 techs
|
||||
//====================
|
||||
#define ENABLE_1_42_0_ALPHA1 1
|
||||
|
||||
// Enable extracting thumbnails from selected gcode and save them as png files
|
||||
#define ENABLE_THUMBNAIL_GENERATOR_DEBUG 0
|
||||
// Disable synchronization of unselected instances
|
||||
#define DISABLE_INSTANCES_SYNCH (0 && ENABLE_1_42_0_ALPHA1)
|
||||
#define DISABLE_INSTANCES_SYNCH 0
|
||||
// Use wxDataViewRender instead of wxDataViewCustomRenderer
|
||||
#define ENABLE_NONCUSTOM_DATA_VIEW_RENDERING (0 && ENABLE_1_42_0_ALPHA1)
|
||||
#define ENABLE_NONCUSTOM_DATA_VIEW_RENDERING 0
|
||||
|
||||
|
||||
//====================
|
||||
// 2.2.0.alpha1 techs
|
||||
//====================
|
||||
#define ENABLE_2_2_0_ALPHA1 1
|
||||
|
||||
// Enable thumbnail generator
|
||||
// When removing this technology, remove it also from stable branch,
|
||||
// where it has been partially copied for patch 2.1.1
|
||||
#define ENABLE_THUMBNAIL_GENERATOR (1 && ENABLE_2_2_0_ALPHA1)
|
||||
#define ENABLE_THUMBNAIL_GENERATOR_DEBUG (0 && ENABLE_THUMBNAIL_GENERATOR)
|
||||
|
||||
|
||||
//==================
|
||||
//================
|
||||
// 2.2.0.rc1 techs
|
||||
//==================
|
||||
//================
|
||||
#define ENABLE_2_2_0_RC1 1
|
||||
|
||||
// Enable hack to remove crash when closing the application on OSX 10.9.5 when building against newer wxWidgets
|
||||
// Enable hack to remove crash when closing on OSX 10.9.5
|
||||
#define ENABLE_HACK_CLOSING_ON_OSX_10_9_5 (1 && ENABLE_2_2_0_RC1)
|
||||
|
||||
|
||||
@ -56,8 +39,19 @@
|
||||
//==================
|
||||
#define ENABLE_2_2_0_FINAL 1
|
||||
|
||||
// Enable tooltips for GLCanvas3D using ImGUI
|
||||
#define ENABLE_CANVAS_TOOLTIP_USING_IMGUI (1 && ENABLE_2_2_0_FINAL)
|
||||
// Enable fix for dragging mouse event handling for gizmobar
|
||||
#define ENABLE_GIZMO_TOOLBAR_DRAGGING_FIX (1 && ENABLE_2_2_0_FINAL)
|
||||
|
||||
|
||||
//===================
|
||||
// 2.3.0.alpha1 techs
|
||||
//===================
|
||||
#define ENABLE_2_3_0_ALPHA1 1
|
||||
|
||||
// Moves GLCanvas3DManager from being a static member of _3DScene to be a normal member of GUI_App
|
||||
#define ENABLE_NON_STATIC_CANVAS_MANAGER (1 && ENABLE_2_2_0_FINAL)
|
||||
#define ENABLE_NON_STATIC_CANVAS_MANAGER (1 && ENABLE_2_3_0_ALPHA1)
|
||||
|
||||
|
||||
#endif // _technologies_h_
|
||||
#endif // _prusaslicer_technologies_h_
|
||||
|
@ -98,7 +98,17 @@ extern Semver SEMVER;
|
||||
template<typename T, typename Q>
|
||||
inline T unscale(Q v) { return T(v) * T(SCALING_FACTOR); }
|
||||
|
||||
enum Axis { X=0, Y, Z, E, F, NUM_AXES };
|
||||
enum Axis {
|
||||
X=0,
|
||||
Y,
|
||||
Z,
|
||||
E,
|
||||
F,
|
||||
NUM_AXES,
|
||||
// For the GCodeReader to mark a parsed axis, which is not in "XYZEF", it was parsed correctly.
|
||||
UNKNOWN_AXIS = NUM_AXES,
|
||||
NUM_AXES_WITH_UNKNOWN,
|
||||
};
|
||||
|
||||
template <class T>
|
||||
inline void append_to(std::vector<T> &dst, const std::vector<T> &src)
|
||||
|
@ -197,6 +197,10 @@ if(APPLE)
|
||||
target_link_libraries(libslic3r_gui ${DISKARBITRATION_LIBRARY})
|
||||
endif()
|
||||
|
||||
if (SLIC3R_STATIC AND UNIX AND NOT APPLE)
|
||||
target_compile_definitions(libslic3r_gui PRIVATE OPENSSL_CERT_OVERRIDE)
|
||||
endif ()
|
||||
|
||||
if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY)
|
||||
add_precompiled_header(libslic3r_gui pchheader.hpp FORCEINCLUDE)
|
||||
endif ()
|
||||
|
@ -5,11 +5,12 @@
|
||||
#include <time.h>
|
||||
|
||||
#include <boost/algorithm/string/predicate.hpp>
|
||||
#include <boost/algorithm/string/trim.hpp>
|
||||
#include <boost/nowide/cstdio.hpp>
|
||||
#include <boost/nowide/fstream.hpp>
|
||||
#include <boost/property_tree/ini_parser.hpp>
|
||||
#include <boost/property_tree/ptree.hpp>
|
||||
#include <boost/property_tree/ptree_fwd.hpp>
|
||||
#include <boost/filesystem/operations.hpp>
|
||||
|
||||
|
||||
#include "libslic3r/libslic3r.h"
|
||||
#include "libslic3r/Time.hpp"
|
||||
|