diff --git a/.github/workflows/build_bambu.yml b/.github/workflows/build_bambu.yml index b6a63912c4..8a11581338 100644 --- a/.github/workflows/build_bambu.yml +++ b/.github/workflows/build_bambu.yml @@ -151,7 +151,9 @@ jobs: if: inputs.os == 'windows-latest' run: | dir "C:/Program Files (x86)/Windows Kits/10/Include" + choco install pkgconfiglite choco install nsis + choco install pkgconfiglite - name: Build slicer Win if: inputs.os == 'windows-latest' diff --git a/.github/workflows/build_deps.yml b/.github/workflows/build_deps.yml index c93cdc7fa8..9b04fb66b1 100644 --- a/.github/workflows/build_deps.yml +++ b/.github/workflows/build_deps.yml @@ -62,6 +62,7 @@ jobs: working-directory: ${{ github.workspace }} run: | choco install strawberryperl + choco install pkgconfiglite mkdir ${{ github.workspace }}\deps\build mkdir ${{ github.workspace }}\deps\build\BambuStudio_dep cd "${{ github.workspace }}\deps\build" @@ -86,7 +87,7 @@ jobs: if: inputs.os == 'macos-13' working-directory: ${{ github.workspace }} run: | - brew install automake texinfo + brew install automake texinfo nasm yasm x264 brew uninstall --ignore-dependencies zstd mkdir -p ${{ github.workspace }}/deps/build_${{ inputs.arch }} mkdir -p ${{ github.workspace }}/deps/build_${{ inputs.arch }}/BambuStudio_dep_${{ inputs.arch }} diff --git a/.github/workflows/build_win.yml b/.github/workflows/build_win.yml new file mode 100644 index 0000000000..ad16832ad3 --- /dev/null +++ b/.github/workflows/build_win.yml @@ -0,0 +1,53 @@ +name: Build Win + +on: + push: + branches: + - main + paths: + - 'deps/**' + - 'src/**' + - '**/CMakeLists.txt' + - 'version.inc' + - 'bbl/**' + - 'resources/**' + - ".github/workflows/build_*.yml" + + pull_request: + branches: + - master + paths: + - 'deps/**' + - 'src/**' + - '**/CMakeLists.txt' + - 'version.inc' + - ".github/workflows/build_*.yml" + - 'BuildLinux.sh' + - 'build_win.bat' + + workflow_dispatch: # manual dispatch + inputs: + build-deps-only: + description: 'Only build dependencies (bypasses caching)' + type: boolean + default: false + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + build_win: + name: Build Win + strategy: + fail-fast: false + matrix: + include: + - os: windows-latest + arch: x86_64 + uses: ./.github/workflows/build_check_cache.yml + with: + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + build-deps-only: ${{ inputs.build-deps-only || false }} + secrets: inherit \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index c4d9e12274..040317889c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,6 +42,8 @@ set(SLIC3R_GTK "2" CACHE STRING "GTK version to use with wxWidgets on Linux") set(IS_CROSS_COMPILE FALSE) +set(FLATPAK FALSE CACHE BOOL "Not copy FFMPEG file") + if (APPLE) set(CMAKE_FIND_FRAMEWORK LAST) @@ -760,7 +762,7 @@ else () install(DIRECTORY "${SLIC3R_RESOURCES_DIR}/" DESTINATION "${CMAKE_INSTALL_PREFIX}/resources") endif () -if (CMAKE_SYSTEM_NAME STREQUAL "Linux") +if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT FLATPAK) set(LIBRARY_FILES ${LIBDIR_BIN}/libavcodec.so.61 ${LIBDIR_BIN}/libavcodec.so.61.3.100 diff --git a/bbl/i18n/BambuStudio.pot b/bbl/i18n/BambuStudio.pot index c9e9fc44c4..07f29fd855 100644 --- a/bbl/i18n/BambuStudio.pot +++ b/bbl/i18n/BambuStudio.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2165,6 +2165,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "" +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -4708,6 +4713,21 @@ msgstr "" msgid "Step file import parameters" msgstr "" +msgid "Rough" +msgstr "" + +msgid "Reduce Linear" +msgstr "" + +msgid "Reduce Angle" +msgstr "" + +msgid "Fewer faces" +msgstr "" + +msgid "More faces" +msgstr "" + msgid "Linear Deflection" msgstr "" @@ -5038,6 +5058,9 @@ msgstr "" msgid "Invalid name, the following characters are not allowed:" msgstr "" +msgid "(Including its escape characters)" +msgstr "" + msgid "Sliced Info" msgstr "" @@ -8753,6 +8776,18 @@ msgid "" "and should be accurate" msgstr "" +msgid "Shrinkage" +msgstr "" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" + msgid "Density" msgstr "" @@ -10062,7 +10097,7 @@ msgid "" "threshold." msgstr "" -msgid "Tree support branch angle" +msgid "Branch angle" msgstr "" msgid "" @@ -10071,19 +10106,29 @@ msgid "" "printed more horizontally, allowing them to reach farther." msgstr "" -msgid "Tree support branch distance" +msgid "Branch distance" msgstr "" msgid "" "This setting determines the distance between neighboring tree support nodes." msgstr "" -msgid "Tree support branch diameter" +msgid "Branch diameter" msgstr "" msgid "This setting determines the initial diameter of support nodes." msgstr "" +msgid "Branch diameter angle" +msgstr "" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" + msgid "Support wall loops" msgstr "" diff --git a/bbl/i18n/cs/BambuStudio_cs.po b/bbl/i18n/cs/BambuStudio_cs.po index 1a4616ce64..87571be390 100644 --- a/bbl/i18n/cs/BambuStudio_cs.po +++ b/bbl/i18n/cs/BambuStudio_cs.po @@ -2,12 +2,12 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "PO-Revision-Date: 2023-10-18 10:45+0800\n" "Last-Translator: René Mošner \n" "Language-Team: \n" @@ -2196,6 +2196,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "" +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -4892,6 +4897,21 @@ msgstr "" msgid "Step file import parameters" msgstr "" +msgid "Rough" +msgstr "" + +msgid "Reduce Linear" +msgstr "" + +msgid "Reduce Angle" +msgstr "" + +msgid "Fewer faces" +msgstr "" + +msgid "More faces" +msgstr "" + msgid "Linear Deflection" msgstr "" @@ -5230,6 +5250,9 @@ msgstr " podložka %1%: " msgid "Invalid name, the following characters are not allowed:" msgstr "Neplatné jméno, následující znaky nejsou povoleny:" +msgid "(Including its escape characters)" +msgstr "" + msgid "Sliced Info" msgstr "Informace o slicování" @@ -9212,6 +9235,18 @@ msgstr "" "Průměr filamentu se používá k výpočtu vytlačování v gcode, takže je důležitý " "a měl by být přesný" +msgid "Shrinkage" +msgstr "" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" + msgid "Density" msgstr "Hustota" @@ -10643,8 +10678,8 @@ msgstr "" "Podpěry budou generovány pro převisy, jejichž úhel sklonu je pod hraniční " "hodnotou." -msgid "Tree support branch angle" -msgstr "Úhel větve podpěr stromu" +msgid "Branch angle" +msgstr "" msgid "" "This setting determines the maximum overhang angle that t he branches of " @@ -10655,19 +10690,29 @@ msgstr "" "stromu dělat. Pokud se úhel zvětší, větve mohou být vytištěny více " "vodorovně, což jim umožní dosáhnout dále." -msgid "Tree support branch distance" -msgstr "Vzdálenost větví podpěr stromů" +msgid "Branch distance" +msgstr "" msgid "" "This setting determines the distance between neighboring tree support nodes." msgstr "Toto nastavení určuje vzdálenost mezi sousedními uzly podpěr stromů." -msgid "Tree support branch diameter" -msgstr "Průměr větve podpěr stromů" +msgid "Branch diameter" +msgstr "" msgid "This setting determines the initial diameter of support nodes." msgstr "Toto nastavení určuje počáteční průměr uzlů poděry." +msgid "Branch diameter angle" +msgstr "" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" + msgid "Support wall loops" msgstr "" @@ -13172,6 +13217,15 @@ msgid "" "probability of warping." msgstr "" +#~ msgid "Tree support branch angle" +#~ msgstr "Úhel větve podpěr stromu" + +#~ msgid "Tree support branch distance" +#~ msgstr "Vzdálenost větví podpěr stromů" + +#~ msgid "Tree support branch diameter" +#~ msgstr "Průměr větve podpěr stromů" + #~ msgid "" #~ "Object will be raised by this number of support layers. Use this function " #~ "to avoid wrapping when print ABS" diff --git a/bbl/i18n/de/BambuStudio_de.po b/bbl/i18n/de/BambuStudio_de.po index 0b827be317..28084f8040 100644 --- a/bbl/i18n/de/BambuStudio_de.po +++ b/bbl/i18n/de/BambuStudio_de.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2253,6 +2253,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "Es sind keine anordnungsfähigen Objekte ausgewählt." +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -5080,6 +5085,21 @@ msgstr "" msgid "Step file import parameters" msgstr "" +msgid "Rough" +msgstr "" + +msgid "Reduce Linear" +msgstr "" + +msgid "Reduce Angle" +msgstr "" + +msgid "Fewer faces" +msgstr "" + +msgid "More faces" +msgstr "" + msgid "Linear Deflection" msgstr "" @@ -5421,6 +5441,9 @@ msgstr " Platte %1%: " msgid "Invalid name, the following characters are not allowed:" msgstr "Ungültiger Name, die folgenden Zeichen sind nicht erlaubt:" +msgid "(Including its escape characters)" +msgstr "" + msgid "Sliced Info" msgstr "Slice-Info" @@ -9680,6 +9703,18 @@ msgstr "" "Der Filamentdurchmesser wird für die Berechnung der Extrusion im G-Code " "verwendet, er ist also wichtig und sollte genau sein" +msgid "Shrinkage" +msgstr "" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" + msgid "Density" msgstr "Dichte" @@ -11237,8 +11272,8 @@ msgstr "" "Für Überhänge, deren Neigungswinkel unter diesem Wert liegt, werden Stützen " "generiert." -msgid "Tree support branch angle" -msgstr "Baumstütze Astwinkel" +msgid "Branch angle" +msgstr "" msgid "" "This setting determines the maximum overhang angle that t he branches of " @@ -11249,8 +11284,8 @@ msgstr "" "Baumstütze haben dürfen: Je größer der Winkel, desto horizontaler können die " "Äste gedruckt werden und desto weiter reichen sie." -msgid "Tree support branch distance" -msgstr "Abstand der Baumstützenäste" +msgid "Branch distance" +msgstr "" msgid "" "This setting determines the distance between neighboring tree support nodes." @@ -11258,12 +11293,22 @@ msgstr "" "Mit dieser Einstellung wird der Abstand zwischen benachbarten Baum-" "Stützknoten festgelegt." -msgid "Tree support branch diameter" -msgstr "Durchmesser des Stützastes eines Baumes" +msgid "Branch diameter" +msgstr "" msgid "This setting determines the initial diameter of support nodes." msgstr "Diese Einstellung bestimmt den Anfangsdurchmesser der Stützknoten." +msgid "Branch diameter angle" +msgstr "" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" + msgid "Support wall loops" msgstr "Stützwandschlaufen" @@ -14051,6 +14096,15 @@ msgstr "" "wie z. B. ABS, die Wahrscheinlichkeit von Verformungen durch eine " "entsprechende Erhöhung der Heizbetttemperatur verringert werden kann?" +#~ msgid "Tree support branch angle" +#~ msgstr "Baumstütze Astwinkel" + +#~ msgid "Tree support branch distance" +#~ msgstr "Abstand der Baumstützenäste" + +#~ msgid "Tree support branch diameter" +#~ msgstr "Durchmesser des Stützastes eines Baumes" + #~ msgid "Manual" #~ msgstr "Manuell" diff --git a/bbl/i18n/en/BambuStudio_en.po b/bbl/i18n/en/BambuStudio_en.po index f73fa72b4c..0b8113a03e 100644 --- a/bbl/i18n/en/BambuStudio_en.po +++ b/bbl/i18n/en/BambuStudio_en.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2209,6 +2209,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "No arrangeable objects are selected." +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -4974,6 +4979,21 @@ msgstr "" msgid "Step file import parameters" msgstr "" +msgid "Rough" +msgstr "" + +msgid "Reduce Linear" +msgstr "" + +msgid "Reduce Angle" +msgstr "" + +msgid "Fewer faces" +msgstr "" + +msgid "More faces" +msgstr "" + msgid "Linear Deflection" msgstr "" @@ -5313,6 +5333,9 @@ msgstr " plate %1%: " msgid "Invalid name, the following characters are not allowed:" msgstr "Invalid name, the following characters are not allowed:" +msgid "(Including its escape characters)" +msgstr "" + msgid "Sliced Info" msgstr "Sliced Info" @@ -9432,6 +9455,18 @@ msgstr "" "Filament diameter is used to calculate extrusion in gcode, so it's important " "and should be accurate" +msgid "Shrinkage" +msgstr "" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" + msgid "Density" msgstr "Density" @@ -10929,8 +10964,8 @@ msgstr "" "Support will be generated for overhangs whose slope angle is below the " "threshold." -msgid "Tree support branch angle" -msgstr "Tree support branch angle" +msgid "Branch angle" +msgstr "" msgid "" "This setting determines the maximum overhang angle that t he branches of " @@ -10941,20 +10976,30 @@ msgstr "" "tree support allowed to make.If the angle is increased, the branches can be " "printed more horizontally, allowing them to reach farther." -msgid "Tree support branch distance" -msgstr "Tree support branch distance" +msgid "Branch distance" +msgstr "" msgid "" "This setting determines the distance between neighboring tree support nodes." msgstr "" "This setting determines the distance between neighboring tree support nodes." -msgid "Tree support branch diameter" -msgstr "Tree support branch diameter" +msgid "Branch diameter" +msgstr "" msgid "This setting determines the initial diameter of support nodes." msgstr "This setting determines the initial diameter of support nodes." +msgid "Branch diameter angle" +msgstr "" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" + msgid "Support wall loops" msgstr "Support wall loops" @@ -13666,6 +13711,15 @@ msgstr "" "ABS, appropriately increasing the heatbed temperature can reduce the " "probability of warping?" +#~ msgid "Tree support branch angle" +#~ msgstr "Tree support branch angle" + +#~ msgid "Tree support branch distance" +#~ msgstr "Tree support branch distance" + +#~ msgid "Tree support branch diameter" +#~ msgstr "Tree support branch diameter" + #~ msgid "Manual" #~ msgstr "Manual" diff --git a/bbl/i18n/es/BambuStudio_es.po b/bbl/i18n/es/BambuStudio_es.po index 28f4052bb3..5cfe66b205 100644 --- a/bbl/i18n/es/BambuStudio_es.po +++ b/bbl/i18n/es/BambuStudio_es.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2241,6 +2241,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "No se seleccionan objetos ordenables." +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -5054,6 +5059,21 @@ msgstr "" msgid "Step file import parameters" msgstr "" +msgid "Rough" +msgstr "" + +msgid "Reduce Linear" +msgstr "" + +msgid "Reduce Angle" +msgstr "" + +msgid "Fewer faces" +msgstr "" + +msgid "More faces" +msgstr "" + msgid "Linear Deflection" msgstr "" @@ -5398,6 +5418,9 @@ msgstr " placa %1%:" msgid "Invalid name, the following characters are not allowed:" msgstr "Nombre no válido, los siguientes caracteres no están permitidos:" +msgid "(Including its escape characters)" +msgstr "" + msgid "Sliced Info" msgstr "Información del laminado" @@ -9645,6 +9668,18 @@ msgstr "" "El diámetro del filamento se utiliza para calcular la extrusión en el gcode, " "por lo que es importante y debe ser preciso" +msgid "Shrinkage" +msgstr "" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" + msgid "Density" msgstr "Densidad" @@ -11198,8 +11233,8 @@ msgstr "" "Se generará soporte para voladizos cuyo ángulo de inclinación esté por " "debajo del umbral." -msgid "Tree support branch angle" -msgstr "Ángulo de la rama de soporte del árbol" +msgid "Branch angle" +msgstr "" msgid "" "This setting determines the maximum overhang angle that t he branches of " @@ -11210,8 +11245,8 @@ msgstr "" "ramas del soporte del árbol. Si se aumenta el ángulo, las ramas pueden " "imprimirse más horizontalmente, permitiendo que lleguen más lejos." -msgid "Tree support branch distance" -msgstr "Distancia de la rama de soporte del árbol" +msgid "Branch distance" +msgstr "" msgid "" "This setting determines the distance between neighboring tree support nodes." @@ -11219,12 +11254,22 @@ msgstr "" "Este ajuste determina la distancia entre los nodos de soporte del árbol " "vecinos." -msgid "Tree support branch diameter" -msgstr "Diámetro de la rama de soporte del árbol" +msgid "Branch diameter" +msgstr "" msgid "This setting determines the initial diameter of support nodes." msgstr "Este ajuste determina el diámetro inicial de los nodos de apoyo." +msgid "Branch diameter angle" +msgstr "" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" + msgid "Support wall loops" msgstr "Lazos de pared de apoyo" @@ -14005,6 +14050,15 @@ msgstr "" "aumentar adecuadamente la temperatura del lecho térmico puede reducir la " "probabilidad de alabeo?" +#~ msgid "Tree support branch angle" +#~ msgstr "Ángulo de la rama de soporte del árbol" + +#~ msgid "Tree support branch distance" +#~ msgstr "Distancia de la rama de soporte del árbol" + +#~ msgid "Tree support branch diameter" +#~ msgstr "Diámetro de la rama de soporte del árbol" + #~ msgid "Manual" #~ msgstr "Manual" diff --git a/bbl/i18n/fr/BambuStudio_fr.po b/bbl/i18n/fr/BambuStudio_fr.po index c4dddad1ae..692026a3bf 100644 --- a/bbl/i18n/fr/BambuStudio_fr.po +++ b/bbl/i18n/fr/BambuStudio_fr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2240,6 +2240,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "Aucun objet arrangeable n'est sélectionné." +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -5060,6 +5065,21 @@ msgstr "" msgid "Step file import parameters" msgstr "" +msgid "Rough" +msgstr "" + +msgid "Reduce Linear" +msgstr "" + +msgid "Reduce Angle" +msgstr "" + +msgid "Fewer faces" +msgstr "" + +msgid "More faces" +msgstr "" + msgid "Linear Deflection" msgstr "" @@ -5403,6 +5423,9 @@ msgstr " plaque %1%: " msgid "Invalid name, the following characters are not allowed:" msgstr "Nom invalide, les caractères suivants ne sont pas autorisés :" +msgid "(Including its escape characters)" +msgstr "" + msgid "Sliced Info" msgstr "Informations de découpage" @@ -9678,6 +9701,18 @@ msgstr "" "Le diamètre du filament est utilisé pour calculer l'extrusion dans le G-" "code, c'est une donnée importante qui doit être précise." +msgid "Shrinkage" +msgstr "" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" + msgid "Density" msgstr "Densité" @@ -11233,8 +11268,8 @@ msgstr "" "Un support sera généré pour les surplombs dont l'angle d'inclinaison est " "inférieur au seuil." -msgid "Tree support branch angle" -msgstr "Angle de branche support arborescent" +msgid "Branch angle" +msgstr "" msgid "" "This setting determines the maximum overhang angle that t he branches of " @@ -11246,8 +11281,8 @@ msgstr "" "branches peuvent être imprimées plus horizontalement, ce qui leur permet " "d'atteindre une plus grande distance." -msgid "Tree support branch distance" -msgstr "Distance de branche de support arborescent" +msgid "Branch distance" +msgstr "" msgid "" "This setting determines the distance between neighboring tree support nodes." @@ -11255,12 +11290,22 @@ msgstr "" "Ce paramètre détermine la distance entre les nœuds de support arborescents " "voisins." -msgid "Tree support branch diameter" -msgstr "Diamètre de branche de support arborescent" +msgid "Branch diameter" +msgstr "" msgid "This setting determines the initial diameter of support nodes." msgstr "Ce paramètre détermine le diamètre initial des nœuds de support." +msgid "Branch diameter angle" +msgstr "" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" + msgid "Support wall loops" msgstr "Parois des supports" @@ -14060,6 +14105,15 @@ msgstr "" "que l'ABS, une augmentation appropriée de la température du plateau peut " "réduire le risque de déformation ?" +#~ msgid "Tree support branch angle" +#~ msgstr "Angle de branche support arborescent" + +#~ msgid "Tree support branch distance" +#~ msgstr "Distance de branche de support arborescent" + +#~ msgid "Tree support branch diameter" +#~ msgstr "Diamètre de branche de support arborescent" + #~ msgid "Manual" #~ msgstr "Manuel" diff --git a/bbl/i18n/hu/BambuStudio_hu.po b/bbl/i18n/hu/BambuStudio_hu.po index c9fafcc25f..7f002fb005 100644 --- a/bbl/i18n/hu/BambuStudio_hu.po +++ b/bbl/i18n/hu/BambuStudio_hu.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2237,6 +2237,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "Nincs elrendezhető objektum kiválasztva." +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -5023,6 +5028,21 @@ msgstr "" msgid "Step file import parameters" msgstr "" +msgid "Rough" +msgstr "" + +msgid "Reduce Linear" +msgstr "" + +msgid "Reduce Angle" +msgstr "" + +msgid "Fewer faces" +msgstr "" + +msgid "More faces" +msgstr "" + msgid "Linear Deflection" msgstr "" @@ -5363,6 +5383,9 @@ msgstr " %1%. tálca: " msgid "Invalid name, the following characters are not allowed:" msgstr "Érvénytelen név, a következő karakterek nem megengedettek:" +msgid "(Including its escape characters)" +msgstr "" + msgid "Sliced Info" msgstr "Szeletelési infó" @@ -9568,6 +9591,18 @@ msgstr "" "A filamentátmérő az extrudálás kiszámításához szükséges a G-kódban, ezért " "fontos, hogy pontos legyen" +msgid "Shrinkage" +msgstr "" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" + msgid "Density" msgstr "Sűrűség" @@ -11098,8 +11133,8 @@ msgstr "" "Az olyan túlnyúlásoknál, amelynek dőlésszöge ez alatt az érték alatt van, " "támasz fog generálódni." -msgid "Tree support branch angle" -msgstr "Fa típusú támasz ágainak szöge" +msgid "Branch angle" +msgstr "" msgid "" "This setting determines the maximum overhang angle that t he branches of " @@ -11110,8 +11145,8 @@ msgstr "" "túlnyúlási szöget érhetnek el. Ha ezt a szöget növeled, az ágak " "vízszintesebben nyomtathatók, így messzebbre nyúlhatnak." -msgid "Tree support branch distance" -msgstr "Fa támasz ágainak távolsága" +msgid "Branch distance" +msgstr "" msgid "" "This setting determines the distance between neighboring tree support nodes." @@ -11119,12 +11154,22 @@ msgstr "" "Ez a beállítás határozza meg a szomszédos fa támasz csomópontok közötti " "távolságot." -msgid "Tree support branch diameter" -msgstr "Fa támasz ágának átmérője" +msgid "Branch diameter" +msgstr "" msgid "This setting determines the initial diameter of support nodes." msgstr "Ez a beállítás határozza meg a támasz csomópontok kezdeti átmérőjét." +msgid "Branch diameter angle" +msgstr "" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" + msgid "Support wall loops" msgstr "Támaszfalak száma" @@ -13860,6 +13905,15 @@ msgstr "" "Tudtad, hogy a vetemedésre hajlamos anyagok (például ABS) nyomtatásakor a " "tárgyasztal hőmérsékletének növelése csökkentheti a vetemedés valószínűségét?" +#~ msgid "Tree support branch angle" +#~ msgstr "Fa típusú támasz ágainak szöge" + +#~ msgid "Tree support branch distance" +#~ msgstr "Fa támasz ágainak távolsága" + +#~ msgid "Tree support branch diameter" +#~ msgstr "Fa támasz ágának átmérője" + #~ msgid "Manual" #~ msgstr "Manuális" diff --git a/bbl/i18n/it/BambuStudio_it.po b/bbl/i18n/it/BambuStudio_it.po index 8e81a7dc95..d58b5a2c68 100644 --- a/bbl/i18n/it/BambuStudio_it.po +++ b/bbl/i18n/it/BambuStudio_it.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2235,6 +2235,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "Non sono stati selezionati oggetti ordinabili." +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -5034,6 +5039,21 @@ msgstr "" msgid "Step file import parameters" msgstr "" +msgid "Rough" +msgstr "" + +msgid "Reduce Linear" +msgstr "" + +msgid "Reduce Angle" +msgstr "" + +msgid "Fewer faces" +msgstr "" + +msgid "More faces" +msgstr "" + msgid "Linear Deflection" msgstr "" @@ -5375,6 +5395,9 @@ msgstr " piatto %1%:" msgid "Invalid name, the following characters are not allowed:" msgstr "Nome non valido, i seguenti caratteri non sono consentiti:" +msgid "(Including its escape characters)" +msgstr "" + msgid "Sliced Info" msgstr "Informazioni processo" @@ -9592,6 +9615,18 @@ msgstr "" "Il diametro del filamento viene utilizzato per calcolare le variabili di " "estrusione nel G-code, quindi è importante che sia preciso." +msgid "Shrinkage" +msgstr "" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" + msgid "Density" msgstr "Densità" @@ -11136,8 +11171,8 @@ msgstr "" "Il supporto sarà generato per le sporgenze il cui angolo di inclinazione è " "inferiore alla soglia." -msgid "Tree support branch angle" -msgstr "Angolo ramo supporti ad albero" +msgid "Branch angle" +msgstr "" msgid "" "This setting determines the maximum overhang angle that t he branches of " @@ -11149,20 +11184,30 @@ msgstr "" "essere stampati più orizzontalmente, permettendo loro di raggiungere una " "maggiore distanza." -msgid "Tree support branch distance" -msgstr "Distanza ramo supporti ad albero" +msgid "Branch distance" +msgstr "" msgid "" "This setting determines the distance between neighboring tree support nodes." msgstr "" "Questa determina la distanza tra i nodi di supporto dell'albero vicini." -msgid "Tree support branch diameter" -msgstr "Diametro ramo supporti ad albero" +msgid "Branch diameter" +msgstr "" msgid "This setting determines the initial diameter of support nodes." msgstr "Questa determina il diametro iniziale dei nodi di supporto." +msgid "Branch diameter angle" +msgstr "" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" + msgid "Support wall loops" msgstr "Anelli di supporto a parete" @@ -13931,6 +13976,15 @@ msgstr "" "aumentare adeguatamente la temperatura del piano può ridurre la probabilità " "di deformazione." +#~ msgid "Tree support branch angle" +#~ msgstr "Angolo ramo supporti ad albero" + +#~ msgid "Tree support branch distance" +#~ msgstr "Distanza ramo supporti ad albero" + +#~ msgid "Tree support branch diameter" +#~ msgstr "Diametro ramo supporti ad albero" + #~ msgid "Manual" #~ msgstr "Manuale" diff --git a/bbl/i18n/ja/BambuStudio_ja.po b/bbl/i18n/ja/BambuStudio_ja.po index 3cc97e06a1..12c2e5ecbe 100644 --- a/bbl/i18n/ja/BambuStudio_ja.po +++ b/bbl/i18n/ja/BambuStudio_ja.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2197,6 +2197,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "レイアウトできるオブジェクトが選択されていません。" +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -4909,6 +4914,21 @@ msgstr "" msgid "Step file import parameters" msgstr "" +msgid "Rough" +msgstr "" + +msgid "Reduce Linear" +msgstr "" + +msgid "Reduce Angle" +msgstr "" + +msgid "Fewer faces" +msgstr "" + +msgid "More faces" +msgstr "" + msgid "Linear Deflection" msgstr "" @@ -5242,6 +5262,9 @@ msgstr " plate %1%:" msgid "Invalid name, the following characters are not allowed:" msgstr "無効な名前です、次の文字を使用できません:" +msgid "(Including its escape characters)" +msgstr "" + msgid "Sliced Info" msgstr "スライス情報" @@ -9272,6 +9295,18 @@ msgstr "" "押出制御に使用されるパラメータなので、精確なフィラメント直径を入力してくださ" "い" +msgid "Shrinkage" +msgstr "" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" + msgid "Density" msgstr "密度" @@ -10735,8 +10770,8 @@ msgid "" "threshold." msgstr "オーバーハングの角度がこの閾値以下になる場合、サポートを生成します" -msgid "Tree support branch angle" -msgstr "ツリーサポート枝アングル" +msgid "Branch angle" +msgstr "" msgid "" "This setting determines the maximum overhang angle that t he branches of " @@ -10746,19 +10781,29 @@ msgstr "" "ツリータイプのサポートを造形する時の最大オーバーハング最大角度です。この値が" "大きくなると、枝部分が繋がりやすくなります。" -msgid "Tree support branch distance" -msgstr "ツリーサポート枝間隔" +msgid "Branch distance" +msgstr "" msgid "" "This setting determines the distance between neighboring tree support nodes." msgstr "サポートタイプがツリーの時、隣接するノードの距離です。" -msgid "Tree support branch diameter" -msgstr "ツリーサポート枝直径" +msgid "Branch diameter" +msgstr "" msgid "This setting determines the initial diameter of support nodes." msgstr "サポートノードの初期直径です。" +msgid "Branch diameter angle" +msgstr "" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" + msgid "Support wall loops" msgstr "Support wall loops" @@ -13427,6 +13472,15 @@ msgstr "" "ABS, appropriately increasing the heatbed temperature can reduce the " "probability of warping?" +#~ msgid "Tree support branch angle" +#~ msgstr "ツリーサポート枝アングル" + +#~ msgid "Tree support branch distance" +#~ msgstr "ツリーサポート枝間隔" + +#~ msgid "Tree support branch diameter" +#~ msgstr "ツリーサポート枝直径" + #~ msgid "Manual" #~ msgstr "手動" diff --git a/bbl/i18n/ko/BambuStudio_ko.po b/bbl/i18n/ko/BambuStudio_ko.po index 6071fe5435..f4b59bf714 100644 --- a/bbl/i18n/ko/BambuStudio_ko.po +++ b/bbl/i18n/ko/BambuStudio_ko.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2201,6 +2201,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "정렬 가능한 개체가 선택되지 않았습니다." +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -4924,6 +4929,21 @@ msgstr "" msgid "Step file import parameters" msgstr "" +msgid "Rough" +msgstr "" + +msgid "Reduce Linear" +msgstr "" + +msgid "Reduce Angle" +msgstr "" + +msgid "Fewer faces" +msgstr "" + +msgid "More faces" +msgstr "" + msgid "Linear Deflection" msgstr "" @@ -5258,6 +5278,9 @@ msgstr "플레이트 %1%:" msgid "Invalid name, the following characters are not allowed:" msgstr "이름이 잘못되었습니다. 다음 문자는 사용할 수 없습니다." +msgid "(Including its escape characters)" +msgstr "" + msgid "Sliced Info" msgstr "슬라이스 정보" @@ -9323,6 +9346,18 @@ msgstr "" "필라멘트 직경은 G 코드의 압출값을 계산하는 데 사용되므로 정확하고 정밀해야 합" "니다." +msgid "Shrinkage" +msgstr "" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" + msgid "Density" msgstr "밀도" @@ -10804,8 +10839,8 @@ msgid "" "threshold." msgstr "경사 각도가 이 임계값 미만인 오버행에 대해서는 서포트가 생성됩니다." -msgid "Tree support branch angle" -msgstr "트리서포트 가지 각도" +msgid "Branch angle" +msgstr "" msgid "" "This setting determines the maximum overhang angle that t he branches of " @@ -10816,19 +10851,29 @@ msgstr "" "를 높이면 가지를 더 수평으로 인쇄할 수 있으므로 가지가 더 멀리 뻗을 수 있습니" "다." -msgid "Tree support branch distance" -msgstr "트리 서포트 가지 거리" +msgid "Branch distance" +msgstr "" msgid "" "This setting determines the distance between neighboring tree support nodes." msgstr "이 설정은 인접한 트리 서포트 분기점 간의 거리를 결정합니다." -msgid "Tree support branch diameter" -msgstr "트리 서포트 가지 지름" +msgid "Branch diameter" +msgstr "" msgid "This setting determines the initial diameter of support nodes." msgstr "이 설정은 서포트 분기점의 초기 지름을 결정합니다." +msgid "Branch diameter angle" +msgstr "" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" + msgid "Support wall loops" msgstr "Support wall loops" @@ -13517,6 +13562,15 @@ msgstr "" "ABS 등 뒤틀림이 발생하기 쉬운 소재를 출력할 때, 히트베드 온도를 적절하게 높이" "면 뒤틀림 가능성을 줄일 수 있다는 사실을 알고 계셨나요?" +#~ msgid "Tree support branch angle" +#~ msgstr "트리서포트 가지 각도" + +#~ msgid "Tree support branch distance" +#~ msgstr "트리 서포트 가지 거리" + +#~ msgid "Tree support branch diameter" +#~ msgstr "트리 서포트 가지 지름" + #~ msgid "" #~ "Object will be raised by this number of support layers. Use this function " #~ "to avoid wrapping when print ABS" diff --git a/bbl/i18n/nl/BambuStudio_nl.po b/bbl/i18n/nl/BambuStudio_nl.po index 587cc6dcd8..274ae911fb 100644 --- a/bbl/i18n/nl/BambuStudio_nl.po +++ b/bbl/i18n/nl/BambuStudio_nl.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2248,6 +2248,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "Er zijn geen arrangeerbare objecten geselecteerd." +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -5054,6 +5059,21 @@ msgstr "" msgid "Step file import parameters" msgstr "" +msgid "Rough" +msgstr "" + +msgid "Reduce Linear" +msgstr "" + +msgid "Reduce Angle" +msgstr "" + +msgid "Fewer faces" +msgstr "" + +msgid "More faces" +msgstr "" + msgid "Linear Deflection" msgstr "" @@ -5401,6 +5421,9 @@ msgstr " plaat %1%: " msgid "Invalid name, the following characters are not allowed:" msgstr "Ongeldige naam, the volgende karakters zijn niet toegestaan:" +msgid "(Including its escape characters)" +msgstr "" + msgid "Sliced Info" msgstr "Sliced info" @@ -9635,6 +9658,18 @@ msgstr "" "De diameter van het filament wordt gebruikt om de extrusie in gcode te " "berekenen, dus het is belangrijk en moet nauwkeurig zijn" +msgid "Shrinkage" +msgstr "" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" + msgid "Density" msgstr "Dichtheid" @@ -11175,8 +11210,8 @@ msgstr "" "Er wordt ondersteuning gegenereerd voor overstekken waarvan de hellingshoek " "kleiner is dan de drempel." -msgid "Tree support branch angle" -msgstr "Tree support vertakkingshoek" +msgid "Branch angle" +msgstr "" msgid "" "This setting determines the maximum overhang angle that t he branches of " @@ -11187,8 +11222,8 @@ msgstr "" "boomondersteuning mogen maken. Als de hoek groter is, kunnen de takken meer " "horizontaal worden afgedrukt, waardoor ze verder kunnen reiken." -msgid "Tree support branch distance" -msgstr "Tree support tak-afstand" +msgid "Branch distance" +msgstr "" msgid "" "This setting determines the distance between neighboring tree support nodes." @@ -11196,12 +11231,22 @@ msgstr "" "Deze instelling bepaald de afstand tussen naastliggende tree support " "knooppunten." -msgid "Tree support branch diameter" -msgstr "Tree support diameter van de takken" +msgid "Branch diameter" +msgstr "" msgid "This setting determines the initial diameter of support nodes." msgstr "Deze instelling bepaalt de initiële diameter van support knooppunten." +msgid "Branch diameter angle" +msgstr "" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" + msgid "Support wall loops" msgstr "Steunmuurlussen" @@ -13954,6 +13999,15 @@ msgstr "" "kromtrekken, zoals ABS, een juiste verhoging van de temperatuur van het " "warmtebed de kans op kromtrekken kan verkleinen?" +#~ msgid "Tree support branch angle" +#~ msgstr "Tree support vertakkingshoek" + +#~ msgid "Tree support branch distance" +#~ msgstr "Tree support tak-afstand" + +#~ msgid "Tree support branch diameter" +#~ msgstr "Tree support diameter van de takken" + #~ msgid "Manual" #~ msgstr "Handmatig" diff --git a/bbl/i18n/pl/BambuStudio_pl.po b/bbl/i18n/pl/BambuStudio_pl.po index 2845fde196..1aaaf44af4 100644 --- a/bbl/i18n/pl/BambuStudio_pl.po +++ b/bbl/i18n/pl/BambuStudio_pl.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2236,6 +2236,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "Nie wybrano obiektów do automatycznego rozmieszczenia." +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -5042,6 +5047,21 @@ msgstr "" msgid "Step file import parameters" msgstr "" +msgid "Rough" +msgstr "" + +msgid "Reduce Linear" +msgstr "" + +msgid "Reduce Angle" +msgstr "" + +msgid "Fewer faces" +msgstr "" + +msgid "More faces" +msgstr "" + msgid "Linear Deflection" msgstr "" @@ -5387,6 +5407,9 @@ msgstr " płyta %1%: " msgid "Invalid name, the following characters are not allowed:" msgstr "Nieprawidłowa nazwa, poniższe znaki są niedozwolone:" +msgid "(Including its escape characters)" +msgstr "" + msgid "Sliced Info" msgstr "Informacje o przetworzonym" @@ -9580,6 +9603,18 @@ msgstr "" "Średnica filamentu jest używana do obliczania ekstruzji w G-code, więc jest " "ważna i powinna być dokładna" +msgid "Shrinkage" +msgstr "" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" + msgid "Density" msgstr "Gęstość" @@ -11122,8 +11157,8 @@ msgstr "" "Podpora zostanie wygenerowana dla nawisów, których kąt nachylenia jest " "poniżej tego progu." -msgid "Tree support branch angle" -msgstr "Kąt gałęzi podpory drzewa" +msgid "Branch angle" +msgstr "" msgid "" "This setting determines the maximum overhang angle that t he branches of " @@ -11134,20 +11169,30 @@ msgstr "" "podpory (drzewo). Jeśli kąt zostanie zwiększony, gałęzie mogą być drukowane " "bardziej poziomo, pozwalając im sięgać dalej." -msgid "Tree support branch distance" -msgstr "Odstęp gałęzi podpór drzewa" +msgid "Branch distance" +msgstr "" msgid "" "This setting determines the distance between neighboring tree support nodes." msgstr "" "To ustawienie określa odległość między sąsiednimi węzłami podpory drzewa." -msgid "Tree support branch diameter" -msgstr "Średnica gałęzi podpory organicznej" +msgid "Branch diameter" +msgstr "" msgid "This setting determines the initial diameter of support nodes." msgstr "To ustawienie określa początkową średnicę węzłów podpory." +msgid "Branch diameter angle" +msgstr "" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" + msgid "Support wall loops" msgstr "Pętle ścian podpory" @@ -13927,6 +13972,15 @@ msgstr "" "jak ABS, odpowiednie zwiększenie temperatury stołu grzejnego może zmniejszyć " "prawdopodobieństwo wypaczania." +#~ msgid "Tree support branch angle" +#~ msgstr "Kąt gałęzi podpory drzewa" + +#~ msgid "Tree support branch distance" +#~ msgstr "Odstęp gałęzi podpór drzewa" + +#~ msgid "Tree support branch diameter" +#~ msgstr "Średnica gałęzi podpory organicznej" + #~ msgid "Manual" #~ msgstr "Podręcznik" diff --git a/bbl/i18n/pt-BR/BambuStudio_pt-BR.po b/bbl/i18n/pt-BR/BambuStudio_pt-BR.po index 869356e9f4..1700ea52ff 100644 --- a/bbl/i18n/pt-BR/BambuStudio_pt-BR.po +++ b/bbl/i18n/pt-BR/BambuStudio_pt-BR.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: \n" @@ -2230,6 +2230,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "Nenhum objeto organizável está selecionado." +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -5020,6 +5025,21 @@ msgstr "" msgid "Step file import parameters" msgstr "" +msgid "Rough" +msgstr "" + +msgid "Reduce Linear" +msgstr "" + +msgid "Reduce Angle" +msgstr "" + +msgid "Fewer faces" +msgstr "" + +msgid "More faces" +msgstr "" + msgid "Linear Deflection" msgstr "" @@ -5361,6 +5381,9 @@ msgstr "placa %1%:" msgid "Invalid name, the following characters are not allowed:" msgstr "Nome inválido, os seguintes caracteres não são permitidos:" +msgid "(Including its escape characters)" +msgstr "" + msgid "Sliced Info" msgstr "Informações fatiadas" @@ -9561,6 +9584,18 @@ msgstr "" "O diâmetro do filamento é usado para calcular a extrusão em gcode, por isso " "é importante e deve ser preciso" +msgid "Shrinkage" +msgstr "" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" + msgid "Density" msgstr "Densidade" @@ -11100,8 +11135,8 @@ msgstr "" "O suporte será gerado para saliências cujo ângulo de inclinação esteja " "abaixo do limite." -msgid "Tree support branch angle" -msgstr "Ângulo do ramo de suporte da árvore" +msgid "Branch angle" +msgstr "" msgid "" "This setting determines the maximum overhang angle that t he branches of " @@ -11112,8 +11147,8 @@ msgstr "" "suporte da árvore podem criar. Se o ângulo for aumentado, os galhos poderão " "ser impressos mais horizontalmente, permitindo que cheguem mais longe." -msgid "Tree support branch distance" -msgstr "Distância do ramo de suporte de" +msgid "Branch distance" +msgstr "" msgid "" "This setting determines the distance between neighboring tree support nodes." @@ -11121,12 +11156,22 @@ msgstr "" "Essa configuração determina a distância entre os nós de suporte de árvore " "vizinhos." -msgid "Tree support branch diameter" -msgstr "Diâmetro do galho de suporte de" +msgid "Branch diameter" +msgstr "" msgid "This setting determines the initial diameter of support nodes." msgstr "Essa configuração determina o diâmetro inicial dos nós de suporte." +msgid "Branch diameter angle" +msgstr "" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" + msgid "Support wall loops" msgstr "Alças de parede de suporte" @@ -13896,6 +13941,15 @@ msgstr "" "aumentar adequadamente a temperatura do leito térmico pode reduzir a " "probabilidade de deformação." +#~ msgid "Tree support branch angle" +#~ msgstr "Ângulo do ramo de suporte da árvore" + +#~ msgid "Tree support branch distance" +#~ msgstr "Distância do ramo de suporte de" + +#~ msgid "Tree support branch diameter" +#~ msgstr "Diâmetro do galho de suporte de" + #~ msgid "Manual" #~ msgstr "Manual" diff --git a/bbl/i18n/ru/BambuStudio_ru.po b/bbl/i18n/ru/BambuStudio_ru.po index dcb0c47328..f9e402f6c6 100644 --- a/bbl/i18n/ru/BambuStudio_ru.po +++ b/bbl/i18n/ru/BambuStudio_ru.po @@ -2,12 +2,12 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# msgid "" msgstr "" "Project-Id-Version: 1.9.7.52 Public Official\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "PO-Revision-Date: 2024-09-27 23:58+0700\n" "Last-Translator: \n" "Language-Team: Andylg \n" @@ -2269,6 +2269,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "Не выбрано моделей для расстановки." +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -5140,6 +5145,21 @@ msgstr "" msgid "Step file import parameters" msgstr "" +msgid "Rough" +msgstr "" + +msgid "Reduce Linear" +msgstr "" + +msgid "Reduce Angle" +msgstr "" + +msgid "Fewer faces" +msgstr "" + +msgid "More faces" +msgstr "" + msgid "Linear Deflection" msgstr "" @@ -5485,6 +5505,9 @@ msgstr " печатной пластины %1%: " msgid "Invalid name, the following characters are not allowed:" msgstr "Недопустимое имя файла. Следующие символов не разрешены:" +msgid "(Including its escape characters)" +msgstr "" + msgid "Sliced Info" msgstr "Информация о нарезке" @@ -9783,6 +9806,18 @@ msgstr "" "Диаметр пластиковой нити используется для расчёта экструзии, поэтому он " "важен и должен быть точным" +msgid "Shrinkage" +msgstr "" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" + msgid "Density" msgstr "Плотность" @@ -11384,8 +11419,8 @@ msgstr "" "Для нависаний, угол наклона которых ниже заданного порогового значения, " "будут использоваться поддержки." -msgid "Tree support branch angle" -msgstr "Угол нависания ветвей древовидной поддержки" +msgid "Branch angle" +msgstr "" msgid "" "This setting determines the maximum overhang angle that t he branches of " @@ -11397,8 +11432,8 @@ msgstr "" "позволяет им достигать большего охвата. При указании меньшего угла, " "поддержка будет более вертикальной и устойчивой." -msgid "Tree support branch distance" -msgstr "Расстояние между ветвями древовидной поддержки" +msgid "Branch distance" +msgstr "" msgid "" "This setting determines the distance between neighboring tree support nodes." @@ -11406,14 +11441,24 @@ msgstr "" "Этот параметр определяет, насколько далеко должны друг от друга " "располагаться ветви при касании модели." -msgid "Tree support branch diameter" -msgstr "Диаметр ветвей древовидной поддержки" +msgid "Branch diameter" +msgstr "" msgid "This setting determines the initial diameter of support nodes." msgstr "" "Этот параметр определяет начальный диаметр ветвей, т.е. их диаметр в месте " "контакта с моделью." +msgid "Branch diameter angle" +msgstr "" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" + msgid "Support wall loops" msgstr "Периметров поддержки" @@ -14234,6 +14279,15 @@ msgstr "" "ABS, повышение температуры подогреваемого стола может снизить эту " "вероятность?" +#~ msgid "Tree support branch angle" +#~ msgstr "Угол нависания ветвей древовидной поддержки" + +#~ msgid "Tree support branch distance" +#~ msgstr "Расстояние между ветвями древовидной поддержки" + +#~ msgid "Tree support branch diameter" +#~ msgstr "Диаметр ветвей древовидной поддержки" + #~ msgid "" #~ "Object will be raised by this number of support layers. Use this function " #~ "to avoid wrapping when print ABS" diff --git a/bbl/i18n/sv/BambuStudio_sv.po b/bbl/i18n/sv/BambuStudio_sv.po index 3dc9b0d97b..24a38298cb 100644 --- a/bbl/i18n/sv/BambuStudio_sv.po +++ b/bbl/i18n/sv/BambuStudio_sv.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2214,6 +2214,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "Inga objekt som kan ordnas är markerade." +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -4990,6 +4995,21 @@ msgstr "" msgid "Step file import parameters" msgstr "" +msgid "Rough" +msgstr "" + +msgid "Reduce Linear" +msgstr "" + +msgid "Reduce Angle" +msgstr "" + +msgid "Fewer faces" +msgstr "" + +msgid "More faces" +msgstr "" + msgid "Linear Deflection" msgstr "" @@ -5329,6 +5349,9 @@ msgstr " platta %1%: " msgid "Invalid name, the following characters are not allowed:" msgstr "Ogiltligt namn, följande tecken är inte tillåtna:" +msgid "(Including its escape characters)" +msgstr "" + msgid "Sliced Info" msgstr "Berednings Info" @@ -9472,6 +9495,18 @@ msgstr "" "Filament diametern används för att beräkna extruderingen i G-kod, viktigt " "att detta är rätt" +msgid "Shrinkage" +msgstr "" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" + msgid "Density" msgstr "Densitet" @@ -10993,8 +11028,8 @@ msgid "" "threshold." msgstr "Support skapas för överhäng vars sluttning är under denna gräns." -msgid "Tree support branch angle" -msgstr "Tree support grenarnas vinkel" +msgid "Branch angle" +msgstr "" msgid "" "This setting determines the maximum overhang angle that t he branches of " @@ -11005,20 +11040,30 @@ msgstr "" "tillåts att ha. Om vinkeln ökas, kan grenarna skrivas ut mer horisontellt " "och nå längre." -msgid "Tree support branch distance" -msgstr "Tree support grenarnas avstånd" +msgid "Branch distance" +msgstr "" msgid "" "This setting determines the distance between neighboring tree support nodes." msgstr "" "Inställningen bestämmer avståndet mellan närliggande tree support punkter." -msgid "Tree support branch diameter" -msgstr "Tree support grenarnas diameter" +msgid "Branch diameter" +msgstr "" msgid "This setting determines the initial diameter of support nodes." msgstr "Inställningen bestämmer inledande diameter på support punkterna." +msgid "Branch diameter angle" +msgstr "" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" + msgid "Support wall loops" msgstr "Vägg support" @@ -13753,6 +13798,15 @@ msgstr "" "ABS, kan en lämplig ökning av värmebäddens temperatur minska sannolikheten " "för vridning." +#~ msgid "Tree support branch angle" +#~ msgstr "Tree support grenarnas vinkel" + +#~ msgid "Tree support branch distance" +#~ msgstr "Tree support grenarnas avstånd" + +#~ msgid "Tree support branch diameter" +#~ msgstr "Tree support grenarnas diameter" + #~ msgid "Manual" #~ msgstr "Manuell" diff --git a/bbl/i18n/tr/BambuStudio_tr.po b/bbl/i18n/tr/BambuStudio_tr.po index d4871c204c..09cc47d2fe 100644 --- a/bbl/i18n/tr/BambuStudio_tr.po +++ b/bbl/i18n/tr/BambuStudio_tr.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "PO-Revision-Date: 2024-09-29 02:13+0300\n" "Last-Translator: Fatih AYDIN \n" "Language-Team: \n" @@ -2142,7 +2142,7 @@ msgid "Load" msgstr "Yükle" msgid "Unload" -msgstr "Boşalt" +msgstr "Çıkart" msgid "Ext Spool" msgstr "Harici Makara" @@ -2154,7 +2154,7 @@ msgid "Guide" msgstr "Rehber" msgid "Retry" -msgstr "Yeniden dene" +msgstr "Yenile" msgid "Calibrating AMS..." msgstr "AMS kalibre ediliyor..." @@ -2204,7 +2204,7 @@ msgid "" "load or unload filaments." msgstr "" "Bir AMS yuvası seçin ve ardından filamentleri otomatik olarak yüklemek veya " -"boşaltmak için \"Yükle\" veya \"Boşalt\" düğmesine basın." +"çokartmak için \"Yükle\" veya \"Çıkart\" düğmesine basın." msgid "Edit" msgstr "Düzenle" @@ -2219,6 +2219,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "Düzenlenebilir hiçbir nesne seçilmemiştir." +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -3302,7 +3307,7 @@ msgid "Paused due to heat bed temperature malfunction" msgstr "Isı yatağı sıcaklık arızası nedeniyle duraklatıldı" msgid "Filament unloading" -msgstr "Filament boşaltma" +msgstr "Filament çıkart" msgid "Skip step pause" msgstr "Adım duraklamasını atla" @@ -4027,7 +4032,7 @@ msgid "Show Tip of the Day" msgstr "Günün İpucunu Göster" msgid "Report issue" -msgstr "Rapor sorunu" +msgstr "Sorunu rapor edin" msgid "Check for Update" msgstr "Güncellemeleri kontrol et" @@ -4865,11 +4870,11 @@ msgid "" "Please heat the nozzle to above 170 degree before loading or unloading " "filament." msgstr "" -"Filamenti yüklemeden veya boşaltmadan önce lütfen nozulu 170 derecenin " +"Filamenti yüklemeden veya çıkartmadan önce lütfen nozulu 170 derecenin " "üzerine ısıtın." msgid "Still unload" -msgstr "Daha Fazla Boşalt" +msgstr "Daha Fazla tahliye" msgid "Still load" msgstr "Daha Fazla Yükle" @@ -4882,7 +4887,7 @@ msgid "" "unload the filament and try again." msgstr "" "Filament bilgisi okunamıyor: Filament alet kafasına yüklenmiştir, lütfen " -"filamenti boşaltın ve tekrar deneyin." +"filamenti çıkartın ve tekrar deneyin." msgid "This only takes effect during printing" msgstr "Bu yalnızca yazdırma sırasında etkili olur" @@ -5011,6 +5016,21 @@ msgstr "" msgid "Step file import parameters" msgstr "" +msgid "Rough" +msgstr "" + +msgid "Reduce Linear" +msgstr "" + +msgid "Reduce Angle" +msgstr "" + +msgid "Fewer faces" +msgstr "" + +msgid "More faces" +msgstr "" + msgid "Linear Deflection" msgstr "" @@ -5353,6 +5373,9 @@ msgstr " plaka %1%: " msgid "Invalid name, the following characters are not allowed:" msgstr "Geçersiz ad, aşağıdaki karakterlere izin verilmiyor:" +msgid "(Including its escape characters)" +msgstr "" + msgid "Sliced Info" msgstr "Dilimleme bilgisi" @@ -5960,7 +5983,7 @@ msgid "" msgstr "" "\"Modeli Düzelt\" özelliği şu anda yalnızca Windows'ta bulunmaktadır. Lütfen " "modeli Bambu Studio'ya aktarmadan önce onarmak için üçüncü taraf bir araç " -"kullanın, örneğin" +"kullanın, örneğin " #, c-format, boost-format msgid "" @@ -7203,7 +7226,7 @@ msgid "Notes" msgstr "Notlar" msgid "Frequent" -msgstr "Sıklıkla" +msgstr "Sıkça Kullanılan" #, c-format, boost-format msgid "" @@ -7794,7 +7817,7 @@ msgid "Multiplier" msgstr "Çarpan" msgid "unloaded" -msgstr "boşaltılmış" +msgstr "çıkartılmış" msgid "loaded" msgstr "yüklenmiş" @@ -9499,7 +9522,7 @@ msgid "mm³/s" msgstr "mm³/s" msgid "Minimal purge on wipe tower" -msgstr "Silme kulesi üzerinde minimum boşaltım" +msgstr "Silme kulesi üzerinde minimum tahliye" msgid "mm³" msgstr "mm³" @@ -9513,11 +9536,11 @@ msgstr "" "istatistikler için" msgid "Filament unload time" -msgstr "Filament boşaltma süresi" +msgstr "Filament çıkartma süresi" msgid "Time to unload old filament when switch filament. For statistics only" msgstr "" -"Filamenti değiştirdiğinizde eski filamenti boşaltma zamanı. Yalnızca " +"Filamenti değiştirdiğinizde eski filamenti çıkartma zamanı. Yalnızca " "istatistikler için" msgid "" @@ -9527,6 +9550,18 @@ msgstr "" "Filament çapı, gcode'da ekstrüzyonu hesaplamak için kullanılır; bu nedenle " "önemlidir ve doğru olmalıdır" +msgid "Shrinkage" +msgstr "" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" + msgid "Density" msgstr "Yoğunluk" @@ -10475,7 +10510,7 @@ msgid "" "significantly, it may also raise the risk of nozzle clogs or other printing " "problems." msgstr "" -"Deneysel özellik: Boşaltmayı en aza indirmek için değişimler sırasında " +"Deneysel özellik: Tahliyeyi en aza indirmek için değişimler sırasında " "filamentin daha uzun bir mesafeden geri çekilmesi ve kesilmesi. Bu, yıkamayı " "önemli ölçüde azaltırken, nozül tıkanması veya diğer baskı sorunları riskini " "de artırabilir." @@ -11044,8 +11079,8 @@ msgid "" "threshold." msgstr "Eğim açısı eşiğin altında olan çıkmalar için destek oluşturulacaktır." -msgid "Tree support branch angle" -msgstr "Ağaç desteği dal açısı" +msgid "Branch angle" +msgstr "" msgid "" "This setting determines the maximum overhang angle that t he branches of " @@ -11056,19 +11091,29 @@ msgstr "" "açısını belirler. Açı artırılırsa, dallar daha yatay olarak basılabilir ve " "daha uzağa ulaşır." -msgid "Tree support branch distance" -msgstr "Ağaç destek dal mesafesi" +msgid "Branch distance" +msgstr "" msgid "" "This setting determines the distance between neighboring tree support nodes." msgstr "Bu ayar, komşu ağaç destek düğümleri arasındaki mesafeyi belirler." -msgid "Tree support branch diameter" -msgstr "Ağaç destek dalı çapı" +msgid "Branch diameter" +msgstr "" msgid "This setting determines the initial diameter of support nodes." msgstr "Bu ayar, destek düğümlerinin başlangıç çapını belirler." +msgid "Branch diameter angle" +msgstr "" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" + msgid "Support wall loops" msgstr "Destek duvarı döngüleri" @@ -13842,6 +13887,15 @@ msgstr "" "sıcaklığının uygun şekilde arttırılmasının bükülme olasılığını " "azaltabileceğini biliyor muydunuz." +#~ msgid "Tree support branch angle" +#~ msgstr "Ağaç desteği dal açısı" + +#~ msgid "Tree support branch distance" +#~ msgstr "Ağaç destek dal mesafesi" + +#~ msgid "Tree support branch diameter" +#~ msgstr "Ağaç destek dalı çapı" + #~ msgid "" #~ "Object will be raised by this number of support layers. Use this function " #~ "to avoid wrapping when print ABS" diff --git a/bbl/i18n/uk/BambuStudio_uk.po b/bbl/i18n/uk/BambuStudio_uk.po index 68ca1079c8..50440cc20f 100644 --- a/bbl/i18n/uk/BambuStudio_uk.po +++ b/bbl/i18n/uk/BambuStudio_uk.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: Bambu Studio\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: BambuLab Україна\n" @@ -2225,6 +2225,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "Не вибрано жодних об’єктів для розташування." +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -5031,6 +5036,21 @@ msgstr "" msgid "Step file import parameters" msgstr "" +msgid "Rough" +msgstr "" + +msgid "Reduce Linear" +msgstr "" + +msgid "Reduce Angle" +msgstr "" + +msgid "Fewer faces" +msgstr "" + +msgid "More faces" +msgstr "" + msgid "Linear Deflection" msgstr "" @@ -5371,6 +5391,9 @@ msgstr " Плита %1%: " msgid "Invalid name, the following characters are not allowed:" msgstr "Неприпустиме ім'я, такі символи не допускаються:" +msgid "(Including its escape characters)" +msgstr "" + msgid "Sliced Info" msgstr "Нарізана інформація" @@ -9552,6 +9575,18 @@ msgstr "" "Діаметр нитки використовується для розрахунку екструзії в gcode, тому він " "важливий імає бути точним" +msgid "Shrinkage" +msgstr "" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" + msgid "Density" msgstr "Щільність" @@ -11081,8 +11116,8 @@ msgid "" "threshold." msgstr "Буде створена опора для звисів з кутом нахилу нижче порога." -msgid "Tree support branch angle" -msgstr "Кут гілки опори дерева" +msgid "Branch angle" +msgstr "" msgid "" "This setting determines the maximum overhang angle that t he branches of " @@ -11093,19 +11128,29 @@ msgstr "" "підтримки дерева. Якщо кут збільшено, гілки можуть друкуватись " "більшегоризонтально, дозволяючи їм досягати більшої відстані." -msgid "Tree support branch distance" -msgstr "Адаптивна висота шару" +msgid "Branch distance" +msgstr "" msgid "" "This setting determines the distance between neighboring tree support nodes." msgstr "Цей параметр визначає відстань між сусідніми вузлами підтримки дерева." -msgid "Tree support branch diameter" -msgstr "Діаметр гілки деревоподібної підтримки" +msgid "Branch diameter" +msgstr "" msgid "This setting determines the initial diameter of support nodes." msgstr "Цей параметр визначає початковий діаметр опорних вузлів." +msgid "Branch diameter angle" +msgstr "" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" + msgid "Support wall loops" msgstr "Опорні стінові петлі" @@ -13895,6 +13940,15 @@ msgstr "" "ABS, відповідне підвищення температури гарячого ліжка може зменшити " "ймовірність деформації." +#~ msgid "Tree support branch angle" +#~ msgstr "Кут гілки опори дерева" + +#~ msgid "Tree support branch distance" +#~ msgstr "Адаптивна висота шару" + +#~ msgid "Tree support branch diameter" +#~ msgstr "Діаметр гілки деревоподібної підтримки" + #~ msgid "Manual" #~ msgstr "Manual" diff --git a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po index fd5ef71ea8..e619bb26bd 100644 --- a/bbl/i18n/zh_cn/BambuStudio_zh_CN.po +++ b/bbl/i18n/zh_cn/BambuStudio_zh_CN.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Slic3rPE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-15 16:47+0800\n" +"POT-Creation-Date: 2024-10-25 21:39+0800\n" "PO-Revision-Date: 2024-03-21 10:39+0800\n" "Last-Translator: Jiang Yue \n" "Language-Team: \n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Poedit 3.3.2\n" +"X-Generator: Poedit 3.5\n" msgid "Supports Painting" msgstr "支撑绘制" @@ -2180,6 +2180,11 @@ msgstr "" msgid "No arrangeable objects are selected." msgstr "没有可摆盘的对象被选中。" +msgid "" +"The following plates are skipped due to different arranging settings from " +"global:" +msgstr "由于单盘摆盘设置与全局不同,以下盘被跳过:" + msgid "" "This plate is locked,\n" "We can not do auto-arrange on this plate." @@ -4827,6 +4832,21 @@ msgstr "至少需要一个成功的打印记录,才能给出积极的评价( msgid "Step file import parameters" msgstr "导入step文件选项" +msgid "Rough" +msgstr "粗糙" + +msgid "Reduce Linear" +msgstr "减少线偏转值" + +msgid "Reduce Angle" +msgstr "减少角偏转值" + +msgid "Fewer faces" +msgstr "更少三角面" + +msgid "More faces" +msgstr "更多三角面" + msgid "Linear Deflection" msgstr "线偏转值" @@ -5154,6 +5174,9 @@ msgstr " 盘 %1%: " msgid "Invalid name, the following characters are not allowed:" msgstr "无效名称,不允许使用以下字符:" +msgid "(Including its escape characters)" +msgstr "(包括转义字符)" + msgid "Sliced Info" msgstr "切片你信息" @@ -5669,7 +5692,7 @@ msgid "Plate Settings" msgstr "盘参数设置" msgid "Prime Tower:" -msgstr "" +msgstr "擦料塔:" msgid "" "A cube printed during a filament change to purge old color and ensure smooth " @@ -9051,6 +9074,21 @@ msgid "" "and should be accurate" msgstr "耗材丝直径被用于计算G-code文件中的挤出量。因此很重要,应尽可能精确。" +msgid "Shrinkage" +msgstr "收缩" + +#, no-c-format, no-boost-format +msgid "" +"Enter the shrinkage percentage that the filament will get after cooling (94% " +"if you measure 94mm instead of 100mm). The part will be scaled in xy to " +"compensate. Only the filament used for the perimeter is taken into account.\n" +"Be sure to allow enough space between objects, as this compensation is done " +"after the checks." +msgstr "" +"输入耗材冷却后将会产生的收缩百分比(如果测量值为94毫米而不是100毫米,则为" +"94%)。零件将在XY方向上缩放以进行补偿。仅考虑用于外周的耗材。 \n" +"请确保对象之间有足够的空间,因为补偿是在检查之后进行的。" + msgid "Density" msgstr "密度" @@ -9966,7 +10004,7 @@ msgid "Direct drive" msgstr "直接驱动" msgid "Bowden" -msgstr "" +msgstr "远程" msgid "Extra length on restart" msgstr "启动时额外长度" @@ -10433,8 +10471,8 @@ msgid "" "threshold." msgstr "将会为悬垂角度低于阈值的模型表面生成支撑。" -msgid "Tree support branch angle" -msgstr "树状支撑分支角度" +msgid "Branch angle" +msgstr "分支角度" msgid "" "This setting determines the maximum overhang angle that t he branches of " @@ -10444,19 +10482,31 @@ msgstr "" "此设置确定了允许树状支撑的最大悬垂角度。如果角度增加,可以更水平地打印分支," "使它们可以到达更远的地方。" -msgid "Tree support branch distance" -msgstr "树状支撑分支距离" +msgid "Branch distance" +msgstr "分支距离" msgid "" "This setting determines the distance between neighboring tree support nodes." msgstr "此设置确定了树状支撑的相邻节点之间的距离。" -msgid "Tree support branch diameter" -msgstr "树状支撑分支直径" +msgid "Branch diameter" +msgstr "分支直径" msgid "This setting determines the initial diameter of support nodes." msgstr "此设置确定了树状支撑节点的初始直径。" +msgid "Branch diameter angle" +msgstr "分支直径角度" + +msgid "" +"The angle of the branches' diameter as they gradually become thicker towards " +"the bottom. An angle of 0 will cause the branches to have uniform thickness " +"over their length. A bit of an angle can increase stability of the tree " +"support." +msgstr "" +"树枝向底部逐渐变粗时的直径角度。角度为 0 会使树枝在整个长度上粗细一致。稍大一" +"点的角度可以增加树状支撑的稳定性。" + msgid "Support wall loops" msgstr "支撑外墙层数" @@ -12064,7 +12114,7 @@ msgid "Please select a type you want to export" msgstr "请选择一个你想导出的类型" msgid "Failed to create temporary folder, please try Export Configs again." -msgstr "" +msgstr "无法创建临时文件夹,请再次尝试导出配置。" msgid "Edit Filament" msgstr "编辑材料" diff --git a/bbs_test_tools/bbs_gcode_checker/GCodeChecker.cpp b/bbs_test_tools/bbs_gcode_checker/GCodeChecker.cpp index 2b3163dd3d..929c5ce24f 100644 --- a/bbs_test_tools/bbs_gcode_checker/GCodeChecker.cpp +++ b/bbs_test_tools/bbs_gcode_checker/GCodeChecker.cpp @@ -17,6 +17,8 @@ const std::string Extrusion_Role_Tag = " FEATURE: "; const std::string Width_Tag = " LINE_WIDTH: "; const std::string Wipe_Start_Tag = " WIPE_START"; const std::string Wipe_End_Tag = " WIPE_END"; +const std::string Wipe_Tower_Start_Tag = " WIPE_TOWER_START"; +const std::string Wipe_Tower_End_Tag = " WIPE_TOWER_END"; const std::string Layer_Change_Tag = " CHANGE_LAYER"; const std::string Height_Tag = " LAYER_HEIGHT: "; const std::string filament_flow_ratio_tag = " filament_flow_ratio"; @@ -131,6 +133,12 @@ GCodeCheckResult GCodeChecker::parse_comment(GCodeLine& line) m_wiping = true; } else if (starts_with(comment, Wipe_End_Tag)) { m_wiping = false; + } + else if (starts_with(comment, Wipe_Tower_Start_Tag)) { + is_wipe_tower = true; + } + else if (starts_with(comment, Wipe_Tower_End_Tag)) { + is_wipe_tower = false; } else if (starts_with(comment, Height_Tag)) { std::string str = comment.substr(Height_Tag.size()); if (!parse_double_from_str(str, m_height)) { @@ -417,20 +425,31 @@ GCodeCheckResult GCodeChecker::parse_G92(GCodeLine& gcode_line) return GCodeCheckResult::ParseFailed; } - if (gcode_line.has(X)) + bool any_found = false; + if (gcode_line.has(X)){ m_origin[X] = m_end_position[X] - gcode_line.get(X); + any_found = true; + } - if (gcode_line.has(Y)) + if (gcode_line.has(Y)){ m_origin[Y] = m_end_position[Y] - gcode_line.get(Y); + any_found = true; + } - if (gcode_line.has(Z)) + if (gcode_line.has(Z)){ m_origin[Z] = m_end_position[Z] - gcode_line.get(Z); + any_found = true; + } - if (gcode_line.has(E)) + if (gcode_line.has(E)){ m_end_position[E] = gcode_line.get(E); + any_found = true; + } - for (unsigned char a = X; a <= E; ++a) { - m_origin[a] = m_end_position[a]; + if (!any_found) { + for (unsigned char a = X; a <= E; ++a) { + m_origin[a] = m_end_position[a]; + } } return GCodeCheckResult::Success; @@ -512,10 +531,10 @@ GCodeCheckResult GCodeChecker::parse_M1020(const GCodeLine& gcode_line) return GCodeCheckResult::ParseFailed; } } - else - { + else + { std::cout << "Missing 'S' character in the G-code line!" << std::endl; - return GCodeCheckResult::ParseFailed; + return GCodeCheckResult::ParseFailed; } } @@ -643,15 +662,19 @@ GCodeCheckResult GCodeChecker::check_G0_G1_width(const GCodeLine& line) std::array target = { m_end_position[X], m_end_position[Y], m_end_position[Z] }; bool is_bridge = m_role == erOverhangPerimeter || m_role == erBridgeInfill; - if (!is_bridge) { + if (!is_bridge && !is_wipe_tower) { double real_height = m_height; - if (line.has(Z) && has_scarf_joint_seam && line.get(Z) != 0) - { - if (line.get(Z) == z_height) - { - return GCodeCheckResult::Success; - } - real_height = line.get(Z) - (z_height - m_height); + if (line.has(Z) && has_scarf_joint_seam && line.get(Z) != 0) + { + if (line.get(Z) == z_height) + { + return GCodeCheckResult::Success; + } + if (line.get(Z) && line.get(E)) + { + return GCodeCheckResult::Success; + } + real_height = line.get(Z) - (z_height - m_height); } double width_real = calculate_G1_width(source, target, delta_pos[E], real_height, is_bridge); if (fabs(width_real - m_width) > WIDTH_THRESHOLD) { diff --git a/bbs_test_tools/bbs_gcode_checker/GCodeChecker.h b/bbs_test_tools/bbs_gcode_checker/GCodeChecker.h index 72ea23b17b..29aa30d5a5 100644 --- a/bbs_test_tools/bbs_gcode_checker/GCodeChecker.h +++ b/bbs_test_tools/bbs_gcode_checker/GCodeChecker.h @@ -219,6 +219,7 @@ class GCodeChecker { std::vector nozzle_temperature; std::vector nozzle_temperature_initial_layer; bool has_scarf_joint_seam = false; + bool is_wipe_tower = false; }; } diff --git a/linux.d/fedora b/linux.d/fedora index dd48349a30..8a9553919e 100644 --- a/linux.d/fedora +++ b/linux.d/fedora @@ -35,6 +35,9 @@ REQUIRED_DEV_PACKAGES=( wget libcurl-devel libquadmath-devel + nasm + yasm + x264-devel ) if [[ -n "$UPDATE_LIB" ]] @@ -52,6 +55,8 @@ then done if [ -n "${NEEDED_PKGS}" ]; then + sudo dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm + sudo dnf -y update sudo dnf install -y ${NEEDED_PKGS} fi echo -e "done\n" diff --git a/resources/i18n/cs/BambuStudio.mo b/resources/i18n/cs/BambuStudio.mo index 8bdf52c47c..3333fd0d4a 100644 Binary files a/resources/i18n/cs/BambuStudio.mo and b/resources/i18n/cs/BambuStudio.mo differ diff --git a/resources/i18n/de/BambuStudio.mo b/resources/i18n/de/BambuStudio.mo index fb6ceab6b0..ff02269d20 100644 Binary files a/resources/i18n/de/BambuStudio.mo and b/resources/i18n/de/BambuStudio.mo differ diff --git a/resources/i18n/en/BambuStudio.mo b/resources/i18n/en/BambuStudio.mo index 5c493c9814..735b3f1ffd 100644 Binary files a/resources/i18n/en/BambuStudio.mo and b/resources/i18n/en/BambuStudio.mo differ diff --git a/resources/i18n/es/BambuStudio.mo b/resources/i18n/es/BambuStudio.mo index 643ca318d7..5b459b7b22 100644 Binary files a/resources/i18n/es/BambuStudio.mo and b/resources/i18n/es/BambuStudio.mo differ diff --git a/resources/i18n/fr/BambuStudio.mo b/resources/i18n/fr/BambuStudio.mo index 7f3be961e8..b092a4885e 100644 Binary files a/resources/i18n/fr/BambuStudio.mo and b/resources/i18n/fr/BambuStudio.mo differ diff --git a/resources/i18n/hu/BambuStudio.mo b/resources/i18n/hu/BambuStudio.mo index a8df39a091..7885de4513 100644 Binary files a/resources/i18n/hu/BambuStudio.mo and b/resources/i18n/hu/BambuStudio.mo differ diff --git a/resources/i18n/it/BambuStudio.mo b/resources/i18n/it/BambuStudio.mo index e0f4f75fd2..5f9807a9bb 100644 Binary files a/resources/i18n/it/BambuStudio.mo and b/resources/i18n/it/BambuStudio.mo differ diff --git a/resources/i18n/ja/BambuStudio.mo b/resources/i18n/ja/BambuStudio.mo index dfc9cfc449..d58c3cddc5 100644 Binary files a/resources/i18n/ja/BambuStudio.mo and b/resources/i18n/ja/BambuStudio.mo differ diff --git a/resources/i18n/ko/BambuStudio.mo b/resources/i18n/ko/BambuStudio.mo index dc2abc259c..486e76d343 100644 Binary files a/resources/i18n/ko/BambuStudio.mo and b/resources/i18n/ko/BambuStudio.mo differ diff --git a/resources/i18n/nl/BambuStudio.mo b/resources/i18n/nl/BambuStudio.mo index a29295d6a0..67ca2e4afd 100644 Binary files a/resources/i18n/nl/BambuStudio.mo and b/resources/i18n/nl/BambuStudio.mo differ diff --git a/resources/i18n/pl/BambuStudio.mo b/resources/i18n/pl/BambuStudio.mo index 370b51ac7e..2dfaefa011 100644 Binary files a/resources/i18n/pl/BambuStudio.mo and b/resources/i18n/pl/BambuStudio.mo differ diff --git a/resources/i18n/pt-BR/BambuStudio.mo b/resources/i18n/pt-BR/BambuStudio.mo index e42d014b79..685a2e20e1 100644 Binary files a/resources/i18n/pt-BR/BambuStudio.mo and b/resources/i18n/pt-BR/BambuStudio.mo differ diff --git a/resources/i18n/pt_br/BambuStudio.mo b/resources/i18n/pt_br/BambuStudio.mo index e42d014b79..685a2e20e1 100644 Binary files a/resources/i18n/pt_br/BambuStudio.mo and b/resources/i18n/pt_br/BambuStudio.mo differ diff --git a/resources/i18n/ru/BambuStudio.mo b/resources/i18n/ru/BambuStudio.mo index 32818e3118..4f600dbfac 100644 Binary files a/resources/i18n/ru/BambuStudio.mo and b/resources/i18n/ru/BambuStudio.mo differ diff --git a/resources/i18n/sv/BambuStudio.mo b/resources/i18n/sv/BambuStudio.mo index 16d0e3b9da..dc6fb92f83 100644 Binary files a/resources/i18n/sv/BambuStudio.mo and b/resources/i18n/sv/BambuStudio.mo differ diff --git a/resources/i18n/tr/BambuStudio.mo b/resources/i18n/tr/BambuStudio.mo index f6040d5658..0cdd51eb8f 100644 Binary files a/resources/i18n/tr/BambuStudio.mo and b/resources/i18n/tr/BambuStudio.mo differ diff --git a/resources/i18n/uk/BambuStudio.mo b/resources/i18n/uk/BambuStudio.mo index 5ddb727724..2726ec48d4 100644 Binary files a/resources/i18n/uk/BambuStudio.mo and b/resources/i18n/uk/BambuStudio.mo differ diff --git a/resources/i18n/zh_cn/BambuStudio.mo b/resources/i18n/zh_cn/BambuStudio.mo index 8a957bf27a..46cc13da43 100644 Binary files a/resources/i18n/zh_cn/BambuStudio.mo and b/resources/i18n/zh_cn/BambuStudio.mo differ diff --git a/resources/images/step_mesh_info.svg b/resources/images/step_mesh_info.svg new file mode 100644 index 0000000000..c12b253a53 --- /dev/null +++ b/resources/images/step_mesh_info.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/resources/profiles/BBL.json b/resources/profiles/BBL.json index e9c36880d0..9693353800 100644 --- a/resources/profiles/BBL.json +++ b/resources/profiles/BBL.json @@ -1,7 +1,7 @@ { "name": "Bambulab", "url": "http://www.bambulab.com/Parameters/vendor/BBL.json", - "version": "01.10.00.10", + "version": "01.10.00.16", "force_update": "0", "description": "the initial version of BBL configurations", "machine_model_list": [ @@ -793,6 +793,10 @@ "name": "Generic TPU for AMS @base", "sub_path": "filament/Generic TPU for AMS @base.json" }, + { + "name": "Bambu TPU for AMS @base", + "sub_path": "filament/Bambu TPU for AMS @base.json" + }, { "name": "Bambu PETG Basic @base", "sub_path": "filament/Bambu PETG Basic @base.json" @@ -1785,6 +1789,22 @@ "name": "Generic TPU for AMS @BBL A1M", "sub_path": "filament/Generic TPU for AMS @BBL A1M.json" }, + { + "name": "Bambu TPU for AMS @BBL X1C", + "sub_path": "filament/Bambu TPU for AMS @BBL X1C.json" + }, + { + "name": "Bambu TPU for AMS @BBL P1P", + "sub_path": "filament/Bambu TPU for AMS @BBL P1P.json" + }, + { + "name": "Bambu TPU for AMS @BBL A1", + "sub_path": "filament/Bambu TPU for AMS @BBL A1.json" + }, + { + "name": "Bambu TPU for AMS @BBL A1M", + "sub_path": "filament/Bambu TPU for AMS @BBL A1M.json" + }, { "name": "Bambu PETG Basic @BBL X1C", "sub_path": "filament/Bambu PETG Basic @BBL X1C.json" diff --git a/resources/profiles/BBL/filament/Bambu ASA-Aero @base.json b/resources/profiles/BBL/filament/Bambu ASA-Aero @base.json index c7493a74aa..4cfe7de309 100644 --- a/resources/profiles/BBL/filament/Bambu ASA-Aero @base.json +++ b/resources/profiles/BBL/filament/Bambu ASA-Aero @base.json @@ -56,5 +56,8 @@ ], "slow_down_layer_time": [ "5" + ], + "filament_scarf_seam_type": [ + "none" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu PLA Aero @base.json b/resources/profiles/BBL/filament/Bambu PLA Aero @base.json index 58e13bc519..9c6525dd5d 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Aero @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Aero @base.json @@ -33,6 +33,9 @@ "nozzle_temperature_range_low": [ "210" ], + "filament_scarf_seam_type": [ + "none" + ], "filament_start_gcode": [ "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" ] diff --git a/resources/profiles/BBL/filament/Bambu PLA Metal @base.json b/resources/profiles/BBL/filament/Bambu PLA Metal @base.json index c17f6cfc82..986613c9ae 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Metal @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Metal @base.json @@ -18,6 +18,9 @@ "filament_vendor": [ "Bambu Lab" ], + "filament_scarf_seam_type": [ + "none" + ], "filament_start_gcode": [ "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" ] diff --git a/resources/profiles/BBL/filament/Bambu PLA Tough @base.json b/resources/profiles/BBL/filament/Bambu PLA Tough @base.json index 24168d6f13..6268e9d97e 100644 --- a/resources/profiles/BBL/filament/Bambu PLA Tough @base.json +++ b/resources/profiles/BBL/filament/Bambu PLA Tough @base.json @@ -17,6 +17,9 @@ "filament_vendor": [ "Bambu Lab" ], + "filament_scarf_seam_type": [ + "none" + ], "filament_start_gcode": [ "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" ] diff --git a/resources/profiles/BBL/filament/Bambu PPS-CF @base.json b/resources/profiles/BBL/filament/Bambu PPS-CF @base.json index c981455d42..cef49fe98d 100644 --- a/resources/profiles/BBL/filament/Bambu PPS-CF @base.json +++ b/resources/profiles/BBL/filament/Bambu PPS-CF @base.json @@ -24,9 +24,6 @@ "filament_vendor": [ "Bambu Lab" ], - "nozzle_temperature_range_high": [ - "350" - ], "nozzle_temperature_range_low": [ "310" ], diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA @base.json b/resources/profiles/BBL/filament/Bambu Support For PLA @base.json index 0d35756cd0..156b0d77ee 100644 --- a/resources/profiles/BBL/filament/Bambu Support For PLA @base.json +++ b/resources/profiles/BBL/filament/Bambu Support For PLA @base.json @@ -33,6 +33,9 @@ "slow_down_layer_time": [ "8" ], + "filament_scarf_seam_type": [ + "none" + ], "filament_start_gcode": [ "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" ] diff --git a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @base.json b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @base.json index ea36a6aee2..b5372827ee 100644 --- a/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @base.json +++ b/resources/profiles/BBL/filament/Bambu Support For PLA-PETG @base.json @@ -50,5 +50,8 @@ ], "textured_plate_temp_initial_layer": [ "60" + ], + "filament_scarf_seam_type": [ + "none" ] } \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu Support G @base.json b/resources/profiles/BBL/filament/Bambu Support G @base.json index f38ddd1ba1..7a60603cae 100644 --- a/resources/profiles/BBL/filament/Bambu Support G @base.json +++ b/resources/profiles/BBL/filament/Bambu Support G @base.json @@ -30,6 +30,9 @@ "required_nozzle_HRC": [ "3" ], + "filament_scarf_seam_type": [ + "none" + ], "slow_down_layer_time": [ "6" ] diff --git a/resources/profiles/BBL/filament/Bambu Support W @base.json b/resources/profiles/BBL/filament/Bambu Support W @base.json index ddf138a54f..b9db9fd894 100644 --- a/resources/profiles/BBL/filament/Bambu Support W @base.json +++ b/resources/profiles/BBL/filament/Bambu Support W @base.json @@ -33,6 +33,9 @@ "slow_down_layer_time": [ "8" ], + "filament_scarf_seam_type": [ + "none" + ], "filament_start_gcode": [ "; filament start gcode\n{if (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" ] diff --git a/resources/profiles/BBL/filament/Bambu Support for ABS @base.json b/resources/profiles/BBL/filament/Bambu Support for ABS @base.json index ea435974c0..3bd74d4d96 100644 --- a/resources/profiles/BBL/filament/Bambu Support for ABS @base.json +++ b/resources/profiles/BBL/filament/Bambu Support for ABS @base.json @@ -30,6 +30,9 @@ "slow_down_layer_time": [ "12" ], + "filament_scarf_seam_type": [ + "none" + ], "temperature_vitrification": [ "90" ] diff --git a/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1.json b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1.json new file mode 100644 index 0000000000..52ed49cee1 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Bambu TPU for AMS @BBL A1", + "inherits": "Bambu TPU for AMS @base", + "from": "system", + "setting_id": "GFSU02_02", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 0.4 nozzle", + "Bambu Lab A1 0.6 nozzle", + "Bambu Lab A1 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1M.json b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1M.json new file mode 100644 index 0000000000..bff83af130 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL A1M.json @@ -0,0 +1,13 @@ +{ + "type": "filament", + "name": "Bambu TPU for AMS @BBL A1M", + "inherits": "Bambu TPU for AMS @base", + "from": "system", + "setting_id": "GFSU02_03", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab A1 mini 0.4 nozzle", + "Bambu Lab A1 mini 0.6 nozzle", + "Bambu Lab A1 mini 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL P1P.json b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL P1P.json new file mode 100644 index 0000000000..3c8c7dad73 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL P1P.json @@ -0,0 +1,16 @@ +{ + "type": "filament", + "name": "Bambu TPU for AMS @BBL P1P", + "inherits": "Bambu TPU for AMS @base", + "from": "system", + "setting_id": "GFSU02_01", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab P1P 0.4 nozzle", + "Bambu Lab P1P 0.6 nozzle", + "Bambu Lab P1P 0.8 nozzle", + "Bambu Lab X1 0.4 nozzle", + "Bambu Lab X1 0.6 nozzle", + "Bambu Lab X1 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL X1C.json b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL X1C.json new file mode 100644 index 0000000000..8c7dac662f --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu TPU for AMS @BBL X1C.json @@ -0,0 +1,19 @@ +{ + "type": "filament", + "name": "Bambu TPU for AMS @BBL X1C", + "inherits": "Bambu TPU for AMS @base", + "from": "system", + "setting_id": "GFSU02_00", + "instantiation": "true", + "compatible_printers": [ + "Bambu Lab X1 Carbon 0.4 nozzle", + "Bambu Lab X1 Carbon 0.6 nozzle", + "Bambu Lab X1 Carbon 0.8 nozzle", + "Bambu Lab X1E 0.4 nozzle", + "Bambu Lab X1E 0.8 nozzle", + "Bambu Lab X1E 0.6 nozzle", + "Bambu Lab P1S 0.4 nozzle", + "Bambu Lab P1S 0.6 nozzle", + "Bambu Lab P1S 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Bambu TPU for AMS @base.json b/resources/profiles/BBL/filament/Bambu TPU for AMS @base.json new file mode 100644 index 0000000000..09d4296506 --- /dev/null +++ b/resources/profiles/BBL/filament/Bambu TPU for AMS @base.json @@ -0,0 +1,54 @@ +{ + "type": "filament", + "name": "Bambu TPU for AMS @base", + "inherits": "fdm_filament_tpu", + "from": "system", + "filament_id": "GFU02", + "instantiation": "false", + "description": "If you are to print a kind of soft TPU, please don't slice with this profile, and it is only for TPU that has high enough hardness (not less than 55D) and is compatible with the AMS. To get better printing quality, please refer to this wiki: TPU printing guide.", + "fan_cooling_layer_time": [ + "30" + ], + "fan_max_speed": [ + "50" + ], + "fan_min_speed": [ + "20" + ], + "filament_cost": [ + "38.99" + ], + "filament_density": [ + "1.26" + ], + "filament_flow_ratio": [ + "0.97" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "filament_type": [ + "TPU-AMS" + ], + "filament_vendor": [ + "Bambu Lab" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "nozzle_temperature_range_high": [ + "240" + ], + "nozzle_temperature_range_low": [ + "220" + ], + "overhang_fan_threshold": [ + "25%" + ], + "slow_down_layer_time": [ + "10" + ] +} \ No newline at end of file diff --git a/resources/profiles/BBL/filament/Generic PPS-CF @base.json b/resources/profiles/BBL/filament/Generic PPS-CF @base.json index baabc2fd80..5fc5d6e407 100644 --- a/resources/profiles/BBL/filament/Generic PPS-CF @base.json +++ b/resources/profiles/BBL/filament/Generic PPS-CF @base.json @@ -21,9 +21,6 @@ "filament_type": [ "PPS-CF" ], - "nozzle_temperature_range_high": [ - "350" - ], "nozzle_temperature_range_low": [ "310" ], diff --git a/resources/profiles/BBL/filament/fdm_filament_common.json b/resources/profiles/BBL/filament/fdm_filament_common.json index b237688ab8..52bc73c69a 100644 --- a/resources/profiles/BBL/filament/fdm_filament_common.json +++ b/resources/profiles/BBL/filament/fdm_filament_common.json @@ -174,6 +174,9 @@ "filament_scarf_length":[ "10" ], + "filament_shrink": [ + "100%" + ], "compatible_printers": [], "filament_start_gcode": [ "; Filament gcode\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" diff --git a/resources/profiles/BBL/filament/fdm_filament_pla.json b/resources/profiles/BBL/filament/fdm_filament_pla.json index 66033116bc..96dabfd036 100644 --- a/resources/profiles/BBL/filament/fdm_filament_pla.json +++ b/resources/profiles/BBL/filament/fdm_filament_pla.json @@ -82,6 +82,18 @@ "additional_cooling_fan_speed": [ "70" ], + "filament_scarf_seam_type": [ + "all" + ], + "filament_scarf_height":[ + "10%" + ], + "filament_scarf_gap":[ + "15%" + ], + "filament_scarf_length":[ + "10" + ], "filament_start_gcode": [ "; filament start gcode\n{if (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S255\n{elsif(bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S180\n{endif}\n\n{if activate_air_filtration[current_extruder] && support_air_filtration}\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \n{endif}" ] diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 0.4 nozzle.json index b198ff4dda..0e07fa64e0 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 0.4 nozzle.json @@ -16,6 +16,7 @@ "Bambu PLA Basic @BBL A1" ], "default_print_profile": "0.20mm Standard @BBL A1", + "enable_long_retraction_when_cut": "2", "extruder_clearance_height_to_lid": "256", "extruder_clearance_height_to_rod": "25", "extruder_clearance_max_radius": "73", diff --git a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json index 2608b6b731..9833cf02eb 100644 --- a/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab A1 mini 0.4 nozzle.json @@ -17,6 +17,7 @@ "Bambu PLA Basic @BBL A1M" ], "default_print_profile": "0.20mm Standard @BBL A1M", + "enable_long_retraction_when_cut": "2", "extruder_clearance_height_to_lid": "180", "extruder_clearance_height_to_rod": "25", "extruder_clearance_max_radius": "73", diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json index 9c1127eec4..2fa72d13f9 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.2 nozzle.json @@ -30,5 +30,5 @@ "Bambu Lab X1E 0.2 nozzle", "Bambu Lab A1 0.2 nozzle" ], - "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240528 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n" + "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20241023 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n;===== purge line to wipe the nozzle ============================\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X18.0 Y2.5 Z0.8 F18000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG1 Z0.2\nG0 X239 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y12 E0.7 F{outer_wall_volumetric_speed/(0.3*0.5)/4* 60}\n" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json index ec5a3b1ea9..5d5d0ea81a 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.6 nozzle.json @@ -34,5 +34,5 @@ "Bambu Lab X1E 0.6 nozzle", "Bambu Lab A1 0.6 nozzle" ], - "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20240528 =====================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n" + "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20241023 =====================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n;===== purge line to wipe the nozzle ============================\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X18.0 Y2.5 Z0.8 F18000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG1 Z0.2\nG0 X239 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y12 E0.7 F{outer_wall_volumetric_speed/(0.3*0.5)/4* 60}\n" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json index fd1aa6bf82..e9002fed0c 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 0.8 nozzle.json @@ -34,5 +34,5 @@ "Bambu Lab X1E 0.8 nozzle", "Bambu Lab A1 0.8 nozzle" ], - "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240528 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n" + "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20241023 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n;===== purge line to wipe the nozzle ============================\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X18.0 Y2.5 Z0.8 F18000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG1 Z0.2\nG0 X239 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y12 E0.7 F{outer_wall_volumetric_speed/(0.3*0.5)/4* 60}\n" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json index a0b54160a5..fc3fbaced3 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.2 nozzle.json @@ -31,5 +31,5 @@ "Bambu Lab X1E 0.2 nozzle", "Bambu Lab A1 0.2 nozzle" ], - "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240528 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n" + "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20241023 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y11 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E0.700\nG0 X231 E0.700 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n T1000\n\n G0 F1200.0 X231 Y15 Z0.2 E0.741\n G0 F1200.0 X226 Y15 Z0.2 E0.275\n G0 F1200.0 X226 Y8 Z0.2 E0.384\n G0 F1200.0 X216 Y8 Z0.2 E0.549\n G0 F1200.0 X216 Y1.5 Z0.2 E0.357\n\n G0 X48.0 E12.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E0.92 F1200.0\n G0 X35.0 Y6.0 E1.03 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n\t{if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.160\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.080\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E14.3 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.080 K0.160\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E1.24726 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.08 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.08}\n M623\n\n G1 X140.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.31181 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n;===== purge line to wipe the nozzle ============================\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X18.0 Y2.5 Z0.8 F18000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG1 Z0.2\nG0 X239 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y12 E0.7 F{outer_wall_volumetric_speed/(0.3*0.5)/4* 60}\n" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json index 2dffc6f94c..02326f033f 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.6 nozzle.json @@ -33,5 +33,5 @@ "Bambu Lab X1E 0.6 nozzle", "Bambu Lab A1 0.6 nozzle" ], - "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20240528 =====================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n" + "machine_start_gcode": ";===== machine: X1 =========================\n;===== date: 20241023 =====================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{+0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y1.0 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X240 E25 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y15 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\nG0 X239.5\nG0 E0.2\nG0 Y1.5 E1.166\nG0 X231 E1.166 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.333\n G0 F1200.0 X226 Y15 Z0.2 E0.495\n G0 F1200.0 X226 Y8 Z0.2 E0.691\n G0 F1200.0 X216 Y8 Z0.2 E0.988\n G0 F1200.0 X216 Y1.5 Z0.2 E0.642\n\n G0 X48.0 E20.56 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.56 F1200.0\n G0 X35.0 Y6.0 E1.75 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X185.000 E16.9 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.030\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.015\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.9) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X18 E23.9 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.015 K0.030\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.25000 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X70.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X75.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X80.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X85.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X90.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X95.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X100.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X105.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X110.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X115.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X120.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X125.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X130.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X135.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.015 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*0.015}\n M623\n\n G1 X140.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X145.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X150.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X155.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X160.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X165.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X170.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X175.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X180.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X185.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X190.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X195.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X200.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X205.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X210.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X215.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G1 X220.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5)/ 4 * 60}\n G1 X225.000 E0.56250 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n;===== purge line to wipe the nozzle ============================\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X18.0 Y2.5 Z0.8 F18000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG1 Z0.2\nG0 X239 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y12 E0.7 F{outer_wall_volumetric_speed/(0.3*0.5)/4* 60}\n" } \ No newline at end of file diff --git a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json index 4e22e6bc78..2ccd165cb6 100644 --- a/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json +++ b/resources/profiles/BBL/machine/Bambu Lab X1 Carbon 0.8 nozzle.json @@ -33,5 +33,5 @@ "Bambu Lab X1E 0.8 nozzle", "Bambu Lab A1 0.8 nozzle" ], - "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20240528 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X128.0 Y253.0 Z0.2 F24000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG0 X253 E6.4 F{outer_wall_volumetric_speed/(0.3*0.6) * 60}\nG0 Y128 E6.4\nG0 X252.5\nG0 Y252.5 E6.4\nG0 X128 E6.4\n" + "machine_start_gcode": ";===== machine: X1 ====================\n;===== date: 20241023 ==================\n;===== start printer sound ================\nM17\nM400 S1\nM1006 S1\nM1006 A0 B10 L100 C37 D10 M60 E37 F10 N60\nM1006 A0 B10 L100 C41 D10 M60 E41 F10 N60\nM1006 A0 B10 L100 C44 D10 M60 E44 F10 N60\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N60\nM1006 A46 B10 L100 C43 D10 M70 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A43 B10 L100 C0 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A41 B10 L100 C0 D10 M100 E41 F10 N100\nM1006 A44 B10 L100 C0 D10 M100 E44 F10 N100\nM1006 A49 B10 L100 C0 D10 M100 E49 F10 N100\nM1006 A0 B10 L100 C0 D10 M100 E0 F10 N100\nM1006 A48 B10 L100 C44 D10 M60 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A44 B10 L100 C0 D10 M90 E39 F10 N100\nM1006 A0 B10 L100 C0 D10 M60 E0 F10 N100\nM1006 A46 B10 L100 C43 D10 M60 E39 F10 N100\nM1006 W\n;===== turn on the HB fan =================\nM104 S75 ;set extruder temp to turn on the HB fan and prevent filament oozing from nozzle\n;===== reset machine status =================\nM290 X40 Y40 Z2.6666666\nG91\nM17 Z0.4 ; lower the z-motor current\nG380 S2 Z30 F300 ; G380 is same as G38; lower the hotbed , to prevent the nozzle is below the hotbed\nG380 S2 Z-25 F300 ;\nG1 Z5 F300;\nG90\nM17 X1.2 Y1.2 Z0.75 ; reset motor current to default\nM960 S5 P1 ; turn on logo lamp\nG90\nM220 S100 ;Reset Feedrate\nM221 S100 ;Reset Flowrate\nM73.2 R1.0 ;Reset left time magnitude\nM1002 set_gcode_claim_speed_level : 5\nM221 X0 Y0 Z0 ; turn off soft endstop to prevent protential logic problem\nG29.1 Z{0.0} ; clear z-trim value first\nM204 S10000 ; init ACC set to 10m/s^2\n\n;===== heatbed preheat ====================\nM1002 gcode_claim_action : 2\nM140 S[bed_temperature_initial_layer_single] ;set bed temp\nM190 S[bed_temperature_initial_layer_single] ;wait for bed temp\n\n{if scan_first_layer}\n;=========register first layer scan=====\nM977 S1 P60\n{endif}\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\n;===== prepare print temperature and material ==========\nM104 S[nozzle_temperature_initial_layer] ;set extruder temp\nG91\nG0 Z10 F1200\nG90\nG28 X\nM975 S1 ; turn on\nG1 X60 F12000\nG1 Y245\nG1 Y265 F3000\nM620 M\nM620 S[initial_no_support_extruder]A ; switch material if AMS exist\n M109 S[nozzle_temperature_initial_layer]\n G1 X120 F12000\n\n G1 X20 Y50 F12000\n G1 Y-3\n T[initial_no_support_extruder]\n G1 X54 F12000\n G1 Y265\n M400\nM621 S[initial_no_support_extruder]A\nM620.1 E F{filament_max_volumetric_speed[initial_no_support_extruder]/2.4053*60} T{nozzle_temperature_range_high[initial_no_support_extruder]}\n\n\nM412 S1 ; ===turn on filament runout detection===\n\nM109 S250 ;set nozzle to common flush temp\nM106 P1 S0\nG92 E0\nG1 E50 F200\nM400\nM104 S[nozzle_temperature_initial_layer]\nG92 E0\nG1 E50 F200\nM400\nM106 P1 S255\nG92 E0\nG1 E5 F300\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20} ; drop nozzle temp, make filament shink a bit\nG92 E0\nG1 E-0.5 F300\n\nG1 X70 F9000\nG1 X76 F15000\nG1 X65 F15000\nG1 X76 F15000\nG1 X65 F15000; shake to put down garbage\nG1 X80 F6000\nG1 X95 F15000\nG1 X80 F15000\nG1 X165 F15000; wipe and shake\nM400\nM106 P1 S0\n;===== prepare print temperature and material end =====\n\n\n;===== wipe nozzle ===============================\nM1002 gcode_claim_action : 14\nM975 S1\nM106 S255\nG1 X65 Y230 F18000\nG1 Y264 F6000\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]-20}\nG1 X100 F18000 ; first wipe mouth\n\nG0 X135 Y253 F20000 ; move to exposed steel surface edge\nG28 Z P0 T300; home z with low precision,permit 300deg temperature\nG29.2 S0 ; turn off ABL\nG0 Z5 F20000\n\nG1 X60 Y265\nG92 E0\nG1 E-0.5 F300 ; retrack more\nG1 X100 F5000; second wipe mouth\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X100 F5000\nG1 X70 F15000\nG1 X90 F5000\nG0 X128 Y261 Z-1.5 F20000 ; move to exposed steel surface and stop the nozzle\nM104 S140 ; set temp down to heatbed acceptable\nM106 S255 ; turn on fan (G28 has turn off fan)\n\nM221 S; push soft endstop status\nM221 Z0 ;turn off Z axis endstop\nG0 Z0.5 F20000\nG0 X125 Y259.5 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y262.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y260.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.5\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 Z0.5 F20000\nG0 X125 Y261.0\nG0 Z-1.01\nG0 X131 F211\nG0 X124\nG0 X128\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\nG2 I0.5 J0 F300\n\nM109 S140 ; wait nozzle temp down to heatbed acceptable\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\nG2 I0.5 J0 F3000\n\nM221 R; pop softend status\nG1 Z10 F1200\nM400\nG1 Z10\nG1 F30000\nG1 X128 Y128\nG29.2 S1 ; turn on ABL\n;G28 ; home again after hard wipe mouth\nM106 S0 ; turn off fan , too noisy\n;===== wipe nozzle end ================================\n\n;===== check scanner clarity ===========================\nG1 X128 Y128 F24000\nG28 Z P0\nM972 S5 P0\nG1 X230 Y15 F24000\n;===== check scanner clarity end =======================\n\n;===== bed leveling ==================================\nM1002 judge_flag g29_before_print_flag\nM622 J1\n\n M1002 gcode_claim_action : 1\n G29 A X{first_layer_print_min[0]} Y{first_layer_print_min[1]} I{first_layer_print_size[0]} J{first_layer_print_size[1]}\n M400\n M500 ; save cali data\n\nM623\n;===== bed leveling end ================================\n\n;===== home after wipe mouth============================\nM1002 judge_flag g29_before_print_flag\nM622 J0\n\n M1002 gcode_claim_action : 13\n G28\n\nM623\n;===== home after wipe mouth end =======================\n\nM975 S1 ; turn on vibration supression\n\n;=============turn on fans to prevent PLA jamming=================\n{if filament_type[initial_no_support_extruder]==\"PLA\"}\n {if (bed_temperature[initial_no_support_extruder] >45)||(bed_temperature_initial_layer[initial_no_support_extruder] >45)}\n M106 P3 S180\n {endif};Prevent PLA from jamming\n M142 P1 R35 S40\n{endif}\nM106 P2 S100 ; turn on big fan ,to cool down toolhead\n\nM104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; set extrude temp earlier, to reduce wait time\n\n;===== mech mode fast check============================\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q1 A7 B30 C80 H15 K0\nM974 Q1 S2 P0\n\nG1 X128 Y128 Z10 F20000\nM400 P200\nM970.3 Q0 A7 B30 C90 Q0 H15 K0\nM974 Q0 S2 P0\n\nM975 S1\nG1 F30000\nG1 X230 Y15\nG28 X ; re-home XY\n;===== mech mode fast check============================\n\n{if scan_first_layer}\n;start heatbed scan====================================\nM976 S2 P1\nG90\nG1 X128 Y128 F20000\nM976 S3 P2 ;register void printing detection\n{endif}\n\n;===== nozzle load line ===============================\nM975 S1\nG90\nM83\nT1000\nG1 X18.0 Y0.5 Z0.8 F18000;Move to start position\nM109 S{nozzle_temperature[initial_no_support_extruder]}\nG1 Z0.2\nG0 E2 F300\nG0 X129 E15 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\nG0 X240 E15\nG0 Y11 E1.364 F{outer_wall_volumetric_speed/(0.3*1.0)/ 4 * 60}\nG0 X239.5\nG0 E0.3\nG0 Y1.5 E1.300\nG0 X231 E1.160 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM400\n\n;===== for Textured PEI Plate , lower the nozzle as the nozzle was touching topmost of the texture when homing ==\n;curr_bed_type={curr_bed_type}\n{if curr_bed_type==\"Textured PEI Plate\"}\nG29.1 Z{-0.04} ; for Textured PEI Plate\n{endif}\n\n;===== draw extrinsic para cali paint =================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M1002 gcode_claim_action : 8\n\n G0 F1200.0 X231 Y15 Z0.2 E1.482\n G0 F1200.0 X226 Y15 Z0.2 E0.550\n G0 F1200.0 X226 Y8 Z0.2 E0.768\n G0 F1200.0 X216 Y8 Z0.2 E1.098\n G0 F1200.0 X216 Y1.5 Z0.2 E0.714\n\n G0 X48.0 E25.0 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\n G0 X48.0 Y14 E1.70 F1200.0\n G0 X35.0 Y6.0 E1.90 F1200.0\n\n ;=========== extruder cali extrusion ==================\n T1000\n M83\n {if default_acceleration > 0}\n {if outer_wall_acceleration > 0}\n M204 S[outer_wall_acceleration]\n {else}\n M204 S[default_acceleration]\n {endif}\n {endif}\n G0 X35.000 Y6.000 Z0.300 F30000 E0\n G1 F1500.000 E0.800\n M106 S0 ; turn off fan\n G0 X110.000 E9.35441 F4800\n G0 X185.000 E9.35441 F4800\n G0 X187 Z0\n G1 F1500.000 E-0.800\n G0 Z1\n G0 X180 Z0.3 F18000\n\n M900 L1000.0 M1.0\n M900 K0.020\n G0 X45.000 F30000\n G0 Y8.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.010\n G0 X45.000 F30000\n G0 Y10.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n M400\n\n G0 X45.000 F30000\n M900 K0.000\n G0 X45.000 F30000\n G0 Y12.000 F30000\n G1 F1500.000 E0.800\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 F1500.000 E-0.800\n G1 X183 Z0.15 F30000\n G1 X185\n G1 Z1.0\n G0 Y6.000 F30000 ; move y to clear pos\n G1 Z0.3\n\n G0 X45.000 F30000 ; move to start point\n\nM623 ; end of \"draw extrinsic para cali paint\"\n\nM1002 judge_flag extrude_cali_flag\nM622 J0\n G0 X231 Y1.5 F30000\n G0 X129 E14 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G0 X18 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nM623\n\nM104 S140\n\n\n;=========== laser and rgb calibration ===========\nM400\nM18 E\nM500 R\n\nM973 S3 P14\n\nG1 X120 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nT1100\nG1 X235.0 Y1.0 Z0.3 F18000.0;Move to first extrude line pos\nM400 P100\nM960 S1 P1\nM400 P100\nM973 S6 P0; use auto exposure for horizontal laser by xcam\nM960 S0 P0\n\nG1 X240.0 Y6.0 Z0.3 F18000.0;Move to vertical extrude line pos\nM960 S2 P1\nM400 P100\nM973 S6 P1; use auto exposure for vertical laser by xcam\nM960 S0 P0\n\n;=========== handeye calibration ======================\nM1002 judge_flag extrude_cali_flag\nM622 J1\n\n M973 S3 P1 ; camera start stream\n M400 P500\n M973 S1\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G0 F6000 X228.500 Y4.500 Z0.000\n M960 S0 P1\n M973 S1\n M400 P800\n M971 S6 P0\n M973 S2 P0\n M400 P500\n G0 Z0.000 F12000\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P200\n M971 S5 P1\n M973 S2 P1\n M400 P500\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P3\n G0 Z0.500 F12000\n M960 S0 P0\n M960 S2 P1\n G0 X228.5 Y11.0\n M400 P200\n M971 S5 P4\n M973 S2 P0\n M400 P500\n M960 S0 P0\n M960 S1 P1\n G0 X221.00 Y4.50\n M400 P500\n M971 S5 P2\n M963 S1\n M400 P1500\n M964\n T1100\n G1 Z3 F3000\n\n M400\n M500 ; save cali data\n\n M104 S{nozzle_temperature_initial_layer[initial_no_support_extruder]} ; rise nozzle temp now ,to reduce temp waiting time.\n\n T1100\n M400 P400\n M960 S0 P0\n G0 F30000.000 Y10.000 X65.000 Z0.000\n M400 P400\n M960 S1 P1\n M400 P50\n\n M969 S1 N3 A2000\n G0 F360.000 X181.000 Z0.000\n M980.3 A70.000 B{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60/4} C5.000 D{outer_wall_volumetric_speed/(1.75*1.75/4*3.14)*60} E5.000 F175.000 H1.000 I0.000 J0.010 K0.020\n M400 P100\n G0 F20000\n G0 Z1 ; rise nozzle up\n T1000 ; change to nozzle space\n G0 X45.000 Y4.000 F30000 ; move to test line pos\n M969 S0 ; turn off scanning\n M960 S0 P0\n\n\n G1 Z2 F20000\n T1000\n G0 X45.000 Y4.000 F30000 E0\n M109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\n G0 Z0.3\n G1 F1500.000 E3.600\n G1 X65.000 E2.4945 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X70.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X75.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X80.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X85.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X90.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X95.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X100.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X105.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X110.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X115.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X120.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X125.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X130.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X135.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n\n ; see if extrude cali success, if not ,use default value\n M1002 judge_last_extrude_cali_success\n M622 J0\n M400\n M900 K0.01 M{outer_wall_volumetric_speed/(1.75*1.75/4*3.14) *0.01}\n M623\n\n G1 X140.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X145.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X150.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X155.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X160.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X165.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X170.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X175.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X180.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X185.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X190.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X195.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X200.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X205.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X210.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X215.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n G1 X220.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) / 4 * 60}\n G1 X225.000 E0.6236 F{outer_wall_volumetric_speed/(0.3*1.0) * 60}\n M973 S4\n\nM623\n\n;========turn off light and wait extrude temperature =============\nM1002 gcode_claim_action : 0\nM973 S4 ; turn off scanner\nM400 ; wait all motion done before implement the emprical L parameters\n;M900 L500.0 ; Empirical parameters\nM109 S[nozzle_temperature_initial_layer]\nM960 S1 P0 ; turn off laser\nM960 S2 P0 ; turn off laser\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off big fan\nM106 P3 S0 ; turn off chamber fan\n\nM975 S1 ; turn on mech mode supression\nG90\nM83\nT1000\n;===== purge line to wipe the nozzle ============================\nG1 E{-retraction_length[initial_no_support_extruder]} F1800\nG1 X18.0 Y2.5 Z0.8 F18000.0;Move to start position\nG1 E{retraction_length[initial_no_support_extruder]} F1800\nM109 S{nozzle_temperature_initial_layer[initial_no_support_extruder]}\nG1 Z0.2\nG0 X239 E15 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 Y12 E0.7 F{outer_wall_volumetric_speed/(0.3*0.5)/4* 60}\n" } \ No newline at end of file diff --git a/resources/profiles/Qidi.json b/resources/profiles/Qidi.json index 6de89ee1bc..3f1b5f0665 100644 --- a/resources/profiles/Qidi.json +++ b/resources/profiles/Qidi.json @@ -1,9 +1,13 @@ { "name": "Qidi", - "version": "01.10.00.01", + "version": "01.10.00.02", "force_update": "0", "description": "Qidi configurations", "machine_model_list": [ + { + "name": "Qidi X-Plus 4", + "sub_path": "machine/Qidi X-Plus 4.json" + }, { "name": "Qidi Q1 Pro", "sub_path": "machine/Qidi Q1 Pro.json" @@ -20,15 +24,15 @@ "name": "Qidi X-Smart 3", "sub_path": "machine/Qidi X-Smart 3.json" }, - { + { "name": "Qidi X-Plus", "sub_path": "machine/Qidi X-Plus.json" }, - { + { "name": "Qidi X-Max", "sub_path": "machine/Qidi X-Max.json" }, - { + { "name": "Qidi X-CF Pro", "sub_path": "machine/Qidi X-CF Pro.json" } @@ -110,15 +114,15 @@ "name": "0.12mm Fine @Qidi X3", "sub_path": "process/0.12mm Fine @Qidi X3.json" }, - { + { "name": "0.12mm Fine @Qidi XMPlus", "sub_path": "process/0.12mm Fine @Qidi XPlus.json" }, - { + { "name": "0.12mm Fine @Qidi XMax", "sub_path": "process/0.12mm Fine @Qidi XMax.json" }, - { + { "name": "0.12mm Fine @Qidi XCFPro", "sub_path": "process/0.12mm Fine @Qidi XCFPro.json" }, @@ -139,18 +143,22 @@ "sub_path": "process/0.12mm Fine @Qidi Q1 Pro.json" }, { - "name": "0.16mm Optimal @Qidi X3", - "sub_path": "process/0.16mm Optimal @Qidi X3.json" + "name": "0.12mm Fine @Qidi XPlus4", + "sub_path": "process/0.12mm Fine @Qidi XPlus4.json" }, { + "name": "0.16mm Optimal @Qidi X3", + "sub_path": "process/0.16mm Optimal @Qidi X3.json" + }, + { "name": "0.16mm Optimal @Qidi XPlus", "sub_path": "process/0.16mm Optimal @Qidi XPlus.json" }, - { + { "name": "0.16mm Optimal @Qidi XMax", "sub_path": "process/0.16mm Optimal @Qidi XMax.json" }, - { + { "name": "0.16mm Optimal @Qidi XCFPro", "sub_path": "process/0.16mm Optimal @Qidi XCFPro.json" }, @@ -170,19 +178,23 @@ "name": "0.16mm Optimal @Qidi Q1 Pro", "sub_path": "process/0.16mm Optimal @Qidi Q1 Pro.json" }, + { + "name": "0.16mm Optimal @Qidi XPlus4", + "sub_path": "process/0.16mm Optimal @Qidi XPlus4.json" + }, { "name": "0.20mm Standard @Qidi X3", "sub_path": "process/0.20mm Standard @Qidi X3.json" }, - { + { "name": "0.20mm Standard @Qidi XPlus", "sub_path": "process/0.20mm Standard @Qidi XPlus.json" }, - { + { "name": "0.20mm Standard @Qidi XMax", "sub_path": "process/0.20mm Standard @Qidi XMax.json" }, - { + { "name": "0.20mm Standard @Qidi XCFPro", "sub_path": "process/0.20mm Standard @Qidi XCFPro.json" }, @@ -202,19 +214,23 @@ "name": "0.20mm Standard @Qidi Q1 Pro", "sub_path": "process/0.20mm Standard @Qidi Q1 Pro.json" }, + { + "name": "0.20mm Standard @Qidi XPlus4", + "sub_path": "process/0.20mm Standard @Qidi XPlus4.json" + }, { "name": "0.24mm Draft @Qidi X3", "sub_path": "process/0.24mm Draft @Qidi X3.json" }, - { + { "name": "0.25mm Draft @Qidi XPlus", "sub_path": "process/0.25mm Draft @Qidi XPlus.json" }, - { + { "name": "0.25mm Draft @Qidi XMax", "sub_path": "process/0.25mm Draft @Qidi XMax.json" }, - { + { "name": "0.25mm Draft @Qidi XCFPro", "sub_path": "process/0.25mm Draft @Qidi XCFPro.json" }, @@ -234,19 +250,23 @@ "name": "0.24mm Draft @Qidi Q1 Pro", "sub_path": "process/0.24mm Draft @Qidi Q1 Pro.json" }, + { + "name": "0.24mm Draft @Qidi XPlus4", + "sub_path": "process/0.24mm Draft @Qidi XPlus4.json" + }, { "name": "0.28mm Extra Draft @Qidi X3", "sub_path": "process/0.28mm Extra Draft @Qidi X3.json" }, - { + { "name": "0.30mm Extra Draft @Qidi XPlus", "sub_path": "process/0.30mm Extra Draft @Qidi XPlus.json" }, - { + { "name": "0.30mm Extra Draft @Qidi XMax", "sub_path": "process/0.30mm Extra Draft @Qidi XMax.json" }, - { + { "name": "0.30mm Extra Draft @Qidi XCFPro", "sub_path": "process/0.30mm Extra Draft @Qidi XCFPro.json" }, @@ -266,6 +286,30 @@ "name": "0.28mm Extra Draft @Qidi Q1 Pro", "sub_path": "process/0.28mm Extra Draft @Qidi Q1 Pro.json" }, + { + "name": "0.28mm Extra Draft @Qidi XPlus4", + "sub_path": "process/0.28mm Extra Draft @Qidi XPlus4.json" + }, + { + "name": "0.06mm Standard @Qidi XPlus4 0.2 nozzle", + "sub_path": "process/0.06mm Standard @Qidi XPlus4 0.2 nozzle.json" + }, + { + "name": "0.08mm Standard @Qidi XPlus4 0.2 nozzle", + "sub_path": "process/0.08mm Standard @Qidi XPlus4 0.2 nozzle.json" + }, + { + "name": "0.10mm Standard @Qidi XPlus4 0.2 nozzle", + "sub_path": "process/0.10mm Standard @Qidi XPlus4 0.2 nozzle.json" + }, + { + "name": "0.12mm Standard @Qidi XPlus4 0.2 nozzle", + "sub_path": "process/0.12mm Standard @Qidi XPlus4 0.2 nozzle.json" + }, + { + "name": "0.14mm Standard @Qidi XPlus4 0.2 nozzle", + "sub_path": "process/0.14mm Standard @Qidi XPlus4 0.2 nozzle.json" + }, { "name": "0.06mm Standard @Qidi Q1 Pro 0.2 nozzle", "sub_path": "process/0.06mm Standard @Qidi Q1 Pro 0.2 nozzle.json" @@ -346,6 +390,26 @@ "name": "0.14mm Standard @Qidi XSmart3 0.2 nozzle", "sub_path": "process/0.14mm Standard @Qidi XSmart3 0.2 nozzle.json" }, + { + "name": "0.18mm Standard @Qidi XPlus4 0.6 nozzle", + "sub_path": "process/0.18mm Standard @Qidi XPlus4 0.6 nozzle.json" + }, + { + "name": "0.24mm Standard @Qidi XPlus4 0.6 nozzle", + "sub_path": "process/0.24mm Standard @Qidi XPlus4 0.6 nozzle.json" + }, + { + "name": "0.30mm Standard @Qidi XPlus4 0.6 nozzle", + "sub_path": "process/0.30mm Standard @Qidi XPlus4 0.6 nozzle.json" + }, + { + "name": "0.36mm Standard @Qidi XPlus4 0.6 nozzle", + "sub_path": "process/0.36mm Standard @Qidi XPlus4 0.6 nozzle.json" + }, + { + "name": "0.42mm Standard @Qidi XPlus4 0.6 nozzle", + "sub_path": "process/0.42mm Standard @Qidi XPlus4 0.6 nozzle.json" + }, { "name": "0.18mm Standard @Qidi Q1 Pro 0.6 nozzle", "sub_path": "process/0.18mm Standard @Qidi Q1 Pro 0.6 nozzle.json" @@ -426,6 +490,26 @@ "name": "0.42mm Standard @Qidi XSmart3 0.6 nozzle", "sub_path": "process/0.42mm Standard @Qidi XSmart3 0.6 nozzle.json" }, + { + "name": "0.24mm Standard @Qidi XPlus4 0.8 nozzle", + "sub_path": "process/0.24mm Standard @Qidi XPlus4 0.8 nozzle.json" + }, + { + "name": "0.32mm Standard @Qidi XPlus4 0.8 nozzle", + "sub_path": "process/0.32mm Standard @Qidi XPlus4 0.8 nozzle.json" + }, + { + "name": "0.40mm Standard @Qidi XPlus4 0.8 nozzle", + "sub_path": "process/0.40mm Standard @Qidi XPlus4 0.8 nozzle.json" + }, + { + "name": "0.48mm Standard @Qidi XPlus4 0.8 nozzle", + "sub_path": "process/0.48mm Standard @Qidi XPlus4 0.8 nozzle.json" + }, + { + "name": "0.56mm Standard @Qidi XPlus4 0.8 nozzle", + "sub_path": "process/0.56mm Standard @Qidi XPlus4 0.8 nozzle.json" + }, { "name": "0.24mm Standard @Qidi Q1 Pro 0.8 nozzle", "sub_path": "process/0.24mm Standard @Qidi Q1 Pro 0.8 nozzle.json" @@ -524,7 +608,7 @@ "name": "fdm_filament_pa", "sub_path": "filament/fdm_filament_pa.json" }, - { + { "name": "fdm_filament_pc", "sub_path": "filament/fdm_filament_pc.json" }, @@ -532,11 +616,11 @@ "name": "fdm_filament_pet", "sub_path": "filament/fdm_filament_pet.json" }, - { + { "name": "fdm_filament_pla", "sub_path": "filament/fdm_filament_pla.json" }, - { + { "name": "fdm_filament_pva", "sub_path": "filament/fdm_filament_pva.json" }, @@ -568,6 +652,30 @@ "name": "Generic ABS @Qidi 0.2 nozzle", "sub_path": "filament/Generic ABS @Qidi 0.2 nozzle.json" }, + { + "name": "Generic ABS @Qidi 0.6 nozzle", + "sub_path": "filament/Generic ABS @Qidi 0.6 nozzle.json" + }, + { + "name": "Generic ABS @Qidi 0.8 nozzle", + "sub_path": "filament/Generic ABS @Qidi 0.8 nozzle.json" + }, + { + "name": "Generic ABS @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Generic ABS @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "Generic ABS @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Generic ABS @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Generic ABS @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Generic ABS @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Generic ABS @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Generic ABS @Qidi X-Plus 4 0.8 nozzle.json" + }, { "name": "Generic PETG @Qidi", "sub_path": "filament/Generic PETG @Qidi.json" @@ -592,6 +700,22 @@ "name": "Generic PETG @Qidi 0.2 nozzle", "sub_path": "filament/Generic PETG @Qidi 0.2 nozzle.json" }, + { + "name": "Generic PETG @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Generic PETG @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "Generic PETG @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Generic PETG @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Generic PETG @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Generic PETG @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Generic PETG @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Generic PETG @Qidi X-Plus 4 0.8 nozzle.json" + }, { "name": "Generic PLA @Qidi", "sub_path": "filament/Generic PLA @Qidi.json" @@ -616,6 +740,30 @@ "name": "Generic PLA @Qidi 0.2 nozzle", "sub_path": "filament/Generic PLA @Qidi 0.2 nozzle.json" }, + { + "name": "Generic PLA @Qidi 0.6 nozzle", + "sub_path": "filament/Generic PLA @Qidi 0.6 nozzle.json" + }, + { + "name": "Generic PLA @Qidi 0.8 nozzle", + "sub_path": "filament/Generic PLA @Qidi 0.8 nozzle.json" + }, + { + "name": "Generic PLA @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Generic PLA @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "Generic PLA @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Generic PLA @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Generic PLA @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Generic PLA @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Generic PLA @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Generic PLA @Qidi X-Plus 4 0.8 nozzle.json" + }, { "name": "QIDI ABS Odorless @Qidi", "sub_path": "filament/QIDI ABS Odorless @Qidi.json" @@ -636,10 +784,30 @@ "name": "QIDI ABS Odorless @Qidi Q1 Pro 0.8 nozzle", "sub_path": "filament/QIDI ABS Odorless @Qidi Q1 Pro 0.8 nozzle.json" }, + { + "name": "QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle.json" + }, { "name": "QIDI ABS Odorless @Qidi 0.2 nozzle", "sub_path": "filament/QIDI ABS Odorless @Qidi 0.2 nozzle.json" }, + { + "name": "QIDI ABS Odorless @Qidi 0.6 nozzle", + "sub_path": "filament/QIDI ABS Odorless @Qidi 0.6 nozzle.json" + }, { "name": "QIDI ABS Odorless @Qidi 0.8 nozzle", "sub_path": "filament/QIDI ABS Odorless @Qidi 0.8 nozzle.json" @@ -664,14 +832,82 @@ "name": "QIDI ABS Rapido @Qidi Q1 Pro 0.8 nozzle", "sub_path": "filament/QIDI ABS Rapido @Qidi Q1 Pro 0.8 nozzle.json" }, + { + "name": "QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle.json" + }, { "name": "QIDI ABS Rapido @Qidi 0.2 nozzle", "sub_path": "filament/QIDI ABS Rapido @Qidi 0.2 nozzle.json" }, + { + "name": "QIDI ABS Rapido @Qidi 0.6 nozzle", + "sub_path": "filament/QIDI ABS Rapido @Qidi 0.6 nozzle.json" + }, { "name": "QIDI ABS Rapido @Qidi 0.8 nozzle", "sub_path": "filament/QIDI ABS Rapido @Qidi 0.8 nozzle.json" }, + { + "name": "QIDI ABS Rapido Metal @Qidi", + "sub_path": "filament/QIDI ABS Rapido Metal @Qidi.json" + }, + { + "name": "QIDI ABS Rapido Metal @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "QIDI ABS Rapido Metal @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI ABS Rapido Metal @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI ABS Rapido Metal @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI ABS Rapido Metal @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "QIDI ABS Rapido Metal @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI ABS Rapido Metal @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI ABS Rapido Metal @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI ABS Rapido Metal @Qidi 0.2 nozzle", + "sub_path": "filament/QIDI ABS Rapido Metal @Qidi 0.2 nozzle.json" + }, + { + "name": "QIDI ABS Rapido Metal @Qidi 0.6 nozzle", + "sub_path": "filament/QIDI ABS Rapido Metal @Qidi 0.6 nozzle.json" + }, + { + "name": "QIDI ABS Rapido Metal @Qidi 0.8 nozzle", + "sub_path": "filament/QIDI ABS Rapido Metal @Qidi 0.8 nozzle.json" + }, { "name": "QIDI ABS-GF25 @Qidi", "sub_path": "filament/QIDI ABS-GF25 @Qidi.json" @@ -708,10 +944,34 @@ "name": "QIDI ASA @Qidi Q1 Pro 0.8 nozzle", "sub_path": "filament/QIDI ASA @Qidi Q1 Pro 0.8 nozzle.json" }, + { + "name": "QIDI ASA @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/QIDI ASA @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI ASA @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI ASA @Qidi X-Plus 4 0.8 nozzle.json" + }, { "name": "QIDI ASA @Qidi 0.2 nozzle", "sub_path": "filament/QIDI ASA @Qidi 0.2 nozzle.json" }, + { + "name": "QIDI ASA @Qidi 0.6 nozzle", + "sub_path": "filament/QIDI ASA @Qidi 0.6 nozzle.json" + }, + { + "name": "QIDI ASA @Qidi 0.8 nozzle", + "sub_path": "filament/QIDI ASA @Qidi 0.8 nozzle.json" + }, { "name": "QIDI ASA-Aero @Qidi", "sub_path": "filament/QIDI ASA-Aero @Qidi.json" @@ -720,6 +980,10 @@ "name": "QIDI ASA-Aero @Qidi Q1 Pro 0.4 nozzle", "sub_path": "filament/QIDI ASA-Aero @Qidi Q1 Pro 0.4 nozzle.json" }, + { + "name": "QIDI ASA-Aero @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI ASA-Aero @Qidi X-Plus 4 0.4 nozzle.json" + }, { "name": "QIDI PAHT-CF @Qidi", "sub_path": "filament/QIDI PAHT-CF @Qidi.json" @@ -736,6 +1000,18 @@ "name": "QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle", "sub_path": "filament/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle.json" }, + { + "name": "QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle.json" + }, { "name": "QIDI PET-CF @Qidi", "sub_path": "filament/QIDI PET-CF @Qidi.json" @@ -752,10 +1028,26 @@ "name": "QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle", "sub_path": "filament/QIDI PET-CF @Qidi Q1 Pro 0.8 nozzle.json" }, + { + "name": "QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle.json" + }, { "name": "QIDI PETG Tough @Qidi", "sub_path": "filament/QIDI PETG Tough @Qidi.json" }, + { + "name": "QIDI PETG Tough @Qidi 0.2 nozzle", + "sub_path": "filament/QIDI PETG Tough @Qidi 0.2 nozzle.json" + }, { "name": "QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle", "sub_path": "filament/QIDI PETG Tough @Qidi Q1 Pro 0.2 nozzle.json" @@ -772,10 +1064,38 @@ "name": "QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle", "sub_path": "filament/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle.json" }, + { + "name": "QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle.json" + }, { "name": "QIDI PLA Rapido @Qidi", "sub_path": "filament/QIDI PLA Rapido @Qidi.json" }, + { + "name": "QIDI PLA Rapido @Qidi 0.2 nozzle", + "sub_path": "filament/QIDI PLA Rapido @Qidi 0.2 nozzle.json" + }, + { + "name": "QIDI PLA Rapido @Qidi 0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido @Qidi 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido @Qidi 0.8 nozzle", + "sub_path": "filament/QIDI PLA Rapido @Qidi 0.8 nozzle.json" + }, { "name": "QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle", "sub_path": "filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json" @@ -792,10 +1112,38 @@ "name": "QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle", "sub_path": "filament/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle.json" }, + { + "name": "QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle.json" + }, { "name": "QIDI PLA Rapido Matte @Qidi", "sub_path": "filament/QIDI PLA Rapido Matte @Qidi.json" }, + { + "name": "QIDI PLA Rapido Matte @Qidi 0.2 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @Qidi 0.2 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @Qidi 0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @Qidi 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @Qidi 0.8 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @Qidi 0.8 nozzle.json" + }, { "name": "QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle", "sub_path": "filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle.json" @@ -812,6 +1160,94 @@ "name": "QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle", "sub_path": "filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle.json" }, + { + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal @Qidi", + "sub_path": "filament/QIDI PLA Rapido Metal @Qidi.json" + }, + { + "name": "QIDI PLA Rapido Metal @Qidi 0.2 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @Qidi 0.2 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal @Qidi 0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @Qidi 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal @Qidi 0.8 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @Qidi 0.8 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Silk @Qidi", + "sub_path": "filament/QIDI PLA Rapido Silk @Qidi.json" + }, + { + "name": "QIDI PLA Rapido Silk @Qidi 0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido Silk @Qidi 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Silk @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle.json" + }, { "name": "QIDI PLA-CF @Qidi", "sub_path": "filament/QIDI PLA-CF @Qidi.json" @@ -828,6 +1264,18 @@ "name": "QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle", "sub_path": "filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json" }, + { + "name": "QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle.json" + }, { "name": "QIDI PLA-CF @Qidi 0.6 nozzle", "sub_path": "filament/QIDI PLA-CF @Qidi 0.6 nozzle.json" @@ -852,6 +1300,18 @@ "name": "QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle", "sub_path": "filament/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle.json" }, + { + "name": "QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle.json" + }, { "name": "QIDI ABS-GF10 @Qidi", "sub_path": "filament/QIDI ABS-GF10 @Qidi.json" @@ -900,11 +1360,27 @@ "name": "Generic ASA @Qidi 0.2 nozzle", "sub_path": "filament/Generic ASA @Qidi 0.2 nozzle.json" }, + { + "name": "Generic ASA @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Generic ASA @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "Generic ASA @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Generic ASA @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Generic ASA @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Generic ASA @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Generic ASA @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Generic ASA @Qidi X-Plus 4 0.8 nozzle.json" + }, { "name": "Generic PA @Qidi", "sub_path": "filament/Generic PA @Qidi.json" }, - { + { "name": "Generic PA-CF @Qidi", "sub_path": "filament/Generic PA-CF @Qidi.json" }, @@ -912,7 +1388,7 @@ "name": "Generic PC @Qidi", "sub_path": "filament/Generic PC @Qidi.json" }, - { + { "name": "Generic PETG-CF @Qidi", "sub_path": "filament/Generic PETG-CF @Qidi.json" }, @@ -920,6 +1396,54 @@ "name": "Generic PLA Silk @Qidi", "sub_path": "filament/Generic PLA Silk @Qidi.json" }, + { + "name": "Generic PLA Silk @Qidi 0.2 nozzle", + "sub_path": "filament/Generic PLA Silk @Qidi 0.2 nozzle.json" + }, + { + "name": "Generic PLA Silk @Qidi 0.4 nozzle", + "sub_path": "filament/Generic PLA Silk @Qidi 0.4 nozzle.json" + }, + { + "name": "Generic PLA Silk @Qidi 0.6 nozzle", + "sub_path": "filament/Generic PLA Silk @Qidi 0.6 nozzle.json" + }, + { + "name": "Generic PLA Silk @Qidi 0.8 nozzle", + "sub_path": "filament/Generic PLA Silk @Qidi 0.8 nozzle.json" + }, + { + "name": "Generic PLA Silk @Qidi Q1 Pro 0.2 nozzle", + "sub_path": "filament/Generic PLA Silk @Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "Generic PLA Silk @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/Generic PLA Silk @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "Generic PLA Silk @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/Generic PLA Silk @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "Generic PLA Silk @Qidi X-Plus 4 0.2 nozzle", + "sub_path": "filament/Generic PLA Silk @Qidi X-Plus 4 0.2 nozzle.json" + }, + { + "name": "Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "Generic PLA Silk @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/Generic PLA Silk @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "Generic PLA Silk @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/Generic PLA Silk @Qidi X-Plus 4 0.8 nozzle.json" + }, { "name": "Generic PVA @Qidi", "sub_path": "filament/Generic PVA @Qidi.json" @@ -940,6 +1464,18 @@ "name": "QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle", "sub_path": "filament/QIDI ABS-GF @Qidi Q1 Pro 0.8 nozzle.json" }, + { + "name": "QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle.json" + }, { "name": "Generic PLA-CF @Qidi", "sub_path": "filament/Generic PLA-CF @Qidi.json" @@ -955,6 +1491,42 @@ { "name": "QIDI TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle", "sub_path": "filament/QIDI TPU 95A-HF @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI PPS-CF @Qidi", + "sub_path": "filament/QIDI PPS-CF @Qidi.json" + }, + { + "name": "QIDI PPS-CF @Qidi 0.6 nozzle", + "sub_path": "filament/QIDI PPS-CF @Qidi 0.6 nozzle.json" + }, + { + "name": "QIDI PPS-CF @Qidi 0.8 nozzle", + "sub_path": "filament/QIDI PPS-CF @Qidi 0.8 nozzle.json" + }, + { + "name": "QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle", + "sub_path": "filament/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle.json" + }, + { + "name": "QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle", + "sub_path": "filament/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle.json" + }, + { + "name": "QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle", + "sub_path": "filament/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle.json" + }, + { + "name": "QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle", + "sub_path": "filament/QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle.json" + }, + { + "name": "QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle", + "sub_path": "filament/QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle.json" + }, + { + "name": "QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle", + "sub_path": "filament/QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle.json" } ], "machine_list": [ @@ -970,15 +1542,15 @@ "name": "fdm_qidi_x3_common", "sub_path": "machine/fdm_qidi_x3_common.json" }, - { + { "name": "Qidi X-Plus 0.4 nozzle", "sub_path": "machine/Qidi X-Plus 0.4 nozzle.json" }, - { + { "name": "Qidi X-Max 0.4 nozzle", "sub_path": "machine/Qidi X-Max 0.4 nozzle.json" }, - { + { "name": "Qidi X-CF Pro 0.4 nozzle", "sub_path": "machine/Qidi X-CF Pro 0.4 nozzle.json" }, @@ -998,6 +1570,10 @@ "name": "Qidi Q1 Pro 0.4 nozzle", "sub_path": "machine/Qidi Q1 Pro 0.4 nozzle.json" }, + { + "name": "Qidi X-Plus 4 0.4 nozzle", + "sub_path": "machine/Qidi X-Plus 4 0.4 nozzle.json" + }, { "name": "Qidi X-Smart 3 0.6 nozzle", "sub_path": "machine/Qidi X-Smart 3 0.6 nozzle.json" @@ -1014,6 +1590,10 @@ "name": "Qidi Q1 Pro 0.6 nozzle", "sub_path": "machine/Qidi Q1 Pro 0.6 nozzle.json" }, + { + "name": "Qidi X-Plus 4 0.6 nozzle", + "sub_path": "machine/Qidi X-Plus 4 0.6 nozzle.json" + }, { "name": "Qidi X-Smart 3 0.8 nozzle", "sub_path": "machine/Qidi X-Smart 3 0.8 nozzle.json" @@ -1030,6 +1610,10 @@ "name": "Qidi Q1 Pro 0.8 nozzle", "sub_path": "machine/Qidi Q1 Pro 0.8 nozzle.json" }, + { + "name": "Qidi X-Plus 4 0.8 nozzle", + "sub_path": "machine/Qidi X-Plus 4 0.8 nozzle.json" + }, { "name": "Qidi X-Smart 3 0.2 nozzle", "sub_path": "machine/Qidi X-Smart 3 0.2 nozzle.json" @@ -1045,6 +1629,10 @@ { "name": "Qidi Q1 Pro 0.2 nozzle", "sub_path": "machine/Qidi Q1 Pro 0.2 nozzle.json" + }, + { + "name": "Qidi X-Plus 4 0.2 nozzle", + "sub_path": "machine/Qidi X-Plus 4 0.2 nozzle.json" } ] } diff --git a/resources/profiles/Qidi/Qidi X-Plus 4_cover.png b/resources/profiles/Qidi/Qidi X-Plus 4_cover.png new file mode 100644 index 0000000000..f12e16f4ea Binary files /dev/null and b/resources/profiles/Qidi/Qidi X-Plus 4_cover.png differ diff --git a/resources/profiles/Qidi/filament/Generic ABS @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi 0.2 nozzle.json index 8a066b3f04..0702b13769 100644 --- a/resources/profiles/Qidi/filament/Generic ABS @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi 0.2 nozzle.json @@ -8,6 +8,9 @@ "inherits": "Generic ABS @Qidi", "filament_max_volumetric_speed": [ "2" + ], + "nozzle_temperature": [ + "260" ], "compatible_printers": [ "Qidi X-Max 3 0.2 nozzle", diff --git a/resources/profiles/Qidi/filament/Generic ABS @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..a14db54c01 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi 0.6 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSB99_Qidi_07", + "name": "Generic ABS @Qidi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic ABS @Qidi", + "pressure_advance": [ + "0.014" + ], + "nozzle_temperature": [ + "260" + ], + "compatible_printers": [ + "Qidi X-Max 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic ABS @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi 0.8 nozzle.json new file mode 100644 index 0000000000..4503ae563d --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi 0.8 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSB99_Qidi_08", + "name": "Generic ABS @Qidi 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic ABS @Qidi", + "pressure_advance": [ + "0.011" + ], + "nozzle_temperature": [ + "260" + ], + "compatible_printers": [ + "Qidi X-Max 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic ABS @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi Q1 Pro 0.4 nozzle.json index bb21ee5df5..0fc44158c8 100644 --- a/resources/profiles/Qidi/filament/Generic ABS @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi Q1 Pro 0.4 nozzle.json @@ -6,31 +6,10 @@ "from": "system", "instantiation": "true", "inherits": "Generic ABS @Qidi", - "fan_max_speed": [ - "80" - ], - "fan_min_speed": [ - "10" - ], - "hot_plate_temp": [ - "90" - ], - "hot_plate_temp_initial_layer": [ - "90" - ], - "nozzle_temperature": [ - "250" - ], - "overhang_fan_speed": [ - "100" - ], - "slow_down_layer_time": [ - "4" - ], - "slow_down_min_speed": [ - "20" + "pressure_advance": [ + "0.035" ], "compatible_printers": [ "Qidi Q1 Pro 0.4 nozzle" - ] + ] } diff --git a/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..34d4680cf1 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSB99_Qidi_09", + "name": "Generic ABS @Qidi X-Plus 4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic ABS @Qidi", + "pressure_advance": [ + "0.03" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..c726ee41a8 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSB99_Qidi_10", + "name": "Generic ABS @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic ABS @Qidi", + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..67bfa3b4a4 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSB99_Qidi_11", + "name": "Generic ABS @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic ABS @Qidi", + "pressure_advance": [ + "0.014" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..913c1219a0 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "filament_id": "GFB99", + "setting_id": "GFSB99_Qidi_12", + "name": "Generic ABS @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic ABS @Qidi", + "pressure_advance": [ + "0.011" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic ABS @Qidi.json b/resources/profiles/Qidi/filament/Generic ABS @Qidi.json index eb447bf912..c67943aca7 100644 --- a/resources/profiles/Qidi/filament/Generic ABS @Qidi.json +++ b/resources/profiles/Qidi/filament/Generic ABS @Qidi.json @@ -21,20 +21,14 @@ "pressure_advance": [ "0.021" ], - "max_fan_speed":[ - "80" - ], - "min_fan_speed":[ - "10" - ], - "overhang_fan_speed": [ - "100" - ], "filament_density":[ "1.04" ], "filament_vendor": [ "Generic" + ], + "nozzle_temperature": [ + "250" ], "compatible_printers": [ "Qidi X-Plus 0.2 nozzle", @@ -49,14 +43,8 @@ "Qidi X-Plus 0.6 nozzle", "Qidi X-Max 0.6 nozzle", "Qidi X-CF Pro 0.6 nozzle", - "Qidi X-Smart 3 0.6 nozzle", - "Qidi X-Plus 3 0.6 nozzle", - "Qidi X-Max 3 0.6 nozzle", "Qidi X-Plus 0.8 nozzle", "Qidi X-Max 0.8 nozzle", - "Qidi X-CF Pro 0.8 nozzle", - "Qidi X-Smart 3 0.8 nozzle", - "Qidi X-Plus 3 0.8 nozzle", - "Qidi X-Max 3 0.8 nozzle" + "Qidi X-CF Pro 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..851d192dd3 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFB98", + "setting_id": "GFSB98_Qidi_07", + "name": "Generic ASA @Qidi X-Plus 4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic ASA @Qidi", + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..cde954faa0 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,33 @@ +{ + "type": "filament", + "filament_id": "GFB98", + "setting_id": "GFSB98_Qidi_08", + "name": "Generic ASA @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic ASA @Qidi", + "fan_cooling_layer_time": [ + "40" + ], + "filament_max_volumetric_speed": [ + "16" + ], + "nozzle_temperature": [ + "270" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "100" + ], + "pressure_advance": [ + "0.035" + ], + "slow_down_layer_time": [ + "4" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..e1cbe9647c --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,39 @@ +{ + "type": "filament", + "filament_id": "GFB98", + "setting_id": "GFSB98_Qidi_09", + "name": "Generic ASA @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic ASA @Qidi", + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "55" + ], + "fan_cooling_layer_time": [ + "40" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "100" + ], + "pressure_advance": [ + "0.014" + ], + "slow_down_layer_time": [ + "4" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..6c1305af22 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic ASA @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,39 @@ +{ + "type": "filament", + "filament_id": "GFB98", + "setting_id": "GFSB98_Qidi_10", + "name": "Generic ASA @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic ASA @Qidi", + "activate_chamber_temp_control": [ + "0" + ], + "chamber_temperature": [ + "55" + ], + "fan_cooling_layer_time": [ + "40" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "overhang_fan_speed": [ + "100" + ], + "pressure_advance": [ + "0.011" + ], + "slow_down_layer_time": [ + "4" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PA @Qidi.json b/resources/profiles/Qidi/filament/Generic PA @Qidi.json index 69b0fb9784..335d152337 100644 --- a/resources/profiles/Qidi/filament/Generic PA @Qidi.json +++ b/resources/profiles/Qidi/filament/Generic PA @Qidi.json @@ -47,6 +47,9 @@ "Qidi X-Max 3 0.8 nozzle", "Qidi Q1 Pro 0.4 nozzle", "Qidi Q1 Pro 0.6 nozzle", - "Qidi Q1 Pro 0.8 nozzle" + "Qidi Q1 Pro 0.8 nozzle", + "Qidi X-Plus 4 0.4 nozzle", + "Qidi X-Plus 4 0.6 nozzle", + "Qidi X-Plus 4 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PA-CF @Qidi.json b/resources/profiles/Qidi/filament/Generic PA-CF @Qidi.json index 8393e45934..4f9500356a 100644 --- a/resources/profiles/Qidi/filament/Generic PA-CF @Qidi.json +++ b/resources/profiles/Qidi/filament/Generic PA-CF @Qidi.json @@ -65,6 +65,9 @@ "Qidi X-Max 3 0.8 nozzle", "Qidi Q1 Pro 0.4 nozzle", "Qidi Q1 Pro 0.6 nozzle", - "Qidi Q1 Pro 0.8 nozzle" + "Qidi Q1 Pro 0.8 nozzle", + "Qidi X-Plus 4 0.4 nozzle", + "Qidi X-Plus 4 0.6 nozzle", + "Qidi X-Plus 4 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PC @Qidi.json b/resources/profiles/Qidi/filament/Generic PC @Qidi.json index bbe6036e52..242f18e0ab 100644 --- a/resources/profiles/Qidi/filament/Generic PC @Qidi.json +++ b/resources/profiles/Qidi/filament/Generic PC @Qidi.json @@ -41,6 +41,9 @@ "Qidi X-Max 3 0.8 nozzle", "Qidi Q1 Pro 0.4 nozzle", "Qidi Q1 Pro 0.6 nozzle", - "Qidi Q1 Pro 0.8 nozzle" + "Qidi Q1 Pro 0.8 nozzle", + "Qidi X-Plus 4 0.4 nozzle", + "Qidi X-Plus 4 0.6 nozzle", + "Qidi X-Plus 4 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PETG @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi 0.2 nozzle.json index 4990b2ab6c..18f81ff2df 100644 --- a/resources/profiles/Qidi/filament/Generic PETG @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi 0.2 nozzle.json @@ -6,9 +6,6 @@ "from": "system", "instantiation": "true", "inherits": "Generic PETG @Qidi", - "slow_down_min_speed": [ - "10" - ], "filament_max_volumetric_speed": [ "1" ], diff --git a/resources/profiles/Qidi/filament/Generic PETG @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi Q1 Pro 0.4 nozzle.json index df5b5d6636..11345313ab 100644 --- a/resources/profiles/Qidi/filament/Generic PETG @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi Q1 Pro 0.4 nozzle.json @@ -6,12 +6,6 @@ "from": "system", "instantiation": "true", "inherits": "Generic PETG @Qidi", - "hot_plate_temp_initial_layer": [ - "80" - ], - "overhang_fan_speed": [ - "100" - ], "pressure_advance":[ "0.086" ], diff --git a/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..2380d6a6d8 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "filament_id": "GFG99", + "setting_id": "GFSG99_Qidi_06", + "name": "Generic PETG @Qidi X-Plus 4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PETG @Qidi", + "filament_max_volumetric_speed": [ + "1" + ], + "pressure_advance": [ + "0.056" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..c7c831be6f --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFG99", + "setting_id": "GFSG99_Qidi_07", + "name": "Generic PETG @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PETG @Qidi", + "pressure_advance":[ + "0.056" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..90453cd816 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "filament_id": "GFG99", + "setting_id": "GFSG99_Qidi_08", + "name": "Generic PETG @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PETG @Qidi", + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..644308bbb6 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "filament_id": "GFG99", + "setting_id": "GFSG99_Qidi_09", + "name": "Generic PETG @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PETG @Qidi", + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PETG @Qidi.json b/resources/profiles/Qidi/filament/Generic PETG @Qidi.json index abf42bbedc..1dd8bde5fc 100644 --- a/resources/profiles/Qidi/filament/Generic PETG @Qidi.json +++ b/resources/profiles/Qidi/filament/Generic PETG @Qidi.json @@ -16,10 +16,10 @@ "30" ], "overhang_fan_speed": [ - "100" + "90" ], "overhang_fan_threshold": [ - "25%" + "10%" ], "fan_max_speed": [ "40" diff --git a/resources/profiles/Qidi/filament/Generic PETG-CF @Qidi.json b/resources/profiles/Qidi/filament/Generic PETG-CF @Qidi.json index 20673f3745..3b8f26b8a6 100644 --- a/resources/profiles/Qidi/filament/Generic PETG-CF @Qidi.json +++ b/resources/profiles/Qidi/filament/Generic PETG-CF @Qidi.json @@ -118,6 +118,10 @@ "Qidi Q1 Pro 0.2 nozzle", "Qidi Q1 Pro 0.4 nozzle", "Qidi Q1 Pro 0.6 nozzle", - "Qidi Q1 Pro 0.8 nozzle" + "Qidi Q1 Pro 0.8 nozzle", + "Qidi X-Plus 4 0.2 nozzle", + "Qidi X-Plus 4 0.4 nozzle", + "Qidi X-Plus 4 0.6 nozzle", + "Qidi X-Plus 4 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PLA @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..7e01606605 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi 0.6 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99_Qidi_06", + "name": "Generic PLA @Qidi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA @Qidi", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Max 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PLA @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi 0.8 nozzle.json new file mode 100644 index 0000000000..f57d5ece64 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi 0.8 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99_Qidi_07", + "name": "Generic PLA @Qidi 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA @Qidi", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Max 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.2 nozzle.json index 1b23a47533..b2f916515c 100644 --- a/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.2 nozzle.json @@ -8,6 +8,12 @@ "inherits": "Generic PLA @Qidi", "pressure_advance": [ "0.042" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "nozzle_temperature": [ + "210" ], "compatible_printers": [ "Qidi Q1 Pro 0.2 nozzle" diff --git a/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.6 nozzle.json index 1e1bbc634e..19ef5bf844 100644 --- a/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.6 nozzle.json @@ -8,6 +8,9 @@ "inherits": "Generic PLA @Qidi", "pressure_advance": [ "0.016" + ], + "nozzle_temperature": [ + "210" ], "compatible_printers": [ "Qidi Q1 Pro 0.6 nozzle" diff --git a/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.8 nozzle.json index c9feb119b2..0aa86b1bee 100644 --- a/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi Q1 Pro 0.8 nozzle.json @@ -8,6 +8,9 @@ "inherits": "Generic PLA @Qidi", "pressure_advance": [ "0.008" + ], + "nozzle_temperature": [ + "210" ], "compatible_printers": [ "Qidi Q1 Pro 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..6b2b271c45 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,21 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99_Qidi_08", + "name": "Generic PLA @Qidi X-Plus 4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA @Qidi", + "pressure_advance": [ + "0.034" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "nozzle_temperature": [ + "210" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..f77bff6d2b --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99_Qidi_09", + "name": "Generic PLA @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA @Qidi", + "full_fan_speed_layer": [ + "0" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "slow_down_min_speed": [ + "20" + ], + "pressure_advance": [ + "0.034" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..2833ff3158 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99_Qidi_10", + "name": "Generic PLA @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA @Qidi", + "pressure_advance": [ + "0.016" + ], + "nozzle_temperature": [ + "210" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..1da09e4839 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "filament_id": "GFL99", + "setting_id": "GFSL99_Qidi_11", + "name": "Generic PLA @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA @Qidi", + "pressure_advance": [ + "0.008" + ], + "nozzle_temperature": [ + "210" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/Generic PLA @Qidi.json b/resources/profiles/Qidi/filament/Generic PLA @Qidi.json index 137d8dc03d..a1fb21735b 100644 --- a/resources/profiles/Qidi/filament/Generic PLA @Qidi.json +++ b/resources/profiles/Qidi/filament/Generic PLA @Qidi.json @@ -37,14 +37,8 @@ "Qidi X-Plus 0.6 nozzle", "Qidi X-Max 0.6 nozzle", "Qidi X-CF Pro 0.6 nozzle", - "Qidi X-Smart 3 0.6 nozzle", - "Qidi X-Plus 3 0.6 nozzle", - "Qidi X-Max 3 0.6 nozzle", "Qidi X-Plus 0.8 nozzle", "Qidi X-Max 0.8 nozzle", - "Qidi X-CF Pro 0.8 nozzle", - "Qidi X-Smart 3 0.8 nozzle", - "Qidi X-Plus 3 0.8 nozzle", - "Qidi X-Max 3 0.8 nozzle" + "Qidi X-CF Pro 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi 0.2 nozzle.json new file mode 100644 index 0000000000..ac7b7841a6 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi 0.2 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "filament_id": "GFL96", + "setting_id": "GFSL96_Qidi_02", + "name": "Generic PLA Silk @Qidi 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA Silk @Qidi", + "compatible_printers": [ + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Smart 3 0.2 nozzle", + "Qidi X-Plus 3 0.2 nozzle", + "Qidi X-Max 3 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi 0.4 nozzle.json new file mode 100644 index 0000000000..fe2d37a9ad --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi 0.4 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFL96", + "setting_id": "GFSL96_Qidi_03", + "name": "Generic PLA Silk @Qidi 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA Silk @Qidi", + "pressure_advance": [ + "0.024" + ], + "filament_max_volumetric_speed": [ + "12" + ], + "compatible_printers": [ + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..154ca5ea3e --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi 0.6 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "filament_id": "GFL96", + "setting_id": "GFSL96_Qidi_04", + "name": "Generic PLA Silk @Qidi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA Silk @Qidi", + "filament_max_volumetric_speed": [ + "12" + ], + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi 0.8 nozzle.json new file mode 100644 index 0000000000..6a8f5c3f33 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi 0.8 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "filament_id": "GFL96", + "setting_id": "GFSL96_Qidi_05", + "name": "Generic PLA Silk @Qidi 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA Silk @Qidi", + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi Q1 Pro 0.2 nozzle.json new file mode 100644 index 0000000000..3adfbaf22a --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi Q1 Pro 0.2 nozzle.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "filament_id": "GFL96", + "setting_id": "GFSL96_Qidi_06", + "name": "Generic PLA Silk @Qidi Q1 Pro 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA Silk @Qidi", + "compatible_printers": [ + "Qidi Q1 Pro 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..1386bb705f --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "filament_id": "GFL96", + "setting_id": "GFSL96_Qidi_07", + "name": "Generic PLA Silk @Qidi Q1 Pro 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA Silk @Qidi", + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..7980dbd8b9 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFL96", + "setting_id": "GFSL96_Qidi_08", + "name": "Generic PLA Silk @Qidi Q1 Pro 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA Silk @Qidi", + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..d6a83274c3 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "filament_id": "GFL96", + "setting_id": "GFSL96_Qidi_09", + "name": "Generic PLA Silk @Qidi Q1 Pro 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA Silk @Qidi", + "compatible_printers": [ + "Qidi Q1 Pro 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..5df2944fe8 --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "filament_id": "GFL96", + "setting_id": "GFSL96_Qidi_10", + "name": "Generic PLA Silk @Qidi X-Plus 4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA Silk @Qidi", + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..965a22280c --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "filament_id": "GFL96", + "setting_id": "GFSL96_Qidi_11", + "name": "Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA Silk @Qidi", + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..49de88b80a --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,15 @@ +{ + "type": "filament", + "filament_id": "GFL96", + "setting_id": "GFSL96_Qidi_12", + "name": "Generic PLA Silk @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA Silk @Qidi", + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..4690b02b6e --- /dev/null +++ b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,12 @@ +{ + "type": "filament", + "filament_id": "GFL96", + "setting_id": "GFSL96_Qidi_13", + "name": "Generic PLA Silk @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Generic PLA Silk @Qidi", + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi.json b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi.json index fcac713fb8..86a85db3b6 100644 --- a/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi.json +++ b/resources/profiles/Qidi/filament/Generic PLA Silk @Qidi.json @@ -34,33 +34,8 @@ "Generic" ], "compatible_printers": [ - "Qidi X-Plus 0.2 nozzle", - "Qidi X-Max 0.2 nozzle", - "Qidi X-CF Pro 0.2 nozzle", - "Qidi X-Smart 3 0.2 nozzle", - "Qidi X-Plus 3 0.2 nozzle", - "Qidi X-Max 3 0.2 nozzle", "Qidi X-Plus 0.4 nozzle", "Qidi X-Max 0.4 nozzle", - "Qidi X-CF Pro 0.4 nozzle", - "Qidi X-Smart 3 0.4 nozzle", - "Qidi X-Plus 3 0.4 nozzle", - "Qidi X-Max 3 0.4 nozzle", - "Qidi X-Plus 0.6 nozzle", - "Qidi X-Max 0.6 nozzle", - "Qidi X-CF Pro 0.6 nozzle", - "Qidi X-Smart 3 0.6 nozzle", - "Qidi X-Plus 3 0.6 nozzle", - "Qidi X-Max 3 0.6 nozzle", - "Qidi X-Plus 0.8 nozzle", - "Qidi X-Max 0.8 nozzle", - "Qidi X-CF Pro 0.8 nozzle", - "Qidi X-Smart 3 0.8 nozzle", - "Qidi X-Plus 3 0.8 nozzle", - "Qidi X-Max 3 0.8 nozzle", - "Qidi Q1 Pro 0.2 nozzle", - "Qidi Q1 Pro 0.4 nozzle", - "Qidi Q1 Pro 0.6 nozzle", - "Qidi Q1 Pro 0.8 nozzle" + "Qidi X-CF Pro 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PLA-CF @Qidi.json b/resources/profiles/Qidi/filament/Generic PLA-CF @Qidi.json index 4d2af6f715..a6a5e1887e 100644 --- a/resources/profiles/Qidi/filament/Generic PLA-CF @Qidi.json +++ b/resources/profiles/Qidi/filament/Generic PLA-CF @Qidi.json @@ -64,6 +64,10 @@ "Qidi Q1 Pro 0.2 nozzle", "Qidi Q1 Pro 0.4 nozzle", "Qidi Q1 Pro 0.6 nozzle", - "Qidi Q1 Pro 0.8 nozzle" + "Qidi Q1 Pro 0.8 nozzle", + "Qidi X-Plus 4 0.2 nozzle", + "Qidi X-Plus 4 0.4 nozzle", + "Qidi X-Plus 4 0.6 nozzle", + "Qidi X-Plus 4 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic PVA @Qidi.json b/resources/profiles/Qidi/filament/Generic PVA @Qidi.json index a04419a002..b9c2ae8833 100644 --- a/resources/profiles/Qidi/filament/Generic PVA @Qidi.json +++ b/resources/profiles/Qidi/filament/Generic PVA @Qidi.json @@ -49,6 +49,10 @@ "Qidi Q1 Pro 0.2 nozzle", "Qidi Q1 Pro 0.4 nozzle", "Qidi Q1 Pro 0.6 nozzle", - "Qidi Q1 Pro 0.8 nozzle" + "Qidi Q1 Pro 0.8 nozzle", + "Qidi X-Plus 4 0.2 nozzle", + "Qidi X-Plus 4 0.4 nozzle", + "Qidi X-Plus 4 0.6 nozzle", + "Qidi X-Plus 4 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/Generic TPU @Qidi.json b/resources/profiles/Qidi/filament/Generic TPU @Qidi.json index e7fd4efe82..065b7a865a 100644 --- a/resources/profiles/Qidi/filament/Generic TPU @Qidi.json +++ b/resources/profiles/Qidi/filament/Generic TPU @Qidi.json @@ -18,7 +18,7 @@ "nozzle_temperature_initial_layer": [ "230" ], - "nozzle_temperature": [ + "nozzle_temperature": [ "230" ], "filament_vendor": [ @@ -43,6 +43,9 @@ "Qidi X-Plus 3 0.8 nozzle", "Qidi X-Max 3 0.8 nozzle", "Qidi Q1 Pro 0.6 nozzle", - "Qidi Q1 Pro 0.8 nozzle" + "Qidi Q1 Pro 0.8 nozzle", + "Qidi X-Plus 4 0.4 nozzle", + "Qidi X-Plus 4 0.6 nozzle", + "Qidi X-Plus 4 0.8 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..7523ccfc1e --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi 0.6 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_26", + "name": "QIDI ABS Odorless @Qidi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Odorless @Qidi", + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi 0.8 nozzle.json index f1fd1ac7f4..d458d53198 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi 0.8 nozzle.json @@ -11,6 +11,9 @@ ], "slow_down_min_speed": [ "10" + ], + "pressure_advance": [ + "0.011" ], "compatible_printers": [ "Qidi X-Plus 0.8 nozzle", diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.4 nozzle.json index 9dc6874c0c..b54d7c98f9 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.4 nozzle.json @@ -6,17 +6,11 @@ "from": "system", "instantiation": "true", "inherits": "QIDI ABS Odorless @Qidi", - "filament_max_volumetric_speed": [ - "24.5" - ], - "hot_plate_temp_initial_layer": [ - "90" - ], "nozzle_temperature": [ "260" ], "pressure_advance": [ - "0.035" + "0.023" ], "slow_down_min_speed": [ "20" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.6 nozzle.json index 90c1abe80d..490f693254 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.6 nozzle.json @@ -9,14 +9,11 @@ "filament_max_volumetric_speed": [ "24.5" ], - "hot_plate_temp_initial_layer": [ - "90" - ], "nozzle_temperature": [ "250" ], "pressure_advance": [ - "0.014" + "0.016" ], "slow_down_min_speed": [ "20" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.8 nozzle.json index b6a0a6c663..b3b4fb423c 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi Q1 Pro 0.8 nozzle.json @@ -16,7 +16,7 @@ "250" ], "pressure_advance": [ - "0.011" + "0.008" ], "slow_down_min_speed": [ "10" diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..b13ea4b998 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_27", + "name": "QIDI ABS Odorless @Qidi X-Plus 4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Odorless @Qidi", + "filament_max_volumetric_speed": [ + "2" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "nozzle_temperature": [ + "260" + ], + "slow_down_min_speed": [ + "20" + ], + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..ca3010124e --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_28", + "name": "QIDI ABS Odorless @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Odorless @Qidi", + "hot_plate_temp_initial_layer": [ + "90" + ], + "nozzle_temperature": [ + "260" + ], + "slow_down_min_speed": [ + "20" + ], + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..b513d3e582 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_29", + "name": "QIDI ABS Odorless @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Odorless @Qidi", + "filament_max_volumetric_speed": [ + "24.5" + ], + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.014" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..16150dbb0c --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_30", + "name": "QIDI ABS Odorless @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Odorless @Qidi", + "filament_max_volumetric_speed": [ + "24.5" + ], + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.011" + ], + "slow_down_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi.json b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi.json index ce3cbd143d..33c47602f7 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Odorless @Qidi.json @@ -18,14 +18,14 @@ "pressure_advance": [ "0.021" ], - "max_fan_speed":[ + "fan_max_speed": [ "80" ], - "min_fan_speed":[ + "fan_min_speed": [ "10" ], "overhang_fan_speed": [ - "100" + "80" ], "filament_density":[ "1.02" @@ -36,12 +36,6 @@ "Qidi X-CF Pro 0.4 nozzle", "Qidi X-Smart 3 0.4 nozzle", "Qidi X-Plus 3 0.4 nozzle", - "Qidi X-Max 3 0.4 nozzle", - "Qidi X-Plus 0.6 nozzle", - "Qidi X-Max 0.6 nozzle", - "Qidi X-CF Pro 0.6 nozzle", - "Qidi X-Smart 3 0.6 nozzle", - "Qidi X-Plus 3 0.6 nozzle", - "Qidi X-Max 3 0.6 nozzle" + "Qidi X-Max 3 0.4 nozzle" ] } diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi 0.2 nozzle.json index c84d4ad66e..b3b772cf29 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi 0.2 nozzle.json @@ -8,6 +8,9 @@ "inherits": "QIDI ABS Rapido @Qidi", "filament_max_volumetric_speed": [ "2" + ], + "chamber_temperatures" : [ + "0" ], "compatible_printers": [ "Qidi X-Plus 0.2 nozzle", diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..96e83614c0 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi 0.6 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_31", + "name": "QIDI ABS Rapido @Qidi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido @Qidi", + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi 0.8 nozzle.json index 86550c626c..6a05ea5110 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi 0.8 nozzle.json @@ -7,10 +7,13 @@ "instantiation": "true", "inherits": "QIDI ABS Rapido @Qidi", "nozzle_temperature": [ - "270" + "260" ], "slow_down_min_speed": [ "10" + ], + "pressure_advance": [ + "0.011" ], "compatible_printers": [ "Qidi X-Plus 0.8 nozzle", diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..3d4b1e0646 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_32", + "name": "QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido @Qidi", + "filament_max_volumetric_speed": [ + "2" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "nozzle_temperature": [ + "260" + ], + "slow_down_min_speed": [ + "20" + ], + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..352f0faf01 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_33", + "name": "QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido @Qidi", + "activate_chamber_temp_control": [ + "0" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "nozzle_temperature": [ + "260" + ], + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..b725790b3d --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_34", + "name": "QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido @Qidi", + "filament_max_volumetric_speed": [ + "24.5" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..b7cf1f3c13 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_35", + "name": "QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido @Qidi", + "filament_max_volumetric_speed": [ + "24.5" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.011" + ], + "slow_down_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi.json index 49c81f07b7..aee79908a7 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi.json +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido @Qidi.json @@ -18,14 +18,14 @@ "pressure_advance": [ "0.021" ], - "max_fan_speed":[ + "fan_max_speed": [ "80" ], - "min_fan_speed":[ + "fan_min_speed": [ "20" ], "overhang_fan_speed": [ - "100" + "80" ], "filament_density":[ "1.05" @@ -36,13 +36,7 @@ "Qidi X-CF Pro 0.4 nozzle", "Qidi X-Smart 3 0.4 nozzle", "Qidi X-Plus 3 0.4 nozzle", - "Qidi X-Max 3 0.4 nozzle", - "Qidi X-Plus 0.6 nozzle", - "Qidi X-Max 0.6 nozzle", - "Qidi X-CF Pro 0.6 nozzle", - "Qidi X-Smart 3 0.6 nozzle", - "Qidi X-Plus 3 0.6 nozzle", - "Qidi X-Max 3 0.6 nozzle" + "Qidi X-Max 3 0.4 nozzle" ] } diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi 0.2 nozzle.json new file mode 100644 index 0000000000..fdea735c6c --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi 0.2 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_40", + "name": "QIDI ABS Rapido Metal @Qidi 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido Metal @Qidi", + "filament_max_volumetric_speed": [ + "2" + ], + "chamber_temperatures" : [ + "0" + ], + "compatible_printers": [ + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Smart 3 0.2 nozzle", + "Qidi X-Plus 3 0.2 nozzle", + "Qidi X-Max 3 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..318316a0d1 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi 0.6 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_41", + "name": "QIDI ABS Rapido Metal @Qidi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido Metal @Qidi", + "pressure_advance": [ + "0.014" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi 0.8 nozzle.json new file mode 100644 index 0000000000..f524923a08 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi 0.8 nozzle.json @@ -0,0 +1,29 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_42", + "name": "QIDI ABS Rapido Metal @Qidi 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido Metal @Qidi", + "nozzle_temperature": [ + "260" + ], + "slow_down_min_speed": [ + "10" + ], + "pressure_advance": [ + "0.011" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json new file mode 100644 index 0000000000..430300c1c6 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_43", + "name": "QIDI ABS Rapido Metal @Qidi Q1 Pro 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido Metal @Qidi", + "filament_max_volumetric_speed": [ + "2" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "nozzle_temperature": [ + "260" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..d5642b661f --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_44", + "name": "QIDI ABS Rapido Metal @Qidi Q1 Pro 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido Metal @Qidi", + "activate_chamber_temp_control": [ + "0" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "nozzle_temperature": [ + "260" + ], + "pressure_advance": [ + "0.035" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..5405a91bec --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_45", + "name": "QIDI ABS Rapido Metal @Qidi Q1 Pro 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido Metal @Qidi", + "filament_max_volumetric_speed": [ + "24.5" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..4fa3636208 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_46", + "name": "QIDI ABS Rapido Metal @Qidi Q1 Pro 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido Metal @Qidi", + "filament_max_volumetric_speed": [ + "24.5" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.012" + ], + "slow_down_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..04967f024b --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_47", + "name": "QIDI ABS Rapido Metal @Qidi X-Plus 4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido Metal @Qidi", + "filament_max_volumetric_speed": [ + "2" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "nozzle_temperature": [ + "260" + ], + "slow_down_min_speed": [ + "20" + ], + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..6d0f7ec9b3 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_48", + "name": "QIDI ABS Rapido Metal @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido Metal @Qidi", + "activate_chamber_temp_control": [ + "0" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "nozzle_temperature": [ + "260" + ], + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..9e94055ce9 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_49", + "name": "QIDI ABS Rapido Metal @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido Metal @Qidi", + "filament_max_volumetric_speed": [ + "24.5" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..e2ba76dd0d --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_50", + "name": "QIDI ABS Rapido Metal @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS Rapido Metal @Qidi", + "filament_max_volumetric_speed": [ + "24.5" + ], + "hot_plate_temp_initial_layer": [ + "90" + ], + "nozzle_temperature": [ + "250" + ], + "pressure_advance": [ + "0.008" + ], + "slow_down_min_speed": [ + "10" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi.json b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi.json new file mode 100644 index 0000000000..2f9740919f --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS Rapido Metal @Qidi.json @@ -0,0 +1,42 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_39", + "name": "QIDI ABS Rapido Metal @Qidi", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_abs", + "filament_flow_ratio": [ + "0.95" + ], + "filament_max_volumetric_speed": [ + "22" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.021" + ], + "fan_max_speed": [ + "80" + ], + "fan_min_speed": [ + "20" + ], + "overhang_fan_speed": [ + "80" + ], + "filament_density":[ + "1.05" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..df4f8cea10 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_36", + "name": "QIDI ABS-GF @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS-GF @Qidi", + "filament_max_volumetric_speed": [ + "22" + ], + "nozzle_temperature": [ + "260" + ], + "nozzle_temperature_initial_layer": [ + "260" + ], + "pressure_advance": [ + "0.03" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "5" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..56b1f40f0b --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_37", + "name": "QIDI ABS-GF @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS-GF @Qidi", + "filament_max_volumetric_speed": [ + "22" + ], + "nozzle_temperature": [ + "260" + ], + "nozzle_temperature_initial_layer": [ + "260" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "5" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..e9c4368efa --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFB00", + "setting_id": "GFSB00_Qidi_38", + "name": "QIDI ABS-GF @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ABS-GF @Qidi", + "filament_max_volumetric_speed": [ + "22" + ], + "nozzle_temperature": [ + "260" + ], + "nozzle_temperature_initial_layer": [ + "260" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "5" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi.json b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi.json index 914554c30b..24b366f027 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF @Qidi.json @@ -37,10 +37,13 @@ "100" ], "overhang_fan_speed": [ - "100" + "80" ], "filament_density":[ "1.15" + ], + "slow_down_layer_time": [ + "8" ], "compatible_printers": [ "Qidi X-Plus 0.4 nozzle", diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi.json b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi.json index b132f73564..1ef234dc1f 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF10 @Qidi.json @@ -37,7 +37,10 @@ "100" ], "overhang_fan_speed": [ - "100" + "80" + ], + "slow_down_layer_time": [ + "8" ], "compatible_printers": [ "Qidi X-Plus 0.4 nozzle", diff --git a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi.json b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi.json index 3b80d375cf..89b2b5ceac 100644 --- a/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi.json +++ b/resources/profiles/Qidi/filament/QIDI ABS-GF25 @Qidi.json @@ -37,7 +37,10 @@ "100" ], "overhang_fan_speed": [ - "100" + "80" + ], + "slow_down_layer_time": [ + "8" ], "compatible_printers": [ "Qidi X-Plus 0.4 nozzle", diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi 0.2 nozzle.json index 66fd97f87d..8566ad7054 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi 0.2 nozzle.json @@ -9,8 +9,8 @@ "filament_max_volumetric_speed": [ "2" ], - "enable_volume_fan":[ - "40" + "chamber_temperatures" : [ + "0" ], "compatible_printers": [ "Qidi X-Max 3 0.2 nozzle", diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..79eea95b24 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi 0.6 nozzle.json @@ -0,0 +1,17 @@ +{ + "type": "filament", + "filament_id": "GFB01", + "setting_id": "GFSB01_Qidi_08", + "name": "QIDI ASA @Qidi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ASA @Qidi", + "pressure_advance": [ + "0.014" + ], + "compatible_printers": [ + "Qidi X-Max 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi 0.8 nozzle.json new file mode 100644 index 0000000000..d3f270fe95 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi 0.8 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFB01", + "setting_id": "GFSB01_Qidi_09", + "name": "QIDI ASA @Qidi 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ASA @Qidi", + "pressure_advance": [ + "0.011" + ], + "nozzle_temperature": [ + "260" + ], + "compatible_printers": [ + "Qidi X-Max 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json index 146460e98d..1b0b62f4d3 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.2 nozzle.json @@ -8,6 +8,12 @@ "inherits": "QIDI ASA @Qidi", "filament_max_volumetric_speed": [ "2" + ], + "nozzle_temperature": [ + "255" + ], + "chamber_temperatures" : [ + "0" ], "compatible_printers": [ "Qidi Q1 Pro 0.2 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json index 61d203c633..8dd2cd4efd 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi Q1 Pro 0.4 nozzle.json @@ -18,9 +18,6 @@ "nozzle_temperature_initial_layer": [ "250" ], - "overhang_fan_speed": [ - "100" - ], "pressure_advance": [ "0.035" ], diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..4f3747e76c --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFB01", + "setting_id": "GFSB01_Qidi_10", + "name": "QIDI ASA @Qidi X-Plus 4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ASA @Qidi", + "filament_max_volumetric_speed": [ + "2" + ], + "nozzle_temperature": [ + "255" + ], + "chamber_temperatures" : [ + "0" + ], + "pressure_advance": [ + "0.03" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..98ea781cfd --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "filament", + "filament_id": "GFB01", + "setting_id": "GFSB01_Qidi_11", + "name": "QIDI ASA @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ASA @Qidi", + "chamber_temperature": [ + "55" + ], + "fan_cooling_layer_time": [ + "40" + ], + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "pressure_advance": [ + "0.03" + ], + "slow_down_layer_time": [ + "4" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..08b02f2320 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "filament", + "filament_id": "GFB01", + "setting_id": "GFSB01_Qidi_12", + "name": "QIDI ASA @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ASA @Qidi", + "fan_cooling_layer_time": [ + "40" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "pressure_advance": [ + "0.014" + ], + "slow_down_layer_time": [ + "4" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..6599bc74aa --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "filament", + "filament_id": "GFB01", + "setting_id": "GFSB01_Qidi_13", + "name": "QIDI ASA @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ASA @Qidi", + "fan_cooling_layer_time": [ + "40" + ], + "filament_max_volumetric_speed": [ + "13" + ], + "nozzle_temperature": [ + "255" + ], + "nozzle_temperature_initial_layer": [ + "250" + ], + "pressure_advance": [ + "0.011" + ], + "slow_down_layer_time": [ + "4" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ASA @Qidi.json b/resources/profiles/Qidi/filament/QIDI ASA @Qidi.json index bec9e38d9c..d044555e5b 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA @Qidi.json +++ b/resources/profiles/Qidi/filament/QIDI ASA @Qidi.json @@ -48,18 +48,6 @@ "pressure_advance": [ "0.021" ], - "max_fan_speed":[ - "50" - ], - "min_fan_speed":[ - "10" - ], - "filament_retraction_length": [ - "0.01" - ], - "overhang_fan_speed": [ - "100" - ], "filament_density":[ "1.07" ], @@ -76,15 +64,9 @@ "Qidi X-Plus 0.6 nozzle", "Qidi X-Max 0.6 nozzle", "Qidi X-CF Pro 0.6 nozzle", - "Qidi X-Smart 3 0.6 nozzle", - "Qidi X-Plus 3 0.6 nozzle", - "Qidi X-Max 3 0.6 nozzle", "Qidi X-Plus 0.8 nozzle", "Qidi X-Max 0.8 nozzle", - "Qidi X-CF Pro 0.8 nozzle", - "Qidi X-Smart 3 0.8 nozzle", - "Qidi X-Plus 3 0.8 nozzle", - "Qidi X-Max 3 0.8 nozzle" + "Qidi X-CF Pro 0.8 nozzle" ] } diff --git a/resources/profiles/Qidi/filament/QIDI ASA-Aero @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI ASA-Aero @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..e353634ef4 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI ASA-Aero @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFB01", + "setting_id": "GFSB01_Qidi_14", + "name": "QIDI ASA-Aero @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI ASA-Aero @Qidi", + "fan_cooling_layer_time": [ + "40" + ], + "nozzle_temperature": [ + "260" + ], + "slow_down_layer_time": [ + "4" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI ASA-Aero @Qidi.json b/resources/profiles/Qidi/filament/QIDI ASA-Aero @Qidi.json index 30b02a2b35..c5d07f469c 100644 --- a/resources/profiles/Qidi/filament/QIDI ASA-Aero @Qidi.json +++ b/resources/profiles/Qidi/filament/QIDI ASA-Aero @Qidi.json @@ -51,15 +51,6 @@ "filament_retraction_length": [ "0.01" ], - "max_fan_speed":[ - "50" - ], - "min_fan_speed":[ - "10" - ], - "overhang_fan_speed": [ - "100" - ], "filament_density":[ "1.03" ], diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle.json index 6063c8a6c5..52716b103c 100644 --- a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.4 nozzle.json @@ -9,9 +9,6 @@ "filament_max_volumetric_speed": [ "4" ], - "overhang_fan_speed": [ - "50" - ], "slow_down_min_speed": [ "20" ], diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle.json index 679913bb1c..5c9af2c0e1 100644 --- a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.6 nozzle.json @@ -9,9 +9,6 @@ "filament_max_volumetric_speed": [ "4" ], - "overhang_fan_speed": [ - "50" - ], "slow_down_min_speed": [ "20" ], diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle.json index e4ce33804b..7a40c0d605 100644 --- a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi Q1 Pro 0.8 nozzle.json @@ -9,9 +9,6 @@ "filament_max_volumetric_speed": [ "4" ], - "overhang_fan_speed": [ - "50" - ], "slow_down_min_speed": [ "20" ], diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..10aeb2f183 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "filament_id": "GFN04", + "setting_id": "GFSN04_Qidi_11", + "name": "QIDI PA-Ultra @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PA-Ultra @Qidi", + "filament_max_volumetric_speed": [ + "4" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..96f9f536b4 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "filament_id": "GFN04", + "setting_id": "GFSN04_Qidi_12", + "name": "QIDI PA-Ultra @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PA-Ultra @Qidi", + "filament_max_volumetric_speed": [ + "4" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..aae5b92381 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "filament_id": "GFN04", + "setting_id": "GFSN04_Qidi_13", + "name": "QIDI PA-Ultra @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PA-Ultra @Qidi", + "filament_max_volumetric_speed": [ + "4" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi.json b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi.json index 35922d8e98..6843dd277f 100644 --- a/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi.json +++ b/resources/profiles/Qidi/filament/QIDI PA-Ultra @Qidi.json @@ -24,10 +24,10 @@ "pressure_advance": [ "0.03" ], - "max_fan_speed":[ + "fan_max_speed": [ "40" ], - "min_fan_speed":[ + "fan_min_speed": [ "20" ], "hot_plate_temp_initial_layer" : [ @@ -44,6 +44,21 @@ ], "filament_flow_ratio": [ "0.96" + ], + "fan_cooling_layer_time": [ + "60" + ], + "overhang_fan_speed": [ + "100" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "slow_down_min_speed": [ + "20" + ], + "enable_overhang_bridge_fan": [ + "0" ], "compatible_printers": [ "Qidi X-Plus 0.4 nozzle", diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle.json index 7e00578575..2e4902a3ac 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -15,9 +15,6 @@ "nozzle_temperature_initial_layer": [ "300" ], - "overhang_fan_speed": [ - "50" - ], "pressure_advance": [ "0.032" ], diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle.json index 9bb457896e..2f0611d6aa 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -15,9 +15,6 @@ "nozzle_temperature_initial_layer": [ "300" ], - "overhang_fan_speed": [ - "50" - ], "pressure_advance": [ "0.032" ], diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle.json index a0c27db033..2e5d4245ac 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -15,9 +15,6 @@ "nozzle_temperature_initial_layer": [ "300" ], - "overhang_fan_speed": [ - "50" - ], "pressure_advance": [ "0.032" ], diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..ae451aa3d6 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFN04", + "setting_id": "GFSN04_Qidi_08", + "name": "QIDI PAHT-CF @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PAHT-CF @Qidi", + "fan_cooling_layer_time": [ + "10" + ], + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "pressure_advance": [ + "0.032" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..82cd09641d --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFN04", + "setting_id": "GFSN04_Qidi_09", + "name": "QIDI PAHT-CF @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PAHT-CF @Qidi", + "fan_cooling_layer_time": [ + "10" + ], + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "pressure_advance": [ + "0.032" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..5ac396a03f --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,27 @@ +{ + "type": "filament", + "filament_id": "GFN04", + "setting_id": "GFSN04_Qidi_10", + "name": "QIDI PAHT-CF @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PAHT-CF @Qidi", + "fan_cooling_layer_time": [ + "10" + ], + "nozzle_temperature": [ + "300" + ], + "nozzle_temperature_initial_layer": [ + "300" + ], + "pressure_advance": [ + "0.032" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi.json b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi.json index 55d432b880..d2639a618a 100644 --- a/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi.json +++ b/resources/profiles/Qidi/filament/QIDI PAHT-CF @Qidi.json @@ -31,7 +31,7 @@ "40" ], "fan_cooling_layer_time": [ - "5" + "10" ], "full_fan_speed_layer": [ "0" @@ -49,7 +49,7 @@ "80" ], "slow_down_layer_time": [ - "5" + "8" ], "filament_density":[ "1.20" diff --git a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle.json index 6e2764077c..4b65e7b97d 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -18,6 +18,12 @@ "slow_down_min_speed": [ "20" ], + "filament_max_volumetric_speed": [ + "15" + ], + "pressure_advance": [ + "0.032" + ], "compatible_printers": [ "Qidi Q1 Pro 0.4 nozzle" ] diff --git a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle.json index 03fcb21a97..4978c588ba 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -15,9 +15,6 @@ "nozzle_temperature_initial_layer": [ "280" ], - "overhang_fan_speed": [ - "50" - ], "pressure_advance": [ "0.025" ], diff --git a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..669daceb46 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "filament", + "filament_id": "GFT01", + "setting_id": "GFST01_Qidi_09", + "name": "QIDI PET-CF @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PET-CF @Qidi", + "fan_cooling_layer_time": [ + "10" + ], + "nozzle_temperature": [ + "280" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "slow_down_min_speed": [ + "20" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "pressure_advance": [ + "0.032" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..345c98b65c --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "filament", + "filament_id": "GFT01", + "setting_id": "GFST01_Qidi_10", + "name": "QIDI PET-CF @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PET-CF @Qidi", + "fan_cooling_layer_time": [ + "10" + ], + "nozzle_temperature": [ + "280" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "pressure_advance": [ + "0.025" + ], + "slow_down_min_speed": [ + "20" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..0ab853e84d --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,30 @@ +{ + "type": "filament", + "filament_id": "GFT01", + "setting_id": "GFST01_Qidi_11", + "name": "QIDI PET-CF @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PET-CF @Qidi", + "fan_cooling_layer_time": [ + "10" + ], + "nozzle_temperature": [ + "280" + ], + "nozzle_temperature_initial_layer": [ + "280" + ], + "pressure_advance": [ + "0.025" + ], + "slow_down_min_speed": [ + "20" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi.json b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi.json index c86ab41964..2f19c2734b 100644 --- a/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi.json +++ b/resources/profiles/Qidi/filament/QIDI PET-CF @Qidi.json @@ -25,10 +25,10 @@ "0%" ], "overhang_fan_speed": [ - "100" + "40" ], "fan_cooling_layer_time": [ - "5" + "10" ], "full_fan_speed_layer": [ "0" @@ -46,7 +46,7 @@ "80" ], "slow_down_layer_time": [ - "5" + "8" ], "filament_density":[ "1.30" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi 0.2 nozzle.json new file mode 100644 index 0000000000..307d84dde9 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi 0.2 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFT01", + "setting_id": "GFST01_Qidi_12", + "name": "QIDI PETG Tough @Qidi 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Tough @Qidi", + "filament_max_volumetric_speed": [ + "1" + ], + "compatible_printers": [ + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Smart 3 0.2 nozzle", + "Qidi X-Plus 3 0.2 nozzle", + "Qidi X-Max 3 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json index 37818a9de4..7b2ef159e1 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.4 nozzle.json @@ -10,7 +10,7 @@ "13" ], "pressure_advance": [ - "0.086" + "0.042" ], "compatible_printers": [ "Qidi Q1 Pro 0.4 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle.json index 61259f45b5..5d8881a642 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.6 nozzle.json @@ -9,6 +9,9 @@ "filament_max_volumetric_speed": [ "13" ], + "pressure_advance": [ + "0.032" + ], "compatible_printers": [ "Qidi Q1 Pro 0.6 nozzle" ] diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle.json index 7cd25c2eaa..f884cc73f5 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi Q1 Pro 0.8 nozzle.json @@ -10,7 +10,7 @@ "13" ], "pressure_advance": [ - "0.04" + "0.024" ], "compatible_printers": [ "Qidi Q1 Pro 0.8 nozzle" diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..ae25f79ad0 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "filament_id": "GFT01", + "setting_id": "GFST01_Qidi_13", + "name": "QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Tough @Qidi", + "filament_max_volumetric_speed": [ + "1" + ], + "pressure_advance": [ + "0.056" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..bde394fb57 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "filament_id": "GFT01", + "setting_id": "GFST01_Qidi_14", + "name": "QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Tough @Qidi", + "filament_max_volumetric_speed": [ + "13" + ], + "pressure_advance": [ + "0.056" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..d763a7a627 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "filament_id": "GFT01", + "setting_id": "GFST01_Qidi_15", + "name": "QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Tough @Qidi", + "filament_max_volumetric_speed": [ + "13" + ], + "pressure_advance": [ + "0.032" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..e7b5af5604 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,18 @@ +{ + "type": "filament", + "filament_id": "GFT01", + "setting_id": "GFST01_Qidi_16", + "name": "QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PETG Tough @Qidi", + "filament_max_volumetric_speed": [ + "13" + ], + "pressure_advance": [ + "0.024" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi.json b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi.json index e3f6335ad2..525172df62 100644 --- a/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi.json +++ b/resources/profiles/Qidi/filament/QIDI PETG Tough @Qidi.json @@ -16,10 +16,10 @@ "30" ], "overhang_fan_speed": [ - "100" + "90" ], "overhang_fan_threshold": [ - "25%" + "10%" ], "fan_max_speed": [ "40" @@ -55,12 +55,6 @@ "1.24" ], "compatible_printers": [ - "Qidi X-Plus 0.2 nozzle", - "Qidi X-Max 0.2 nozzle", - "Qidi X-CF Pro 0.2 nozzle", - "Qidi X-Smart 3 0.2 nozzle", - "Qidi X-Plus 3 0.2 nozzle", - "Qidi X-Max 3 0.2 nozzle", "Qidi X-Plus 0.4 nozzle", "Qidi X-Max 0.4 nozzle", "Qidi X-CF Pro 0.4 nozzle", @@ -72,6 +66,12 @@ "Qidi X-CF Pro 0.6 nozzle", "Qidi X-Smart 3 0.6 nozzle", "Qidi X-Plus 3 0.6 nozzle", - "Qidi X-Max 3 0.6 nozzle" + "Qidi X-Max 3 0.6 nozzle", + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" ] } diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi 0.2 nozzle.json new file mode 100644 index 0000000000..25ded05009 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi 0.2 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_16", + "name": "QIDI PLA Rapido @Qidi 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido @Qidi", + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Smart 3 0.2 nozzle", + "Qidi X-Plus 3 0.2 nozzle", + "Qidi X-Max 3 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..156f304403 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi 0.6 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_17", + "name": "QIDI PLA Rapido @Qidi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido @Qidi", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi 0.8 nozzle.json new file mode 100644 index 0000000000..e9c224a872 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi 0.8 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_18", + "name": "QIDI PLA Rapido @Qidi 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido @Qidi", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json index 6ac6df0a2a..433cf7acf3 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.2 nozzle.json @@ -12,9 +12,6 @@ "additional_cooling_fan_speed": [ "0" ], - "close_fan_the_first_x_layers": [ - "3" - ], "during_print_exhaust_fan_speed": [ "100" ], diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json index 3c3b18e988..eb23acf8d7 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.4 nozzle.json @@ -12,9 +12,6 @@ "additional_cooling_fan_speed": [ "0" ], - "close_fan_the_first_x_layers": [ - "3" - ], "during_print_exhaust_fan_speed": [ "100" ], diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle.json index a56f76220f..d009ac064c 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.6 nozzle.json @@ -12,9 +12,6 @@ "additional_cooling_fan_speed": [ "0" ], - "close_fan_the_first_x_layers": [ - "3" - ], "during_print_exhaust_fan_speed": [ "100" ], diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle.json index 10eb0385d5..9bba0bd455 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi Q1 Pro 0.8 nozzle.json @@ -12,9 +12,6 @@ "additional_cooling_fan_speed": [ "0" ], - "close_fan_the_first_x_layers": [ - "3" - ], "during_print_exhaust_fan_speed": [ "100" ], diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..93df78d85d --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_19", + "name": "QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.034" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..03943fa258 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_20", + "name": "QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.034" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..dd3bd56d7e --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_21", + "name": "QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.016" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..d7c07eca1b --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_22", + "name": "QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.008" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi 0.2 nozzle.json new file mode 100644 index 0000000000..b8c0b94e82 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi 0.2 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_23", + "name": "QIDI PLA Rapido Matte @Qidi 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Matte @Qidi", + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Smart 3 0.2 nozzle", + "Qidi X-Plus 3 0.2 nozzle", + "Qidi X-Max 3 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..c8a0851959 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi 0.6 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_24", + "name": "QIDI PLA Rapido Matte @Qidi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Matte @Qidi", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi 0.8 nozzle.json new file mode 100644 index 0000000000..d3a914462f --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi 0.8 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_25", + "name": "QIDI PLA Rapido Matte @Qidi 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Matte @Qidi", + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle.json index 32884b438d..32e1eb5955 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.2 nozzle.json @@ -12,9 +12,6 @@ "additional_cooling_fan_speed": [ "0" ], - "close_fan_the_first_x_layers": [ - "3" - ], "during_print_exhaust_fan_speed": [ "100" ], diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle.json index a130d13398..50d51e1436 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.4 nozzle.json @@ -12,9 +12,6 @@ "additional_cooling_fan_speed": [ "0" ], - "close_fan_the_first_x_layers": [ - "3" - ], "during_print_exhaust_fan_speed": [ "100" ], diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle.json index b33c386572..c7b7b34d3a 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.6 nozzle.json @@ -12,9 +12,6 @@ "additional_cooling_fan_speed": [ "0" ], - "close_fan_the_first_x_layers": [ - "3" - ], "during_print_exhaust_fan_speed": [ "100" ], diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle.json index 35e8254b91..b839e894e5 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi Q1 Pro 0.8 nozzle.json @@ -12,9 +12,6 @@ "additional_cooling_fan_speed": [ "0" ], - "close_fan_the_first_x_layers": [ - "3" - ], "during_print_exhaust_fan_speed": [ "100" ], diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..089e1b8acc --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_26", + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Matte @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.034" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..b9aae304f3 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_27", + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Matte @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.034" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..100b20dcc9 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_28", + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Matte @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.016" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..1e0f5e76e9 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_29", + "name": "QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Matte @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.008" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi 0.2 nozzle.json new file mode 100644 index 0000000000..88b0d9fcb2 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi 0.2 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_34", + "name": "QIDI PLA Rapido Metal @Qidi 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Metal @Qidi", + "filament_max_volumetric_speed": [ + "2" + ], + "compatible_printers": [ + "Qidi X-Plus 0.2 nozzle", + "Qidi X-Max 0.2 nozzle", + "Qidi X-CF Pro 0.2 nozzle", + "Qidi X-Smart 3 0.2 nozzle", + "Qidi X-Plus 3 0.2 nozzle", + "Qidi X-Max 3 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..892b625f34 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi 0.6 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_35", + "name": "QIDI PLA Rapido Metal @Qidi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Metal @Qidi", + "pressure_advance": [ + "0.02" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi 0.8 nozzle.json new file mode 100644 index 0000000000..9eb2a5640a --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi 0.8 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_36", + "name": "QIDI PLA Rapido Metal @Qidi 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Metal @Qidi", + "pressure_advance": [ + "0.01" + ], + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json new file mode 100644 index 0000000000..cf00ab623b --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_37", + "name": "QIDI PLA Rapido Metal @Qidi Q1 Pro 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Metal @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.042" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..809709b8c5 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_38", + "name": "QIDI PLA Rapido Metal @Qidi Q1 Pro 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Metal @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.042" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..0b9132f4ee --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_39", + "name": "QIDI PLA Rapido Metal @Qidi Q1 Pro 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Metal @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.016" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..9360948e8d --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_40", + "name": "QIDI PLA Rapido Metal @Qidi Q1 Pro 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Metal @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.008" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..5020fcc6d4 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_41", + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Metal @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "2" + ], + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.038" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..9fb602914f --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_42", + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Metal @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.038" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..3668e7db95 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_43", + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Metal @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.02" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..217390f247 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,45 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_44", + "name": "QIDI PLA Rapido Metal @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Metal @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "filament_max_volumetric_speed": [ + "24.5" + ], + "full_fan_speed_layer": [ + "3" + ], + "hot_plate_temp": [ + "60" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "210" + ], + "pressure_advance": [ + "0.01" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi.json new file mode 100644 index 0000000000..efd4db3b20 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Metal @Qidi.json @@ -0,0 +1,32 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_33", + "name": "QIDI PLA Rapido Metal @Qidi", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.038" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..861a93b4c8 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi 0.6 nozzle.json @@ -0,0 +1,20 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_46", + "name": "QIDI PLA Rapido Silk @Qidi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Silk @Qidi", + "pressure_advance": [ + "0.016" + ], + "compatible_printers": [ + "Qidi X-Plus 0.6 nozzle", + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..54c919ed7c --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,39 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_47", + "name": "QIDI PLA Rapido Silk @Qidi Q1 Pro 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Silk @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "full_fan_speed_layer": [ + "3" + ], + "pressure_advance": [ + "0.034" + ], + "slow_down_min_speed": [ + "20" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..7e33b21709 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,39 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_48", + "name": "QIDI PLA Rapido Silk @Qidi Q1 Pro 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Silk @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "full_fan_speed_layer": [ + "3" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "pressure_advance": [ + "0.024" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..b593c095fb --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,39 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_49", + "name": "QIDI PLA Rapido Silk @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Silk @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "full_fan_speed_layer": [ + "3" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "pressure_advance": [ + "0.034" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..f2c0df3c5f --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,39 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_50", + "name": "QIDI PLA Rapido Silk @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA Rapido Silk @Qidi", + "activate_air_filtration": [ + "1" + ], + "additional_cooling_fan_speed": [ + "0" + ], + "during_print_exhaust_fan_speed": [ + "100" + ], + "fan_cooling_layer_time": [ + "60" + ], + "full_fan_speed_layer": [ + "3" + ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], + "pressure_advance": [ + "0.021" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi.json b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi.json new file mode 100644 index 0000000000..bf52e6c279 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA Rapido Silk @Qidi.json @@ -0,0 +1,44 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_45", + "name": "QIDI PLA Rapido Silk @Qidi", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pla", + "filament_flow_ratio": [ + "0.98" + ], + "filament_max_volumetric_speed": [ + "7.5" + ], + "slow_down_layer_time": [ + "8" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.031" + ], + "nozzle_temperature": [ + "230" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "hot_plate_temp" : [ + "55" + ], + "hot_plate_temp_initial_layer" : [ + "55" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json index 112cb6b8f7..e752ab93bf 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -6,12 +6,9 @@ "from": "system", "instantiation": "true", "inherits": "QIDI PLA-CF @Qidi", - "extrusion_multiplier": [ + "filament_flow_ratio": [ "0.93" ], - "first_layer_temperature": [ - "220" - ], "filament_max_volumetric_speed": [ "15" ], diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json index b89513789f..0765557e68 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -6,12 +6,9 @@ "from": "system", "instantiation": "true", "inherits": "QIDI PLA-CF @Qidi", - "extrusion_multiplier": [ + "filament_flow_ratio": [ "0.93" ], - "first_layer_temperature": [ - "220" - ], "filament_max_volumetric_speed": [ "15" ], diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json index bcae5ff8db..b0a2970e21 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -6,12 +6,9 @@ "from": "system", "instantiation": "true", "inherits": "QIDI PLA-CF @Qidi", - "extrusion_multiplier": [ + "filament_flow_ratio": [ "0.93" ], - "first_layer_temperature": [ - "220" - ], "filament_max_volumetric_speed": [ "18" ], diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..f577279307 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_30", + "name": "QIDI PLA-CF @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA-CF @Qidi", + "filament_flow_ratio": [ + "0.93" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "nozzle_temperature": [ + "220" + ], + "pressure_advance": [ + "0.034" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..154294cbc7 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_31", + "name": "QIDI PLA-CF @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA-CF @Qidi", + "filament_flow_ratio": [ + "0.93" + ], + "filament_max_volumetric_speed": [ + "15" + ], + "nozzle_temperature": [ + "220" + ], + "pressure_advance": [ + "0.012" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..fd3f06a017 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFA00", + "setting_id": "GFSA00_Qidi_32", + "name": "QIDI PLA-CF @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PLA-CF @Qidi", + "filament_flow_ratio": [ + "0.93" + ], + "filament_max_volumetric_speed": [ + "18" + ], + "nozzle_temperature": [ + "220" + ], + "pressure_advance": [ + "0.008" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi.json b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi.json index 29da84718a..b1a2a5f6df 100644 --- a/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi.json +++ b/resources/profiles/Qidi/filament/QIDI PLA-CF @Qidi.json @@ -15,18 +15,15 @@ "filament_max_volumetric_speed": [ "9" ], - "temperature": [ - "230" - ], - "first_layer_temperature": [ - "230" - ], + "nozzle_temperature": [ + "220" + ], + "nozzle_temperature_initial_layer": [ + "220" + ], "filament_density": [ "1.25" ], - "extrusion_multiplier": [ - "0.96" - ], "advance_pressure": [ "0.02" ], diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi 0.6 nozzle.json new file mode 100644 index 0000000000..22d6e81beb --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi 0.6 nozzle.json @@ -0,0 +1,28 @@ +{ + "type": "filament", + "filament_id": "GFT02", + "setting_id": "GFST02_Qidi_07", + "name": "QIDI PPS-CF @Qidi 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PPS-CF @Qidi", + "nozzle_temperature": [ + "320" + ], + "nozzle_temperature_initial_layer": [ + "320" + ], + "pressure_advance": [ + "0.021" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Max 0.6 nozzle", + "Qidi X-CF Pro 0.6 nozzle", + "Qidi X-Smart 3 0.6 nozzle", + "Qidi X-Plus 3 0.6 nozzle", + "Qidi X-Max 3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi 0.8 nozzle.json new file mode 100644 index 0000000000..1941969a04 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi 0.8 nozzle.json @@ -0,0 +1,29 @@ +{ + "type": "filament", + "filament_id": "GFT02", + "setting_id": "GFST02_Qidi_08", + "name": "QIDI PPS-CF @Qidi 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PPS-CF @Qidi", + "nozzle_temperature": [ + "320" + ], + "nozzle_temperature_initial_layer": [ + "320" + ], + "pressure_advance": [ + "0.008" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 0.8 nozzle", + "Qidi X-Max 0.8 nozzle", + "Qidi X-CF Pro 0.8 nozzle", + "Qidi X-Smart 3 0.8 nozzle", + "Qidi X-Plus 3 0.8 nozzle", + "Qidi X-Max 3 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle.json new file mode 100644 index 0000000000..50e0a1183c --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFT02", + "setting_id": "GFST02_Qidi_01", + "name": "QIDI PPS-CF @Qidi Q1 Pro 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PPS-CF @Qidi", + "nozzle_temperature": [ + "320" + ], + "nozzle_temperature_initial_layer": [ + "320" + ], + "pressure_advance": [ + "0.03" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle.json new file mode 100644 index 0000000000..e5d34f4a1e --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFT02", + "setting_id": "GFST02_Qidi_02", + "name": "QIDI PPS-CF @Qidi Q1 Pro 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PPS-CF @Qidi", + "nozzle_temperature": [ + "320" + ], + "nozzle_temperature_initial_layer": [ + "320" + ], + "pressure_advance": [ + "0.019" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle.json new file mode 100644 index 0000000000..fbef676382 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFT02", + "setting_id": "GFST02_Qidi_03", + "name": "QIDI PPS-CF @Qidi Q1 Pro 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PPS-CF @Qidi", + "nozzle_temperature": [ + "320" + ], + "nozzle_temperature_initial_layer": [ + "320" + ], + "pressure_advance": [ + "0.008" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi Q1 Pro 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..2c001211a9 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFT02", + "setting_id": "GFST02_Qidi_04", + "name": "QIDI PPS-CF @Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PPS-CF @Qidi", + "nozzle_temperature": [ + "320" + ], + "nozzle_temperature_initial_layer": [ + "320" + ], + "pressure_advance": [ + "0.03" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..dff54cd573 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFT02", + "setting_id": "GFST02_Qidi_05", + "name": "QIDI PPS-CF @Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PPS-CF @Qidi", + "nozzle_temperature": [ + "320" + ], + "nozzle_temperature_initial_layer": [ + "320" + ], + "pressure_advance": [ + "0.021" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..9ff732c98d --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "filament", + "filament_id": "GFT02", + "setting_id": "GFST02_Qidi_06", + "name": "QIDI PPS-CF @Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "QIDI PPS-CF @Qidi", + "nozzle_temperature": [ + "320" + ], + "nozzle_temperature_initial_layer": [ + "320" + ], + "pressure_advance": [ + "0.008" + ], + "slow_down_min_speed": [ + "20" + ], + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi.json b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi.json new file mode 100644 index 0000000000..3e0fd77d97 --- /dev/null +++ b/resources/profiles/Qidi/filament/QIDI PPS-CF @Qidi.json @@ -0,0 +1,71 @@ +{ + "type": "filament", + "filament_id": "GFT02", + "setting_id": "GFST02_Qidi_00", + "name": "QIDI PPS-CF @Qidi", + "from": "system", + "instantiation": "true", + "inherits": "fdm_filament_pa", + "filament_type": [ + "PA-CF" + ], + "nozzle_temperature_initial_layer": [ + "320" + ], + "nozzle_temperature": [ + "320" + ], + "filament_max_volumetric_speed": [ + "6" + ], + "fan_max_speed": [ + "30" + ], + "fan_min_speed": [ + "0" + ], + "overhang_fan_threshold": [ + "0%" + ], + "overhang_fan_speed": [ + "40" + ], + "fan_cooling_layer_time": [ + "5" + ], + "full_fan_speed_layer": [ + "0" + ], + "enable_pressure_advance": [ + "1" + ], + "pressure_advance": [ + "0.03" + ], + "hot_plate_temp_initial_layer" : [ + "110" + ], + "hot_plate_temp" : [ + "110" + ], + "slow_down_layer_time": [ + "2" + ], + "filament_density":[ + "1.20" + ], + "filament_flow_ratio": [ + "0.97" + ], + "chamber_temperatures" : [ + "60" + ], + "compatible_printers": [ + "Qidi X-Plus 0.4 nozzle", + "Qidi X-Max 0.4 nozzle", + "Qidi X-CF Pro 0.4 nozzle", + "Qidi X-Smart 3 0.4 nozzle", + "Qidi X-Plus 3 0.4 nozzle", + "Qidi X-Max 3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/filament/QIDI TPU 95A-HF @Qidi.json b/resources/profiles/Qidi/filament/QIDI TPU 95A-HF @Qidi.json index f9a067ed9c..745706a692 100644 --- a/resources/profiles/Qidi/filament/QIDI TPU 95A-HF @Qidi.json +++ b/resources/profiles/Qidi/filament/QIDI TPU 95A-HF @Qidi.json @@ -39,6 +39,9 @@ "Qidi X-Smart 3 0.8 nozzle", "Qidi X-Plus 3 0.8 nozzle", "Qidi X-Max 3 0.8 nozzle", - "Qidi Q1 Pro 0.6 nozzle" + "Qidi Q1 Pro 0.6 nozzle", + "Qidi X-Plus 4 0.4 nozzle", + "Qidi X-Plus 4 0.6 nozzle", + "Qidi X-Plus 4 0.8 nozzle" ] } diff --git a/resources/profiles/Qidi/filament/fdm_filament_abs.json b/resources/profiles/Qidi/filament/fdm_filament_abs.json index d0d479065e..f732d5dcb4 100644 --- a/resources/profiles/Qidi/filament/fdm_filament_abs.json +++ b/resources/profiles/Qidi/filament/fdm_filament_abs.json @@ -38,7 +38,7 @@ "3" ], "fan_cooling_layer_time": [ - "30" + "60" ], "filament_max_volumetric_speed": [ "20" @@ -59,10 +59,10 @@ "1" ], "fan_max_speed": [ - "50" + "80" ], "fan_min_speed": [ - "20" + "10" ], "overhang_fan_threshold": [ "25%" @@ -83,7 +83,7 @@ "270" ], "slow_down_min_speed": [ - "10" + "20" ], "slow_down_layer_time": [ "4" diff --git a/resources/profiles/Qidi/filament/fdm_filament_asa.json b/resources/profiles/Qidi/filament/fdm_filament_asa.json index 10cf7092a0..6733a15cf8 100644 --- a/resources/profiles/Qidi/filament/fdm_filament_asa.json +++ b/resources/profiles/Qidi/filament/fdm_filament_asa.json @@ -38,7 +38,7 @@ "3" ], "fan_cooling_layer_time": [ - "35" + "40" ], "filament_max_volumetric_speed": [ "15" @@ -83,9 +83,9 @@ "280" ], "slow_down_min_speed": [ - "10" + "20" ], "slow_down_layer_time": [ - "3" + "4" ] } diff --git a/resources/profiles/Qidi/filament/fdm_filament_common.json b/resources/profiles/Qidi/filament/fdm_filament_common.json index d04f771b95..9f34554a5a 100644 --- a/resources/profiles/Qidi/filament/fdm_filament_common.json +++ b/resources/profiles/Qidi/filament/fdm_filament_common.json @@ -43,7 +43,7 @@ "1" ], "reduce_fan_stop_start_freq": [ - "0" + "1" ], "fan_cooling_layer_time": [ "60" @@ -144,5 +144,8 @@ "activate_chamber_temp_control": [ "0" ], + "enable_pressure_advance": [ + "1" + ], "compatible_printers": [] } diff --git a/resources/profiles/Qidi/filament/fdm_filament_pa.json b/resources/profiles/Qidi/filament/fdm_filament_pa.json index 1e880d9d71..69aee4b1ab 100644 --- a/resources/profiles/Qidi/filament/fdm_filament_pa.json +++ b/resources/profiles/Qidi/filament/fdm_filament_pa.json @@ -56,7 +56,7 @@ "290" ], "reduce_fan_stop_start_freq": [ - "0" + "1" ], "fan_max_speed": [ "60" @@ -65,7 +65,7 @@ "0" ], "overhang_fan_speed": [ - "30" + "50" ], "nozzle_temperature": [ "290" @@ -77,10 +77,10 @@ "260" ], "nozzle_temperature_range_high": [ - "300" + "350" ], "slow_down_min_speed": [ - "10" + "20" ], "slow_down_layer_time": [ "2" diff --git a/resources/profiles/Qidi/filament/fdm_filament_pet.json b/resources/profiles/Qidi/filament/fdm_filament_pet.json index a41d223fb0..2801c01a78 100644 --- a/resources/profiles/Qidi/filament/fdm_filament_pet.json +++ b/resources/profiles/Qidi/filament/fdm_filament_pet.json @@ -23,7 +23,7 @@ "80" ], "hot_plate_temp_initial_layer" : [ - "70" + "80" ], "textured_plate_temp_initial_layer" : [ "80" @@ -75,5 +75,8 @@ ], "nozzle_temperature_range_high": [ "260" + ], + "slow_down_min_speed": [ + "20" ] } diff --git a/resources/profiles/Qidi/filament/fdm_filament_pla.json b/resources/profiles/Qidi/filament/fdm_filament_pla.json index 24bbf363bf..09de579dc8 100644 --- a/resources/profiles/Qidi/filament/fdm_filament_pla.json +++ b/resources/profiles/Qidi/filament/fdm_filament_pla.json @@ -5,7 +5,7 @@ "instantiation": "false", "inherits": "fdm_filament_common", "fan_cooling_layer_time": [ - "100" + "60" ], "filament_max_volumetric_speed": [ "12" @@ -62,25 +62,25 @@ "100" ], "overhang_fan_threshold": [ - "50%" + "95%" ], "close_fan_the_first_x_layers": [ - "2" + "1" ], - "full_fan_speed_layer": [ - "0" + "full_fan_speed_layer": [ + "3" ], "nozzle_temperature": [ "220" ], "temperature_vitrification": [ - "60" + "45" ], "nozzle_temperature_range_low": [ "190" ], "nozzle_temperature_range_high": [ - "230" + "240" ], "slow_down_min_speed": [ "20" @@ -90,5 +90,9 @@ ], "additional_cooling_fan_speed": [ "0" + ], + "enable_overhang_bridge_fan": [ + "0" ] + } diff --git a/resources/profiles/Qidi/filament/fdm_filament_tpu.json b/resources/profiles/Qidi/filament/fdm_filament_tpu.json index e182ee1c3f..f924f2cbf2 100644 --- a/resources/profiles/Qidi/filament/fdm_filament_tpu.json +++ b/resources/profiles/Qidi/filament/fdm_filament_tpu.json @@ -11,10 +11,10 @@ "50" ], "hot_plate_temp" : [ - "50" + "60" ], "textured_plate_temp" : [ - "50" + "60" ], "cool_plate_temp_initial_layer" : [ "05" @@ -23,13 +23,13 @@ "50" ], "hot_plate_temp_initial_layer" : [ - "50" + "60" ], "textured_plate_temp_initial_layer" : [ "50" ], "fan_cooling_layer_time": [ - "100" + "60" ], "filament_max_volumetric_speed": [ "15" @@ -43,9 +43,6 @@ "filament_cost": [ "40" ], - "filament_retraction_length": [ - "1" - ], "nozzle_temperature_initial_layer": [ "230" ], @@ -65,7 +62,7 @@ "100" ], "additional_cooling_fan_speed": [ - "70" + "0" ], "close_fan_the_first_x_layers": [ "1" @@ -74,12 +71,18 @@ "230" ], "temperature_vitrification": [ - "99" + "30" ], "nozzle_temperature_range_low": [ - "205" + "200" ], "nozzle_temperature_range_high": [ "250" + ], + "slow_down_min_speed": [ + "20" + ], + "enable_overhang_bridge_fan": [ + "0" ] } diff --git a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.2 nozzle.json b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.2 nozzle.json index c90a385abc..7a923fa4c5 100644 --- a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.2 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.2 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi Q1 Pro", "printer_variant": "0.2", "default_filament_profile": [ - "Qidi Generic PLA @Qidi Q1 Pro 0.2 nozzle" + "Generic PLA @Qidi Q1 Pro 0.2 nozzle" ], "default_print_profile": "0.10mm Standard @Qidi Q1 Pro 0.2 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.4 nozzle.json index ad6cfc8336..314b859552 100644 --- a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.4 nozzle.json @@ -51,21 +51,39 @@ ], "retract_before_wipe": [ "0%" + ], + "retract_lift_below": [ + "239" ], "wipe_distance": [ "2"], - "single_extruder_multi_material": "0", + "single_extruder_multi_material": "1", "change_filament_gcode": "", "machine_pause_gcode": "M0", "thumbnails": [ "160x160", "112x112" ], + "machine_max_jerk_e": [ + "2" + ], + "machine_max_jerk_x": [ + "8" + ], + "machine_max_jerk_y": [ + "8" + ], + "machine_max_jerk_z": [ + "3" + ], + "extruder_clearance_max_radius": "70", + "extruder_clearance_height_to_rod": "40", + "extruder_clearance_height_to_lid": "120", "layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nLOG_Z\nG92 E0\n", "machine_end_gcode": "M141 S0\nM104 S0\nM140 S0\nG1 E-3 F1800\nG0 Z{min(max_print_height, max_layer_z + 3)} F600\nG0 X0 Y0 F12000\n{if max_layer_z < max_print_height / 2}G1 Z{max_print_height / 2 + 10} F600{else}G1 Z{min(max_print_height, max_layer_z + 3)}{endif}", "machine_start_gcode": "PRINT_START BED=[hot_plate_temp_initial_layer] HOTEND=[nozzle_temperature_initial_layer] CHAMBER=[chamber_temperatures]\nM83\nM140 S[hot_plate_temp_initial_layer]\nM104 S[nozzle_temperature_initial_layer]\nG4 P3000\nG0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1] - 5, first_layer_print_min[1] + 80) - 85), 0)} Z5 F6000\nG0 Z[initial_layer_print_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 5, first_layer_print_min[1] + 80) - 85), 0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85), 0)} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 5, first_layer_print_min[1] + 80) - 85), 0) + 85} E{83 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85), 0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 5, first_layer_print_min[1] + 80) - 85), 0) + 3} E{82 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85), 0) + 3} Z0\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85), 0) + 6}\nG1 Z1 F600\n", "thumbnails_format": "PNG", "default_filament_profile": [ - "Qidi Generic PLA @Qidi Q1 Pro 0.4 nozzle" + "Generic PLA @Qidi Q1 Pro 0.4 nozzle" ] } \ No newline at end of file diff --git a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.6 nozzle.json b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.6 nozzle.json index 9ef265e6c1..7eb5da89f6 100644 --- a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.6 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.6 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi Q1 Pro", "printer_variant": "0.6", "default_filament_profile": [ - "Qidi Generic PLA @Qidi Q1 Pro 0.6 nozzle" + "Generic PLA @Qidi Q1 Pro 0.6 nozzle" ], "default_print_profile": "0.30mm Standard @Qidi Q1 Pro 0.6 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.8 nozzle.json b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.8 nozzle.json index cb632d5cc3..a05327d4c6 100644 --- a/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.8 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi Q1 Pro 0.8 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi Q1 Pro", "printer_variant": "0.8", "default_filament_profile": [ - "Qidi Generic PLA @Qidi Q1 Pro 0.8 nozzle" + "Generic PLA @Qidi Q1 Pro 0.8 nozzle" ], "default_print_profile": "0.40mm Standard @Qidi Q1 Pro 0.8 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi Q1 Pro.json b/resources/profiles/Qidi/machine/Qidi Q1 Pro.json index 64da7a27df..3868f06b0a 100644 --- a/resources/profiles/Qidi/machine/Qidi Q1 Pro.json +++ b/resources/profiles/Qidi/machine/Qidi Q1 Pro.json @@ -6,7 +6,6 @@ "machine_tech": "FFF", "family": "Qidi", "bed_model": "qidi_Q1Pro_buildplate_model.stl", - "bed_texture": "qidi_Q1Pro_buildplate_texture.png", "hotend_model": "qidi_xseries_gen3_hotend.stl", "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PETG Tough;QIDI PET-CF;QIDI PA12-CF;QIDI PAHT-CF;QIDI ABS-GF25;QIDI PA-Ultra;Qidi Generic ASA;Qidi Generic ABS;Qidi Generic PA-CF;Qidi Generic PA;Qidi Generic PC;Qidi Generic PETG-CF;Qidi Generic PETG;Qidi Generic PLA Silk;Qidi Generic PLA;Qidi Generic TPU 95A" } diff --git a/resources/profiles/Qidi/machine/Qidi X-CF Pro.json b/resources/profiles/Qidi/machine/Qidi X-CF Pro.json index 6af5177cc7..4649e7c39e 100644 --- a/resources/profiles/Qidi/machine/Qidi X-CF Pro.json +++ b/resources/profiles/Qidi/machine/Qidi X-CF Pro.json @@ -6,7 +6,6 @@ "machine_tech": "FFF", "family": "Qidi", "bed_model": "qidi_xcfpro_buildplate_model.stl", - "bed_texture": "qidi_xcfpro_buildplate_texture.png", "hotend_model": "qidi_xseries_gen2_hotend.stl", "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PETG Tough;QIDI PET-CF;QIDI PA12-CF;QIDI PAHT-CF;QIDI ABS-GF25;QIDI PA-Ultra;Qidi Generic ASA;Qidi Generic ABS;Qidi Generic PA-CF;Qidi Generic PA;Qidi Generic PC;Qidi Generic PETG-CF;Qidi Generic PETG;Qidi Generic PLA Silk;Qidi Generic PLA;Qidi Generic PLA-CF;Qidi Generic PVA;Qidi Generic TPU 95A" } diff --git a/resources/profiles/Qidi/machine/Qidi X-Max 3 0.2 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Max 3 0.2 nozzle.json index dcb9066dda..c9c34ad1cc 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Max 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Max 3 0.2 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Max 3", "printer_variant": "0.2", "default_filament_profile": [ - "Qidi Generic PLA @Qidi X-Max 3 0.2 nozzle" + "Generic PLA @Qidi X-Max 3 0.2 nozzle" ], "default_print_profile": "0.10mm Standard @Qidi XMax3 0.2 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Max 3 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Max 3 0.4 nozzle.json index a03cee6651..2caa4831cc 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Max 3 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Max 3 0.4 nozzle.json @@ -39,10 +39,16 @@ "deretraction_speed": [ "0" ], - "single_extruder_multi_material": "0", + "retract_lift_below": [ + "314" + ], + "extruder_clearance_max_radius": "70", + "extruder_clearance_height_to_rod": "30", + "extruder_clearance_height_to_lid": "118", + "single_extruder_multi_material": "1", "change_filament_gcode": "", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA" ] } \ No newline at end of file diff --git a/resources/profiles/Qidi/machine/Qidi X-Max 3 0.6 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Max 3 0.6 nozzle.json index 5f34cf6528..e17e3adf31 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Max 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Max 3 0.6 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Max 3", "printer_variant": "0.6", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA" ], "default_print_profile": "0.30mm Standard @Qidi XMax3 0.6 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Max 3 0.8 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Max 3 0.8 nozzle.json index 0daffab7fe..eb3ac3802b 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Max 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Max 3 0.8 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Max 3", "printer_variant": "0.8", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA" ], "default_print_profile": "0.40mm Standard @Qidi XMax3 0.8 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Max 3.json b/resources/profiles/Qidi/machine/Qidi X-Max 3.json index c2e6f10b9b..810762b936 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Max 3.json +++ b/resources/profiles/Qidi/machine/Qidi X-Max 3.json @@ -6,7 +6,6 @@ "machine_tech": "FFF", "family": "Qidi", "bed_model": "qidi_xmax3_buildplate_model.stl", - "bed_texture": "qidi_xmax3_buildplate_texture.png", "hotend_model": "qidi_xseries_gen3_hotend.stl", "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PETG Tough;QIDI PET-CF;QIDI PA12-CF;QIDI PAHT-CF;QIDI ABS-GF25;QIDI PA-Ultra;Qidi Generic ASA;Qidi Generic ABS;Qidi Generic PA-CF;Qidi Generic PA;Qidi Generic PC;Qidi Generic PETG-CF;Qidi Generic PETG;Qidi Generic PLA Silk;Qidi Generic PLA;Qidi Generic TPU 95A" } diff --git a/resources/profiles/Qidi/machine/Qidi X-Max.json b/resources/profiles/Qidi/machine/Qidi X-Max.json index 764fc7d2b1..18ba9744b5 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Max.json +++ b/resources/profiles/Qidi/machine/Qidi X-Max.json @@ -6,7 +6,6 @@ "machine_tech": "FFF", "family": "Qidi", "bed_model": "qidi_xmax_buildplate_model.stl", - "bed_texture": "qidi_xmax_buildplate_texture.png", "hotend_model": "qidi_xseries_gen2_hotend.stl", "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PETG Tough;QIDI PET-CF;QIDI PA12-CF;QIDI PAHT-CF;QIDI ABS-GF25;QIDI PA-Ultra;Qidi Generic ASA;Qidi Generic ABS;Qidi Generic PA-CF;Qidi Generic PA;Qidi Generic PC;Qidi Generic PETG-CF;Qidi Generic PETG;Qidi Generic PLA Silk;Qidi Generic PLA;Qidi Generic PLA-CF;Qidi Generic PVA;Qidi Generic TPU 95A" } diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.2 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.2 nozzle.json index db6421a6dd..0c2f64b730 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.2 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Plus 3", "printer_variant": "0.2", "default_filament_profile": [ - "Qidi Generic PLA @Qidi X-Plus 3 0.2 nozzle" + "Generic PLA @Qidi X-Plus 3 0.2 nozzle" ], "default_print_profile": "0.10mm Standard @Qidi XPlus3 0.2 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.4 nozzle.json index fdf66e309c..907fb1297e 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.4 nozzle.json @@ -38,10 +38,16 @@ "deretraction_speed": [ "0" ], - "single_extruder_multi_material": "0", + "retract_lift_below": [ + "269" + ], + "extruder_clearance_radius": "60", + "extruder_clearance_height_to_rod": "38", + "extruder_clearance_height_to_lid": "110", + "single_extruder_multi_material": "1", "change_filament_gcode": "", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA" ] } \ No newline at end of file diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.6 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.6 nozzle.json index 76ea4b35dd..6b6a38c99e 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.6 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Plus 3", "printer_variant": "0.6", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA" ], "default_print_profile": "0.30mm Standard @Qidi XPlus3 0.6 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.8 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.8 nozzle.json index a603637d43..308f3519c7 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 3 0.8 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Plus 3", "printer_variant": "0.8", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA" ], "default_print_profile": "0.40mm Standard @Qidi XPlus3 0.8 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 3.json b/resources/profiles/Qidi/machine/Qidi X-Plus 3.json index a9124522d5..f1a8526e9d 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus 3.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 3.json @@ -6,7 +6,6 @@ "machine_tech": "FFF", "family": "Qidi", "bed_model": "qidi_xplus3_buildplate_model.stl", - "bed_texture": "qidi_xplus3_buildplate_texture.png", "hotend_model": "qidi_xseries_gen3_hotend.stl", "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PETG Tough;QIDI PET-CF;QIDI PA12-CF;QIDI PAHT-CF;QIDI ABS-GF25;QIDI PA-Ultra;Qidi Generic ASA;Qidi Generic ABS;Qidi Generic PA-CF;Qidi Generic PA;Qidi Generic PC;Qidi Generic PETG-CF;Qidi Generic PETG;Qidi Generic PLA Silk;Qidi Generic PLA;Qidi Generic TPU 95A" } diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.2 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.2 nozzle.json new file mode 100644 index 0000000000..94208b7498 --- /dev/null +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.2 nozzle.json @@ -0,0 +1,26 @@ +{ + "type": "machine", + "setting_id": "GM_Qidi_020", + "name": "Qidi X-Plus 4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi X-Plus 4 0.4 nozzle", + "nozzle_diameter": [ + "0.2" + ], + "printer_model": "Qidi X-Plus 4", + "printer_variant": "0.2", + "default_filament_profile": [ + "Generic PLA @Qidi X-Plus 4 0.2 nozzle" + ], + "default_print_profile": "0.10mm Standard @Qidi XPlus4 0.2 nozzle", + "max_layer_height": [ + "0.14" + ], + "min_layer_height": [ + "0.04" + ], + "retraction_length": [ + "0.4" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.4 nozzle.json new file mode 100644 index 0000000000..b435a50925 --- /dev/null +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.4 nozzle.json @@ -0,0 +1,87 @@ +{ + "type": "machine", + "setting_id": "GM_Qidi_021", + "name": "Qidi X-Plus 4 0.4 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_qidi_x3_common", + "printer_model": "Qidi X-Plus 4", + "gcode_flavor": "klipper", + "default_print_profile": "0.20mm Standard @Qidi XPlus4", + "nozzle_diameter": [ + "0.4" + ], + "printable_area": [ + "0x0", + "305x0", + "305x305", + "0x305" + ], + "bed_exclude_area": [ + "0x0" + ], + "printable_height": "280", + "nozzle_type": "hardened_steel", + "max_layer_height": [ + "0.28" + ], + "min_layer_height": [ + "0.08" + ], + "printer_settings_id": "Qidi", + "retraction_minimum_travel": [ + "1" + ], + "retraction_length": [ + "0.8" + ], + "retract_length_toolchange": [ + "2" + ], + "deretraction_speed": [ + "0" + ], + "retract_before_wipe": [ + "0%" + ], + "wipe_distance": [ + "2"], + "single_extruder_multi_material": "1", + "change_filament_gcode": "", + "machine_pause_gcode": "M0", + "thumbnails": [ + "272x272", + "96x96" + ], + "machine_max_jerk_e": [ + "4" + ], + "machine_max_jerk_x": [ + "9" + ], + "machine_max_jerk_y": [ + "9" + ], + "machine_max_jerk_z": [ + "4" + ], + "machine_max_acceleration_retracting": [ + "20000" + ], + "machine_max_speed_z": [ + "20" + ], + "retract_lift_below": [ + "279" + ], + "extruder_clearance_max_radius": "72", + "extruder_clearance_height_to_rod": "32", + "extruder_clearance_height_to_lid": "135", + "layer_change_gcode": "G92 E0\nSET_PRINT_STATS_INFO CURRENT_LAYER={layer_num + 1}", + "machine_end_gcode": "M141 S0\nM104 S0\nM140 S0\nG1 E-3 F1800\nG0 Z{min(max_print_height, max_layer_z + 3)} F600\nG0 X0 Y0 F12000\n{if max_layer_z < max_print_height / 2}G1 Z{max_print_height / 2 + 10} F600{else}G1 Z{min(max_print_height, max_layer_z + 3)}{endif}", + "machine_start_gcode": "PRINT_START BED=[hot_plate_temp_initial_layer] HOTEND=[nozzle_temperature_initial_layer] CHAMBER=[chamber_temperatures]\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\nM83\nM140 S[hot_plate_temp_initial_layer]\nM104 S[nozzle_temperature_initial_layer]\nM141 S[chamber_temperature]\nG4 P3000\nG0 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0)} Y{max((min(print_bed_max[1] - 3, first_layer_print_min[1] + 80) - 85), 0)} Z5 F6000\nG0 Z[initial_layer_print_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0] - 12, first_layer_print_min[0] + 80))} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 3, first_layer_print_min[1] + 80) - 85), 0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0)} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 3, first_layer_print_min[1] + 80) - 85), 0) + 85} E{83 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1] - 3, first_layer_print_min[1] + 80) - 85), 0) + 3} E{82 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0) + 3} Z0\nG1 X{max((min(print_bed_max[0] - 12, first_layer_print_min[0] + 80) - 85), 0) + 6}\nG1 Z1 F600\nSET_PRINT_STATS_INFO CURRENT_LAYER=1\n", + "thumbnails_format": "PNG", + "default_filament_profile": [ + "Generic PLA @Qidi X-Plus 4 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.6 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.6 nozzle.json new file mode 100644 index 0000000000..ae18547ec1 --- /dev/null +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.6 nozzle.json @@ -0,0 +1,29 @@ +{ + "type": "machine", + "setting_id": "GM_Qidi_022", + "name": "Qidi X-Plus 4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi X-Plus 4 0.4 nozzle", + "nozzle_diameter": [ + "0.6" + ], + "printer_model": "Qidi X-Plus 4", + "printer_variant": "0.6", + "default_filament_profile": [ + "Generic PLA @Qidi X-Plus 4 0.6 nozzle" + ], + "default_print_profile": "0.30mm Standard @Qidi XPlus4 0.6 nozzle", + "max_layer_height": [ + "0.42" + ], + "min_layer_height": [ + "0.12" + ], + "retraction_length": [ + "1.4" + ], + "retraction_minimum_travel": [ + "3" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.8 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.8 nozzle.json new file mode 100644 index 0000000000..2d96f4b375 --- /dev/null +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 4 0.8 nozzle.json @@ -0,0 +1,29 @@ +{ + "type": "machine", + "setting_id": "GM_Qidi_023", + "name": "Qidi X-Plus 4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "Qidi X-Plus 4 0.4 nozzle", + "nozzle_diameter": [ + "0.8" + ], + "printer_model": "Qidi X-Plus 4", + "printer_variant": "0.8", + "default_filament_profile": [ + "Generic PLA @Qidi X-Plus 4 0.8 nozzle" + ], + "default_print_profile": "0.40mm Standard @Qidi XPlus4 0.8 nozzle", + "max_layer_height": [ + "0.56" + ], + "min_layer_height": [ + "0.16" + ], + "retract_length_toolchange": [ + "10" + ], + "retraction_length": [ + "3" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus 4.json b/resources/profiles/Qidi/machine/Qidi X-Plus 4.json new file mode 100644 index 0000000000..f817b4c95d --- /dev/null +++ b/resources/profiles/Qidi/machine/Qidi X-Plus 4.json @@ -0,0 +1,11 @@ +{ + "type": "machine_model", + "name": "Qidi X-Plus 4", + "model_id": "Qidi-XPlus-4", + "nozzle_diameter": "0.4;0.2;0.6;0.8", + "machine_tech": "FFF", + "family": "Qidi", + "bed_model": "qidi_xplus4_buildplate_model.stl", + "hotend_model": "qidi_xseries_gen3_hotend.stl", + "default_materials": "QIDI PLA Rapido @Qidi X-Plus 4 0.4 nozzle;QIDI PLA Rapido @Qidi X-Plus 4 0.2 nozzle;QIDI PLA Rapido @Qidi X-Plus 4 0.6 nozzle;QIDI PLA Rapido @Qidi X-Plus 4 0.8 nozzle;QIDI ABS Rapido @Qidi X-Plus 4 0.4 nozzle;QIDI ABS Rapido @Qidi X-Plus 4 0.2 nozzle;QIDI ABS Rapido @Qidi X-Plus 4 0.6 nozzle;QIDI ABS Rapido @Qidi X-Plus 4 0.8 nozzle;QIDI PETG Tough @Qidi X-Plus 4 0.4 nozzle;QIDI PETG Tough @Qidi X-Plus 4 0.2 nozzle;QIDI PETG Tough @Qidi X-Plus 4 0.6 nozzle;QIDI PETG Tough @Qidi X-Plus 4 0.8 nozzle;QIDI PLA Rapido Matte @Qidi X-Plus 4 0.4 nozzle;QIDI PLA Rapido Matte @Qidi X-Plus 4 0.2 nozzle;QIDI PLA Rapido Matte @Qidi X-Plus 4 0.6 nozzle;QIDI PLA Rapido Matte @Qidi X-Plus 4 0.8 nozzle;QIDI ASA @Qidi X-Plus 4 0.4 nozzle;QIDI ASA @Qidi X-Plus 4 0.2 nozzle;QIDI ASA @Qidi X-Plus 4 0.6 nozzle;QIDI ASA @Qidi X-Plus 4 0.8 nozzle;Qidi Generic PETG @Qidi X-Plus 4 0.4 nozzle;Qidi Generic PETG @Qidi X-Plus 4 0.2 nozzle;Qidi Generic PETG @Qidi X-Plus 4 0.6 nozzle;Qidi Generic PETG @Qidi X-Plus 4 0.8 nozzle;Qidi Generic PLA Silk @Qidi X-Plus 4 0.4 nozzle;Qidi Generic PLA @Qidi X-Plus 4 0.4 nozzle;Qidi Generic PLA @Qidi X-Plus 4 0.2 nozzle;Qidi Generic PLA @Qidi X-Plus 4 0.6 nozzle;Qidi Generic PLA @Qidi X-Plus 4 0.8 nozzle" +} diff --git a/resources/profiles/Qidi/machine/Qidi X-Plus.json b/resources/profiles/Qidi/machine/Qidi X-Plus.json index d5b10a8495..1b251e2f42 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Plus.json +++ b/resources/profiles/Qidi/machine/Qidi X-Plus.json @@ -6,7 +6,6 @@ "machine_tech": "FFF", "family": "Qidi", "bed_model": "qidi_xplus_buildplate_model.stl", - "bed_texture": "qidi_xplus_buildplate_texture.png", "hotend_model": "qidi_xseries_gen2_hotend.stl", "default_materials": "Qidi Generic ASA;Qidi Generic ABS;Qidi Generic PA-CF;Qidi Generic PA;Qidi Generic PC;Qidi Generic PETG-CF;Qidi Generic PETG;Qidi Generic PLA Silk;Qidi Generic PLA;Qidi Generic PLA-CF;Qidi Generic PVA;Qidi Generic TPU" } diff --git a/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.2 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.2 nozzle.json index 30afe5c9b6..7599029ed4 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.2 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.2 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Smart 3", "printer_variant": "0.2", "default_filament_profile": [ - "Qidi Generic PLA @Qidi X-Smart 3 0.2 nozzle" + "Generic PLA @Qidi X-Smart 3 0.2 nozzle" ], "default_print_profile": "0.10mm Standard @Qidi XSmart3 0.2 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.4 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.4 nozzle.json index d116c5ac55..f8fbf4e170 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.4 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.4 nozzle.json @@ -39,10 +39,15 @@ "deretraction_speed": [ "0" ], - "single_extruder_multi_material": "0", + "thumbnails": [ + "205x205/COLPIC", + "140x140/COLPIC", + "110x110/PNG" + ], + "single_extruder_multi_material": "1", "change_filament_gcode": "", "machine_pause_gcode": "M0", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA" ] } \ No newline at end of file diff --git a/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.6 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.6 nozzle.json index 72bf848911..a8fed8d1ff 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.6 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.6 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Smart 3", "printer_variant": "0.6", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA" ], "default_print_profile": "0.30mm Standard @Qidi XSmart3 0.6 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.8 nozzle.json b/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.8 nozzle.json index 45b77d1788..8616a34daf 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.8 nozzle.json +++ b/resources/profiles/Qidi/machine/Qidi X-Smart 3 0.8 nozzle.json @@ -11,7 +11,7 @@ "printer_model": "Qidi X-Smart 3", "printer_variant": "0.8", "default_filament_profile": [ - "Qidi Generic PLA" + "Generic PLA" ], "default_print_profile": "0.40mm Standard @Qidi XSmart3 0.8 nozzle", "max_layer_height": [ diff --git a/resources/profiles/Qidi/machine/Qidi X-Smart 3.json b/resources/profiles/Qidi/machine/Qidi X-Smart 3.json index ccd255521a..4441d48e3a 100644 --- a/resources/profiles/Qidi/machine/Qidi X-Smart 3.json +++ b/resources/profiles/Qidi/machine/Qidi X-Smart 3.json @@ -6,7 +6,6 @@ "machine_tech": "FFF", "family": "Qidi", "bed_model": "qidi_xsmart3_buildplate_model.stl", - "bed_texture": "qidi_xsmart3_buildplate_texture.png", "hotend_model": "qidi_xseries_gen3_hotend.stl", "default_materials": "QIDI PLA Rapido;QIDI ABS Rapido;QIDI PETG Tough;QIDI PET-CF;QIDI PA12-CF;QIDI PAHT-CF;QIDI ABS-GF25;QIDI PA-Ultra;Qidi Generic ASA;Qidi Generic ABS;Qidi Generic PA-CF;Qidi Generic PA;Qidi Generic PC;Qidi Generic PETG-CF;Qidi Generic PETG;Qidi Generic PLA Silk;Qidi Generic PLA;Qidi Generic PLA-CF;Qidi Generic PVA;Qidi Generic TPU 95A" } diff --git a/resources/profiles/Qidi/machine/fdm_machine_common.json b/resources/profiles/Qidi/machine/fdm_machine_common.json index bdfb8dd658..71198a0e97 100644 --- a/resources/profiles/Qidi/machine/fdm_machine_common.json +++ b/resources/profiles/Qidi/machine/fdm_machine_common.json @@ -110,7 +110,9 @@ "wipe": [ "1" ], - "z_lift_type": "NormalLift", + "z_hop_types": [ + "Auto Lift" + ], "default_print_profile": "", "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n", "machine_start_gcode": "G28\nG0 Z50 F600\nM190 S[first_layer_bed_temperature]\nG28 Z\nG29 ; mesh bed leveling ,comment this code to close it\nG0 X0 Y0 Z50 F6000\nM109 S[first_layer_temperature]\nM83\nG0 Z5 F1200\nG0 X{first_layer_print_min[0]} Y{max(0, first_layer_print_min[1] - 2)} F12000\nG0 Z0.2 F600\nG1 E3 F1800\nG0 Z0.3 F600\nG1 X{min(first_layer_print_min[0] + 30,print_bed_max[0])} E6 F600", diff --git a/resources/profiles/Qidi/machine/fdm_qidi_common.json b/resources/profiles/Qidi/machine/fdm_qidi_common.json index 2cf38b4e64..fc9e9e05d9 100644 --- a/resources/profiles/Qidi/machine/fdm_qidi_common.json +++ b/resources/profiles/Qidi/machine/fdm_qidi_common.json @@ -136,6 +136,7 @@ "scan_first_layer": "0", "nozzle_type": "undefine", "auxiliary_fan": "0", - "z_hop_types": "Normal Lift" - + "z_hop_types": [ + "Auto Lift" + ] } diff --git a/resources/profiles/Qidi/machine/fdm_qidi_x3_common.json b/resources/profiles/Qidi/machine/fdm_qidi_x3_common.json index c6167ef6ac..2d795c42cd 100644 --- a/resources/profiles/Qidi/machine/fdm_qidi_x3_common.json +++ b/resources/profiles/Qidi/machine/fdm_qidi_x3_common.json @@ -4,10 +4,10 @@ "from": "system", "instantiation": "false", "inherits": "fdm_machine_common", - "gcode_flavor": "klipper", + "gcode_flavor": "klipper", "auxiliary_fan": "1", "change_filament_gcode": "", - "machine_pause_gcode": "M0", + "machine_pause_gcode": "M0", "support_chamber_temp_control": "1", "retraction_length": [ "1" @@ -19,10 +19,18 @@ "0.4" ], "thumbnails": [ - "380x380", - "210x210" + "380x380/COLPIC", + "210x210/COLPIC", + "110x110/PNG" ], + "retract_lift_below": [ + "239" + ], + "extruder_clearance_radius": "56", + "extruder_clearance_height_to_rod": "33", + "extruder_clearance_height_to_lid": "110", + "support_air_filtration": "1", "machine_start_gcode": "PRINT_START\nG28\nM141 S0\nG0 Z50 F600\nM190 S[hot_plate_temp_initial_layer]\nG28 Z\nG29; mesh bed leveling ,comment this code to close it\nG0 X0 Y0 Z50 F6000\nM191 S{overall_chamber_temperature}\nM109 S[nozzle_temperature_initial_layer]\nM106 P3 S255\nM83\nG4 P3000\nG0 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0)} Z5 F6000\nG0 Z[initial_layer_print_height] F600\nG1 E3 F1800\nG1 X{(min(print_bed_max[0], first_layer_print_min[0] + 80))} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0)} E{85 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 85} E{83 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 2} E{2 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 Y{max((min(print_bed_max[1], first_layer_print_min[1] + 80) - 85),0) + 3} E{82 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 X{max((min(print_bed_max[0], first_layer_print_min[0] + 80) - 85),0) + 12} E{-10 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\nG1 E{10 * 0.5 * initial_layer_print_height * nozzle_diameter[0]} F3000\n", "machine_end_gcode": "M141 S0\nM104 S0\nM140 S0\nG1 E-3 F1800\nG0 Z{min(max_print_height, max_layer_z + 3)} F600\nG0 X0 Y0 F12000\n{if max_layer_z < max_print_height / 2}G1 Z{max_print_height / 2 + 10} F600{else}G1 Z{min(max_print_height, max_layer_z + 3)}{endif}", - "scan_first_layer": "0" + "scan_first_layer": "0" } diff --git a/resources/profiles/Qidi/process/0.06mm Standard @Qidi XPlus4 0.2 nozzle.json b/resources/profiles/Qidi/process/0.06mm Standard @Qidi XPlus4 0.2 nozzle.json new file mode 100644 index 0000000000..b706293749 --- /dev/null +++ b/resources/profiles/Qidi/process/0.06mm Standard @Qidi XPlus4 0.2 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_109", + "name": "0.06mm Standard @Qidi XPlus4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_QIDI_0.06_nozzle_0.2", + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.08mm Standard @Qidi XPlus4 0.2 nozzle.json b/resources/profiles/Qidi/process/0.08mm Standard @Qidi XPlus4 0.2 nozzle.json new file mode 100644 index 0000000000..aeff511c1a --- /dev/null +++ b/resources/profiles/Qidi/process/0.08mm Standard @Qidi XPlus4 0.2 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_110", + "name": "0.08mm Standard @Qidi XPlus4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_QIDI_0.08_nozzle_0.2", + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.10mm Standard @Qidi XPlus4 0.2 nozzle.json b/resources/profiles/Qidi/process/0.10mm Standard @Qidi XPlus4 0.2 nozzle.json new file mode 100644 index 0000000000..45c24308d2 --- /dev/null +++ b/resources/profiles/Qidi/process/0.10mm Standard @Qidi XPlus4 0.2 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_111", + "name": "0.10mm Standard @Qidi XPlus4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_QIDI_0.10_nozzle_0.2", + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.12mm Fine @Qidi XPlus4.json b/resources/profiles/Qidi/process/0.12mm Fine @Qidi XPlus4.json new file mode 100644 index 0000000000..4729f87e2d --- /dev/null +++ b/resources/profiles/Qidi/process/0.12mm Fine @Qidi XPlus4.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_112", + "name": "0.12mm Fine @Qidi XPlus4", + "from": "system", + "instantiation": "true", + "inherits": "0.12mm Fine @Qidi X3", +"compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" +] +} diff --git a/resources/profiles/Qidi/process/0.12mm Standard @Qidi XPlus4 0.2 nozzle.json b/resources/profiles/Qidi/process/0.12mm Standard @Qidi XPlus4 0.2 nozzle.json new file mode 100644 index 0000000000..4111d19fb5 --- /dev/null +++ b/resources/profiles/Qidi/process/0.12mm Standard @Qidi XPlus4 0.2 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_113", + "name": "0.12mm Standard @Qidi XPlus4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_QIDI_0.12_nozzle_0.2", + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.14mm Standard @Qidi XPlus4 0.2 nozzle.json b/resources/profiles/Qidi/process/0.14mm Standard @Qidi XPlus4 0.2 nozzle.json new file mode 100644 index 0000000000..822023289a --- /dev/null +++ b/resources/profiles/Qidi/process/0.14mm Standard @Qidi XPlus4 0.2 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_114", + "name": "0.14mm Standard @Qidi XPlus4 0.2 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_QIDI_0.14_nozzle_0.2", + "compatible_printers": [ + "Qidi X-Plus 4 0.2 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.16mm Optimal @Qidi XPlus4.json b/resources/profiles/Qidi/process/0.16mm Optimal @Qidi XPlus4.json new file mode 100644 index 0000000000..6249945daa --- /dev/null +++ b/resources/profiles/Qidi/process/0.16mm Optimal @Qidi XPlus4.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_115", + "name": "0.16mm Optimal @Qidi XPlus4", + "from": "system", + "instantiation": "true", + "inherits": "0.16mm Optimal @Qidi X3", + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.18mm Standard @Qidi XPlus4 0.6 nozzle.json b/resources/profiles/Qidi/process/0.18mm Standard @Qidi XPlus4 0.6 nozzle.json new file mode 100644 index 0000000000..b8e011e985 --- /dev/null +++ b/resources/profiles/Qidi/process/0.18mm Standard @Qidi XPlus4 0.6 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_116", + "name": "0.18mm Standard @Qidi XPlus4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_QIDI_0.18_nozzle_0.6", + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.20mm Standard @Qidi XPlus4.json b/resources/profiles/Qidi/process/0.20mm Standard @Qidi XPlus4.json new file mode 100644 index 0000000000..258a490b45 --- /dev/null +++ b/resources/profiles/Qidi/process/0.20mm Standard @Qidi XPlus4.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_117", + "name": "0.20mm Standard @Qidi XPlus4", + "from": "system", + "inherits": "0.20mm Standard @Qidi X3", + "instantiation": "true", + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/process/0.24mm Draft @Qidi XPlus4.json b/resources/profiles/Qidi/process/0.24mm Draft @Qidi XPlus4.json new file mode 100644 index 0000000000..d3a2735c66 --- /dev/null +++ b/resources/profiles/Qidi/process/0.24mm Draft @Qidi XPlus4.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_118", + "name": "0.24mm Draft @Qidi XPlus4", + "from": "system", + "inherits": "0.24mm Draft @Qidi X3", + "instantiation": "true", + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/process/0.24mm Standard @Qidi XPlus4 0.6 nozzle.json b/resources/profiles/Qidi/process/0.24mm Standard @Qidi XPlus4 0.6 nozzle.json new file mode 100644 index 0000000000..929a7931dd --- /dev/null +++ b/resources/profiles/Qidi/process/0.24mm Standard @Qidi XPlus4 0.6 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_119", + "name": "0.24mm Standard @Qidi XPlus4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_QIDI_0.24_nozzle_0.6", + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.24mm Standard @Qidi XPlus4 0.8 nozzle.json b/resources/profiles/Qidi/process/0.24mm Standard @Qidi XPlus4 0.8 nozzle.json new file mode 100644 index 0000000000..2958e85b09 --- /dev/null +++ b/resources/profiles/Qidi/process/0.24mm Standard @Qidi XPlus4 0.8 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_120", + "name": "0.24mm Standard @Qidi XPlus4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_QIDI_0.24_nozzle_0.8", + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.25mm Draft @Qidi XPlus4.json b/resources/profiles/Qidi/process/0.25mm Draft @Qidi XPlus4.json new file mode 100644 index 0000000000..0a7d7ca603 --- /dev/null +++ b/resources/profiles/Qidi/process/0.25mm Draft @Qidi XPlus4.json @@ -0,0 +1,85 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_121", + "name": "0.25mm Draft @Qidi XPlus4", + "from": "system", + "inherits": "fdm_process_qidi_x3_common", + "instantiation": "true", + "adaptive_layer_height": "1", + "reduce_crossing_wall": "0", + "layer_height": "0.25", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bridge_flow": "1", + "brim_width": "0", + "brim_object_gap": "0", + "compatible_printers_condition": "", + "print_sequence": "by layer", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.1", + "outer_wall_line_width": "0.4", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.42", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "grid", + "initial_layer_line_width": "0.5", + "initial_layer_print_height": "0.25", + "infill_combination": "0", + "sparse_infill_line_width": "0.45", + "infill_wall_overlap": "15%", + "interface_shells": "0", + "ironing_flow": "15%", + "ironing_spacing": "0.1", + "ironing_type": "no ironing", + "reduce_infill_retraction": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "detect_overhang_wall": "1", + "inner_wall_line_width": "0.45", + "wall_loops": "2", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "2", + "minimum_sparse_infill_area": "10", + "internal_solid_infill_line_width": "0.42", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_style": "grid", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.25", + "support_filament": "0", + "support_line_width": "0.42", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "3", + "support_interface_bottom_layers": "-1", + "support_interface_spacing": "0.5", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_threshold_angle": "35", + "support_object_xy_distance": "50%", + "tree_support_branch_angle": "40", + "tree_support_wall_count": "0", + "detect_thin_wall": "1", + "top_surface_pattern": "monotonic", + "top_surface_line_width": "0.45", + "top_shell_layers": "4", + "top_shell_thickness": "0.8", + "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/process/0.28mm Extra Draft @Qidi XPlus4.json b/resources/profiles/Qidi/process/0.28mm Extra Draft @Qidi XPlus4.json new file mode 100644 index 0000000000..31792b1fce --- /dev/null +++ b/resources/profiles/Qidi/process/0.28mm Extra Draft @Qidi XPlus4.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_122", + "name": "0.28mm Extra Draft @Qidi XPlus4", + "from": "system", + "inherits": "0.28mm Extra Draft @Qidi X3", + "instantiation": "true", + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/process/0.30mm Extra Draft @Qidi XPlus4.json b/resources/profiles/Qidi/process/0.30mm Extra Draft @Qidi XPlus4.json new file mode 100644 index 0000000000..92ff02472f --- /dev/null +++ b/resources/profiles/Qidi/process/0.30mm Extra Draft @Qidi XPlus4.json @@ -0,0 +1,85 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_123", + "name": "0.30mm Extra Draft @Qidi XPlus4", + "from": "system", + "inherits": "fdm_process_qidi_x3_common", + "instantiation": "true", + "adaptive_layer_height": "1", + "reduce_crossing_wall": "0", + "layer_height": "0.3", + "max_travel_detour_distance": "0", + "bottom_surface_pattern": "monotonic", + "bottom_shell_layers": "3", + "bottom_shell_thickness": "0", + "bridge_flow": "1", + "brim_width": "0", + "brim_object_gap": "0", + "compatible_printers_condition": "", + "print_sequence": "by layer", + "bridge_no_support": "0", + "draft_shield": "disabled", + "elefant_foot_compensation": "0.1", + "outer_wall_line_width": "0.4", + "wall_infill_order": "inner wall/outer wall/infill", + "line_width": "0.42", + "infill_direction": "45", + "sparse_infill_density": "15%", + "sparse_infill_pattern": "grid", + "initial_layer_line_width": "0.5", + "initial_layer_print_height": "0.3", + "infill_combination": "0", + "sparse_infill_line_width": "0.45", + "infill_wall_overlap": "15%", + "interface_shells": "0", + "ironing_flow": "15%", + "ironing_spacing": "0.1", + "ironing_type": "no ironing", + "reduce_infill_retraction": "1", + "filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode", + "detect_overhang_wall": "1", + "inner_wall_line_width": "0.45", + "wall_loops": "2", + "print_settings_id": "", + "raft_layers": "0", + "seam_position": "aligned", + "skirt_distance": "2", + "skirt_height": "1", + "skirt_loops": "2", + "minimum_sparse_infill_area": "10", + "internal_solid_infill_line_width": "0", + "spiral_mode": "0", + "standby_temperature_delta": "-5", + "enable_support": "0", + "resolution": "0.012", + "support_type": "normal(auto)", + "support_style": "grid", + "support_on_build_plate_only": "0", + "support_top_z_distance": "0.3", + "support_filament": "0", + "support_line_width": "0.42", + "support_interface_loop_pattern": "0", + "support_interface_filament": "0", + "support_interface_top_layers": "3", + "support_interface_bottom_layers": "-1", + "support_interface_spacing": "0.5", + "support_base_pattern": "rectilinear", + "support_base_pattern_spacing": "2.5", + "support_threshold_angle": "40", + "support_object_xy_distance": "50%", + "tree_support_branch_angle": "40", + "tree_support_wall_count": "0", + "detect_thin_wall": "1", + "top_surface_pattern": "monotonic", + "top_surface_line_width": "0.45", + "top_shell_layers": "4", + "top_shell_thickness": "0.8", + "enable_prime_tower": "0", + "wipe_tower_no_sparse_layers": "0", + "prime_tower_width": "60", + "xy_hole_compensation": "0", + "xy_contour_compensation": "0", + "compatible_printers": [ + "Qidi X-Plus 4 0.4 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/process/0.30mm Standard @Qidi XPlus4 0.6 nozzle.json b/resources/profiles/Qidi/process/0.30mm Standard @Qidi XPlus4 0.6 nozzle.json new file mode 100644 index 0000000000..6653027b2e --- /dev/null +++ b/resources/profiles/Qidi/process/0.30mm Standard @Qidi XPlus4 0.6 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_124", + "name": "0.30mm Standard @Qidi XPlus4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_QIDI_0.30_nozzle_0.6", + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.32mm Standard @Qidi XPlus4 0.8 nozzle.json b/resources/profiles/Qidi/process/0.32mm Standard @Qidi XPlus4 0.8 nozzle.json new file mode 100644 index 0000000000..3891c87860 --- /dev/null +++ b/resources/profiles/Qidi/process/0.32mm Standard @Qidi XPlus4 0.8 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_125", + "name": "0.32mm Standard @Qidi XPlus4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_QIDI_0.32_nozzle_0.8", + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.36mm Standard @Qidi XPlus4 0.6 nozzle.json b/resources/profiles/Qidi/process/0.36mm Standard @Qidi XPlus4 0.6 nozzle.json new file mode 100644 index 0000000000..3f37bcf452 --- /dev/null +++ b/resources/profiles/Qidi/process/0.36mm Standard @Qidi XPlus4 0.6 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_126", + "name": "0.36mm Standard @Qidi XPlus4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_QIDI_0.36_nozzle_0.6", + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.40mm Standard @Qidi XPlus4 0.8 nozzle.json b/resources/profiles/Qidi/process/0.40mm Standard @Qidi XPlus4 0.8 nozzle.json new file mode 100644 index 0000000000..d4d844631e --- /dev/null +++ b/resources/profiles/Qidi/process/0.40mm Standard @Qidi XPlus4 0.8 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_127", + "name": "0.40mm Standard @Qidi XPlus4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_QIDI_0.40_nozzle_0.8", + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.42mm Standard @Qidi XPlus4 0.6 nozzle.json b/resources/profiles/Qidi/process/0.42mm Standard @Qidi XPlus4 0.6 nozzle.json new file mode 100644 index 0000000000..d406d60e02 --- /dev/null +++ b/resources/profiles/Qidi/process/0.42mm Standard @Qidi XPlus4 0.6 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_128", + "name": "0.42mm Standard @Qidi XPlus4 0.6 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_QIDI_0.42_nozzle_0.6", + "compatible_printers": [ + "Qidi X-Plus 4 0.6 nozzle" + ] +} \ No newline at end of file diff --git a/resources/profiles/Qidi/process/0.48mm Standard @Qidi XPlus4 0.8 nozzle.json b/resources/profiles/Qidi/process/0.48mm Standard @Qidi XPlus4 0.8 nozzle.json new file mode 100644 index 0000000000..bb0f4857b2 --- /dev/null +++ b/resources/profiles/Qidi/process/0.48mm Standard @Qidi XPlus4 0.8 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_129", + "name": "0.48mm Standard @Qidi XPlus4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_QIDI_0.48_nozzle_0.8", + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/0.56mm Standard @Qidi XPlus4 0.8 nozzle.json b/resources/profiles/Qidi/process/0.56mm Standard @Qidi XPlus4 0.8 nozzle.json new file mode 100644 index 0000000000..b1bca2ad0c --- /dev/null +++ b/resources/profiles/Qidi/process/0.56mm Standard @Qidi XPlus4 0.8 nozzle.json @@ -0,0 +1,11 @@ +{ + "type": "process", + "setting_id": "GP_Qidi_130", + "name": "0.56mm Standard @Qidi XPlus4 0.8 nozzle", + "from": "system", + "instantiation": "true", + "inherits": "fdm_process_QIDI_0.56_nozzle_0.8", + "compatible_printers": [ + "Qidi X-Plus 4 0.8 nozzle" + ] +} diff --git a/resources/profiles/Qidi/process/fdm_process_qidi_x3_common.json b/resources/profiles/Qidi/process/fdm_process_qidi_x3_common.json index ad8f202caf..9dc934b8a8 100644 --- a/resources/profiles/Qidi/process/fdm_process_qidi_x3_common.json +++ b/resources/profiles/Qidi/process/fdm_process_qidi_x3_common.json @@ -18,7 +18,7 @@ "compatible_printers_condition": "", "print_sequence": "by layer", "default_acceleration": "10000", - "bridge_no_support": "1", + "bridge_no_support": "0", "draft_shield": "disabled", "elefant_foot_compensation": "0.15", "enable_arc_fitting": "0", @@ -104,7 +104,7 @@ "top_shell_thickness": "0.8", "travel_speed": "500", "enable_prime_tower": "1", - "independent_support_layer_height": "0", + "independent_support_layer_height": "1", "wipe_tower_no_sparse_layers": "0", "prime_tower_width": "35", "xy_hole_compensation": "0", @@ -115,6 +115,8 @@ "internal_solid_infill_pattern": "monotonic", "initial_layer_travel_speed": "50%", "filter_out_gap_fill": "2", + "smooth_coefficient": "90", + "small_perimeter_threshold" :"4", "notes": "If you want to use Orca's chamber temperature control feature, check that printer.cfg has added the following M191 macro.\nTo add it: go to Fluidd web interface--configuration, copy the following code to the top of the printer.cfg document, SAVE&RESATART \n\n[gcode_macro M191]\ngcode:\n {% set s = params.S|float %}\n {% if s == 0 %}\n # If target temperature is 0, do nothing\n M117 Chamber heating cancelled\n {% else %}\n SET_HEATER_TEMPERATURE HEATER=chamber_heater TARGET={s}\n # Orca: uncomment the following line if you want to use heat bed to assist chamber heating\n M140 S90\n TEMPERATURE_WAIT SENSOR=\"heater_generic chamber_heater\" MINIMUM={s-1} MAXIMUM={s+1}\n M117 Chamber at target temperature\n {% endif %}", "exclude_object": "1" } diff --git a/resources/profiles/Qidi/qidi_xplus4_buildplate_model.stl b/resources/profiles/Qidi/qidi_xplus4_buildplate_model.stl new file mode 100644 index 0000000000..caf59c8425 Binary files /dev/null and b/resources/profiles/Qidi/qidi_xplus4_buildplate_model.stl differ diff --git a/resources/profiles/Qidi/qidi_xplus4_buildplate_texture.png b/resources/profiles/Qidi/qidi_xplus4_buildplate_texture.png new file mode 100644 index 0000000000..900c09310d Binary files /dev/null and b/resources/profiles/Qidi/qidi_xplus4_buildplate_texture.png differ diff --git a/resources/profiles/check_duplicated_setting_id.py b/resources/profiles/check_duplicated_setting_id.py index f263d766dd..360acfedce 100644 --- a/resources/profiles/check_duplicated_setting_id.py +++ b/resources/profiles/check_duplicated_setting_id.py @@ -13,7 +13,7 @@ def traverse_files(path): traverse_files(file_path) # 递归遍历子文件夹 elif file_path.endswith('.json'): # 解析 JSON 文件并提取 setting_id 的值 - with open(file_path) as f: + with open(file_path,encoding='UTF-8') as f: try: data = json.load(f) if 'setting_id' in data: diff --git a/src/BambuStudio.cpp b/src/BambuStudio.cpp index 69c16175d4..5f75b7498f 100644 --- a/src/BambuStudio.cpp +++ b/src/BambuStudio.cpp @@ -649,6 +649,11 @@ static int load_assemble_plate_list(std::string config_file, std::vector>(); if ((assemble_object.filaments.size() > 0) && (assemble_object.filaments.size() != assemble_object.count) && (assemble_object.filaments.size() != 1)) { @@ -749,7 +754,7 @@ static int load_assemble_plate_list(std::string config_file, std::vector &merged_objects, ModelObject *ori_object) +void merge_or_add_object(assemble_plate_info_t& assemble_plate_info, Model &model, int assemble_index, std::map &merged_objects, ModelObject *ori_object, ModelVolumeType type) { if (assemble_index > 0) { auto iter = merged_objects.find(assemble_index); @@ -760,17 +765,21 @@ void merge_or_add_object(assemble_plate_info_t& assemble_plate_info, Model &mode new_object->name = "assemble_" + std::to_string(assemble_index); merged_objects[assemble_index] = new_object; assemble_plate_info.loaded_obj_list.emplace_back(new_object); - new_object->config.assign_config(ori_object->config.get()); + //new_object->config.assign_config(ori_object->config.get()); } else new_object = iter->second; for (auto volume : ori_object->volumes) { - ModelVolume* new_volume = new_object->add_volume(*volume); + ModelVolume* new_volume = new_object->add_volume(*volume, type); // set extruder id - new_volume->config.set_key_value("extruder", new ConfigOptionInt(ori_object->config.extruder())); + //new_volume->config.set_key_value("extruder", new ConfigOptionInt(ori_object->config.extruder())); + if (type == ModelVolumeType::MODEL_PART || type == ModelVolumeType::PARAMETER_MODIFIER) + { + new_volume->config.apply(ori_object->config); + } } - BOOST_LOG_TRIVIAL(debug) << boost::format("assemble_index %1%, name %2%, merged to new model %3%") % assemble_index % ori_object->name % new_object->name; + BOOST_LOG_TRIVIAL(debug) << boost::format("assemble_index %1%, name %2%, merged to new model %3%, subtype %4%") % assemble_index % ori_object->name % new_object->name %(int)type; } else { ModelObject* new_object = model.add_object(*ori_object); @@ -925,7 +934,7 @@ static int construct_assemble_list(std::vector &assemble_ return CLI_DATA_FILE_ERROR; } } - else if (boost::algorithm::iends_with(assemble_object.path, ".obj")) + else if ((boost::algorithm::iends_with(assemble_object.path, ".obj")) && assemble_object.subtype == ModelVolumeType::MODEL_PART) { std::string message; ObjInfo obj_info; @@ -974,7 +983,7 @@ static int construct_assemble_list(std::vector &assemble_ obj_temp_model.clear_materials(); } else { - BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(": unsupported file %1%, plate index %2%, object index %3%") % assemble_object.path % (index + 1) % (obj_index + 1); + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(": unsupported file %1%, plate index %2%, object index %3%, subtype %4%") % assemble_object.path % (index + 1) % (obj_index + 1) %(int)(assemble_object.subtype); return CLI_INVALID_PARAMS; } @@ -1001,6 +1010,10 @@ static int construct_assemble_list(std::vector &assemble_ if (!assemble_object.height_ranges.empty()) { + if (assemble_object.subtype != ModelVolumeType::MODEL_PART) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(": only normal part can have height ranges, file %1%, plate index %2%, object index %3%, subtype %4%") % assemble_object.path % (index + 1) % (obj_index + 1) %(int)(assemble_object.subtype); + return CLI_INVALID_PARAMS; + } for (int range_index = 0; range_index < assemble_object.height_ranges.size(); range_index++) { height_range_info_t& range = assemble_object.height_ranges[range_index]; @@ -1020,11 +1033,21 @@ static int construct_assemble_list(std::vector &assemble_ assemble_object.pos_y.resize(1, 0.f); if (assemble_object.pos_z.empty()) assemble_object.pos_z.resize(1, 0.f); - if (assemble_object.assemble_index.empty()) + if (assemble_object.assemble_index.empty()) { + if (assemble_object.subtype != ModelVolumeType::MODEL_PART) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(": only normal part can be used as individual object, file %1%, plate index %2%, object index %3%, subtype %4%") % assemble_object.path % (index + 1) % (obj_index + 1) %(int)(assemble_object.subtype); + return CLI_INVALID_PARAMS; + } assemble_object.assemble_index.resize(1, 0); + } + + if ((assemble_object.subtype != ModelVolumeType::MODEL_PART)&&(assemble_object.assemble_index[0] == 0)) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(": only normal part can have height ranges, file %1%, plate index %2%, object index %3%, subtype %4%") % assemble_object.path % (index + 1) % (obj_index + 1) %(int)(assemble_object.subtype); + return CLI_INVALID_PARAMS; + } object->translate(assemble_object.pos_x[0], assemble_object.pos_y[0], assemble_object.pos_z[0]); - merge_or_add_object(assemble_plate_info, model, assemble_object.assemble_index[0], merged_objects, object); + merge_or_add_object(assemble_plate_info, model, assemble_object.assemble_index[0], merged_objects, object, assemble_object.subtype); BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(": object %1%, name %2%, pos_x %3% pos_y %4%, pos_z %5%, filament %6%, assemble_index %7%") %obj_index %object->name %assemble_object.pos_x[0] %assemble_object.pos_y[0] %assemble_object.pos_z[0] %assemble_object.filaments[0] %assemble_object.assemble_index[0]; @@ -1057,7 +1080,13 @@ static int construct_assemble_list(std::vector &assemble_ array_index = copy_index; else array_index = 0; - merge_or_add_object(assemble_plate_info, model, assemble_object.assemble_index[array_index], merged_objects, copy_obj); + + if ((assemble_object.subtype != ModelVolumeType::MODEL_PART)&&(assemble_object.assemble_index[array_index] == 0)) { + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << boost::format(": only normal part can have height ranges, file %1%, plate index %2%, object index %3%, subtype %4%, copy_index %5%") + % assemble_object.path % (index + 1) % (obj_index + 1) %(int)(assemble_object.subtype) %copy_index; + return CLI_INVALID_PARAMS; + } + merge_or_add_object(assemble_plate_info, model, assemble_object.assemble_index[array_index], merged_objects, copy_obj, assemble_object.subtype); BOOST_LOG_TRIVIAL(debug) << __FUNCTION__ << boost::format(": cloned object %1%, name %2%, pos_x %3% pos_y %4%, pos_z %5%") %copy_index %object->name %assemble_object.pos_x[array_index] %assemble_object.pos_y[array_index] %assemble_object.pos_z[array_index]; @@ -1344,7 +1373,7 @@ int CLI::run(int argc, char **argv) //BBS: add plate data related logic PlateDataPtrs plate_data_src; std::vector plate_obj_size_infos; - int arrange_option; + //int arrange_option; int plate_to_slice = 0, filament_count = 0, duplicate_count = 0, real_duplicate_count = 0; bool first_file = true, is_bbl_3mf = false, need_arrange = true, has_thumbnails = false, up_config_to_date = false, normative_check = true, duplicate_single_object = false, use_first_fila_as_default = false, minimum_save = false, enable_timelapse = false; bool allow_rotations = true, skip_modified_gcodes = false, avoid_extrusion_cali_region = false, skip_useless_pick = false, allow_newer_file = false; @@ -1701,7 +1730,7 @@ int CLI::run(int argc, char **argv) { ModelObject* object = model.objects[obj_index]; - for (unsigned int clone_index = 1; clone_index < clone_count; clone_index++) + for (int clone_index = 1; clone_index < clone_count; clone_index++) { ModelObject* newObj = model.add_object(*object); newObj->name = object->name +"_"+ std::to_string(clone_index+1); diff --git a/src/BambuStudio.hpp b/src/BambuStudio.hpp index 5dae7db269..30e564e7ca 100644 --- a/src/BambuStudio.hpp +++ b/src/BambuStudio.hpp @@ -22,6 +22,7 @@ namespace IO { #define JSON_ASSEMPLE_PLATE_NAME "plate_name" #define JSON_ASSEMPLE_PLATE_NEED_ARRANGE "need_arrange" #define JSON_ASSEMPLE_OBJECTS "objects" +#define JSON_ASSEMPLE_SUBTYPE "subtype" #define JSON_ASSEMPLE_OBJECT_PATH "path" #define JSON_ASSEMPLE_OBJECT_COUNT "count" #define JSON_ASSEMPLE_OBJECT_FILAMENTS "filaments" @@ -52,6 +53,7 @@ typedef struct _assembled_param_info { typedef struct _assemble_object_info { std::string path; + ModelVolumeType subtype; int count; std::vector filaments; diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c20a0dda36..bb2f2db2e6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -218,7 +218,7 @@ if (WIN32) else () - if (NOT APPLE) + if (NOT APPLE AND NOT FLATPAK) set(output_sos_Release "") set(output_sos_Debug "") add_custom_target(BambuStudioSosCopy ALL DEPENDS BambuStudio) diff --git a/src/libslic3r/Brim.cpp b/src/libslic3r/Brim.cpp index 57683a74cc..f9c0411b23 100644 --- a/src/libslic3r/Brim.cpp +++ b/src/libslic3r/Brim.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include diff --git a/src/libslic3r/ExtrusionEntity.cpp b/src/libslic3r/ExtrusionEntity.cpp index a786577daf..084e8c397c 100644 --- a/src/libslic3r/ExtrusionEntity.cpp +++ b/src/libslic3r/ExtrusionEntity.cpp @@ -68,8 +68,7 @@ void ExtrusionPath::polygons_covered_by_spacing(Polygons &out, const float scale bool ExtrusionPath::can_merge(const ExtrusionPath& other) { - return overhang_degree == other.overhang_degree && - curve_degree==other.curve_degree && + return curve_degree==other.curve_degree && mm3_per_mm == other.mm3_per_mm && width == other.width && height == other.height && @@ -552,7 +551,8 @@ ExtrusionLoopSloped::ExtrusionLoopSloped( ExtrusionPaths &original_paths, paths.emplace_back(std::move(flat_path), *path); remaining_length = 0; } else { - remaining_length -= path_len; + // BBS: protection for accuracy issues + remaining_length = remaining_length - path_len < EPSILON ? 0 : remaining_length - path_len; const double end_ratio = lerp(1.0, start_slope_ratio, remaining_length / slope_min_length); add_slop(*path, path->polyline, start_ratio, end_ratio); start_ratio = end_ratio; diff --git a/src/libslic3r/FlushVolPredictor.hpp b/src/libslic3r/FlushVolPredictor.hpp index 0054c70dd8..378a608fed 100644 --- a/src/libslic3r/FlushVolPredictor.hpp +++ b/src/libslic3r/FlushVolPredictor.hpp @@ -1,7 +1,10 @@ #ifndef FLUSH_VOL_PREDICTOR_HPP #define FLUSH_VOL_PREDICTOR_HPP +#include #include +#include +#include namespace FlushPredict { diff --git a/src/libslic3r/Format/OBJ.cpp b/src/libslic3r/Format/OBJ.cpp index 9a90c522e2..634d29d849 100644 --- a/src/libslic3r/Format/OBJ.cpp +++ b/src/libslic3r/Format/OBJ.cpp @@ -8,6 +8,7 @@ #include #include +#include #ifdef _WIN32 #define DIR_SEPARATOR '\\' @@ -45,16 +46,20 @@ bool load_obj(const char *path, TriangleMesh *meshptr, ObjInfo& obj_info, std::s continue; } exist_mtl = true; - bool mtl_name_is_path = false; - boost::filesystem::path mtl_abs_path(mtl_name); + bool mtl_name_is_path = false; + std::wstring wide_mtl_name = boost::locale::conv::to_utf(mtl_name, "UTF-8"); + if (boost::istarts_with(wide_mtl_name,"./")){ + boost::replace_first(wide_mtl_name, "./", ""); + } + boost::filesystem::path mtl_abs_path(wide_mtl_name); if (boost::filesystem::exists(mtl_abs_path)) { mtl_name_is_path = true; } boost::filesystem::path mtl_path; if (!mtl_name_is_path) { boost::filesystem::path full_path(path); - std::string dir = full_path.parent_path().string(); - auto mtl_file = dir + "/" + mtl_name; + auto dir = full_path.parent_path().wstring(); + auto mtl_file = dir + L"/" + wide_mtl_name; boost::filesystem::path temp_mtl_path(mtl_file); mtl_path = temp_mtl_path; } diff --git a/src/libslic3r/Format/STEP.hpp b/src/libslic3r/Format/STEP.hpp index 397ee2c1bb..71453b3fc9 100644 --- a/src/libslic3r/Format/STEP.hpp +++ b/src/libslic3r/Format/STEP.hpp @@ -12,6 +12,7 @@ namespace fs = boost::filesystem; namespace Slic3r { +class Model; class TriangleMesh; class ModelObject; diff --git a/src/libslic3r/Format/bbs_3mf.cpp b/src/libslic3r/Format/bbs_3mf.cpp index f4193321fd..f13c621482 100644 --- a/src/libslic3r/Format/bbs_3mf.cpp +++ b/src/libslic3r/Format/bbs_3mf.cpp @@ -884,7 +884,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) bool extract_object_model() { mz_zip_archive archive; - mz_zip_archive_file_stat stat; + //mz_zip_archive_file_stat stat; mz_zip_zero_struct(&archive); if (!open_zip_reader(&archive, zip_path)) { @@ -7562,7 +7562,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) if (!m_skip_model && instance_size > 0) { - for (unsigned int j = 0; j < instance_size; ++j) + for (int j = 0; j < instance_size; ++j) { stream << " <" << INSTANCE_TAG << ">\n"; int obj_id = plate_data->objects_and_instances[j].first; diff --git a/src/libslic3r/GCode.cpp b/src/libslic3r/GCode.cpp index ba4f066a7b..e9dfcd0ef0 100644 --- a/src/libslic3r/GCode.cpp +++ b/src/libslic3r/GCode.cpp @@ -4420,17 +4420,6 @@ static bool need_smooth_speed(const ExtrusionPath &other_path, const ExtrusionPa return false; } -static void append_split_line(bool split_from_left, Polyline &polyline, Point p1, Point p2) -{ - if (split_from_left) { - polyline.append(p1); - polyline.append(p2); - } else { - polyline.append(p2); - polyline.append(p1); - } -} - ExtrusionPaths GCode::split_and_mapping_speed(double &other_path_v, double &final_v, ExtrusionPath &this_path, double max_smooth_length, bool split_from_left) { ExtrusionPaths splited_path; @@ -4473,64 +4462,51 @@ ExtrusionPaths GCode::split_and_mapping_speed(double &other_path_v, double &fina return pos_x_speed; }; - while (end_pt_idx < input_polyline.points.size()) { + while (split_line_speed < final_v && end_pt_idx < input_polyline.size()) { // move to next line if (get_next_line) { line_start_pt = input_polyline.points[end_pt_idx - 1]; line_end_pt = input_polyline.points[end_pt_idx]; } - - Polyline polyline; + //This line is cut off as a speed transition area + Polyline cuted_polyline; Line line(line_start_pt, line_end_pt); + cuted_polyline.append(line_start_pt); // split polyline and set speed if (line.length() < max_step_length || line.length() - min_step_length < min_step_length / 2) { split_line_speed = insert_speed(line.length(), x_base, smooth_length_count, final_v); - append_split_line(split_from_left, polyline, line_start_pt, line_end_pt); end_pt_idx++; - get_next_line = true; + get_next_line = true; + cuted_polyline.append(line.b); } else { // path is too long, split it double rate = min_step_length / line.length(); - Point insert_p = line.a + (line.b - line.a) * rate; + Point insert_p = line.a + (line.b - line.a) * rate; split_line_speed = insert_speed(min_step_length, x_base, smooth_length_count, final_v); - append_split_line(split_from_left, polyline, line_start_pt, insert_p); - line_start_pt = insert_p; - get_next_line = false; + get_next_line = false; + cuted_polyline.append(insert_p); } - ExtrusionPath path_step(polyline, this_path); + ExtrusionPath path_step(cuted_polyline, this_path); path_step.smooth_speed = split_line_speed; splited_path.push_back(std::move(path_step)); - - // stop condition - if (split_line_speed >= final_v) break; } - if (!split_from_left) - std::reverse(input_polyline.points.begin(), input_polyline.points.end()); - // get_remain_path - if (end_pt_idx < input_polyline.points.size()) { - // split at index or split at corr length - Polyline p1, p2; - if( !split_from_left ) { - input_polyline.split_at_length(input_polyline.length() - smooth_length_count, &p1, &p2); - this_path.polyline = p1; - } else { - input_polyline.split_at_length(smooth_length_count, &p1, &p2); - this_path.polyline = p2; - } - + // reverse path back + Polyline p1, p2; + Point & split_point = splited_path.back().polyline.points.back(); + this_path.polyline.split_at(split_point, &p1, &p2); + if (!split_from_left) { + this_path.polyline = p1; + std::reverse(splited_path.begin(), splited_path.end()); + for (ExtrusionPath &path : splited_path) { std::reverse(path.polyline.points.begin(), path.polyline.points.end()); } } else { - this_path.polyline.clear(); + this_path.polyline = p2; } - // reverse paths if this start from right - if (!split_from_left) - std::reverse(splited_path.begin(), splited_path.end()); - return splited_path; } @@ -5325,6 +5301,8 @@ std::string GCode::set_extruder(unsigned int extruder_id, double print_z, bool b // BBS: insert skip object label before change filament while by object if (by_object) m_writer.add_object_change_labels(gcode); + else + m_writer.add_object_end_labels(gcode); if (m_writer.extruder() != nullptr) { // Process the custom filament_end_gcode. set_extruder() is only called if there is no wipe tower diff --git a/src/libslic3r/Geometry/VoronoiOffset.cpp b/src/libslic3r/Geometry/VoronoiOffset.cpp index 46105220a4..e772b15995 100644 --- a/src/libslic3r/Geometry/VoronoiOffset.cpp +++ b/src/libslic3r/Geometry/VoronoiOffset.cpp @@ -117,7 +117,7 @@ namespace detail { // Return maximum two points, that are at distance "d" from both the line and point. Intersections line_point_equal_distance_points(const Line &line, const Point &ipt, const double d) - { + { assert(line.a != ipt && line.b != ipt); // Calculating two points of distance "d" to a ray and a point. // Point. @@ -667,10 +667,12 @@ void annotate_inside_outside(VD &vd, const Lines &lines) // Set a VertexCategory, verify validity of the operation. auto annotate_vertex = [](const VD::vertex_type *vertex, VertexCategory new_vertex_category) { + if (vertex == nullptr) + return; #ifndef NDEBUG VertexCategory vc = vertex_category(vertex); assert(vc == VertexCategory::Unknown || vc == new_vertex_category); - assert(new_vertex_category == VertexCategory::Inside || + assert(new_vertex_category == VertexCategory::Inside || new_vertex_category == VertexCategory::Outside || new_vertex_category == VertexCategory::OnContour); #endif // NDEBUG @@ -1509,9 +1511,9 @@ Polygons offset( } Polygons offset( - const VD &vd, - const Lines &lines, - double offset_distance, + const VD &vd, + const Lines &lines, + double offset_distance, double discretization_error) { annotate_inside_outside(const_cast(vd), lines); @@ -1528,7 +1530,7 @@ Polygons offset( // An infinite Voronoi Edge-Point (parabola) or Point-Point (line) bisector is split into // a center part close to the Voronoi sites (not skeleton) and the ends (skeleton), // though either part could be clipped by the Voronoi segment. -// +// // Further filtering of the skeleton may be necessary. std::vector skeleton_edges_rough( const VD &vd, @@ -1583,7 +1585,7 @@ std::vector skeleton_edges_rough( } } else { // An infinite Voronoi Edge-Point (parabola) or Point-Point (line) bisector, clipped to a finite Voronoi segment. - // The infinite bisector has a distance (skeleton radius) minimum, which is also a minimum + // The infinite bisector has a distance (skeleton radius) minimum, which is also a minimum // of the skeleton function dr / dt. assert(cell->contains_point() || cell2->contains_point()); if (cell->contains_point() != cell2->contains_point()) { diff --git a/src/libslic3r/MeshBoolean.cpp b/src/libslic3r/MeshBoolean.cpp index ea7e512723..08a74ac9f8 100644 --- a/src/libslic3r/MeshBoolean.cpp +++ b/src/libslic3r/MeshBoolean.cpp @@ -200,12 +200,12 @@ indexed_triangle_set cgal_to_indexed_triangle_set(const _Mesh &cgalmesh) const auto &vertices = cgalmesh.vertices(); int vsize = int(vertices.size()); - for (auto &vi : vertices) { + for (const auto &vi : vertices) { auto &v = cgalmesh.point(vi); // Don't ask... its.vertices.emplace_back(to_vec3f(v)); } - for (auto &face : faces) { + for (const auto &face : faces) { auto vtc = cgalmesh.vertices_around_face(cgalmesh.halfedge(face)); int i = 0; diff --git a/src/libslic3r/MultiMaterialSegmentation.cpp b/src/libslic3r/MultiMaterialSegmentation.cpp index 8ae244adc0..ffc5d8f052 100644 --- a/src/libslic3r/MultiMaterialSegmentation.cpp +++ b/src/libslic3r/MultiMaterialSegmentation.cpp @@ -2155,7 +2155,7 @@ std::vector> multi_material_segmentation_by_painting(con if (layer_idx > 1) bbox.merge(layer_bboxes[layer_idx - 1]); if (layer_idx < num_layers - 1) bbox.merge(layer_bboxes[layer_idx + 1]); // Projected triangles may slightly exceed the input polygons. - bbox.offset(20 * SCALED_EPSILON); + bbox.offset(30 * SCALED_EPSILON); edge_grids[layer_idx].set_bbox(bbox); edge_grids[layer_idx].create(input_expolygons[layer_idx], coord_t(scale_(10.))); } @@ -2237,8 +2237,7 @@ std::vector> multi_material_segmentation_by_painting(con // be outside EdgeGrid's BoundingBox, for example, when the negative volume is used on the painted area (GH #7618). // To ensure that the painted line is always inside EdgeGrid's BoundingBox, it is clipped by EdgeGrid's BoundingBox in cases // when any of the endpoints of the line are outside the EdgeGrid's BoundingBox. - BoundingBox edge_grid_bbox = edge_grids[layer_idx].bbox(); - edge_grid_bbox.offset(10 * scale_(EPSILON)); + const BoundingBox& edge_grid_bbox = edge_grids[layer_idx].bbox(); if (!edge_grid_bbox.contains(line_to_test.a) || !edge_grid_bbox.contains(line_to_test.b)) { // If the painted line (line_to_test) is entirely outside EdgeGrid's BoundingBox, skip this painted line. if (!edge_grid_bbox.overlap(BoundingBox(Points{line_to_test.a, line_to_test.b})) || diff --git a/src/libslic3r/Orient.cpp b/src/libslic3r/Orient.cpp index 5747b00e8a..463523e275 100644 --- a/src/libslic3r/Orient.cpp +++ b/src/libslic3r/Orient.cpp @@ -230,10 +230,10 @@ class AutoOrienter { { std::unordered_map alignments; // init to 0 - for (size_t i = 0; i < areas_.size(); i++) + for (auto i = 0; i < areas_.size(); i++) alignments.insert(std::pair(normals_.row(i), 0)); // cumulate areas - for (size_t i = 0; i < areas_.size(); i++) + for (auto i = 0; i < areas_.size(); i++) { alignments[normals_.row(i)] += areas_(i); } @@ -257,11 +257,11 @@ class AutoOrienter { Vec3f n1 = { 0, 0, 0 }; std::vector current_areas = {0, 0}; // init to 0 - for (size_t i = 0; i < areas_.size(); i++) { + for (auto i = 0; i < areas_.size(); i++) { alignments_.insert(std::pair(quantize_normals_.row(i), std::pair(current_areas, n1))); } // cumulate areas - for (size_t i = 0; i < areas_.size(); i++) + for (auto i = 0; i < areas_.size(); i++) { alignments_[quantize_normals_.row(i)].first[1] += areas_(i); if (areas_(i) > alignments_[quantize_normals_.row(i)].first[0]){ @@ -339,7 +339,7 @@ class AutoOrienter { z_max_hull.resize(mesh_convex_hull.facets_count(), 1); its = mesh_convex_hull.its; - for (size_t i = 0; i < z_max_hull.rows(); i++) + for (auto i = 0; i < z_max_hull.rows(); i++) { float z0 = its.get_vertex(i,0).dot(orientation); float z1 = its.get_vertex(i,1).dot(orientation); @@ -393,7 +393,7 @@ class AutoOrienter { // filter overhang Eigen::VectorXf normal_projection(normals.rows(), 1);// = this->normals.dot(orientation); - for (size_t i = 0; i < normals.rows(); i++) + for (auto i = 0; i < normals.rows(); i++) { normal_projection(i) = normals.row(i).dot(orientation); } diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp index def44c6246..32ceaddf9c 100644 --- a/src/libslic3r/Preset.cpp +++ b/src/libslic3r/Preset.cpp @@ -835,8 +835,8 @@ static std::vector s_Preset_print_options { "wipe_tower_no_sparse_layers", "compatible_printers", "compatible_printers_condition", "inherits", "flush_into_infill", "flush_into_objects", "flush_into_support","process_notes", // BBS - "tree_support_branch_angle", "tree_support_wall_count", "tree_support_branch_distance", - "tree_support_branch_diameter", + "tree_support_branch_angle", "tree_support_wall_count", "tree_support_branch_distance", "tree_support_branch_diameter", + "tree_support_branch_diameter_angle", "detect_narrow_internal_solid_infill", "gcode_add_line_number", "enable_arc_fitting", "precise_z_height", "infill_combination", /*"adaptive_layer_height",*/ "support_bottom_interface_spacing", "enable_overhang_speed", "overhang_1_4_speed", "overhang_2_4_speed", "overhang_3_4_speed", "overhang_4_4_speed", "overhang_totally_speed", @@ -879,7 +879,7 @@ static std::vector s_Preset_filament_options { "nozzle_temperature_range_low", "nozzle_temperature_range_high", //OrcaSlicer "enable_pressure_advance", "pressure_advance", "chamber_temperatures","filament_notes", - "filament_long_retractions_when_cut","filament_retraction_distances_when_cut" + "filament_long_retractions_when_cut","filament_retraction_distances_when_cut","filament_shrink" }; static std::vector s_Preset_machine_limits_options { @@ -2292,8 +2292,10 @@ void PresetCollection::save_current_preset(const std::string &new_name, bool det preset.config.option("filament_settings_id", true)->values[0] = new_name; else if (m_type == Preset::TYPE_PRINTER) { preset.config.option("printer_settings_id", true)->value = new_name; - for (auto iter : *extra_map) { - preset.config.option(iter.first, true)->value = iter.second; + if (extra_map) { + for (auto iter : *extra_map) { + preset.config.option(iter.first, true)->value = iter.second; + } } } final_inherits = preset.inherits(); @@ -2341,8 +2343,10 @@ void PresetCollection::save_current_preset(const std::string &new_name, bool det preset.config.option("filament_settings_id", true)->values[0] = new_name; else if (m_type == Preset::TYPE_PRINTER) { preset.config.option("printer_settings_id", true)->value = new_name; - for (auto iter : *extra_map) { - preset.config.option(iter.first, true)->value = iter.second; + if (extra_map) { + for (auto iter : *extra_map) { + preset.config.option(iter.first, true)->value = iter.second; + } } } //BBS: add lock logic for sync preset in background diff --git a/src/libslic3r/Print.cpp b/src/libslic3r/Print.cpp index d08fb195e0..dcee070805 100644 --- a/src/libslic3r/Print.cpp +++ b/src/libslic3r/Print.cpp @@ -217,6 +217,7 @@ bool Print::invalidate_state_by_config_options(const ConfigOptionResolver & /* n || opt_key == "nozzle_diameter" || opt_key == "resolution" || opt_key == "precise_z_height" + || opt_key == "filament_shrink" // Spiral Vase forces different kind of slicing than the normal model: // In Spiral Vase mode, holes are closed and only the largest area contour is kept at each layer. // Therefore toggling the Spiral Vase on / off requires complete reslicing. diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 5656a7ee5b..7e6ba6387a 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -1548,6 +1548,19 @@ void PrintConfigDef::init_fff_params() def->min = 0; def->set_default_value(new ConfigOptionFloats { 1.75 }); + def = this->add("filament_shrink", coPercents); + def->label = L("Shrinkage"); + // xgettext:no-c-format, no-boost-format + def->tooltip = L("Enter the shrinkage percentage that the filament will get after cooling (94% if you measure 94mm instead of 100mm)." + " The part will be scaled in xy to compensate." + " Only the filament used for the perimeter is taken into account." + "\nBe sure to allow enough space between objects, as this compensation is done after the checks."); + def->sidetext = L("%"); + def->ratio_over = ""; + def->min = 10; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionPercents{ 100 }); + def = this->add("filament_density", coFloats); def->label = L("Density"); def->tooltip = L("Filament density. For statistics only"); @@ -3574,7 +3587,7 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionInt(30)); def = this->add("tree_support_branch_angle", coFloat); - def->label = L("Tree support branch angle"); + def->label = L("Branch angle"); def->category = L("Support"); def->tooltip = L("This setting determines the maximum overhang angle that t he branches of tree support allowed to make." "If the angle is increased, the branches can be printed more horizontally, allowing them to reach farther."); @@ -3585,7 +3598,7 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionFloat(40.)); def = this->add("tree_support_branch_distance", coFloat); - def->label = L("Tree support branch distance"); + def->label = L("Branch distance"); def->category = L("Support"); def->tooltip = L("This setting determines the distance between neighboring tree support nodes."); def->sidetext = L("mm"); @@ -3595,7 +3608,7 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionFloat(5.)); def = this->add("tree_support_branch_diameter", coFloat); - def->label = L("Tree support branch diameter"); + def->label = L("Branch diameter"); def->category = L("Support"); def->tooltip = L("This setting determines the initial diameter of support nodes."); def->sidetext = L("mm"); @@ -3604,6 +3617,18 @@ void PrintConfigDef::init_fff_params() def->mode = comAdvanced; def->set_default_value(new ConfigOptionFloat(5.)); + def = this->add("tree_support_branch_diameter_angle", coFloat); + def->label = L("Branch diameter angle"); + def->category = L("Support"); + def->tooltip = L("The angle of the branches' diameter as they gradually become thicker towards the bottom. " + "An angle of 0 will cause the branches to have uniform thickness over their length. " + "A bit of an angle can increase stability of the tree support."); + def->sidetext = L("°"); + def->min = 0.0; + def->max = 15; + def->mode = comAdvanced; + def->set_default_value(new ConfigOptionFloat(5.)); + def = this->add("tree_support_wall_count", coInt); def->label = L("Support wall loops"); def->category = L("Support"); diff --git a/src/libslic3r/PrintConfig.hpp b/src/libslic3r/PrintConfig.hpp index 97154e215d..057024b6a0 100644 --- a/src/libslic3r/PrintConfig.hpp +++ b/src/libslic3r/PrintConfig.hpp @@ -768,6 +768,7 @@ PRINT_CONFIG_CLASS_DEFINE( ((ConfigOptionFloat, tree_support_branch_distance)) ((ConfigOptionFloat, tree_support_branch_diameter)) ((ConfigOptionFloat, tree_support_branch_angle)) + ((ConfigOptionFloat, tree_support_branch_diameter_angle)) ((ConfigOptionInt, tree_support_wall_count)) ((ConfigOptionBool, detect_narrow_internal_solid_infill)) // ((ConfigOptionBool, adaptive_layer_height)) @@ -1118,6 +1119,7 @@ PRINT_CONFIG_CLASS_DERIVED_DEFINE( // BBS: move from PrintObjectConfig ((ConfigOptionBool, independent_support_layer_height)) ((ConfigOptionBool, exclude_object)) + ((ConfigOptionPercents, filament_shrink)) ) // This object is mapped to Perl as Slic3r::Config::Full. diff --git a/src/libslic3r/PrintObject.cpp b/src/libslic3r/PrintObject.cpp index 19522bd6f1..140e33ab84 100644 --- a/src/libslic3r/PrintObject.cpp +++ b/src/libslic3r/PrintObject.cpp @@ -538,7 +538,8 @@ void PrintObject::simplify_extrusion_path() } if (this->set_started(posSimplifySupportPath)) { - //BBS: share same progress + //BBS: disable circle simplification for support as it causes separation of support walls + #if 0 m_print->set_status(75, L("Optimizing toolpath")); BOOST_LOG_TRIVIAL(debug) << "Simplify extrusion path of support in parallel - start"; tbb::parallel_for( @@ -552,6 +553,7 @@ void PrintObject::simplify_extrusion_path() ); m_print->throw_if_canceled(); BOOST_LOG_TRIVIAL(debug) << "Simplify extrusion path of support in parallel - end"; + #endif this->set_done(posSimplifySupportPath); } } @@ -791,6 +793,7 @@ bool PrintObject::invalidate_state_by_config_options( || opt_key == "tree_support_branch_distance" || opt_key == "tree_support_branch_diameter" || opt_key == "tree_support_branch_angle" + || opt_key == "tree_support_branch_diameter_angle" || opt_key == "tree_support_wall_count") { steps.emplace_back(posSupportMaterial); } else if ( @@ -3503,90 +3506,8 @@ template void PrintObject::remove_bridges_from_contacts( SupportNecessaryType PrintObject::is_support_necessary() { - static const double super_overhang_area_threshold = SQ(scale_(5.0)); const double cantilevel_dist_thresh = scale_(6); -#if 0 - double threshold_rad = (m_config.support_threshold_angle.value < EPSILON ? 30 : m_config.support_threshold_angle.value + 1) * M_PI / 180.; - int enforce_support_layers = m_config.enforce_support_layers; - const coordf_t extrusion_width = m_config.line_width.value; - const coordf_t extrusion_width_scaled = scale_(extrusion_width); - float max_bridge_length = scale_(m_config.max_bridge_length.value); - const bool bridge_no_support = max_bridge_length > 0;// config.bridge_no_support.value; - - for (size_t layer_nr = enforce_support_layers + 1; layer_nr < this->layer_count(); layer_nr++) { - Layer* layer = m_layers[layer_nr]; - Layer* lower_layer = layer->lower_layer; - - coordf_t support_offset_scaled = extrusion_width_scaled * 0.9; - ExPolygons lower_layer_offseted = offset_ex(lower_layer->lslices, support_offset_scaled, SUPPORT_SURFACES_OFFSET_PARAMETERS); - - // 1. check sharp tail - for (const LayerRegion* layerm : layer->regions()) { - for (const ExPolygon& expoly : layerm->raw_slices) { - // detect sharp tail - if (intersection_ex({ expoly }, lower_layer_offseted).empty()) - return SharpTail; - } - } - - // 2. check overhang area - ExPolygons super_overhang_expolys = std::move(diff_ex(layer->lslices, lower_layer_offseted)); - super_overhang_expolys.erase(std::remove_if( - super_overhang_expolys.begin(), - super_overhang_expolys.end(), - [extrusion_width_scaled](ExPolygon& area) { - return offset_ex(area, -0.1 * extrusion_width_scaled).empty(); - }), - super_overhang_expolys.end()); - - // remove bridge - if (bridge_no_support) - remove_bridges_from_contacts(lower_layer, layer, extrusion_width_scaled, &super_overhang_expolys, max_bridge_length); - - Polygons super_overhang_polys = to_polygons(super_overhang_expolys); - - - super_overhang_polys.erase(std::remove_if( - super_overhang_polys.begin(), - super_overhang_polys.end(), - [extrusion_width_scaled](Polygon& area) { - return offset_ex(area, -0.1 * extrusion_width_scaled).empty(); - }), - super_overhang_polys.end()); - - double super_overhang_area = 0.0; - for (Polygon& poly : super_overhang_polys) { - bool is_ccw = poly.is_counter_clockwise(); - double area_ = poly.area(); - if (is_ccw) { - if (area_ > super_overhang_area_threshold) - return LargeOverhang; - super_overhang_area += area_; - } - else { - super_overhang_area -= area_; - } - } - //if (super_overhang_area > super_overhang_area_threshold) - // return LargeOverhang; - - // 3. check overhang distance - const double distance_threshold_scaled = extrusion_width_scaled * 2; - ExPolygons lower_layer_offseted_2 = offset_ex(lower_layer->lslices, distance_threshold_scaled, SUPPORT_SURFACES_OFFSET_PARAMETERS); - ExPolygons exceed_overhang = std::move(diff_ex(super_overhang_polys, lower_layer_offseted_2)); - exceed_overhang.erase(std::remove_if( - exceed_overhang.begin(), - exceed_overhang.end(), - [extrusion_width_scaled](ExPolygon& area) { - // tolerance for 1 extrusion width offset - return offset_ex(area, -0.5 * extrusion_width_scaled).empty(); - }), - exceed_overhang.end()); - if (!exceed_overhang.empty()) - return LargeOverhang; - } -#else TreeSupport tree_support(*this, m_slicing_params); tree_support.support_type = SupportType::stTreeAuto; // need to set support type to fully utilize the power of feature detection tree_support.detect_overhangs(true); @@ -3595,7 +3516,7 @@ SupportNecessaryType PrintObject::is_support_necessary() return SharpTail; else if (tree_support.has_cantilever && tree_support.max_cantilever_dist > cantilevel_dist_thresh) return Cantilever; -#endif + return NoNeedSupp; } diff --git a/src/libslic3r/PrintObjectSlice.cpp b/src/libslic3r/PrintObjectSlice.cpp index 6ec459d560..1a21726f81 100644 --- a/src/libslic3r/PrintObjectSlice.cpp +++ b/src/libslic3r/PrintObjectSlice.cpp @@ -1016,6 +1016,21 @@ void PrintObject::slice_volumes() PrintObject::clip_multipart_objects, throw_on_cancel_callback); + // SuperSlicer: filament shrink + for (const std::unique_ptr &pr : m_shared_regions->all_regions) { + if (pr.get()) { + std::vector ®ion_polys = region_slices[pr->print_object_region_id()]; + const size_t extruder_id = pr->extruder(FlowRole::frPerimeter) - 1; + double scale = print->config().filament_shrink.values[extruder_id] * 0.01; + if (scale != 1) { + scale = 1 / scale; + for (ExPolygons &polys : region_polys) + for (ExPolygon &poly : polys) poly.scale(scale); + } + } + } + + for (size_t region_id = 0; region_id < region_slices.size(); ++ region_id) { std::vector &by_layer = region_slices[region_id]; for (size_t layer_id = 0; layer_id < by_layer.size(); ++ layer_id) diff --git a/src/libslic3r/Support/SupportCommon.cpp b/src/libslic3r/Support/SupportCommon.cpp index cd7df98f57..8c4980fb40 100644 --- a/src/libslic3r/Support/SupportCommon.cpp +++ b/src/libslic3r/Support/SupportCommon.cpp @@ -65,8 +65,8 @@ std::pair generate_interfa if (! intermediate_layers.empty() && support_params.has_interfaces()) { // For all intermediate layers, collect top contact surfaces, which are not further than support_material_interface_layers. BOOST_LOG_TRIVIAL(debug) << "PrintObjectSupportMaterial::generate_interface_layers() in parallel - start"; - const bool snug_supports = config.support_style.value == smsSnug; - const bool smooth_supports = config.support_style.value != smsGrid; + const bool snug_supports = support_params.support_style == smsSnug; + const bool smooth_supports = support_params.support_style != smsGrid; SupportGeneratorLayersPtr &interface_layers = base_and_interface_layers.first; SupportGeneratorLayersPtr &base_interface_layers = base_and_interface_layers.second; @@ -1351,6 +1351,10 @@ SupportGeneratorLayersPtr generate_support_layers( append(layers_sorted, intermediate_layers); append(layers_sorted, interface_layers); append(layers_sorted, base_interface_layers); + // remove dupliated layers + std::sort(layers_sorted.begin(), layers_sorted.end()); + layers_sorted.erase(std::unique(layers_sorted.begin(), layers_sorted.end()), layers_sorted.end()); + // Sort the layers lexicographically by a raising print_z and a decreasing height. std::sort(layers_sorted.begin(), layers_sorted.end(), [](auto *l1, auto *l2) { return *l1 < *l2; }); int layer_id = 0; @@ -1582,7 +1586,7 @@ void generate_support_toolpaths( { SupportLayer &support_layer = *support_layers[support_layer_id]; LayerCache &layer_cache = layer_caches[support_layer_id]; - const float support_interface_angle = (config.support_style.value == smsGrid || config.support_interface_pattern == smipRectilinear) ? + const float support_interface_angle = (support_params.support_style == smsGrid || config.support_interface_pattern == smipRectilinear) ? support_params.interface_angle : support_params.raft_interface_angle(support_layer.interface_id()); // Find polygons with the same print_z. @@ -1719,7 +1723,7 @@ void generate_support_toolpaths( // Base support or flange. if (! base_layer.empty() && ! base_layer.polygons_to_extrude().empty()) { - Fill *filler = filler_support.get(); + Fill *filler = filler_support.get(); filler->angle = angles[support_layer_id % angles.size()]; // We don't use $base_flow->spacing because we need a constant spacing // value that guarantees that all layers are correctly aligned. @@ -1744,8 +1748,12 @@ void generate_support_toolpaths( filler->link_max_length = coord_t(scale_(filler->spacing * link_max_length_factor / density)); sheath = true; no_sort = true; - } else if (config.support_style == SupportMaterialStyle::smsTreeOrganic) { - tree_supports_generate_paths(base_layer.extrusions, base_layer.polygons_to_extrude(), flow, support_params); + } else if (support_params.support_style == SupportMaterialStyle::smsTreeOrganic) { + // if the tree supports are too tall, use double wall to make it stronger + SupportParameters support_params2 = support_params; + if (support_layer.print_z > 100.0) + support_params2.tree_branch_diameter_double_wall_area_scaled = 0.1; + tree_supports_generate_paths(base_layer.extrusions, base_layer.polygons_to_extrude(), flow, support_params2); done = true; } if (! done) diff --git a/src/libslic3r/Support/SupportParameters.hpp b/src/libslic3r/Support/SupportParameters.hpp index fa9896c477..6042049a67 100644 --- a/src/libslic3r/Support/SupportParameters.hpp +++ b/src/libslic3r/Support/SupportParameters.hpp @@ -1,4 +1,5 @@ #pragma once +#include #include "../libslic3r.h" #include "../Flow.hpp" #include "../PrintConfig.hpp" @@ -163,7 +164,22 @@ struct SupportParameters { tree_branch_diameter_double_wall_area_scaled = object_config.tree_support_wall_count.value > 1 ? 0.1 : object_config.tree_support_wall_count.value == 0 ? 0.25 * sqr(scaled(5.0)) * M_PI : std::numeric_limits::max(); - + + support_style = object_config.support_style; + if (support_style == smsDefault) { + if (is_tree(object_config.support_type)) { + // organic support doesn't work with variable layer heights (including adaptive layer height and height range modifier, see #4313) + if (!object.has_variable_layer_heights) { + BOOST_LOG_TRIVIAL(warning) << "tree support default to organic support"; + support_style = smsTreeOrganic; + } else { + BOOST_LOG_TRIVIAL(warning) << "tree support default to hybrid tree due to adaptive layer height"; + support_style = smsTreeHybrid; + } + } else { + support_style = smsGrid; + } + } } // Both top / bottom contacts and interfaces are soluble. bool soluble_interface; @@ -214,6 +230,7 @@ struct SupportParameters { coordf_t raft_interface_density; coordf_t support_spacing; coordf_t support_density; + SupportMaterialStyle support_style = smsDefault; InfillPattern base_fill_pattern; InfillPattern interface_fill_pattern; diff --git a/src/libslic3r/Support/TreeSupport.cpp b/src/libslic3r/Support/TreeSupport.cpp index a0c4ab8190..1bc315eda9 100644 --- a/src/libslic3r/Support/TreeSupport.cpp +++ b/src/libslic3r/Support/TreeSupport.cpp @@ -2,6 +2,7 @@ #include #include +#include "format.hpp" #include "ClipperUtils.hpp" #include "Fill/FillBase.hpp" #include "I18N.hpp" @@ -599,27 +600,16 @@ TreeSupport::TreeSupport(PrintObject& object, const SlicingParameters &slicing_p m_print_config = &m_object->print()->config(); m_raft_layers = slicing_params.base_raft_layers + slicing_params.interface_raft_layers; support_type = m_object_config->support_type; - support_style = m_object_config->support_style; - if (support_style == smsDefault) { - // organic support doesn't work with variable layer heights (including adaptive layer height and height range modifier, see #4313) - if (!m_object->has_variable_layer_heights) { - BOOST_LOG_TRIVIAL(warning) << "tree support default to organic support"; - support_style = smsTreeOrganic; - } - else { - BOOST_LOG_TRIVIAL(warning) << "tree support default to hybrid tree due to adaptive layer height"; - support_style = smsTreeHybrid; - } - } + SupportMaterialPattern support_pattern = m_object_config->support_base_pattern; - if (support_style == smsTreeHybrid && support_pattern == smpDefault) + if (m_support_params.support_style == smsTreeHybrid && support_pattern == smpDefault) support_pattern = smpRectilinear; if(support_pattern == smpLightning) m_support_params.base_fill_pattern = ipLightning; - - is_slim = is_tree_slim(support_type, support_style); - is_strong = is_tree(support_type) && support_style == smsTreeStrong; + diameter_angle_scale_factor = std::clamp(m_object_config->tree_support_branch_diameter_angle * M_PI / 180., 0., 0.5 * M_PI - EPSILON); + is_slim = is_tree_slim(support_type, m_support_params.support_style); + is_strong = is_tree(support_type) && m_support_params.support_style == smsTreeStrong; base_radius = std::max(MIN_BRANCH_RADIUS, m_object_config->tree_support_branch_diameter.value / 2); // by default tree support needs no infill, unless it's tree hybrid which contains normal nodes. with_infill = support_pattern != smpNone && support_pattern != smpDefault; @@ -1301,6 +1291,7 @@ static void make_perimeter_and_infill(ExtrusionEntitiesPtr& dst, const ExPolygon dst = std::move(loops_entities); } } + dst.erase(std::remove_if(dst.begin(), dst.end(), [](ExtrusionEntity *entity) { return static_cast(entity)->empty(); }), dst.end()); if (infill_first) { // sort regions to reduce travel Points ordering_points; @@ -1545,7 +1536,10 @@ void TreeSupport::generate_toolpaths() erSupportMaterial, filler_support.get(), support_density); } else { - tree_supports_generate_paths(ts_layer->support_fills.entities, loops, flow, m_support_params); + SupportParameters support_params = m_support_params; + if (area_group.need_extra_wall && object_config.tree_support_wall_count.value == 0) + support_params.tree_branch_diameter_double_wall_area_scaled = 0.1; + tree_supports_generate_paths(ts_layer->support_fills.entities, loops, flow, support_params); } } } @@ -1651,7 +1645,7 @@ void TreeSupport::move_bounds_to_contact_nodes(std::vectorthrow_on_cancel); return; } @@ -2003,7 +1997,7 @@ void TreeSupport::draw_circles() return; BOOST_LOG_TRIVIAL(info) << "draw_circles for object: " << m_object->model_object()->name; - tbb::parallel_for(tbb::blocked_range(0, contact_nodes.size()), + tbb::parallel_for(tbb::blocked_range(0, m_ts_data->layer_heights.size()), [&](const tbb::blocked_range& range) { for (size_t layer_nr = range.begin(); layer_nr < range.end(); layer_nr++) @@ -2661,7 +2655,8 @@ void TreeSupport::drop_nodes() // Remove all circle neighbours that are completely inside the polygon and merge them into this node. for (const Point &neighbour : neighbours) { SupportNode * neighbour_node = nodes_this_part[neighbour]; - if(neighbour_node->type==ePolygon) continue; + if (neighbour_node->valid == false) continue; + if (neighbour_node->type == ePolygon) continue; coord_t neighbour_radius = scale_(neighbour_node->radius); Point pt_north = neighbour + Point(0, neighbour_radius), pt_south = neighbour - Point(0, neighbour_radius), pt_west = neighbour - Point(neighbour_radius, 0), pt_east = neighbour + Point(neighbour_radius, 0); @@ -2937,8 +2932,6 @@ void TreeSupport::drop_nodes() for (; i_node != nullptr; i_node = i_node->parent) { size_t i_layer = i_node->obj_layer_nr; - std::vector::iterator to_erase = std::find(contact_nodes[i_layer].begin(), contact_nodes[i_layer].end(), i_node); - if (to_erase != contact_nodes[i_layer].end()) { // update the parent-child chain if (i_node->parent) { @@ -2953,20 +2946,24 @@ void TreeSupport::drop_nodes() i_node->child->parents.erase(std::find(i_node->child->parents.begin(), i_node->child->parents.end(), i_node)); append(i_node->child->parents, i_node->parents); } - contact_nodes[i_layer].erase(to_erase); - i_node->valid = false; + i_node->is_processed = true; // mark to be deleted later for (SupportNode* neighbour : i_node->merged_neighbours) { - unsupported_branch_leaves.push_front({ i_layer, neighbour }); + if (neighbour && !neighbour->is_processed) + unsupported_branch_leaves.push_front({ i_layer, neighbour }); } } } } + for (auto &layer_contact_nodes : contact_nodes) { + if (!layer_contact_nodes.empty()) + layer_contact_nodes.erase(std::remove_if(layer_contact_nodes.begin(), layer_contact_nodes.end(), [](SupportNode *node) { return node->is_processed; }), + layer_contact_nodes.end()); + } } BOOST_LOG_TRIVIAL(debug) << "after m_avoidance_cache.size()=" << m_ts_data->m_avoidance_cache.size(); - } void TreeSupport::smooth_nodes() @@ -2980,6 +2977,10 @@ void TreeSupport::smooth_nodes() } float max_move = scale_(m_object_config->support_line_width / 2); + // if the branch is very tall, the tip also needs extra wall + float thresh_tall_branch = 100; + float thresh_dist_to_top = 30; + for (int layer_nr = 0; layer_nr< contact_nodes.size(); layer_nr++) { std::vector &curr_layer_nodes = contact_nodes[layer_nr]; if (curr_layer_nodes.empty()) continue; @@ -2989,17 +2990,20 @@ void TreeSupport::smooth_nodes() std::vector radii; std::vector branch; SupportNode * p_node = node; + float total_height = 0; // add a fixed head if it's not a polygon node, see STUDIO-4403 // Polygon node can't be added because the move distance might be huge, making the nodes in between jump and dangling if (node->child && node->child->type!=ePolygon) { pts.push_back(p_node->child->position); radii.push_back(p_node->child->radius); branch.push_back(p_node->child); + total_height += p_node->child->height; } do { pts.push_back(p_node->position); radii.push_back(p_node->radius); branch.push_back(p_node); + total_height += p_node->height; p_node = p_node->parent; } while (p_node && !p_node->is_processed); if (pts.size() < 3) continue; @@ -3018,7 +3022,8 @@ void TreeSupport::smooth_nodes() branch[i]->radius = radii1[i]; branch[i]->movement = (pts[i + 1] - pts[i - 1]) / 2; branch[i]->is_processed = true; - if (branch[i]->parents.size()>1 || (branch[i]->movement.x() > max_move || branch[i]->movement.y() > max_move)) + if (branch[i]->parents.size() > 1 || (branch[i]->movement.x() > max_move || branch[i]->movement.y() > max_move) || + (total_height > thresh_tall_branch && branch[i]->dist_mm_to_top < thresh_dist_to_top)) branch[i]->need_extra_wall = true; BOOST_LOG_TRIVIAL(trace) << "smooth_nodes: layer_nr=" << layer_nr << ", i=" << i << ", pt=" << pt << ", movement=" << branch[i]->movement << ", radius=" << branch[i]->radius; } @@ -3415,7 +3420,7 @@ void TreeSupport::generate_contact_points() const auto& overhang_type = this->overhang_types[&overhang_part]; is_sharp_tail = overhang_type == OverhangType::SharpTail; ExPolygons overhangs_regular; - if (support_style == smsTreeHybrid && overhang_part.area() > m_support_params.thresh_big_overhang && !is_sharp_tail) { + if (m_support_params.support_style == smsTreeHybrid && overhang_part.area() > m_support_params.thresh_big_overhang && !is_sharp_tail) { overhangs_regular = offset_ex(intersection_ex({overhang_part}, m_ts_data->m_layer_outlines_below[layer_nr - 1]), radius_scaled); ExPolygons overhangs_normal = diff_ex({overhang_part}, overhangs_regular); if (area(overhangs_normal) > m_support_params.thresh_big_overhang) { @@ -3606,35 +3611,21 @@ SupportNode* TreeSupportData::create_node(const Point position, const int distan { // this function may be called from multiple threads, need to lock m_mutex.lock(); - SupportNode* node = new SupportNode(position, distance_to_top, obj_layer_nr, support_roof_layers_below, to_buildplate, parent, print_z_, height_, dist_mm_to_top_, radius_); - contact_nodes.emplace_back(node); + std::unique_ptr node = std::make_unique(position, distance_to_top, obj_layer_nr, support_roof_layers_below, to_buildplate, parent, print_z_, height_, dist_mm_to_top_, radius_); + SupportNode* raw_ptr = node.get(); + contact_nodes.emplace_back(std::move(node)); m_mutex.unlock(); if (parent) - node->movement = position - parent->position; - return node; + raw_ptr->movement = position - parent->position; + return raw_ptr; } void TreeSupportData::clear_nodes() { - for (auto node : contact_nodes) { - delete node; - } + tbb::spin_mutex::scoped_lock guard(m_mutex); contact_nodes.clear(); } -void TreeSupportData::remove_invalid_nodes() -{ - for (auto it = contact_nodes.begin(); it != contact_nodes.end();) { - if ((*it)->valid==false) { - delete (*it); - it = contact_nodes.erase(it); - } - else { - it++; - } - } -} - coordf_t TreeSupportData::ceil_radius(coordf_t radius) const { size_t factor = (size_t)(radius / m_radius_sample_resolution); @@ -3662,27 +3653,22 @@ const ExPolygons& TreeSupportData::calculate_avoidance(const RadiusLayerPair& ke { const auto &radius = key.radius; const auto &layer_nr = key.layer_nr; - if (layer_nr == 0) { - // avoid ExPolygons:~ExPolygons() in multi-threading case, as it's not thread-safe and may - // cause crash in some cases. See STUDIO-8313. - if (m_avoidance_cache.find(key) == m_avoidance_cache.end()) - m_avoidance_cache[key] = get_collision(radius, 0); - return m_avoidance_cache[key]; - } - - // Avoidance for a given layer depends on all layers beneath it so could have very deep recursion depths if - // called at high layer heights. We can limit the reqursion depth to N by checking if the layer N - // below the current one exists and if not, forcing the calculation of that layer. This may cause another recursion - // if the layer at 2N below the current one but we won't exceed our limit unless there are N*N uncalculated layers - // below our current one. - constexpr auto max_recursion_depth = 100; - // Check if we would exceed the recursion limit by trying to process this layer - if (layer_nr >= max_recursion_depth && m_avoidance_cache.find({radius, layer_nr - max_recursion_depth}) == m_avoidance_cache.end()) { - // Force the calculation of the layer `max_recursion_depth` below our current one, ignoring the result. - get_avoidance(radius, layer_nr - max_recursion_depth); - } - - ExPolygons avoidance_areas = std::move(offset_ex(get_avoidance(radius, layer_nr - 1), scale_(-m_max_move_distances[layer_nr-1]))); + ExPolygons avoidance_areas; + if (layer_nr > 0) { + // Avoidance for a given layer depends on all layers beneath it so could have very deep recursion depths if + // called at high layer heights. We can limit the reqursion depth to N by checking if the layer N + // below the current one exists and if not, forcing the calculation of that layer. This may cause another recursion + // if the layer at 2N below the current one but we won't exceed our limit unless there are N*N uncalculated layers + // below our current one. + constexpr auto max_recursion_depth = 100; + // Check if we would exceed the recursion limit by trying to process this layer + if (layer_nr >= max_recursion_depth && m_avoidance_cache.find({radius, layer_nr - max_recursion_depth}) == m_avoidance_cache.end()) { + // Force the calculation of the layer `max_recursion_depth` below our current one, ignoring the result. + get_avoidance(radius, layer_nr - max_recursion_depth); + } + + avoidance_areas = std::move(offset_ex(get_avoidance(radius, layer_nr - 1), scale_(-m_max_move_distances[layer_nr-1]))); + } const ExPolygons &collision = get_collision(radius, layer_nr); avoidance_areas.insert(avoidance_areas.end(), collision.begin(), collision.end()); avoidance_areas = std::move(union_ex(avoidance_areas)); diff --git a/src/libslic3r/Support/TreeSupport.hpp b/src/libslic3r/Support/TreeSupport.hpp index 47c41194e1..6a8b9749c8 100644 --- a/src/libslic3r/Support/TreeSupport.hpp +++ b/src/libslic3r/Support/TreeSupport.hpp @@ -247,10 +247,9 @@ class TreeSupportData SupportNode* create_node(const Point position, const int distance_to_top, const int obj_layer_nr, const int support_roof_layers_below, const bool to_buildplate, SupportNode* parent, coordf_t print_z_, coordf_t height_, coordf_t dist_mm_to_top_ = 0, coordf_t radius_ = 0); void clear_nodes(); - void remove_invalid_nodes(); std::vector layer_heights; - std::vector contact_nodes; + std::vector> contact_nodes; // ExPolygon m_machine_border; private: @@ -400,7 +399,6 @@ class TreeSupport bool has_cantilever = false; double max_cantilever_dist = 0; SupportType support_type; - SupportMaterialStyle support_style; std::unique_ptr generator; std::unordered_map printZ_to_lightninglayer; @@ -442,8 +440,7 @@ class TreeSupport const coordf_t MIN_BRANCH_RADIUS = 0.4; const coordf_t MAX_BRANCH_RADIUS_FIRST_LAYER = 12.0; const coordf_t MIN_BRANCH_RADIUS_FIRST_LAYER = 2.0; - const double tree_support_branch_diameter_angle = 5.0; - const double diameter_angle_scale_factor = tan(tree_support_branch_diameter_angle*M_PI/180.0); + double diameter_angle_scale_factor = tan(5.0*M_PI/180.0); // minimum roof area (1 mm^2), area smaller than this value will not have interface const double minimum_roof_area{SQ(scaled(1.))}; float top_z_distance = 0.0; diff --git a/src/libslic3r/Support/TreeSupport3D.cpp b/src/libslic3r/Support/TreeSupport3D.cpp index 94f7eb6ae0..919206a461 100644 --- a/src/libslic3r/Support/TreeSupport3D.cpp +++ b/src/libslic3r/Support/TreeSupport3D.cpp @@ -37,6 +37,7 @@ #define TBB_PREVIEW_GLOBAL_CONTROL 1 #include #include +#include #include #if defined(TREE_SUPPORT_SHOW_ERRORS) && defined(_WIN32) @@ -4332,15 +4333,17 @@ static void generate_support_areas(Print &print, TreeSupport* tree_support, cons SupportGeneratorLayersPtr layers_sorted = generate_support_layers(print_object, raft_layers, bottom_contacts, top_contacts, intermediate_layers, interface_layers, base_interface_layers); // BBS: This is a hack to avoid the support being generated outside the bed area. See #4769. - for (SupportGeneratorLayer *layer : layers_sorted) { + tbb::parallel_for_each(layers_sorted.begin(), layers_sorted.end(), [&](SupportGeneratorLayer *layer) { if (layer) layer->polygons = intersection(layer->polygons, volumes.m_bed_area); - } + }); // Don't fill in the tree supports, make them hollow with just a single sheath line. print.set_status(69, _L("Generating support")); generate_support_toolpaths(print_object.support_layers(), print_object.config(), support_params, print_object.slicing_parameters(), raft_layers, bottom_contacts, top_contacts, intermediate_layers, interface_layers, base_interface_layers); - + + auto t_end = std::chrono::high_resolution_clock::now(); + BOOST_LOG_TRIVIAL(info) << "Total time of organic tree support: " << 0.001 * std::chrono::duration_cast(t_end - t_start).count() << " ms"; #if 0 //#ifdef SLIC3R_DEBUG { diff --git a/src/libslic3r/Support/TreeSupportCommon.hpp b/src/libslic3r/Support/TreeSupportCommon.hpp index 6a898882c9..044e700aba 100644 --- a/src/libslic3r/Support/TreeSupportCommon.hpp +++ b/src/libslic3r/Support/TreeSupportCommon.hpp @@ -77,13 +77,12 @@ struct TreeSupportMeshGroupSettings { this->support_wall_count = std::max(1, config.tree_support_wall_count.value); // at least 1 wall for organic tree support this->support_roof_line_distance = scaled(config.support_interface_spacing.value) + this->support_roof_line_width; double support_tree_angle_slow = 25;// TODO add a setting? - double support_tree_branch_diameter_angle = 5; // TODO add a setting? double tree_support_tip_diameter = 0.8; this->support_tree_branch_distance = scaled(config.tree_support_branch_distance.value); this->support_tree_angle = std::clamp(config.tree_support_branch_angle * M_PI / 180., 0., 0.5 * M_PI - EPSILON); this->support_tree_angle_slow = std::clamp(support_tree_angle_slow * M_PI / 180., 0., this->support_tree_angle - EPSILON); this->support_tree_branch_diameter = scaled(config.tree_support_branch_diameter.value); - this->support_tree_branch_diameter_angle = std::clamp(support_tree_branch_diameter_angle * M_PI / 180., 0., 0.5 * M_PI - EPSILON); + this->support_tree_branch_diameter_angle = std::clamp(config.tree_support_branch_diameter_angle * M_PI / 180., 0., 0.5 * M_PI - EPSILON); this->support_tree_top_rate = 30; // percent // this->support_tree_tip_diameter = this->support_line_width; this->support_tree_tip_diameter = std::clamp(scaled(tree_support_tip_diameter), 0, this->support_tree_branch_diameter); diff --git a/src/libslic3r/Technologies.hpp b/src/libslic3r/Technologies.hpp index aa014a6dc9..65aa405a59 100644 --- a/src/libslic3r/Technologies.hpp +++ b/src/libslic3r/Technologies.hpp @@ -11,7 +11,7 @@ // Renders a small sphere in the center of the bounding box of the current selection when no gizmo is active #define ENABLE_RENDER_SELECTION_CENTER 0 // Shows an imgui dialog with camera related data -#define ENABLE_CAMERA_STATISTICS 0 +//#define ENABLE_CAMERA_STATISTICS 0// by ctrl +shift +space quick key // 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 // Enable extracting thumbnails from selected gcode and save them as png files @@ -22,7 +22,7 @@ #define ENABLE_NONCUSTOM_DATA_VIEW_RENDERING 0 // Enable G-Code viewer statistics imgui dialog #define ENABLE_GCODE_VIEWER_STATISTICS 0 -// Enable G-Code viewer comparison between toolpaths height and width detected from gcode and calculated at gcode generation +// Enable G-Code viewer comparison between toolpaths height and width detected from gcode and calculated at gcode generation #define ENABLE_GCODE_VIEWER_DATA_CHECKING 0 // Enable project dirty state manager debug window #define ENABLE_PROJECT_DIRTY_STATE_DEBUG_WINDOW 0 diff --git a/src/slic3r/GUI/3DBed.cpp b/src/slic3r/GUI/3DBed.cpp index db283c5086..27f5b91f20 100644 --- a/src/slic3r/GUI/3DBed.cpp +++ b/src/slic3r/GUI/3DBed.cpp @@ -248,6 +248,7 @@ bool Bed3D::set_shape(const Pointfs& printable_area, const double printable_heig m_type = type; //m_texture_filename = texture_filename; m_model_filename = model_filename; + std::replace(m_model_filename.begin(), m_model_filename.end(), '\\', '/'); //BBS: add part plate logic m_extended_bounding_box = this->calc_extended_bounding_box(false); diff --git a/src/slic3r/GUI/3DScene.cpp b/src/slic3r/GUI/3DScene.cpp index d6ccd55104..8dcb488c3a 100644 --- a/src/slic3r/GUI/3DScene.cpp +++ b/src/slic3r/GUI/3DScene.cpp @@ -426,9 +426,9 @@ const unsigned char LOD_UPDATE_FREQUENCY = 20; const Vec2i LOD_SCREEN_MIN = Vec2i(45, 35); const Vec2i LOD_SCREEN_MAX = Vec2i(65, 55); -Vec2f calc_pt_in_screen(const Vec3d &pt, const Transform3d &world_tran, const Matrix4d &view_proj_mat, int window_width, int window_height) +Vec2f calc_pt_in_screen(const Vec3d &pt, const Matrix4d &view_proj_mat, int window_width, int window_height) { - auto tran = (view_proj_mat * world_tran); + auto tran = view_proj_mat; Vec4d temp_center(pt.x(), pt.y(), pt.z(), 1.0); Vec4d temp_ndc = tran * temp_center; Vec3d screen_box_center = Vec3d(temp_ndc.x(), temp_ndc.y(), temp_ndc.z()) / temp_ndc.w(); @@ -438,12 +438,11 @@ Vec2f calc_pt_in_screen(const Vec3d &pt, const Transform3d &world_tran, const Ma return Vec2f(x, y); } -LOD_LEVEL calc_volume_box_in_screen_bigger_than_threshold( - const BoundingBoxf3 &v_box, const Transform3d &world_tran, const Matrix4d &view_proj_mat, +LOD_LEVEL calc_volume_box_in_screen_bigger_than_threshold(const BoundingBoxf3 &v_box_in_world, const Matrix4d &view_proj_mat, int window_width, int window_height) { - auto s_min = calc_pt_in_screen(v_box.min, world_tran, view_proj_mat, window_width, window_height); - auto s_max = calc_pt_in_screen(v_box.max, world_tran, view_proj_mat, window_width, window_height); + auto s_min = calc_pt_in_screen(v_box_in_world.min, view_proj_mat, window_width, window_height); + auto s_max = calc_pt_in_screen(v_box_in_world.max, view_proj_mat, window_width, window_height); auto size_x = abs(s_max.x() - s_min.x()); auto size_y = abs(s_max.y() - s_min.y()); if (size_x >= LOD_SCREEN_MAX.x() || size_y >= LOD_SCREEN_MAX.y()) { @@ -923,7 +922,7 @@ void GLVolume::render(bool with_outline, const std::array& body_color) if (abs(zoom - LAST_CAMERA_ZOOM_VALUE) > ZOOM_THRESHOLD || m_lod_update_index >= LOD_UPDATE_FREQUENCY){ m_lod_update_index = 0; LAST_CAMERA_ZOOM_VALUE = zoom; - m_cur_lod_level = calc_volume_box_in_screen_bigger_than_threshold(bounding_box(), world_tran, vier_proj_mat, viewport[2], viewport[3]); + m_cur_lod_level = calc_volume_box_in_screen_bigger_than_threshold(transformed_bounding_box(), vier_proj_mat, viewport[2], viewport[3]); } if (m_cur_lod_level == LOD_LEVEL::SMALL && indexed_vertex_array_small) { render_which(indexed_vertex_array_small); @@ -1052,7 +1051,7 @@ void GLVolume::render(bool with_outline, const std::array& body_color) if (abs(zoom - LAST_CAMERA_ZOOM_VALUE) > ZOOM_THRESHOLD || m_lod_update_index >= LOD_UPDATE_FREQUENCY) { m_lod_update_index = 0; LAST_CAMERA_ZOOM_VALUE = zoom; - m_cur_lod_level = calc_volume_box_in_screen_bigger_than_threshold(bounding_box(), world_tran, vier_proj_mat, viewport[2], viewport[3]); + m_cur_lod_level = calc_volume_box_in_screen_bigger_than_threshold(transformed_bounding_box(), vier_proj_mat, viewport[2], viewport[3]); } if (m_cur_lod_level == LOD_LEVEL::SMALL && indexed_vertex_array_small && indexed_vertex_array_small->vertices_and_normals_interleaved_VBO_id > 0) { this->indexed_vertex_array_small->render(this->tverts_range_lod, this->qverts_range_lod); diff --git a/src/slic3r/GUI/AMSMaterialsSetting.cpp b/src/slic3r/GUI/AMSMaterialsSetting.cpp index 2cda296f02..818d1df41d 100644 --- a/src/slic3r/GUI/AMSMaterialsSetting.cpp +++ b/src/slic3r/GUI/AMSMaterialsSetting.cpp @@ -382,7 +382,7 @@ void AMSMaterialsSetting::paintEvent(wxPaintEvent &evt) { auto size = GetSize(); wxPaintDC dc(this); - dc.SetPen(wxPen(StateColor::darkModeColorFor(wxColour("#000000")), 1, wxSOLID)); + dc.SetPen(wxPen(StateColor::darkModeColorFor(wxColour("#000000")), 1, wxPENSTYLE_SOLID)); dc.SetBrush(wxBrush(*wxTRANSPARENT_BRUSH)); dc.DrawRectangle(0, 0, size.x, size.y); } @@ -970,6 +970,9 @@ void AMSMaterialsSetting::Popup(wxString filament, wxString sn, wxString temp_mi m_comboBox_filament->SetValue(wxEmptyString); } + // Set the flag whether to open the filament setting dialog from the device page + m_comboBox_filament->SetClientData(new int(1)); + update(); Layout(); Fit(); @@ -1003,6 +1006,9 @@ void AMSMaterialsSetting::on_select_cali_result(wxCommandEvent &evt) void AMSMaterialsSetting::on_select_filament(wxCommandEvent &evt) { + // Get the flag whether to open the filament setting dialog from the device page + int *from_printer = static_cast(m_comboBox_filament->GetClientData()); + m_filament_type = ""; PresetBundle* preset_bundle = wxGetApp().preset_bundle; if (preset_bundle) { @@ -1084,6 +1090,7 @@ void AMSMaterialsSetting::on_select_filament(wxCommandEvent &evt) m_comboBox_cali_result->SetValue(wxEmptyString); m_input_k_val->GetTextCtrl()->SetValue(wxEmptyString); m_input_n_val->GetTextCtrl()->SetValue(wxEmptyString); + m_comboBox_filament->SetClientData(new int(0)); return; } else { @@ -1118,6 +1125,13 @@ void AMSMaterialsSetting::on_select_filament(wxCommandEvent &evt) m_pa_profile_items.clear(); m_comboBox_cali_result->SetValue(wxEmptyString); + auto get_cali_index = [this](const std::string &str) -> int { + for (int i = 0; i < int(m_pa_profile_items.size()); ++i) { + if (m_pa_profile_items[i].name == str) return i; + } + return 0; + }; + if (obj->cali_version >= 0) { // add default item PACalibResult default_item; @@ -1138,26 +1152,44 @@ void AMSMaterialsSetting::on_select_filament(wxCommandEvent &evt) m_comboBox_cali_result->Set(items); if (tray_id == VIRTUAL_TRAY_ID) { - AmsTray selected_tray = this->obj->vt_tray; - cali_select_idx = CalibUtils::get_selected_calib_idx(m_pa_profile_items,selected_tray.cali_idx); - if (cali_select_idx >= 0) { - m_comboBox_cali_result->SetSelection(cali_select_idx); + if (from_printer && (*from_printer == 1)) { + AmsTray selected_tray = this->obj->vt_tray; + cali_select_idx = CalibUtils::get_selected_calib_idx(m_pa_profile_items, selected_tray.cali_idx); + if (cali_select_idx >= 0) { + m_comboBox_cali_result->SetSelection(cali_select_idx); + } else { + m_comboBox_cali_result->SetSelection(0); + } } else { - m_comboBox_cali_result->SetSelection(0); +#ifdef __APPLE__ + cali_select_idx = get_cali_index(m_comboBox_filament->GetValue().ToStdString()); +#else + cali_select_idx = get_cali_index(m_comboBox_filament->GetLabel().ToStdString()); +#endif + m_comboBox_cali_result->SetSelection(cali_select_idx); } } else { - Ams* selected_ams = this->obj->amsList[std::to_string(ams_id)]; - if(!selected_ams) return; - AmsTray* selected_tray = selected_ams->trayList[std::to_string(tray_id)]; - if(!selected_tray) return; - cali_select_idx = CalibUtils::get_selected_calib_idx(m_pa_profile_items, selected_tray->cali_idx); - if (cali_select_idx >= 0) { - m_comboBox_cali_result->SetSelection(cali_select_idx); + if (from_printer && (*from_printer == 1)) { + Ams *selected_ams = this->obj->amsList[std::to_string(ams_id)]; + if (!selected_ams) return; + AmsTray *selected_tray = selected_ams->trayList[std::to_string(tray_id)]; + if (!selected_tray) return; + cali_select_idx = CalibUtils::get_selected_calib_idx(m_pa_profile_items, selected_tray->cali_idx); + if (cali_select_idx >= 0) { + m_comboBox_cali_result->SetSelection(cali_select_idx); + } else { + m_comboBox_cali_result->SetSelection(0); + } } else { - m_comboBox_cali_result->SetSelection(0); +#ifdef __APPLE__ + cali_select_idx = get_cali_index(m_comboBox_filament->GetValue().ToStdString()); +#else + cali_select_idx = get_cali_index(m_comboBox_filament->GetLabel().ToStdString()); +#endif + m_comboBox_cali_result->SetSelection(cali_select_idx); } } @@ -1176,6 +1208,8 @@ void AMSMaterialsSetting::on_select_filament(wxCommandEvent &evt) m_input_k_val->Disable(); } } + + m_comboBox_filament->SetClientData(new int(0)); } void AMSMaterialsSetting::on_dpi_changed(const wxRect &suggested_rect) diff --git a/src/slic3r/GUI/AVVideoDecoder.hpp b/src/slic3r/GUI/AVVideoDecoder.hpp index 239352aeaa..4111e860a2 100644 --- a/src/slic3r/GUI/AVVideoDecoder.hpp +++ b/src/slic3r/GUI/AVVideoDecoder.hpp @@ -7,6 +7,11 @@ extern "C" { #include #include } +#include +#include +#include +#include + class wxBitmap; class AVVideoDecoder diff --git a/src/slic3r/GUI/BitmapCache.cpp b/src/slic3r/GUI/BitmapCache.cpp index 788681a3a7..8e5990c892 100644 --- a/src/slic3r/GUI/BitmapCache.cpp +++ b/src/slic3r/GUI/BitmapCache.cpp @@ -6,6 +6,7 @@ #include "GUI_Utils.hpp" #include +#include #ifdef __WXGTK2__ // Broken alpha workaround diff --git a/src/slic3r/GUI/Camera.cpp b/src/slic3r/GUI/Camera.cpp index caffc43e3c..639daf24c5 100644 --- a/src/slic3r/GUI/Camera.cpp +++ b/src/slic3r/GUI/Camera.cpp @@ -3,10 +3,9 @@ #include "Camera.hpp" #include "GUI_App.hpp" -#if ENABLE_CAMERA_STATISTICS + #include "Mouse3DController.hpp" #include "Plater.hpp" -#endif // ENABLE_CAMERA_STATISTICS #include @@ -380,7 +379,6 @@ void Camera::zoom_to_volumes(const GLVolumePtrs& volumes, double margin_factor) } } -#if ENABLE_CAMERA_STATISTICS void Camera::debug_render() { ImGuiWrapper& imgui = *wxGetApp().imgui(); @@ -435,7 +433,6 @@ void Camera::debug_render() ImGui::InputFloat("GUI scale", &gui_scale, 0.0f, 0.0f, "%.6f", ImGuiInputTextFlags_ReadOnly); imgui.end(); } -#endif // ENABLE_CAMERA_STATISTICS void Camera::rotate_on_sphere_with_target(double delta_azimut_rad, double delta_zenit_rad, bool apply_limits, Vec3d target) { @@ -524,7 +521,7 @@ std::pair Camera::calc_tight_frustrum_zs_around(const BoundingBo { std::pair ret; auto& [near_z, far_z] = ret; - + m_scene_box_radius = box.radius(); // box in eye space const BoundingBoxf3 eye_box = box.transformed(m_view_matrix); near_z = -eye_box.max(2); @@ -544,8 +541,15 @@ std::pair Camera::calc_tight_frustrum_zs_around(const BoundingBo if (near_z < FrustrumMinNearZ) { const double delta = FrustrumMinNearZ - near_z; + set_distance(m_distance + delta); + m_last_scene_box_radius = m_scene_box_radius; near_z += delta; far_z += delta; + } else { + if (abs(m_last_scene_box_radius - m_scene_box_radius) > 1) { + m_last_scene_box_radius = m_scene_box_radius; + set_distance(DefaultDistance); + } } return ret; @@ -608,6 +612,16 @@ double Camera::calc_zoom_to_bounding_box_factor(const BoundingBoxf3& box, double return std::min((double)m_viewport[2] / dx, (double)m_viewport[3] / dy); } +void Camera::set_distance(double distance) +{ + if (m_distance != distance) { + m_view_matrix.translate((distance - m_distance) * get_dir_forward()); + m_distance = distance; + + update_target(); + } +} + double Camera::calc_zoom_to_volumes_factor(const GLVolumePtrs& volumes, Vec3d& center, double margin_factor) const { if (volumes.empty()) diff --git a/src/slic3r/GUI/Camera.hpp b/src/slic3r/GUI/Camera.hpp index c919e87487..14799bc5db 100644 --- a/src/slic3r/GUI/Camera.hpp +++ b/src/slic3r/GUI/Camera.hpp @@ -56,6 +56,8 @@ struct Camera std::pair m_frustrum_zs; BoundingBoxf3 m_scene_box; + float m_scene_box_radius{0}; + float m_last_scene_box_radius{0}; Frustum m_frustum; Vec3f m_last_eye, m_last_center, m_last_up; float m_last_near, m_last_far, m_last_aspect, m_last_fov,m_last_zoom; @@ -122,9 +124,7 @@ struct Camera void zoom_to_box(const BoundingBoxf3& box, double margin_factor = DefaultZoomToBoxMarginFactor); void zoom_to_volumes(const GLVolumePtrs& volumes, double margin_factor = DefaultZoomToVolumesMarginFactor); void debug_frustum(); -#if ENABLE_CAMERA_STATISTICS void debug_render(); -#endif // ENABLE_CAMERA_STATISTICS // translate the camera in world space void translate_world(const Vec3d& displacement) { set_target(m_target + displacement); } @@ -164,6 +164,7 @@ struct Camera std::pair calc_tight_frustrum_zs_around(const BoundingBoxf3& box); double calc_zoom_to_bounding_box_factor(const BoundingBoxf3& box, double margin_factor = DefaultZoomToBoxMarginFactor) const; double calc_zoom_to_volumes_factor(const GLVolumePtrs& volumes, Vec3d& center, double margin_factor = DefaultZoomToVolumesMarginFactor) const; + void set_distance(double distance); void set_default_orientation(); void set_iso_orientation(); diff --git a/src/slic3r/GUI/ConfigManipulation.cpp b/src/slic3r/GUI/ConfigManipulation.cpp index e9844f36b4..d2471bf980 100644 --- a/src/slic3r/GUI/ConfigManipulation.cpp +++ b/src/slic3r/GUI/ConfigManipulation.cpp @@ -623,11 +623,11 @@ void ConfigManipulation::toggle_print_fff_options(DynamicPrintConfig *config, co //toggle_field("support_closing_radius", have_support_material && support_style == smsSnug); bool support_is_tree = config->opt_bool("enable_support") && is_tree(support_type); - for (auto el : {"tree_support_branch_angle", "tree_support_branch_distance", "tree_support_branch_diameter"}) + for (auto el : {"tree_support_branch_angle", "tree_support_branch_distance", "tree_support_branch_diameter", "tree_support_branch_diameter_angle"}) toggle_field(el, support_is_tree); // hide tree support settings when normal is selected - for (auto el : {"tree_support_branch_angle", "tree_support_branch_distance", "tree_support_branch_diameter", "max_bridge_length"}) + for (auto el : {"tree_support_branch_angle", "tree_support_branch_distance", "tree_support_branch_diameter", "tree_support_branch_diameter_angle", "max_bridge_length"}) toggle_line(el, support_is_tree); toggle_line("support_critical_regions_only", is_auto(support_type) && support_is_tree); diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index ddf2bb9280..78dd29ee1a 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -1577,15 +1577,18 @@ BoundingBoxf3 GLCanvas3D::volumes_bounding_box() const { BoundingBoxf3 bb; BoundingBoxf3 expand_part_plate_list_box; - auto plate_list_box = wxGetApp().plater()->get_partplate_list().get_bounding_box(); - auto horizontal_radius = 0.5 * sqrt(std::pow(plate_list_box.min[0] - plate_list_box.max[0], 2) + std::pow(plate_list_box.min[1] - plate_list_box.max[1], 2)); - const float scale = 2; - expand_part_plate_list_box.merge(plate_list_box.min - scale * Vec3d(horizontal_radius, horizontal_radius, 0)); - expand_part_plate_list_box.merge(plate_list_box.max + scale * Vec3d(horizontal_radius, horizontal_radius, 0)); + bool is_limit = m_canvas_type != ECanvasType::CanvasAssembleView; + if (is_limit) { + auto plate_list_box = wxGetApp().plater()->get_partplate_list().get_bounding_box(); + auto horizontal_radius = 0.5 * sqrt(std::pow(plate_list_box.min[0] - plate_list_box.max[0], 2) + std::pow(plate_list_box.min[1] - plate_list_box.max[1], 2)); + const float scale = 2; + expand_part_plate_list_box.merge(plate_list_box.min - scale * Vec3d(horizontal_radius, horizontal_radius, 0)); + expand_part_plate_list_box.merge(plate_list_box.max + scale * Vec3d(horizontal_radius, horizontal_radius, 0)); + } for (const GLVolume *volume : m_volumes.volumes) { if (!m_apply_zoom_to_volumes_filter || ((volume != nullptr) && volume->zoom_to_volumes)) { const auto v_bb = volume->transformed_bounding_box(); - if (!expand_part_plate_list_box.overlap(v_bb)) + if (is_limit && !expand_part_plate_list_box.overlap(v_bb)) continue; bb.merge(v_bb); } @@ -2037,9 +2040,10 @@ void GLCanvas3D::render(bool only_init) wxGetApp().plater()->render_project_state_debug_window(); #endif // ENABLE_PROJECT_DIRTY_STATE_DEBUG_WINDOW -#if ENABLE_CAMERA_STATISTICS - camera.debug_render(); -#endif // ENABLE_CAMERA_STATISTICS + if (wxGetApp().plater()->is_render_statistic_dialog_visible()) { + camera.debug_render(); + camera.debug_frustum(); + } #if ENABLE_IMGUI_STYLE_EDITOR if (wxGetApp().get_mode() == ConfigOptionMode::comDevelop) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 163d5f5fd9..77526cae4e 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -1113,7 +1113,7 @@ void GUI_App::post_init() download_url = std::regex_replace(download_url, pattern, ""); } catch (...){} - + BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(", download_url %1%") % download_url; if (!download_url.empty()) { @@ -1360,7 +1360,7 @@ void GUI_App::post_init() std::time_t lw_t = boost::filesystem::last_write_time(temp_path) ; files_vec.push_back({ lw_t, temp_path.filename().string() }); } - } catch (const std::exception &ex) { + } catch (const std::exception &) { } } std::sort(files_vec.begin(), files_vec.end(), []( @@ -2135,7 +2135,7 @@ void GUI_App::init_networking_callbacks() else { obj->parse_json(msg, true); } - + if (!this->is_enable_multi_machine()) { if ((sel == obj || sel == nullptr) && obj->is_ams_need_update) { @@ -2311,8 +2311,12 @@ void GUI_App::init_app_config() if (!boost::filesystem::exists(data_dir_path)) boost::filesystem::create_directory(data_dir_path); set_data_dir(data_dir); +#if defined(__WINDOWS__) // Change current dirtory of application + _chdir(encode_path((data_dir + "/log").c_str()).c_str()); +#else chdir(encode_path((data_dir + "/log").c_str()).c_str()); +#endif } else { m_datadir_redefined = true; } @@ -2341,6 +2345,8 @@ void GUI_App::init_app_config() std::string error = app_config->load(); if (!error.empty()) { // Error while parsing config file. We'll customize the error message and rethrow to be displayed. + BOOST_LOG_TRIVIAL(error) << __FUNCTION__ + << "Configuration file may be corrupted and is not able to be parsed.Please delete the file and try again."; throw Slic3r::RuntimeError( _u8L("BambuStudio configuration file may be corrupted and is not able to be parsed." "Please delete the file and try again.") + @@ -3701,7 +3707,7 @@ void GUI_App::ShowUserGuide() { mainframe->refresh_plugin_tips(); // BBS: remove SLA related message } - } catch (std::exception &e) { + } catch (std::exception &) { // wxMessageBox(e.what(), "", MB_OK); } } @@ -3716,7 +3722,7 @@ void GUI_App::ShowDownNetPluginDlg(bool post_login) return; DownloadProgressDialog dlg(_L("Downloading Bambu Network Plug-in"), post_login); dlg.ShowModal(); - } catch (std::exception &e) { + } catch (std::exception &) { ; } } @@ -3733,7 +3739,7 @@ void GUI_App::ShowUserLogin(bool show) login_dlg = new ZUserLogin(); } login_dlg->ShowModal(); - } catch (std::exception &e) { + } catch (std::exception &) { ; } } else { @@ -3755,7 +3761,7 @@ void GUI_App::ShowOnlyFilament() { // BBS: remove SLA related message } - } catch (std::exception &e) { + } catch (std::exception &) { // wxMessageBox(e.what(), "", MB_OK); } } @@ -4104,7 +4110,7 @@ std::string GUI_App::handle_web_request(std::string cmd) else if (command_str.compare("modelmall_model_advise_get") == 0) { if (mainframe && this->app_config->get("staff_pick_switch") == "true") { if (mainframe->m_webview) { - mainframe->m_webview->SendDesignStaffpick(has_model_mall()); + mainframe->m_webview->SendDesignStaffpick(has_model_mall()); } } } @@ -4215,21 +4221,21 @@ std::string GUI_App::handle_web_request(std::string cmd) if (path.has_value()) { wxLaunchDefaultBrowser(path.value()); } - } + } else if (command_str.compare("homepage_leftmenu_clicked") == 0) { - if (root.get_child_optional("menu") != boost::none) { + if (root.get_child_optional("menu") != boost::none) { std::string strMenu = root.get_optional("menu").value(); int nRefresh = root.get_child_optional("refresh") == boost::none ? 0 : root.get_optional("refresh").value(); - + CallAfter([this,strMenu, nRefresh] { - if (mainframe && mainframe->m_webview) - { - mainframe->m_webview->SwitchWebContent(strMenu, nRefresh); + if (mainframe && mainframe->m_webview) + { + mainframe->m_webview->SwitchWebContent(strMenu, nRefresh); } } ); } - } + } else if (command_str.compare("homepage_leftmenu_switch") == 0) { if (root.get_child_optional("menu") != boost::none) { std::string strMenu = root.get_optional("menu").value(); @@ -4274,8 +4280,8 @@ std::string GUI_App::handle_web_request(std::string cmd) if (root.get_child_optional("model") != boost::none) { pt::ptree data_node = root.get_child("model"); boost::optional path = data_node.get_optional("url"); - if (path.has_value()) - { + if (path.has_value()) + { wxString realurl = from_u8(url_decode(path.value())); wxGetApp().request_model_download(realurl); } @@ -4410,7 +4416,7 @@ void GUI_App::on_http_error(wxCommandEvent &evt) return; } } - + } // request login @@ -6531,9 +6537,9 @@ void GUI_App::run_script(wxString js) return mainframe->RunScript(js); } -void GUI_App::run_script_left(wxString js) +void GUI_App::run_script_left(wxString js) { - if (mainframe) + if (mainframe) return mainframe->RunScriptLeft(js); } @@ -6947,8 +6953,6 @@ static bool del_win_registry(HKEY hkeyHive, const wchar_t *pszVar, const wchar_t return false; if (!bDidntExist) { - DWORD dwDisposition; - HKEY hkey; iRC = ::RegDeleteKeyExW(hkeyHive, pszVar, KEY_ALL_ACCESS, 0); if (iRC == ERROR_SUCCESS) { return true; diff --git a/src/slic3r/GUI/GUI_Factories.cpp b/src/slic3r/GUI/GUI_Factories.cpp index 931e1bb969..75fd85be22 100644 --- a/src/slic3r/GUI/GUI_Factories.cpp +++ b/src/slic3r/GUI/GUI_Factories.cpp @@ -86,7 +86,7 @@ std::map> SettingsFactory::OBJECT_C { L("Support"), {{"brim_type", "",1},{"brim_width", "",2},{"brim_object_gap", "",3}, {"enable_support", "",4},{"support_type", "",5},{"support_threshold_angle", "",6},{"support_on_build_plate_only", "",7}, {"support_filament", "",8},{"support_interface_filament", "",9},{"support_expansion", "",24},{"support_style", "",25}, - {"tree_support_branch_angle", "",10}, {"tree_support_wall_count", "",11},//tree support + {"tree_support_branch_angle", "",10}, {"tree_support_wall_count", "",11},{"tree_support_branch_diameter_angle", "",11},//tree support {"support_top_z_distance", "",13},{"support_bottom_z_distance", "",12},{"support_base_pattern", "",14},{"support_base_pattern_spacing", "",15}, {"support_interface_top_layers", "",16},{"support_interface_bottom_layers", "",17},{"support_interface_spacing", "",18},{"support_bottom_interface_spacing", "",19}, {"support_object_xy_distance", "",20}, {"bridge_no_support", "",21},{"max_bridge_length", "",22},{"support_critical_regions_only", "",23},{"support_remove_small_overhang","",27}, diff --git a/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp b/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp index 5c63447781..a0c7efb2f7 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoAdvancedCut.cpp @@ -715,11 +715,6 @@ void GLGizmoAdvancedCut::on_render_for_picking() GLGizmoRotate3D::on_render_for_picking(); BoundingBoxf3 box = m_parent.get_selection().get_bounding_box(); -#if ENABLE_FIXED_GRABBER - float mean_size = (float) (GLGizmoBase::Grabber::FixedGrabberSize); -#else - float mean_size = (float) ((box.size().x() + box.size().y() + box.size().z()) / 3.0); -#endif // pick grabber { color = picking_color_component(0); @@ -727,14 +722,14 @@ void GLGizmoAdvancedCut::on_render_for_picking() m_move_z_grabber.color[1] = color[1]; m_move_z_grabber.color[2] = color[2]; m_move_z_grabber.color[3] = color[3]; - m_move_z_grabber.render_for_picking(mean_size); + m_move_z_grabber.render_for_picking(); if (m_cut_mode == CutMode::cutTongueAndGroove) { color = picking_color_component(1); m_move_x_grabber.color[0] = color[0]; m_move_x_grabber.color[1] = color[1]; m_move_x_grabber.color[2] = color[2]; m_move_x_grabber.color[3] = color[3]; - m_move_x_grabber.render_for_picking(mean_size); + m_move_x_grabber.render_for_picking(); } } @@ -1209,8 +1204,8 @@ void GLGizmoAdvancedCut::render_cut_plane_and_grabbers() // BBS set to fixed size grabber // float fullsize = 2 * (dragging ? get_dragging_half_size(size) : get_half_size(size)); - float fullsize = 8.0f; - if (GLGizmoBase::INV_ZOOM > 0) { fullsize = m_move_z_grabber.FixedGrabberSize * GLGizmoBase::INV_ZOOM; } + float fullsize = get_grabber_size(); + GLModel &cube_z = m_move_z_grabber.get_cube(); GLModel &cube_x = m_move_x_grabber.get_cube(); if (is_render_z_grabber) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp index 47a3ed541f..09c71b8502 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBase.cpp @@ -79,7 +79,7 @@ GLGizmoBase::Grabber::Grabber() hover_color = GRABBER_HOVER_COL; } -void GLGizmoBase::Grabber::render(bool hover, float size) const +void GLGizmoBase::Grabber::render(bool hover) const { std::array render_color; if (hover) { @@ -88,7 +88,7 @@ void GLGizmoBase::Grabber::render(bool hover, float size) const else render_color = color; - render(size, render_color, false); + render(render_color, false); } float GLGizmoBase::Grabber::get_half_size(float size) const @@ -114,7 +114,7 @@ GLModel& GLGizmoBase::Grabber::get_cube() return cube; } -void GLGizmoBase::Grabber::render(float size, const std::array& render_color, bool picking) const +void GLGizmoBase::Grabber::render(const std::array& render_color, bool picking) const { if (! cube_initialized) { // This cannot be done in constructor, OpenGL is not yet @@ -127,11 +127,7 @@ void GLGizmoBase::Grabber::render(float size, const std::array& render //BBS set to fixed size grabber //float fullsize = 2 * (dragging ? get_dragging_half_size(size) : get_half_size(size)); - float fullsize = 8.0f; - if (GLGizmoBase::INV_ZOOM > 0) { - fullsize = FixedGrabberSize * GLGizmoBase::INV_ZOOM; - } - fullsize = fullsize * Grabber::GrabberSizeFactor; + float fullsize = get_grabber_size(); const_cast(&cube)->set_color(-1, render_color); @@ -256,6 +252,16 @@ void GLGizmoBase::render_cross_mark(const Vec3f &target, bool is_single) glsafe(::glEnd()); } +float GLGizmoBase::get_grabber_size() +{ + float grabber_size = 8.0f; + if (GLGizmoBase::INV_ZOOM > 0) { + grabber_size = GLGizmoBase::Grabber::FixedGrabberSize * GLGizmoBase::INV_ZOOM; + grabber_size = grabber_size * GLGizmoBase::Grabber::GrabberSizeFactor; + } + return grabber_size; +} + GLGizmoBase::GLGizmoBase(GLCanvas3D &parent, const std::string &icon_filename, unsigned int sprite_id) : m_parent(parent) , m_group_id(-1) @@ -435,13 +441,13 @@ std::array GLGizmoBase::picking_color_component(unsigned int id) const void GLGizmoBase::render_grabbers(const BoundingBoxf3& box) const { #if ENABLE_FIXED_GRABBER - render_grabbers((float)(GLGizmoBase::Grabber::FixedGrabberSize)); + render_grabbers(); #else render_grabbers((float)((box.size().x() + box.size().y() + box.size().z()) / 3.0)); #endif } -void GLGizmoBase::render_grabbers(float size) const +void GLGizmoBase::render_grabbers() const { GLShaderProgram* shader = wxGetApp().get_shader("gouraud_light"); if (shader == nullptr) @@ -450,24 +456,18 @@ void GLGizmoBase::render_grabbers(float size) const shader->set_uniform("emission_factor", 0.1f); for (int i = 0; i < (int)m_grabbers.size(); ++i) { if (m_grabbers[i].enabled) - m_grabbers[i].render(m_hover_id == i, size); + m_grabbers[i].render(m_hover_id == i); } shader->stop_using(); } void GLGizmoBase::render_grabbers_for_picking(const BoundingBoxf3& box) const { -#if ENABLE_FIXED_GRABBER - float mean_size = (float)(GLGizmoBase::Grabber::FixedGrabberSize); -#else - float mean_size = (float)((box.size().x() + box.size().y() + box.size().z()) / 3.0); -#endif - for (unsigned int i = 0; i < (unsigned int)m_grabbers.size(); ++i) { if (m_grabbers[i].enabled) { std::array color = picking_color_component(i); m_grabbers[i].color = color; - m_grabbers[i].render_for_picking(mean_size); + m_grabbers[i].render_for_picking(); } } } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp b/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp index 64dd352597..8a0f257547 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBase.hpp @@ -79,15 +79,15 @@ class GLGizmoBase Grabber(); - void render(bool hover, float size) const; - void render_for_picking(float size) const { render(size, color, true); } + void render(bool hover) const; + void render_for_picking() const { render(color, true); } float get_half_size(float size) const; float get_dragging_half_size(float size) const; GLModel& get_cube(); private: - void render(float size, const std::array& render_color, bool picking) const; + void render(const std::array& render_color, bool picking) const; GLModel cube; bool cube_initialized = false; @@ -173,6 +173,8 @@ class GLGizmoBase bool render_combo(const std::string &label, const std::vector &lines, size_t &selection_idx, float label_width, float item_width); void render_cross_mark(const Vec3f& target,bool is_single =false); + static float get_grabber_size(); + public: GLGizmoBase(GLCanvas3D& parent, const std::string& icon_filename, @@ -268,7 +270,7 @@ class GLGizmoBase // No check is made for clashing with other picking color (i.e. GLVolumes) std::array picking_color_component(unsigned int id) const; void render_grabbers(const BoundingBoxf3& box) const; - void render_grabbers(float size) const; + void render_grabbers() const; void render_grabbers_for_picking(const BoundingBoxf3& box) const; std::string format(float value, unsigned int decimals) const; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp index dac6a4ec7c..04b11703ab 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.cpp @@ -5,6 +5,7 @@ #include "slic3r/GUI/Gizmos/GLGizmosCommon.hpp" #include "slic3r/GUI/GUI_App.hpp" #include "slic3r/GUI/Plater.hpp" +#include "libslic3r/ClipperUtils.hpp" #include "libslic3r/ExPolygon.hpp" namespace Slic3r { namespace GUI { @@ -34,6 +35,9 @@ GLGizmoBrimEars::GLGizmoBrimEars(GLCanvas3D &parent, const std::string &icon_fil bool GLGizmoBrimEars::on_init() { + + m_new_point_head_diameter = get_brim_default_radius(); + m_shortcut_key = WXK_CONTROL_L; m_desc["head_diameter"] = _L("Head diameter"); @@ -550,7 +554,7 @@ void GLGizmoBrimEars::on_render_input_window(float x, float y, float bottom_limi find_single(); } }; - m_imgui->bbl_slider_float_style("##head_diameter", &m_new_point_head_diameter, 5, 10, "%.1f", 1.0f, true); + m_imgui->bbl_slider_float_style("##head_diameter", &m_new_point_head_diameter, 5, 20, "%.1f", 1.0f, true); if (m_imgui->get_last_slider_status().clicked) { if (m_old_point_head_diameter == 0.f) m_old_point_head_diameter = initial_value; } @@ -584,10 +588,10 @@ void GLGizmoBrimEars::on_render_input_window(float x, float y, float bottom_limi m_imgui->text(m_desc["detection_radius"]); ImGui::SameLine(caption_size); ImGui::PushItemWidth(slider_width); - m_imgui->bbl_slider_float_style("##detection_radius", &m_detection_radius, 0, 200, "%.1f", 1.0f, true); + m_imgui->bbl_slider_float_style("##detection_radius", &m_detection_radius, 0, static_cast(m_detection_radius_max), "%.1f", 1.0f, true); ImGui::SameLine(drag_left_width); ImGui::PushItemWidth(1.5 * slider_icon_width); - ImGui::BBLDragFloat("##detection_radius_input", &m_detection_radius, 0.05f, 0.0f, 200.0f, "%.1f"); + ImGui::BBLDragFloat("##detection_radius_input", &m_detection_radius, 0.05f, 0.0f, static_cast(m_detection_radius_max), "%.1f"); ImGui::Separator(); float clp_dist = float(m_c->object_clipper()->get_position()); @@ -746,7 +750,6 @@ void GLGizmoBrimEars::on_set_state() if (m_state == On && m_old_state != On) { // the gizmo was just turned on wxGetApp().plater()->enter_gizmos_stack(); - m_new_point_head_diameter = get_brim_default_radius(); first_layer_slicer(); } if (m_state == Off && m_old_state != Off) { @@ -834,8 +837,8 @@ Points GLGizmoBrimEars::generate_points(Polygon &obj_polygon, float ear_detectio points = MultiPoint::_douglas_peucker(points, detect_length); if (points.size() > 4) { points.erase(points.end() - 1); - obj_polygon.points = points; } + obj_polygon.points = points; } append(pt_ears, is_outer ? obj_polygon.convex_points(angle_threshold) : obj_polygon.concave_points(angle_threshold)); return pt_ears; @@ -874,6 +877,7 @@ void GLGizmoBrimEars::first_layer_slicer() } } m_first_layer = diff_ex(part_ex, negative_ex); + get_detection_radius_max(); } void GLGizmoBrimEars::auto_generate() @@ -903,6 +907,56 @@ void GLGizmoBrimEars::auto_generate() find_single(); } +void GLGizmoBrimEars::get_detection_radius_max() +{ + double max_dist = 0.0; + int min_points_num = 0; + for (const ExPolygon &ex_poly : m_first_layer) { + Polygon out_poly = ex_poly.contour; + Polygons inner_poly = ex_poly.holes; + polygons_reverse(inner_poly); + + Points out_points = out_poly.points; + out_points.push_back(out_points.front()); + double tolerance = 0.0; + min_points_num = MultiPoint::_douglas_peucker(out_points, 0).size(); + int repeat = 0; + int loop_protect = 0; + for (;;) { + loop_protect++; + tolerance += 10; + int num = MultiPoint::_douglas_peucker(out_points, tolerance / SCALING_FACTOR).size(); + if (num == min_points_num) { + repeat++; + if (repeat > 1) + break; + } + min_points_num = num; + if (loop_protect > 100) break; + } + loop_protect = 0; + for (;;) { + loop_protect++; + tolerance -= 1; + int num = MultiPoint::_douglas_peucker(out_points, tolerance / SCALING_FACTOR).size(); + if (num <= min_points_num) { + min_points_num = num; + }else{ + break; + } + if (loop_protect > 100) break; + } + tolerance += 1; + if (tolerance > max_dist) + max_dist = tolerance; + } + if (max_dist > 100 || max_dist <= 0) { + m_detection_radius_max = 100; + } else { + m_detection_radius_max = max_dist; + } +} + bool GLGizmoBrimEars::add_point_to_cache(Vec3f pos, float head_radius, bool selected, Vec3f normal) { BrimPoint point(pos, head_radius); diff --git a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp index c57e0f2073..8af4b73bd3 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoBrimEars.hpp @@ -98,6 +98,7 @@ class GLGizmoBrimEars : public GLGizmoBase float m_new_point_head_diameter; // Size of a new point. float m_max_angle = 125.f; float m_detection_radius = 1.f; + double m_detection_radius_max = .0f; CacheEntry m_point_before_drag; // undo/redo - so we know what state was edited float m_old_point_head_diameter = 0.; // the same mutable std::vector m_editing_cache; // a support point and whether it is currently selectedchanges or undo/redo @@ -136,6 +137,7 @@ class GLGizmoBrimEars : public GLGizmoBase Points generate_points(Polygon &obj_polygon, float ear_detection_length, float brim_ears_max_angle, bool is_outer); void auto_generate(); void first_layer_slicer(); + void get_detection_radius_max(); protected: void on_set_state() override; diff --git a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp index ab174c39a1..c02b64df69 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp @@ -7,6 +7,8 @@ #include "libslic3r/Geometry/ConvexHull.hpp" #include "libslic3r/Model.hpp" +#include + #include #include #include diff --git a/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp b/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp index 0e38493ce7..95d73a7b80 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoMove.cpp @@ -262,8 +262,8 @@ double GLGizmoMove3D::calc_projection(const UpdateData& data) const void GLGizmoMove3D::render_grabber_extension(Axis axis, const BoundingBoxf3& box, bool picking) const { - double size = 0.75 * GLGizmoBase::Grabber::FixedGrabberSize * GLGizmoBase::INV_ZOOM; - size = size * GLGizmoBase::Grabber::GrabberSizeFactor; + double size = get_grabber_size() * 0.75;//0.75 for arrow show + std::array color = m_grabbers[axis].color; if (!picking && m_hover_id != -1) { if (m_hover_id == axis) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp b/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp index 3ccef182fc..f2b522311c 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp @@ -314,8 +314,7 @@ void GLGizmoRotate::render_grabber(const BoundingBoxf3& box) const void GLGizmoRotate::render_grabber_extension(const BoundingBoxf3& box, bool picking) const { - double size = 0.75 * GLGizmoBase::Grabber::FixedGrabberSize * GLGizmoBase::INV_ZOOM; - size = size * GLGizmoBase::Grabber::GrabberSizeFactor; + double size = get_grabber_size() * 0.75;//0.75 for arrow show std::array color = m_grabbers[0].color; if (!picking && m_hover_id != -1) { diff --git a/src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp b/src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp index e12e4e5620..8b1ee538fa 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoSVG.cpp @@ -601,8 +601,7 @@ void GLGizmoSVG::on_render() render_color = SVG_Move_GrabberHoverColor; } else render_color = SVG_Move_GrabberColor; - float fullsize = 8.0f; - if (GLGizmoBase::INV_ZOOM > 0) { fullsize = m_move_grabber.FixedGrabberSize * GLGizmoBase::INV_ZOOM; } + float fullsize = get_grabber_size(); m_move_grabber.center = tran.get_offset(); Transform3d rotate_matrix = tran.get_rotation_matrix(); Transform3d cube_mat = Geometry::translation_transform(m_move_grabber.center) * rotate_matrix * Geometry::scale_transform(fullsize); @@ -633,8 +632,7 @@ void GLGizmoSVG::on_render_for_picking() m_move_grabber.color[1] = color[1]; m_move_grabber.color[2] = color[2]; m_move_grabber.color[3] = color[3]; - float mean_size = (float) (GLGizmoBase::Grabber::FixedGrabberSize); - m_move_grabber.render_for_picking(mean_size); + m_move_grabber.render_for_picking(); } //BBS: add input window for move diff --git a/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp b/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp index 849d665a29..f06c0376f2 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoScale.cpp @@ -250,7 +250,6 @@ void GLGizmoScale3D::on_render() glsafe(::glLineWidth((m_hover_id != -1) ? 2.0f : 1.5f)); - float grabber_mean_size = (float) ((m_bounding_box.size().x() + m_bounding_box.size().y() + m_bounding_box.size().z()) / 3.0); glsafe(::glPushMatrix()); glsafe(::glMultMatrixd(m_grabbers_tran.get_matrix().data())); //draw connections @@ -272,7 +271,7 @@ void GLGizmoScale3D::on_render() render_grabbers_connection(9, 6); // draw grabbers - render_grabbers(grabber_mean_size); + render_grabbers(); glsafe(::glPopMatrix()); } diff --git a/src/slic3r/GUI/Gizmos/GLGizmoText.cpp b/src/slic3r/GUI/Gizmos/GLGizmoText.cpp index abf9370d8e..75cd2c2ddb 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoText.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoText.cpp @@ -596,8 +596,7 @@ void GLGizmoText::on_render() render_color = TEXT_GRABBER_HOVER_COLOR; } else render_color = TEXT_GRABBER_COLOR; - float fullsize = 8.0f; - if (GLGizmoBase::INV_ZOOM > 0) { fullsize = m_move_grabber.FixedGrabberSize * GLGizmoBase::INV_ZOOM; } + float fullsize = get_grabber_size(); m_move_grabber.center = tran.get_offset(); Transform3d rotate_matrix = tran.get_rotation_matrix(); Transform3d cube_mat = Geometry::translation_transform(m_move_grabber.center) * rotate_matrix * Geometry::scale_transform(fullsize); @@ -629,8 +628,7 @@ void GLGizmoText::on_render_for_picking() m_move_grabber.color[1] = color[1]; m_move_grabber.color[2] = color[2]; m_move_grabber.color[3] = color[3]; - float mean_size = (float) (GLGizmoBase::Grabber::FixedGrabberSize); - m_move_grabber.render_for_picking(mean_size); + m_move_grabber.render_for_picking(); } } diff --git a/src/slic3r/GUI/Jobs/ArrangeJob.cpp b/src/slic3r/GUI/Jobs/ArrangeJob.cpp index 92f6c6c26b..c88a86b46c 100644 --- a/src/slic3r/GUI/Jobs/ArrangeJob.cpp +++ b/src/slic3r/GUI/Jobs/ArrangeJob.cpp @@ -240,9 +240,8 @@ void ArrangeJob::prepare_all() { } } if (!m_uncompatible_plates.empty()) { - std::string msg = "The following plates are skipped due to different arranging settings from global:\n"; - for (int i : m_uncompatible_plates) { - msg += "Plate " + std::to_string(i + 1) + "\n"; + auto msg = _L("The following plates are skipped due to different arranging settings from global:"); + for (int i : m_uncompatible_plates) { msg += "\n"+_L("Plate") + " " + std::to_string(i + 1); } m_plater->get_notification_manager()->push_notification(NotificationType::BBLPlateInfo, NotificationManager::NotificationLevel::WarningNotificationLevel, into_u8(msg)); diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index 49604f2b3f..aadcddad82 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -820,6 +820,9 @@ void MainFrame::update_layout() if (!preview_only_hint()) return; } + else if (evt.GetId() == tpCalibration) { + m_calibration->update_all(); + } evt.Skip(); }); diff --git a/src/slic3r/GUI/MediaFilePanel.cpp b/src/slic3r/GUI/MediaFilePanel.cpp index c8256ae8c4..aa6a79c1bd 100644 --- a/src/slic3r/GUI/MediaFilePanel.cpp +++ b/src/slic3r/GUI/MediaFilePanel.cpp @@ -9,6 +9,7 @@ #include "Printer/PrinterFileSystem.h" #include "MsgDialog.hpp" #include "Widgets/ProgressDialog.hpp" +#include #include #include diff --git a/src/slic3r/GUI/MsgDialog.cpp b/src/slic3r/GUI/MsgDialog.cpp index 0e093e412c..103a575235 100644 --- a/src/slic3r/GUI/MsgDialog.cpp +++ b/src/slic3r/GUI/MsgDialog.cpp @@ -93,7 +93,7 @@ void MsgDialog::show_dsa_button(wxString const &title) Fit(); } -bool MsgDialog::get_checkbox_state() +bool MsgDialog::get_checkbox_state() { if (m_checkbox_dsa) { return m_checkbox_dsa->GetValue(); @@ -101,7 +101,7 @@ bool MsgDialog::get_checkbox_state() return false; } -void MsgDialog::on_dpi_changed(const wxRect &suggested_rect) +void MsgDialog::on_dpi_changed(const wxRect &suggested_rect) { if (m_buttons.size() > 0) { MsgButtonsHash::iterator i = m_buttons.begin(); @@ -124,7 +124,7 @@ void MsgDialog::on_dpi_changed(const wxRect &suggested_rect) } } -void MsgDialog::SetButtonLabel(wxWindowID btn_id, const wxString& label, bool set_focus/* = false*/) +void MsgDialog::SetButtonLabel(wxWindowID btn_id, const wxString& label, bool set_focus/* = false*/) { if (Button* btn = get_button(btn_id)) { btn->SetLabel(label); @@ -148,7 +148,7 @@ Button* MsgDialog::add_button(wxWindowID btn_id, bool set_focus /*= false*/, con type = ButtonSizeLong; btn->SetMinSize(MSG_DIALOG_LONG_BUTTON_SIZE); } - + btn->SetCornerRadius(FromDIP(12)); StateColor btn_bg_green( std::pair(wxColour(27, 136, 68), StateColor::Pressed), @@ -271,7 +271,7 @@ static void add_msg_content(wxWindow* parent, wxBoxSizer* content_sizer, wxStrin wxSize page_size; int em = wxGetApp().em_unit(); if (!wxGetApp().mainframe) { - // If mainframe is nullptr, it means that GUI_App::on_init_inner() isn't completed + // If mainframe is nullptr, it means that GUI_App::on_init_inner() isn't completed // (We just show information dialog about configuration version now) // And as a result the em_unit value wasn't created yet // So, calculate it from the scale factor of Dialog @@ -297,10 +297,12 @@ static void add_msg_content(wxWindow* parent, wxBoxSizer* content_sizer, wxStrin page_size = wxSize(68 * em, page_height); } else { +#ifdef __WINDOWS__ Label* wrapped_text = new Label(html, msg); wrapped_text->Wrap(68 * em); msg = wrapped_text->GetLabel(); wrapped_text->Destroy(); +#endif //__WINDOWS__ wxClientDC dc(parent); wxSize msg_sz = dc.GetMultiLineTextExtent(msg); @@ -323,7 +325,7 @@ static void add_msg_content(wxWindow* parent, wxBoxSizer* content_sizer, wxStrin // ErrorDialog ErrorDialog::ErrorDialog(wxWindow *parent, const wxString &msg, bool monospaced_font) - : MsgDialog(parent, wxString::Format(_(L("%s error")), SLIC3R_APP_FULL_NAME), + : MsgDialog(parent, wxString::Format(_(L("%s error")), SLIC3R_APP_FULL_NAME), wxString::Format(_(L("%s has encountered an error")), SLIC3R_APP_FULL_NAME), wxOK) , msg(msg) { @@ -343,7 +345,7 @@ WarningDialog::WarningDialog(wxWindow *parent, const wxString& message, const wxString& caption/* = wxEmptyString*/, long style/* = wxOK*/) - : MsgDialog(parent, caption.IsEmpty() ? wxString::Format(_L("%s warning"), SLIC3R_APP_FULL_NAME) : caption, + : MsgDialog(parent, caption.IsEmpty() ? wxString::Format(_L("%s warning"), SLIC3R_APP_FULL_NAME) : caption, wxString::Format(_L("%s has a warning")+":", SLIC3R_APP_FULL_NAME), style) { add_msg_content(this, content_sizer, message); @@ -375,25 +377,28 @@ RichMessageDialog::RichMessageDialog(wxWindow* parent, { add_msg_content(this, content_sizer, message); - m_checkBox = new wxCheckBox(this, wxID_ANY, m_checkBoxText); - wxGetApp().UpdateDarkUI(m_checkBox); - m_checkBox->Bind(wxEVT_CHECKBOX, [this](wxCommandEvent&) { m_checkBoxValue = m_checkBox->GetValue(); }); - - btn_sizer->Insert(0, m_checkBox, wxALIGN_CENTER_VERTICAL); finalize(); } int RichMessageDialog::ShowModal() { - if (m_checkBoxText.IsEmpty()) - m_checkBox->Hide(); - else - m_checkBox->SetLabelText(m_checkBoxText); + if (!m_checkBoxText.IsEmpty()) { + show_dsa_button(m_checkBoxText); + m_checkbox_dsa->SetValue(m_checkBoxValue); + } Layout(); return wxDialog::ShowModal(); } + +bool RichMessageDialog::IsCheckBoxChecked() const +{ + if (m_checkbox_dsa) + return m_checkbox_dsa->GetValue(); + + return m_checkBoxValue; +} #endif // InfoDialog @@ -411,12 +416,12 @@ DownloadDialog::DownloadDialog(wxWindow *parent, const wxString &msg, const wxSt { add_button(wxID_YES, true, _L("Download")); add_button(wxID_CANCEL, true, _L("Skip")); - + finalize(); } -void DownloadDialog::SetExtendedMessage(const wxString &extendedMessage) +void DownloadDialog::SetExtendedMessage(const wxString &extendedMessage) { add_msg_content(this, content_sizer, msg + "\n" + extendedMessage, false, false); Layout(); @@ -520,13 +525,13 @@ wxBoxSizer *Newer3mfVersionDialog::get_msg_sizer() wxStaticText *text1; wxBoxSizer * horizontal_sizer = new wxBoxSizer(wxHORIZONTAL); wxString msg_str; - if (file_version_newer) { + if (file_version_newer) { text1 = new wxStaticText(this, wxID_ANY, _L("The 3mf file version is in Beta and it is newer than the current Bambu Studio version.")); wxStaticText * text2 = new wxStaticText(this, wxID_ANY, _L("If you would like to try Bambu Studio Beta, you may click to")); wxHyperlinkCtrl *github_link = new wxHyperlinkCtrl(this, wxID_ANY, _L("Download Beta Version"), "https://github.com/bambulab/BambuStudio/releases"); horizontal_sizer->Add(text2, 0, wxEXPAND, 0); horizontal_sizer->Add(github_link, 0, wxEXPAND | wxLEFT, 5); - + } else { text1 = new wxStaticText(this, wxID_ANY, _L("The 3mf file version is newer than the current Bambu Studio version.")); wxStaticText *text2 = new wxStaticText(this, wxID_ANY, _L("Update your Bambu Studio could enable all functionality in the 3mf file.")); @@ -580,7 +585,7 @@ wxBoxSizer *Newer3mfVersionDialog::get_btn_sizer() } }); } - + if (!file_version_newer) { m_later_btn = new Button(this, _L("Not for now")); m_later_btn->SetBackgroundColor(btn_bg_white); @@ -613,7 +618,7 @@ NetworkErrorDialog::NetworkErrorDialog(wxWindow* parent) auto m_line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL); m_line_top->SetBackgroundColour(wxColour(166, 169, 170)); - + wxBoxSizer* sizer_bacis_text = new wxBoxSizer(wxVERTICAL); m_text_basic = new Label(this, _L("The server is unable to respond. Please click the link below to check the server status.")); @@ -644,7 +649,7 @@ NetworkErrorDialog::NetworkErrorDialog(wxWindow* parent) m_text_proposal->Wrap(FromDIP(470)); m_text_proposal->SetFont(::Label::Body_14); m_text_proposal->SetForegroundColour(0x323A3C); - + m_text_wiki = new wxHyperlinkCtrl(this, wxID_ANY, _L("How to use LAN only mode"), ""); m_text_wiki->SetFont(::Label::Body_13); m_text_wiki->Bind(wxEVT_LEFT_DOWN, [this](auto& e) {wxGetApp().link_to_lan_only_wiki(); }); diff --git a/src/slic3r/GUI/MsgDialog.hpp b/src/slic3r/GUI/MsgDialog.hpp index 2ce84ac971..9a09469bde 100644 --- a/src/slic3r/GUI/MsgDialog.hpp +++ b/src/slic3r/GUI/MsgDialog.hpp @@ -190,7 +190,7 @@ class RichMessageDialog : public MsgDialog } wxString GetCheckBoxText() const { return m_checkBoxText; } - bool IsCheckBoxChecked() const { return m_checkBoxValue; } + bool IsCheckBoxChecked() const; // This part o fcode isported from the "wx\msgdlg.h" using wxMD = wxMessageDialogBase; diff --git a/src/slic3r/GUI/PartPlate.cpp b/src/slic3r/GUI/PartPlate.cpp index b747517bd5..3642412c92 100644 --- a/src/slic3r/GUI/PartPlate.cpp +++ b/src/slic3r/GUI/PartPlate.cpp @@ -3916,7 +3916,7 @@ void PartPlateList::update_all_plates_pos_and_size(bool adjust_position, bool wi plate->set_pos_and_size(origin1, m_plate_width, m_plate_depth, m_plate_height, adjust_position, do_clear); // set default wipe pos when switch plate - if (switch_plate_type && m_plater && plate->get_used_extruders().size() <= 0) { + if (switch_plate_type && m_plater/* && plate->get_used_extruders().size() <= 0*/) { set_default_wipe_tower_pos_for_plate(i); } } @@ -4993,8 +4993,10 @@ void PartPlateList::update_logo_texture_filename(const std::string &texture_file }; if (!texture_filename.empty() && !check_texture(texture_filename)) { BOOST_LOG_TRIVIAL(error) << "Unable to load bed texture: " << texture_filename; - } else + } else { m_logo_texture_filename = texture_filename; + std::replace(m_logo_texture_filename.begin(), m_logo_texture_filename.end(), '\\', '/'); + } } /*slice related functions*/ diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index f500508e6a..363be831de 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -200,13 +200,18 @@ bool Plater::has_illegal_filename_characters(const std::string& name) for (size_t i = 0; i < std::strlen(illegal_characters); i++) if (name.find_first_of(illegal_characters[i]) != std::string::npos) return true; - + std::array escape_characters = {"<", ">", "&", """, "'"}; + for (auto escape : escape_characters) { + if (boost::contains(name, escape)) { + return true; + } + } return false; } void Plater::show_illegal_characters_warning(wxWindow* parent) { - show_error(parent, _L("Invalid name, the following characters are not allowed:") + " <>:/\\|?*\""); + show_error(parent, _L("Invalid name, the following characters are not allowed:") + " <>:/\\|?*\"" +_L("(Including its escape characters)")); } enum SlicedInfoIdx @@ -5926,11 +5931,7 @@ void Plater::priv::reload_from_disk() new_volume->set_material_id(old_volume->material_id()); new_volume->source.mesh_offset = old_volume->source.mesh_offset; - new_volume->set_offset(old_volume->get_offset()); - // Transform3d transform = Transform3d::Identity(); - // transform.translate(new_volume->source.mesh_offset - old_volume->source.mesh_offset); - // new_volume->set_transformation(old_volume->get_transformation().get_matrix() * old_volume->source.transform.get_matrix(true) * - // transform * new_volume->source.transform.get_matrix(true).inverse()); + new_volume->set_transformation(old_volume->get_transformation()); new_volume->source.object_idx = old_volume->source.object_idx; new_volume->source.volume_idx = old_volume->source.volume_idx; @@ -6467,6 +6468,7 @@ void Plater::priv::on_select_preset(wxCommandEvent &evt) PartPlateList& old_plate_list = this->partplate_list; PartPlate* old_plate = old_plate_list.get_selected_plate(); Vec3d old_plate_pos = old_plate->get_center_origin(); + Vec3d old_plate_size = old_plate->get_plate_box().size(); // BBS: Save the model in the current platelist std::vector > plate_object; @@ -6536,15 +6538,20 @@ void Plater::priv::on_select_preset(wxCommandEvent &evt) PartPlateList& cur_plate_list = this->partplate_list; PartPlate* cur_plate = cur_plate_list.get_curr_plate(); Vec3d cur_plate_pos = cur_plate->get_center_origin(); + Vec3d cur_plate_size = cur_plate->get_bounding_box().size(); + bool cur_plate_is_smaller = cur_plate_size.x() + 1.0 < old_plate_size.x() || cur_plate_size.y() + 1.0 < old_plate_size.y(); + BOOST_LOG_TRIVIAL(info) << format("change bed pos from (%.0f,%.0f) to (%.0f,%.0f)", old_plate_pos.x(), old_plate_pos.y(), cur_plate_pos.x(), cur_plate_pos.y()); - if (old_plate_pos.x() != cur_plate_pos.x() || old_plate_pos.y() != cur_plate_pos.y()) { + if (old_plate_pos.x() != cur_plate_pos.x() || old_plate_pos.y() != cur_plate_pos.y() || cur_plate_is_smaller) { for (int i = 0; i < plate_object.size(); ++i) { view3D->select_object_from_idx(plate_object[i]); this->sidebar->obj_list()->update_selections(); view3D->center_selected_plate(i); } - if (std::any_of(plate_object.begin(), plate_object.end(), [](const std::vector &obj_idxs) { return !obj_idxs.empty(); })) { + BOOST_LOG_TRIVIAL(info) << format("change bed size from (%.0f,%.0f) to (%.0f,%.0f)", old_plate_size.x(), old_plate_size.y(), cur_plate_size.x(), cur_plate_size.y()); + if (cur_plate_is_smaller && + std::any_of(plate_object.begin(), plate_object.end(), [](const std::vector &obj_idxs) { return !obj_idxs.empty(); })) { take_snapshot("Arrange after bed size changes"); q->set_prepare_state(Job::PREPARE_STATE_OUTSIDE_BED); q->arrange(); diff --git a/src/slic3r/GUI/SelectMachine.cpp b/src/slic3r/GUI/SelectMachine.cpp index ee6c5b00b2..99071b4541 100644 --- a/src/slic3r/GUI/SelectMachine.cpp +++ b/src/slic3r/GUI/SelectMachine.cpp @@ -4566,16 +4566,21 @@ void SelectMachineDialog::sys_color_changed() bool SelectMachineDialog::Show(bool show) { - show_status(PrintDialogStatus::PrintStatusInit); - // set default value when show this dialog if (show) { + m_refresh_timer->Start(LIST_REFRESH_INTERVAL); + show_status(PrintDialogStatus::PrintStatusInit); wxGetApp().UpdateDlgDarkUI(this); wxGetApp().reset_to_active(); set_default(); update_user_machine_list(); + + Layout(); + Fit(); + CenterOnParent(); } else { + m_refresh_timer->Stop(); DeviceManager* dev = Slic3r::GUI::wxGetApp().getDeviceManager(); if (dev) { MachineObject* obj_ = dev->get_selected_machine(); @@ -4587,15 +4592,6 @@ bool SelectMachineDialog::Show(bool show) } } } - - if (show) { - m_refresh_timer->Start(LIST_REFRESH_INTERVAL); - } else { - m_refresh_timer->Stop(); - } - Layout(); - Fit(); - if (show) { CenterOnParent(); } return DPIDialog::Show(show); } diff --git a/src/slic3r/GUI/Selection.cpp b/src/slic3r/GUI/Selection.cpp index abb313049d..bb3e4d3344 100644 --- a/src/slic3r/GUI/Selection.cpp +++ b/src/slic3r/GUI/Selection.cpp @@ -2095,6 +2095,7 @@ void Selection::copy_to_clipboard() dst_object->sla_support_points = src_object->sla_support_points; dst_object->sla_points_status = src_object->sla_points_status; dst_object->sla_drain_holes = src_object->sla_drain_holes; + dst_object->brim_points = src_object->brim_points; dst_object->layer_config_ranges = src_object->layer_config_ranges; // #ys_FIXME_experiment dst_object->layer_height_profile.assign(src_object->layer_height_profile); dst_object->origin_translation = src_object->origin_translation; diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 4bf9bf8b3b..6f046d1a8d 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -708,6 +708,7 @@ void PrintingTaskPanel::update_left_time(wxString time) void PrintingTaskPanel::update_finish_time(wxString finish_time) { static wxString finish_day = ""; + BOOST_LOG_TRIVIAL(trace) << __FUNCTION__ << " finish time: " << finish_time << " finish day: " << finish_day; if (finish_time == "Finished") { m_staticText_finish_time->SetLabelText(_L("Finished")); finish_day = ""; @@ -715,6 +716,7 @@ void PrintingTaskPanel::update_finish_time(wxString finish_time) } else { if (!finish_time.Contains('+')) { + finish_day = ""; if (m_staticText_finish_day->IsShown()) m_staticText_finish_day->Hide(); } else { int index = finish_time.find_last_of('+'); diff --git a/src/slic3r/GUI/StepMeshDialog.cpp b/src/slic3r/GUI/StepMeshDialog.cpp index 5af7116d70..96e71cbd25 100644 --- a/src/slic3r/GUI/StepMeshDialog.cpp +++ b/src/slic3r/GUI/StepMeshDialog.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include "GUI_App.hpp" #include "I18N.hpp" #include "MainFrame.hpp" @@ -29,6 +30,23 @@ static int _ITEM_WIDTH() { return _scale(30); } wxDEFINE_EVENT(wxEVT_THREAD_DONE, wxCommandEvent); +class CenteredStaticText : public wxStaticText +{ +public: + CenteredStaticText(wxWindow* parent, wxWindowID id, const wxString& label, const wxPoint& position, const wxSize& size = wxDefaultSize, long style = 0) + : wxStaticText(parent, id, label, position, size, style) { + CenterOnPosition(position); + } + + void CenterOnPosition(const wxPoint& position) { + int textWidth, textHeight; + GetTextExtent(GetLabel(), &textWidth, &textHeight); + int x = position.x - textWidth / 2; + int y = position.y - textHeight / 2; + SetPosition(wxPoint(x, y)); + } +}; + void StepMeshDialog::on_dpi_changed(const wxRect& suggested_rect) { }; @@ -67,6 +85,34 @@ StepMeshDialog::StepMeshDialog(wxWindow* parent, Slic3r::Step& file) wxBoxSizer* bSizer = new wxBoxSizer(wxVERTICAL); bSizer->SetMinSize(wxSize(MIN_DIALOG_WIDTH, -1)); + auto image_bitmap = create_scaled_bitmap("step_mesh_info", this, FromDIP(120), false, std::string(), false, false, true); + int image_width = image_bitmap.GetWidth(); + int image_height = image_bitmap.GetHeight(); + wxPanel* overlay_panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, image_bitmap.GetSize(), wxTAB_TRAVERSAL); + overlay_panel->SetBackgroundStyle(wxBG_STYLE_PAINT); + wxStaticBitmap *image = new wxStaticBitmap(overlay_panel, wxID_ANY, image_bitmap, wxDefaultPosition, wxDefaultSize, 0); + + CenteredStaticText* text_1 = new CenteredStaticText (overlay_panel, wxID_ANY, _L("Rough"), + wxPoint(overlay_panel->GetSize().GetWidth() / 6, + overlay_panel->GetSize().GetHeight() / 2)); + CenteredStaticText* text_2 = new CenteredStaticText(overlay_panel, wxID_ANY, _L("Smooth"), + wxPoint(overlay_panel->GetSize().GetWidth() * 5 / 6, + overlay_panel->GetSize().GetHeight() / 2)); + CenteredStaticText* text_3 = new CenteredStaticText(overlay_panel, wxID_ANY, _L("Reduce Linear"), + wxPoint(overlay_panel->GetSize().GetWidth() / 2, + overlay_panel->GetSize().GetHeight() * 1.3 / 3)); + CenteredStaticText* text_4 = new CenteredStaticText(overlay_panel, wxID_ANY, _L("Reduce Angle"), + wxPoint(overlay_panel->GetSize().GetWidth() / 2, + overlay_panel->GetSize().GetHeight() * 2 / 3)); + CenteredStaticText* text_5 = new CenteredStaticText(overlay_panel, wxID_ANY, _L("Fewer faces"), + wxPoint(overlay_panel->GetSize().GetWidth() / 6, + overlay_panel->GetSize().GetHeight() * 2.8 / 3)); + CenteredStaticText* text_6 = new CenteredStaticText(overlay_panel, wxID_ANY, _L("More faces"), + wxPoint(overlay_panel->GetSize().GetWidth() * 5 / 6, + overlay_panel->GetSize().GetHeight() * 2.8 / 3)); + + bSizer->Add(overlay_panel, 0, wxALIGN_CENTER | wxALL, 10); + wxBoxSizer* linear_sizer = new wxBoxSizer(wxHORIZONTAL); //linear_sizer->SetMinSize(wxSize(MIN_DIALOG_WIDTH, -1)); wxStaticText* linear_title = new wxStaticText(this, diff --git a/src/slic3r/GUI/StepMeshDialog.hpp b/src/slic3r/GUI/StepMeshDialog.hpp index 48bff2adc3..df2175d368 100644 --- a/src/slic3r/GUI/StepMeshDialog.hpp +++ b/src/slic3r/GUI/StepMeshDialog.hpp @@ -1,6 +1,7 @@ #ifndef _STEP_MESH_DIALOG_H_ #define _STEP_MESH_DIALOG_H_ +#include #include #include "GUI_Utils.hpp" #include "libslic3r/Format/STEP.hpp" @@ -44,4 +45,4 @@ class StepMeshDialog : public Slic3r::GUI::DPIDialog void stop_task(); }; -#endif // _STEP_MESH_DIALOG_H_ \ No newline at end of file +#endif // _STEP_MESH_DIALOG_H_ diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp index 5877044bd7..3f5669bb63 100644 --- a/src/slic3r/GUI/Tab.cpp +++ b/src/slic3r/GUI/Tab.cpp @@ -2104,13 +2104,14 @@ void TabPrint::build() optgroup->append_single_option_line("support_object_xy_distance", "support"); optgroup->append_single_option_line("support_object_first_layer_gap", "support"); optgroup->append_single_option_line("bridge_no_support", "support#base-pattern"); - optgroup->append_single_option_line("max_bridge_length", "support#base-pattern"); + optgroup->append_single_option_line("max_bridge_length", "support#tree-support-only-options"); optgroup->append_single_option_line("independent_support_layer_height", "support"); optgroup = page->new_optgroup(L("Tree Support"), L"param_advanced"); optgroup->append_single_option_line("tree_support_branch_distance", "support#tree-support-only-options"); optgroup->append_single_option_line("tree_support_branch_diameter", "support#tree-support-only-options"); optgroup->append_single_option_line("tree_support_branch_angle", "support#tree-support-only-options"); + optgroup->append_single_option_line("tree_support_branch_diameter_angle", "support#tree-support-only-options"); page = add_options_page(L("Others"), "advanced"); optgroup = page->new_optgroup(L("Bed adhension"), L"param_adhension"); @@ -3005,6 +3006,7 @@ void TabFilament::build() optgroup->append_single_option_line("enable_pressure_advance"); optgroup->append_single_option_line("pressure_advance"); optgroup->append_single_option_line("filament_density"); + optgroup->append_single_option_line("filament_shrink"); optgroup->append_single_option_line("filament_cost"); //BBS @@ -5115,15 +5117,23 @@ void Tab::save_preset(std::string name /*= ""*/, bool detach, bool save_to_proje std::map extra_map; { bool is_configed_by_BBL = PresetUtils::system_printer_bed_model(curr_preset).size() > 0; - if (is_configed_by_BBL && wxGetApp().app_config->has_section("user_bbl_svg_list")) { - auto user_bbl_svg_list = wxGetApp().app_config->get_section("user_bbl_svg_list"); - if (user_bbl_svg_list.size() > 0 && user_bbl_svg_list[curr_preset_name].size() > 0) { - extra_map["bed_custom_texture"] = ConfigOptionString(user_bbl_svg_list[curr_preset_name]); + if (is_configed_by_BBL) {//only record svg + if (wxGetApp().app_config->has_section("user_bbl_svg_list")) { + auto user_bbl_svg_list = wxGetApp().app_config->get_section("user_bbl_svg_list"); + if (user_bbl_svg_list.size() > 0 && user_bbl_svg_list[curr_preset_name].size() > 0) { + extra_map["bed_custom_texture"] = ConfigOptionString(user_bbl_svg_list[curr_preset_name]); + } } } - auto bed_model_path = wxGetApp().plater()->get_partplate_list().get_bed3d()->get_model_filename(); - if (!bed_model_path.empty()) { - extra_map["bed_custom_model"] = bed_model_path; + else {//for cutom machine + auto bed_model_path = wxGetApp().plater()->get_partplate_list().get_bed3d()->get_model_filename(); + if (!bed_model_path.empty()) { + extra_map["bed_custom_model"] = bed_model_path; + } + auto logo = wxGetApp().plater()->get_partplate_list().get_logo_texture_filename(); + if (!logo.empty()) { + extra_map["bed_custom_texture"] = logo; + } } } bool exist_preset = false; diff --git a/src/slic3r/GUI/Widgets/TempInput.cpp b/src/slic3r/GUI/Widgets/TempInput.cpp index 3fa36a5c87..8faa7145c7 100644 --- a/src/slic3r/GUI/Widgets/TempInput.cpp +++ b/src/slic3r/GUI/Widgets/TempInput.cpp @@ -163,7 +163,7 @@ wxString TempInput::erasePending(wxString &str) void TempInput::SetTagTemp(int temp) { auto tp = wxString::Format("%d", temp); - if ((text_ctrl->GetValue() != wxString("_")) && (text_ctrl->GetValue() != tp) ) { + if (text_ctrl->GetValue() != tp) { text_ctrl->SetValue(tp); messureSize(); Refresh(); diff --git a/src/slic3r/GUI/WipeTowerDialog.cpp b/src/slic3r/GUI/WipeTowerDialog.cpp index eb2c6be1fd..d6b1a62cd4 100644 --- a/src/slic3r/GUI/WipeTowerDialog.cpp +++ b/src/slic3r/GUI/WipeTowerDialog.cpp @@ -21,7 +21,7 @@ int scale(const int val) { return val * Slic3r::GUI::wxGetApp().em_unit() / 10; int ITEM_WIDTH() { return scale(30); } static const wxColour g_text_color = wxColour(107, 107, 107, 255); -#define ICON_SIZE wxSize(FromDIP(16), FromDIP(16)) +#define WIPE_TOWER_ICON_SIZE wxSize(FromDIP(16), FromDIP(16)) #define TABLE_BORDER FromDIP(28) #define HEADER_VERT_PADDING FromDIP(12) #define HEADER_BEG_PADDING FromDIP(30) @@ -270,7 +270,7 @@ void WipingPanel::create_panels(wxWindow* parent, const int num) { auto sizer = new wxBoxSizer(wxHORIZONTAL); panel->SetSizer(sizer); - wxButton* icon = new wxButton(panel, wxID_ANY, {}, wxDefaultPosition, ICON_SIZE, wxBORDER_NONE | wxBU_AUTODRAW); + wxButton* icon = new wxButton(panel, wxID_ANY, {}, wxDefaultPosition, WIPE_TOWER_ICON_SIZE, wxBORDER_NONE | wxBU_AUTODRAW); icon->SetBitmap(*get_extruder_color_icon(m_colours[i].GetAsString(wxC2S_HTML_SYNTAX).ToStdString(), std::to_string(i + 1), FromDIP(16), FromDIP(16))); icon->SetCanFocus(false); icon_list2.push_back(icon); @@ -278,7 +278,7 @@ void WipingPanel::create_panels(wxWindow* parent, const int num) { sizer->AddSpacer(ROW_BEG_PADDING); sizer->Add(icon, 0, wxALIGN_CENTER_VERTICAL | wxTOP | wxBOTTOM, ROW_VERT_PADDING); - for (unsigned int j = 0; j < num; ++j) { + for (unsigned int j = 0; j < (unsigned int)num; ++j) { edit_boxes[j][i]->Reparent(panel); edit_boxes[j][i]->SetBackgroundColour(panel->GetBackgroundColour()); edit_boxes[j][i]->SetFont(::Label::Body_13); @@ -401,7 +401,7 @@ WipingPanel::WipingPanel(wxWindow* parent, const std::vector& matrix, con header_line_sizer->AddSpacer(HEADER_BEG_PADDING); for (unsigned int i = 0; i < m_number_of_extruders; ++i) { - wxButton* icon = new wxButton(header_line_panel, wxID_ANY, {}, wxDefaultPosition, ICON_SIZE, wxBORDER_NONE | wxBU_AUTODRAW); + wxButton* icon = new wxButton(header_line_panel, wxID_ANY, {}, wxDefaultPosition, WIPE_TOWER_ICON_SIZE, wxBORDER_NONE | wxBU_AUTODRAW); icon->SetBitmap(*get_extruder_color_icon(m_colours[i].GetAsString(wxC2S_HTML_SYNTAX).ToStdString(), std::to_string(i + 1), FromDIP(16), FromDIP(16))); icon->SetCanFocus(false); icon_list1.push_back(icon); @@ -524,7 +524,7 @@ WipingPanel::WipingPanel(wxWindow* parent, const std::vector& matrix, con add_spin_ctrl(m_new, extruders[2 * i+1]); auto hsizer = new wxBoxSizer(wxHORIZONTAL); - wxWindow* w = new wxWindow(m_page_simple, wxID_ANY, wxDefaultPosition, ICON_SIZE, wxBORDER_SIMPLE); + wxWindow* w = new wxWindow(m_page_simple, wxID_ANY, wxDefaultPosition, WIPE_TOWER_ICON_SIZE, wxBORDER_SIMPLE); w->SetCanFocus(false); w->SetBackgroundColour(m_colours[i]); hsizer->Add(w, wxALIGN_CENTER_VERTICAL); @@ -554,7 +554,7 @@ WipingPanel::WipingPanel(wxWindow* parent, const std::vector& matrix, con wxSize to_text_size = dc.GetTextExtent(to_text); int base_y = (header_line_panel->GetSize().y - from_text_size.y - to_text_size.y) / 2; - int vol_width = ROW_BEG_PADDING + EDIT_BOXES_GAP / 2 + ICON_SIZE.x; + int vol_width = ROW_BEG_PADDING + EDIT_BOXES_GAP / 2 + WIPE_TOWER_ICON_SIZE.x; int base_x = (vol_width - from_text_size.x - to_text_size.x) / 2; // draw from text diff --git a/src/slic3r/GUI/wxMediaCtrl2.cpp b/src/slic3r/GUI/wxMediaCtrl2.cpp index 82876cf33f..4a9cba4e80 100644 --- a/src/slic3r/GUI/wxMediaCtrl2.cpp +++ b/src/slic3r/GUI/wxMediaCtrl2.cpp @@ -1,6 +1,8 @@ #include "wxMediaCtrl2.h" #include "I18N.hpp" #include "libslic3r/Utils.hpp" +#include +#include #ifdef __WIN32__ #include #include diff --git a/src/slic3r/GUI/wxMediaCtrl3.cpp b/src/slic3r/GUI/wxMediaCtrl3.cpp index dc91b8525c..b2a97b19e8 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.cpp +++ b/src/slic3r/GUI/wxMediaCtrl3.cpp @@ -2,6 +2,8 @@ #include "AVVideoDecoder.hpp" #include "I18N.hpp" #include "libslic3r/Utils.hpp" +#include +#include #ifdef __WIN32__ #include #include @@ -120,6 +122,8 @@ void wxMediaCtrl3::paintEvent(wxPaintEvent &evt) { wxPaintDC dc(this); auto size = GetSize(); + if (size.x <= 0 || size.y <= 0) + return; std::unique_lock lk(m_mutex); if (!m_frame.IsOk()) return; diff --git a/src/slic3r/GUI/wxMediaCtrl3.h b/src/slic3r/GUI/wxMediaCtrl3.h index d75dff9b5c..86bc7755ea 100644 --- a/src/slic3r/GUI/wxMediaCtrl3.h +++ b/src/slic3r/GUI/wxMediaCtrl3.h @@ -23,6 +23,11 @@ void wxMediaCtrl_OnSize(wxWindow * ctrl, wxSize const & videoSize, int width, in #else #define BAMBU_DYNAMIC +#include +#include +#ifndef _WIN32 +#include +#endif #include "Printer/BambuTunnel.h" class AVVideoDecoder; diff --git a/src/slic3r/Utils/Http.cpp b/src/slic3r/Utils/Http.cpp index 0e1428be31..67c6ec8fa3 100644 --- a/src/slic3r/Utils/Http.cpp +++ b/src/slic3r/Utils/Http.cpp @@ -68,8 +68,8 @@ struct CurlGlobalInit else message = (boost::format("use system SSL certificate: %1%") % bundle).str(); - message += "\n" + (boost::format("To manually specify the system certificate store, " - "set the %1% environment variable to the correct CA and restart the application") % SSL_CA_FILE).str(); + message += "\n" + (boost::format("To manually specify the system certificate store, " + "set the %1% environment variable to the correct CA and restart the application.") % SSL_CA_FILE).str(); } #endif // OPENSSL_CERT_OVERRIDE diff --git a/src/slic3r/Utils/bambu_networking.hpp b/src/slic3r/Utils/bambu_networking.hpp index 7baebe1c6a..b32e82e9ea 100644 --- a/src/slic3r/Utils/bambu_networking.hpp +++ b/src/slic3r/Utils/bambu_networking.hpp @@ -95,7 +95,7 @@ namespace BBL { #define BAMBU_NETWORK_LIBRARY "bambu_networking" #define BAMBU_NETWORK_AGENT_NAME "bambu_network_agent" -#define BAMBU_NETWORK_AGENT_VERSION "01.10.00.04" +#define BAMBU_NETWORK_AGENT_VERSION "01.10.00.06" //iot preset type strings #define IOT_PRINTER_TYPE_STRING "printer" diff --git a/version.inc b/version.inc index 18e27734a7..0b7f5e584a 100644 --- a/version.inc +++ b/version.inc @@ -13,7 +13,7 @@ endif() # The build_version should start from 50 in master branch -set(SLIC3R_VERSION "01.10.00.74") +set(SLIC3R_VERSION "01.10.00.81") string(REPLACE "." "," SLIC3R_COMMA_SEPARATED_VERSION ${SLIC3R_VERSION}) set(SLIC3R_COMMA_SEPARATED_VERSION "${SLIC3R_COMMA_SEPARATED_VERSION}")