Merge branch 'main' into release/v2.4
This commit is contained in:
2
.github/workflows/build_all.yml
vendored
2
.github/workflows/build_all.yml
vendored
@@ -14,6 +14,7 @@ on:
|
||||
- 'resources/**'
|
||||
- ".github/workflows/build_*.yml"
|
||||
- 'scripts/flatpak/**'
|
||||
- 'scripts/msix/**'
|
||||
|
||||
pull_request:
|
||||
branches:
|
||||
@@ -30,6 +31,7 @@ on:
|
||||
- 'build_release_vs2022.bat'
|
||||
- 'build_release_macos.sh'
|
||||
- 'scripts/flatpak/**'
|
||||
- 'scripts/msix/**'
|
||||
|
||||
|
||||
schedule:
|
||||
|
||||
19
.github/workflows/build_orca.yml
vendored
19
.github/workflows/build_orca.yml
vendored
@@ -371,6 +371,25 @@ jobs:
|
||||
asset_content_type: application/x-msdownload
|
||||
max_releases: 1
|
||||
|
||||
- name: Build MSIX Store package Win
|
||||
if: runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||
working-directory: ${{ github.workspace }}
|
||||
shell: pwsh
|
||||
run: |
|
||||
./scripts/msix/build_msix.ps1 `
|
||||
-InstallDir "${{ github.workspace }}/build/OrcaSlicer" `
|
||||
-OutputPath "${{ github.workspace }}/build/OrcaSlicer_Windows_MSIX_${{ env.ver }}.msix" `
|
||||
-IdentityName "${{ vars.ORCA_MSIX_IDENTITY_NAME || 'OrcaSlicer.OrcaSlicer' }}" `
|
||||
-Publisher "${{ vars.ORCA_MSIX_PUBLISHER || 'CN=38F7EA55-C73B-4072-B3B2-C8E0EA15BB82' }}" `
|
||||
-PublisherDisplayName "${{ vars.ORCA_MSIX_PUBLISHER_DISPLAY_NAME || 'OrcaSlicer' }}"
|
||||
|
||||
- name: Upload artifacts Win MSIX
|
||||
if: runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: OrcaSlicer_Windows_MSIX_${{ env.ver }}
|
||||
path: ${{ github.workspace }}/build/OrcaSlicer_Windows_MSIX_${{ env.ver }}.msix
|
||||
|
||||
# Ubuntu
|
||||
- name: Apt-Install Dependencies
|
||||
if: runner.os == 'Linux' && !vars.SELF_HOSTED
|
||||
|
||||
3
.github/workflows/publish_release.yml
vendored
3
.github/workflows/publish_release.yml
vendored
@@ -73,8 +73,9 @@ jobs:
|
||||
|
||||
- name: Download release artifacts from build run
|
||||
run: |
|
||||
# Windows_V* (not Windows_*) keeps the MSIX Store artifact out: it goes to Partner Center, not GitHub releases.
|
||||
gh run download "$RUN_ID" --repo "$GITHUB_REPOSITORY" --dir artifacts \
|
||||
-p 'OrcaSlicer_Windows_*' \
|
||||
-p 'OrcaSlicer_Windows_V*' \
|
||||
-p 'OrcaSlicer_Mac_universal_*' \
|
||||
-p 'OrcaSlicer_Linux_ubuntu_*' \
|
||||
-p 'OrcaSlicer-Linux-flatpak_*' \
|
||||
|
||||
@@ -1873,12 +1873,14 @@ msgid ""
|
||||
"You are currently in Stealth Mode. To log into the Cloud, you need to "
|
||||
"disable Stealth Mode first."
|
||||
msgstr ""
|
||||
"Sie befinden sich derzeit im Stealth-Modus. Um sich in der Cloud anzumelden, "
|
||||
"müssen Sie zunächst den Stealth-Modus deaktivieren."
|
||||
|
||||
msgid "Stealth Mode"
|
||||
msgstr ""
|
||||
msgstr "Stealth-Modus"
|
||||
|
||||
msgid "Quit Stealth Mode"
|
||||
msgstr ""
|
||||
msgstr "Stealth-Modus verlassen"
|
||||
|
||||
msgid "new or open project file is not allowed during the slicing process!"
|
||||
msgstr ""
|
||||
@@ -1900,20 +1902,31 @@ msgid ""
|
||||
"Pull downloads the cloud copy. Force push overwrites it with your local "
|
||||
"preset."
|
||||
msgstr ""
|
||||
"Cloud-Synchronisationskonflikt: Dieses Profil hat eine neuere Version in "
|
||||
"OrcaCloud.\n"
|
||||
"Pull lädt die Cloud-Kopie herunter. Force Push überschreibt sie mit Ihrem "
|
||||
"lokalen Profil."
|
||||
|
||||
msgid ""
|
||||
"Cloud sync conflict: a preset with this name already exists in OrcaCloud.\n"
|
||||
"Pull downloads the cloud copy. Force push overwrites it with your local "
|
||||
"preset."
|
||||
msgstr ""
|
||||
"Cloud-Synchronisationskonflikt: Ein Profil mit diesem Namen existiert bereits "
|
||||
"in OrcaCloud.\n"
|
||||
"Pull lädt die Cloud-Kopie herunter. Force Push überschreibt sie mit Ihrem "
|
||||
"lokalen Profil."
|
||||
|
||||
msgid ""
|
||||
"Force push will overwrite the cloud copy with your local preset changes.\n"
|
||||
"Do you want to continue?"
|
||||
msgstr ""
|
||||
"Force Push überschreibt die Cloud-Kopie mit Ihren lokalen Profiländerungen.\n"
|
||||
"Möchten Sie fortfahren?"
|
||||
|
||||
msgid "Resolve cloud sync conflict"
|
||||
msgstr ""
|
||||
"Cloud-Synchronisationskonflikt lösen"
|
||||
|
||||
msgid "Retrieving printer information, please try again later."
|
||||
msgstr "Empfange Druckerinformationen, bitte später erneut versuchen."
|
||||
@@ -2231,7 +2244,7 @@ msgid "Orca Cube"
|
||||
msgstr "Orca Würfel"
|
||||
|
||||
msgid "OrcaSliced Combo"
|
||||
msgstr ""
|
||||
msgstr "OrcaSliced Kombination"
|
||||
|
||||
msgid "Orca Tolerance Test"
|
||||
msgstr "Orca Toleranz Test"
|
||||
@@ -5670,7 +5683,7 @@ msgid "Outline"
|
||||
msgstr "Umriss"
|
||||
|
||||
msgid "Realistic View"
|
||||
msgstr ""
|
||||
msgstr "Realistische Ansicht"
|
||||
|
||||
msgid "Perspective"
|
||||
msgstr "Perspektive"
|
||||
@@ -5980,7 +5993,7 @@ msgid "Show Configuration Folder"
|
||||
msgstr "Konfigurationsordner anzeigen"
|
||||
|
||||
msgid "Troubleshoot Center"
|
||||
msgstr ""
|
||||
msgstr "Fehlerbehebungszentrum"
|
||||
|
||||
msgid "Open Network Test"
|
||||
msgstr "Netzwerktest öffnen"
|
||||
@@ -6024,10 +6037,10 @@ msgid "Rear"
|
||||
msgstr "Hinten"
|
||||
|
||||
msgid "Rear View"
|
||||
msgstr "Ansicht von Hinten"
|
||||
msgstr "Ansicht von hinten"
|
||||
|
||||
msgid "Left View"
|
||||
msgstr "Anicht von Links"
|
||||
msgstr "Ansicht von links"
|
||||
|
||||
msgid "Right View"
|
||||
msgstr "Ansicht von rechts"
|
||||
@@ -7371,10 +7384,10 @@ msgid "Model file downloaded."
|
||||
msgstr "Modelldatei heruntergeladen."
|
||||
|
||||
msgid "Pull"
|
||||
msgstr ""
|
||||
msgstr "Herunterladen"
|
||||
|
||||
msgid "Force push"
|
||||
msgstr ""
|
||||
msgstr "Hochladen erzwingen"
|
||||
|
||||
msgid "Shared profiles may be available for this printer."
|
||||
msgstr "Für diesen Drucker sind möglicherweise freigegebene Profile verfügbar."
|
||||
@@ -8449,10 +8462,10 @@ msgstr ""
|
||||
"werden nur positive Teile exportiert."
|
||||
|
||||
msgid "Flashforge host is not available."
|
||||
msgstr ""
|
||||
msgstr "Flashforge-Host ist nicht verfügbar."
|
||||
|
||||
msgid "Unable to log in to the Flashforge printer."
|
||||
msgstr ""
|
||||
msgstr "Anmeldung am Flashforge-Drucker nicht möglich."
|
||||
|
||||
msgid "Is the printer ready? Is the print sheet in place, empty and clean?"
|
||||
msgstr ""
|
||||
@@ -9031,22 +9044,22 @@ msgid "Graphics"
|
||||
msgstr "Grafik"
|
||||
|
||||
msgid "Phong shading"
|
||||
msgstr ""
|
||||
msgstr "Phong-Shading"
|
||||
|
||||
msgid "Uses Phong shading inside realistic view."
|
||||
msgstr ""
|
||||
msgstr "Verwendet Phong-Shading in der realistischen Ansicht."
|
||||
|
||||
msgid "SSAO ambient occlusion"
|
||||
msgstr ""
|
||||
msgstr "SSAO-Umgebungsverdeckung"
|
||||
|
||||
msgid "Applies SSAO in realistic view."
|
||||
msgstr ""
|
||||
msgstr "Wendet SSAO in der realistischen Ansicht an."
|
||||
|
||||
msgid "Shadows"
|
||||
msgstr ""
|
||||
msgstr "Schatten"
|
||||
|
||||
msgid "Renders cast shadows on the plate in realistic view."
|
||||
msgstr ""
|
||||
msgstr "Zeigt geworfene Schatten auf der Platte in der realistischen Ansicht an."
|
||||
|
||||
msgid "Anti-aliasing"
|
||||
msgstr "Kantenglättung"
|
||||
@@ -9126,12 +9139,16 @@ msgid ""
|
||||
"Note: When Stealth Mode is enabled, your user profiles will not be backed up "
|
||||
"to Orca Cloud."
|
||||
msgstr ""
|
||||
"Dies deaktiviert alle Cloud-Funktionen, einschließlich der Profil-Synchronisierung "
|
||||
"mit Orca Cloud. Benutzer, die es vorziehen, vollständig offline zu arbeiten, "
|
||||
"können diese Option aktivieren.\n"
|
||||
"Hinweis: Wenn der Unsichtbare Modus aktiviert ist, werden Ihre Benutzerprofile nicht in Orca Cloud gesichert."
|
||||
|
||||
msgid "Hide login side panel"
|
||||
msgstr ""
|
||||
msgstr "Login-Seitenleiste ausblenden"
|
||||
|
||||
msgid "Hide the login side panel on the home page."
|
||||
msgstr ""
|
||||
msgstr "Blendet die Login-Seitenleiste auf der Startseite aus."
|
||||
|
||||
msgid "Network test"
|
||||
msgstr "Netzwerktest"
|
||||
@@ -9299,12 +9316,14 @@ msgstr ""
|
||||
"Sehr experimentell! Langsam und kann Artefakte erzeugen."
|
||||
|
||||
msgid "Show unsupported presets"
|
||||
msgstr ""
|
||||
msgstr "Nicht unterstützte Profile anzeigen"
|
||||
|
||||
msgid ""
|
||||
"Show incompatible/unsupported presets in the printer and filament dropdown "
|
||||
"lists. These presets cannot be selected."
|
||||
msgstr ""
|
||||
"Zeigt inkompatible/nicht unterstützte Profile in den Dropdown-Listen für "
|
||||
"Drucker und Filament an. Diese Profile können nicht ausgewählt werden."
|
||||
|
||||
msgid "Allow Abnormal Storage"
|
||||
msgstr "Fehlerhaften Speicher zulassen"
|
||||
@@ -10966,6 +10985,11 @@ msgid ""
|
||||
"\n"
|
||||
"Shall I set it to 100% in order to enable Firmware Retraction?"
|
||||
msgstr ""
|
||||
"Die Option Rückzug vor Wischen kann nur 100% sein, wenn der Modus Filament "
|
||||
"Rückzug durch Firmware verwendet wird.\n"
|
||||
"\n"
|
||||
"Soll ich es auf 100% setzen, um den Filament Rückzug durch Firmware zu "
|
||||
"aktivieren?"
|
||||
|
||||
msgid "Firmware Retraction"
|
||||
msgstr "Filament Rückzug durch Firmware"
|
||||
@@ -12720,17 +12744,23 @@ msgid "Layer height cannot exceed nozzle diameter."
|
||||
msgstr "Schichthöhe darf den Düsendurchmesser nicht überschreiten."
|
||||
|
||||
msgid "Bridge line width must not exceed nozzle diameter"
|
||||
msgstr ""
|
||||
msgstr "Die Breite der Brückenlinie darf den Düsendurchmesser nicht überschreiten."
|
||||
|
||||
msgid ""
|
||||
"\"G92 E0\" was found in before_layer_change_gcode, but the G or E are not "
|
||||
"uppercase. Please change them to the exact uppercase \"G92 E0\"."
|
||||
msgstr ""
|
||||
"\"G92 E0\" wurde in before_layer_change_gcode gefunden, aber G oder E sind "
|
||||
"nicht großgeschrieben. Bitte ändern Sie sie in das exakte Großgeschriebene "
|
||||
"\"G92 E0\"."
|
||||
|
||||
msgid ""
|
||||
"\"G92 E0\" was found in layer_change_gcode, but the G or E are not "
|
||||
"uppercase. Please change them to the exact uppercase \"G92 E0\"."
|
||||
msgstr ""
|
||||
"\"G92 E0\" wurde in layer_change_gcode gefunden, aber G oder E sind "
|
||||
"nicht großgeschrieben. Bitte ändern Sie sie in das exakte Großgeschriebene "
|
||||
"\"G92 E0\"."
|
||||
|
||||
msgid ""
|
||||
"Relative extruder addressing requires resetting the extruder position at "
|
||||
@@ -12745,6 +12775,8 @@ msgid ""
|
||||
"\"G92 E0\" was found in before_layer_change_gcode, which is incompatible "
|
||||
"with absolute extruder addressing."
|
||||
msgstr ""
|
||||
"\"G92 E0\" wurde in before_layer_change_gcode gefunden, was mit absoluter "
|
||||
"Extruderadressierung nicht kompatibel ist."
|
||||
|
||||
msgid ""
|
||||
"\"G92 E0\" was found in layer_change_gcode, which is incompatible with "
|
||||
@@ -12859,29 +12891,32 @@ msgid "Extruder printable area"
|
||||
msgstr "Druckbarer Bereich des Extruders"
|
||||
|
||||
msgid "Support parallel printheads"
|
||||
msgstr ""
|
||||
msgstr "Unterstützung paralleler Druckköpfe"
|
||||
|
||||
msgid ""
|
||||
"Enable printer settings for machines that can use multiple printheads in "
|
||||
"parallel."
|
||||
msgstr ""
|
||||
msgstr "Aktivieren Sie die Druckereinstellungen für Maschinen, die mehrere Druckköpfe parallel verwenden können."
|
||||
|
||||
msgid "Parallel printheads count"
|
||||
msgstr ""
|
||||
msgstr "Anzahl der parallelen Druckköpfe"
|
||||
|
||||
msgid ""
|
||||
"Set the number of parallel printheads for machines like OrangeStorm Giga "
|
||||
"printer."
|
||||
msgstr ""
|
||||
msgstr "Legen Sie die Anzahl der parallelen Druckköpfe für Maschinen wie den OrangeStorm Giga Drucker fest."
|
||||
|
||||
msgid "Parallel printheads bed exclude areas"
|
||||
msgstr ""
|
||||
msgstr "Druckbett-Ausschlussbereiche für parallele Druckköpfe"
|
||||
|
||||
msgid ""
|
||||
"Ordered list of bed exclude areas by parallel printhead count. Item 1 "
|
||||
"applies to one printhead, item 2 to two printheads, and so on. Leave an item "
|
||||
"empty for no excluded area."
|
||||
msgstr ""
|
||||
"Geordnete Liste der Druckbett-Ausschlussbereiche nach Anzahl der parallelen "
|
||||
"Druckköpfe. Punkt 1 gilt für einen Druckkopf, Punkt 2 für zwei Druckköpfe und so "
|
||||
"weiter. Lassen Sie einen Punkt leer, wenn keine Ausschlussbereiche vorhanden sind."
|
||||
|
||||
msgid "Bed exclude area"
|
||||
msgstr "ausgenommene Druckbettfläche"
|
||||
@@ -13029,10 +13064,10 @@ msgstr ""
|
||||
"erforderliche Passwort enthalten."
|
||||
|
||||
msgid "Serial Number"
|
||||
msgstr ""
|
||||
msgstr "Seriennummer"
|
||||
|
||||
msgid "Flashforge local API requires the printer serial number."
|
||||
msgstr ""
|
||||
msgstr "Die lokale Flashforge-API erfordert die Seriennummer des Druckers."
|
||||
|
||||
msgid "Name of the printer."
|
||||
msgstr "Name des Druckers"
|
||||
@@ -13405,6 +13440,17 @@ msgid ""
|
||||
"\n"
|
||||
"Use 180° for zero absolute angle."
|
||||
msgstr ""
|
||||
"Externe Brückenwinkelüberschreibung.\n"
|
||||
"Wenn auf Null gelassen, wird der Brückenwinkel automatisch für jede "
|
||||
"spezifische Brücke berechnet.\n"
|
||||
"Ansonsten wird der angegebene Winkel wie folgt verwendet:\n"
|
||||
" - Die absoluten Koordinaten\n"
|
||||
" - Die absoluten Koordinaten + Modellrotation: Wenn 'Füllrichtung an Modell "
|
||||
"ausrichten' aktiviert ist\n"
|
||||
" - Der optimale automatische Winkel + dieser Wert: Wenn 'Relativer "
|
||||
"Brückenwinkel' aktiviert ist\n"
|
||||
"\n"
|
||||
"Verwenden Sie 180° für einen absoluten Winkel von Null."
|
||||
|
||||
msgid "Internal bridge infill direction"
|
||||
msgstr "Interne Brücken Füllrichtung"
|
||||
@@ -13422,14 +13468,27 @@ msgid ""
|
||||
"\n"
|
||||
"Use 180° for zero absolute angle."
|
||||
msgstr ""
|
||||
"Interne Brückenwinkelüberschreibung.\n"
|
||||
"Wenn auf Null gelassen, wird der Brückenwinkel automatisch für jede "
|
||||
"spezifische Brücke berechnet.\n"
|
||||
"Ansonsten wird der angegebene Winkel wie folgt verwendet:\n"
|
||||
" - Die absoluten Koordinaten\n"
|
||||
" - Die absoluten Koordinaten + Modellrotation: Wenn 'Füllrichtung an Modell "
|
||||
"ausrichten' aktiviert ist\n"
|
||||
" - Der optimale automatische Winkel + dieser Wert: Wenn 'Relativer "
|
||||
"Brückenwinkel' aktiviert ist\n"
|
||||
"\n"
|
||||
"Verwenden Sie 180° für einen absoluten Winkel von Null."
|
||||
|
||||
msgid "Relative bridge angle"
|
||||
msgstr ""
|
||||
msgstr "Relativer Brückenwinkel"
|
||||
|
||||
msgid ""
|
||||
"When enabled, the bridge angle values are added to the automatically "
|
||||
"calculated bridge direction instead of overriding it."
|
||||
msgstr ""
|
||||
"Wenn aktiviert, werden die Brückenwinkelwerte zur automatisch berechneten "
|
||||
"Brückenrichtung hinzugefügt, anstatt sie zu überschreiben."
|
||||
|
||||
msgid "External bridge density"
|
||||
msgstr "Externe Brücken Dichte"
|
||||
@@ -13453,6 +13512,19 @@ msgid ""
|
||||
"\n"
|
||||
"Recommended range: Minimum 10% - Maximum 125%."
|
||||
msgstr ""
|
||||
"Steuert die Dichte (Abstand) der Linien der externen Brücke. Standard ist 100%.\n"
|
||||
"Theoretisch bedeutet 100% eine solide Brücke, aber aufgrund der Neigung von "
|
||||
"Brückenextrusionen zum Durchhängen, ist 100% möglicherweise nicht ausreichend.\n"
|
||||
"\n"
|
||||
"- Höher als 100% Dichte (Empfohlen Max 125%):\n"
|
||||
" - Vorteile: Erzeugt glattere Brückenoberflächen, da sich überlappende Linien während des Druckens zusätzliche Unterstützung bieten.\n"
|
||||
" - Nachteile: Kann zu Überextrusion führen, was die Qualität der unteren und oberen Oberfläche verringern und das Risiko von Verzug erhöhen kann.\n"
|
||||
"\n"
|
||||
"- Niedriger als 100% Dichte (Min 10%):\n"
|
||||
" - Vorteile: Kann eine fadenartige erste Schicht erzeugen. Schneller und mit besserer Kühlung, da mehr Platz für die Luftzirkulation um die extrudierte Brücke vorhanden ist.\n"
|
||||
" - Nachteile: Kann zu Durchhängen und schlechterer Oberflächenqualität führen.\n"
|
||||
"\n"
|
||||
"Empfohlener Bereich: Minimum 10% - Maximum 125%."
|
||||
|
||||
msgid "Internal bridge density"
|
||||
msgstr "Interne Brücken Dichte"
|
||||
@@ -13480,6 +13552,28 @@ msgid ""
|
||||
"bridge over infill option to improve bridging further before solid infill is "
|
||||
"extruded."
|
||||
msgstr ""
|
||||
"Steuert die Dichte (Abstand) der Linien der internen Brücke. Standard ist 100%. "
|
||||
"100% bedeutet eine solide interne Brücke.\n"
|
||||
"\n"
|
||||
"Interne Brücken wirken als Zwischenstütze zwischen lockerer Füllung und "
|
||||
"oberer festen Füllung und können die Qualität der Oberseite stark beeinflussen.\n"
|
||||
"\n"
|
||||
"- Höher als 100% Dichte (Empfohlen Max 125%):\n"
|
||||
" - Vorteile: Verbessert die Stärke der internen Brücke und die Unterstützung "
|
||||
"unter den oberen Schichten, reduziert das Durchhängen und verbessert die "
|
||||
"Oberflächenqualität.\n"
|
||||
" - Nachteile: Erhöht den Materialverbrauch und die Druckzeit; eine zu hohe "
|
||||
"Dichte kann zu Überfüllung und inneren Spannungen führen.\n"
|
||||
"\n"
|
||||
"- Niedriger als 100% Dichte (Min 10%):\n"
|
||||
" - Vorteile: Kann das Pillowing reduzieren und die Kühlung verbessern (mehr "
|
||||
"Luftzirkulation durch die Brücke), und kann den Druck beschleunigen.\n"
|
||||
" - Nachteile: Kann die innere Unterstützung reduzieren und das Risiko von "
|
||||
"Durchhängen und Defekten auf der Oberseite erhöhen.\n"
|
||||
"\n"
|
||||
"Diese Option funktioniert besonders gut in Kombination mit der zweiten internen "
|
||||
"Brücke über Füllungsoption, um die Brückenbildung weiter zu verbessern, bevor "
|
||||
"die obere feste Füllung extrudiert wird."
|
||||
|
||||
msgid "Bridge flow ratio"
|
||||
msgstr "Brücken Flussrate"
|
||||
@@ -13505,6 +13599,15 @@ msgid ""
|
||||
"The maximum value is 100% or the nozzle diameter.\n"
|
||||
"If set to 0, the line width will match the Internal solid infill width."
|
||||
msgstr ""
|
||||
"Die Brückenlinienbreite wird entweder als absoluter Wert oder als Prozentsatz "
|
||||
"des aktiven Düsendurchmessers angegeben (Prozentsätze werden vom Düsendurch- "
|
||||
"messer berechnet).\n"
|
||||
"Wird empfohlen, in Verbindung mit einer höheren Brückendichte oder einer "
|
||||
"höheren Brückenflussrate zu verwenden.\n"
|
||||
"\n"
|
||||
"Der maximale Wert beträgt 100% oder der Düsendurchmesser.\n"
|
||||
"Wenn auf 0 gesetzt, entspricht die Linienbreite der Breite der inneren "
|
||||
"festen Füllung."
|
||||
|
||||
msgid "Internal bridge flow ratio"
|
||||
msgstr "Interne Brücken Flussrate"
|
||||
@@ -13521,6 +13624,15 @@ msgid ""
|
||||
"The actual bridge flow used is calculated by multiplying this value with the "
|
||||
"filament flow ratio, and if set, the object's flow ratio."
|
||||
msgstr ""
|
||||
"Dieser Wert steuert die Dicke der internen Brückenlage. Dies ist die erste "
|
||||
"Schicht über der lockeren Füllung, daher kann eine Erhöhung die Festigkeit und ""die Qualität der oberen Schicht verbessern.\n"
|
||||
"Werte über 1.0: Erhöhen die Materialmenge bei gleichbleibendem Linienabstand. Dies kann die "
|
||||
"Linienkontakt und Festigkeit verbessern.\n"
|
||||
"Werte unter 1.0: Reduzieren die Materialmenge bei Anpassung des Linienabstands, um den Kontakt aufrechtzuerhalten. Dies kann das Durchhängen verbessern.\n"
|
||||
"\n"
|
||||
"Der tatsächliche Brückenfluss wird berechnet, indem dieser Wert mit dem "
|
||||
"Filamentflussverhältnis und, falls festgelegt, dem Objektflussverhältnis "
|
||||
"multipliziert wird."
|
||||
|
||||
msgid "Top surface flow ratio"
|
||||
msgstr "Durchflussverhältnis obere Fläche"
|
||||
@@ -13909,6 +14021,30 @@ msgid ""
|
||||
"For example, when the perimeters are 100% overhanging, with no wall "
|
||||
"supporting them from underneath, the 100% overhang speed will be applied."
|
||||
msgstr ""
|
||||
"Aktivieren Sie diese Option, um den Druck in Bereichen zu verlangsamen, in "
|
||||
"denen sich die Umfänge möglicherweise nach oben gekrümmt haben.\n"
|
||||
"Zum Beispiel wird bei der Druckung von Überhängen an scharfen Ecken wie dem "
|
||||
"Vorderteil der Benchy-Hülle eine zusätzliche Verlangsamung angewendet, um "
|
||||
"das Krümmen zu reduzieren, das sich über mehrere Schichten hinweg "
|
||||
"verstärkt.\n"
|
||||
"\n"
|
||||
"Es wird in der Regel empfohlen, diese Option aktiviert zu lassen, es sei "
|
||||
"denn, Ihre Druckerkühlung ist stark genug oder die Druckgeschwindigkeit ist "
|
||||
"langsam genug, sodass sich Umfänge nicht krümmen. \n"
|
||||
"Wenn Sie mit einer hohen externen Umfangsgeschwindigkeit drucken, kann dieser "
|
||||
"Parameter bei der Verlangsamung Wandartefakte verursachen, da die "
|
||||
"potentiell große Varianz der Druckgeschwindigkeiten den Extruder daran "
|
||||
"hindert, dem geforderten Fließänderungsverlauf zu folgen.\n"
|
||||
"Die Ursache dieser Artefakte ist in der Regel eine leicht abweichende PA-"
|
||||
"Einstellung, insbesondere in Kombination mit einer hohen PA-Glättungszeit.\n"
|
||||
"\n"
|
||||
"Empfehlungen bei Aktivierung dieser Option:\n"
|
||||
"1. Reduzieren Sie die Glättungszeit des Druckvorschubs auf 0,015 - 0,02, damit der Extruder schnell auf Geschwindigkeitsänderungen reagieren kann.\n"
|
||||
"2. Erhöhen Sie die Mindestdruckgeschwindigkeiten, um die Schwankung zwischen den schnellen und langsamen Segmenten zu begrenzen.\n"
|
||||
"3. Wenn Artefakte weiterhin auftreten, aktivieren Sie die Glättung der Extrusionsrate (ERS), um die Übergänge der Fließrate weiter zu glätten.\n"
|
||||
"\n"
|
||||
"Hinweis: Wenn diese Option aktiviert ist, werden die Überhangumfänge wie Überhänge behandelt, was bedeutet, dass die Überhanggeschwindigkeit auch dann angewendet wird, wenn der überhängende Umfang Teil einer Brücke ist.\n"
|
||||
"Zum Beispiel wird bei den Umfängen, die zu 100 % überhängen, wobei keine Wand darunter liegt, die 100 % Überhanggeschwindigkeit angewendet."
|
||||
|
||||
msgid "mm/s or %"
|
||||
msgstr "mm/s o. %"
|
||||
@@ -14199,6 +14335,10 @@ msgid ""
|
||||
"If disabled, bridges may look better but are generally reliable only for "
|
||||
"shorter spans."
|
||||
msgstr ""
|
||||
"Wenn aktiviert, verwendet die Brückenextrusion eine Linienhöhe, die dem "
|
||||
"Düsendurchmesser entspricht.\n"
|
||||
"Dies erhöht die Brückenfestigkeit und Zuverlässigkeit, ermöglicht längere Spannweiten, kann aber das Aussehen verschlechtern.\n"
|
||||
"Wenn deaktiviert, können Brücken besser aussehen, sind aber im Allgemeinen nur für kürzere Spannweiten zuverlässig."
|
||||
|
||||
msgid "Thick internal bridges"
|
||||
msgstr "Dicke interne Brücken"
|
||||
@@ -14211,6 +14351,12 @@ msgid ""
|
||||
"If disabled, internal bridges may look better but can be less reliable over "
|
||||
"sparse infill."
|
||||
msgstr ""
|
||||
"Wenn aktiviert, verwendet die interne Brückenextrusion eine Linienhöhe, die "
|
||||
"dem Düsendurchmesser entspricht.\n"
|
||||
"Dies erhöht die interne Brückenfestigkeit und Zuverlässigkeit, wenn über "
|
||||
"seltenes Infill gedruckt wird, kann aber das Aussehen verschlechtern.\n"
|
||||
"Wenn deaktiviert, können interne Brücken besser aussehen, sind aber "
|
||||
"überdünnes Infill weniger zuverlässig."
|
||||
|
||||
msgid "Extra bridge layers (beta)"
|
||||
msgstr "Zusätzliche Brückenschichten (Beta)"
|
||||
@@ -15499,6 +15645,9 @@ msgid ""
|
||||
"When enabled, directions rotate with the model to maintain optimal strength "
|
||||
"characteristics."
|
||||
msgstr ""
|
||||
"Richtet die Richtungen von Füllung, Brücke, Glättung und Oberflächenfüllung so "
|
||||
"aus, dass sie der Orientierung des Modells auf der Bauplatte folgen.\n"
|
||||
"Wenn aktiviert, drehen sich die Richtungen mit dem Modell, um optimale Festigkeitseigenschaften zu erhalten."
|
||||
|
||||
msgid "Insert solid layers"
|
||||
msgstr "Massive Schichten einfügen"
|
||||
@@ -15634,25 +15783,28 @@ msgstr ""
|
||||
"Wabenstruktur."
|
||||
|
||||
msgid "Lightning overhang angle"
|
||||
msgstr ""
|
||||
msgstr "Überhangwinkel der Blitzfüllung"
|
||||
|
||||
msgid "Maximum overhang angle for Lightning infill support propagation."
|
||||
msgstr ""
|
||||
msgstr "Maximaler Überhangwinkel für die Ausbreitung der Blitzfüllungsunterstützung."
|
||||
|
||||
msgid "Prune angle"
|
||||
msgstr ""
|
||||
msgstr "Beschneidungswinkel"
|
||||
|
||||
msgid ""
|
||||
"Controls how aggressively short or unsupported Lightning branches are "
|
||||
"pruned.\n"
|
||||
"This angle is converted internally to a per-layer distance."
|
||||
msgstr ""
|
||||
"Steuert, wie aggressiv kurze oder nicht unterstützte Blitzäste beschnitten "
|
||||
"werden.\n"
|
||||
"Dieser Winkel wird intern in eine pro-Schicht-Distanz umgewandelt."
|
||||
|
||||
msgid "Straightening angle"
|
||||
msgstr ""
|
||||
msgstr "Begradigungswinkel"
|
||||
|
||||
msgid "Maximum straightening angle used to simplify Lightning branches."
|
||||
msgstr ""
|
||||
msgstr "Maximaler Begradigungswinkel zur Vereinfachung von Blitzästen."
|
||||
|
||||
msgid "Sparse infill anchor length"
|
||||
msgstr "Länge des Infill-Ankers"
|
||||
@@ -16761,6 +16913,8 @@ msgid ""
|
||||
"Filament to print internal sparse infill.\n"
|
||||
"\"Default\" uses the active object/part filament."
|
||||
msgstr ""
|
||||
"Filament zum Drucken der internen spärlichen Füllung.\n"
|
||||
"\"Standard\" verwendet das Filament des aktiven Objekts/Teils."
|
||||
|
||||
msgid ""
|
||||
"Line width of internal sparse infill. If expressed as a %, it will be "
|
||||
@@ -17649,20 +17803,24 @@ msgstr ""
|
||||
"100%% Überhang wird die Brückengeschwindigkeit verwendet."
|
||||
|
||||
msgid "Outer walls"
|
||||
msgstr ""
|
||||
msgstr "Äußere Wände"
|
||||
|
||||
msgid ""
|
||||
"Filament to print outer walls.\n"
|
||||
"\"Default\" uses the active object/part filament."
|
||||
msgstr ""
|
||||
"Filament zum Drucken der äußeren Wände.\n"
|
||||
"\"Standard\" verwendet das Filament des aktiven Objekts/Teils."
|
||||
|
||||
msgid "Inner walls"
|
||||
msgstr ""
|
||||
msgstr "Innere Wände"
|
||||
|
||||
msgid ""
|
||||
"Filament to print inner walls.\n"
|
||||
"\"Default\" uses the active object/part filament."
|
||||
msgstr ""
|
||||
"Filament zum Drucken der inneren Wände.\n"
|
||||
"\"Standard\" verwendet das Filament des aktiven Objekts/Teils."
|
||||
|
||||
msgid ""
|
||||
"Line width of inner wall. If expressed as a %, it will be computed over the "
|
||||
@@ -18382,16 +18540,22 @@ msgid ""
|
||||
"Filament to print internal solid infill.\n"
|
||||
"\"Default\" uses the active object/part filament."
|
||||
msgstr ""
|
||||
"Filament zum Drucken der internen massiven Füllung.\n"
|
||||
"\"Standard\" verwendet das Filament des aktiven Objekts/Teils."
|
||||
|
||||
msgid ""
|
||||
"Filament to print top surface.\n"
|
||||
"\"Default\" uses the active object/part filament."
|
||||
msgstr ""
|
||||
"Filament zum Drucken der oberen Oberfläche.\n"
|
||||
"\"Standard\" verwendet das Filament des aktiven Objekts/Teils."
|
||||
|
||||
msgid ""
|
||||
"Filament to print bottom surface.\n"
|
||||
"\"Default\" uses the active object/part filament."
|
||||
msgstr ""
|
||||
"Filament zum Drucken der unteren Oberfläche.\n"
|
||||
"\"Standard\" verwendet das Filament des aktiven Objekts/Teils."
|
||||
|
||||
msgid ""
|
||||
"Line width of internal solid infill. If expressed as a %, it will be "
|
||||
@@ -18795,6 +18959,9 @@ msgid ""
|
||||
"\"Default\" means no specific filament for support and current filament is "
|
||||
"used."
|
||||
msgstr ""
|
||||
"Filament zum Drucken der Stützstruktur-Basis und des Rafts.\n"
|
||||
"\"Standard\" bedeutet kein spezifisches Filament für die Stützstruktur und das "
|
||||
"aktuelle Filament wird verwendet."
|
||||
|
||||
msgid "Avoid interface filament for base"
|
||||
msgstr "Schnittstellenfilament für die Basis verringern"
|
||||
@@ -18828,6 +18995,9 @@ msgid ""
|
||||
"\"Default\" means no specific filament for support interface and current "
|
||||
"filament is used."
|
||||
msgstr ""
|
||||
"Filament zum Drucken der Stützstruktur-Schnittstelle.\n"
|
||||
"\"Standard\" bedeutet kein spezifisches Filament für die Stützstruktur-"
|
||||
"Schnittstelle und das aktuelle Filament wird verwendet."
|
||||
|
||||
msgid "Top interface layers"
|
||||
msgstr "Obere Schnittstellenschichten"
|
||||
@@ -19943,7 +20113,7 @@ msgid "Invalid value when spiral vase mode is enabled: "
|
||||
msgstr "Ungültiger Wert, wenn der Spiral-Vase-Modus aktiviert ist: "
|
||||
|
||||
msgid "Bridge line width must not exceed nozzle diameter: "
|
||||
msgstr ""
|
||||
msgstr "Die Brückenlinienbreite darf den Düsendurchmesser nicht überschreiten: "
|
||||
|
||||
msgid "too large line width "
|
||||
msgstr "Zu große Linienbreite"
|
||||
@@ -20210,10 +20380,10 @@ msgstr ""
|
||||
"3:info, 4:debug, 5:trace\n"
|
||||
|
||||
msgid "Log file"
|
||||
msgstr ""
|
||||
msgstr "Protokolldatei"
|
||||
|
||||
msgid "Redirects debug logging to file.\n"
|
||||
msgstr ""
|
||||
msgstr "Leitet die Fehlerprotokollierung in eine Datei um.\n"
|
||||
|
||||
msgid "Enable timelapse for print"
|
||||
msgstr "Zeitraffer für Druck aktivieren"
|
||||
@@ -21764,13 +21934,13 @@ msgid "Top Surface Pattern"
|
||||
msgstr "Oberflächenmuster"
|
||||
|
||||
msgid "Choose a slot for the selected color"
|
||||
msgstr ""
|
||||
msgstr "Wählen Sie einen Slot für die ausgewählte Farbe"
|
||||
|
||||
msgid "Material in the material station"
|
||||
msgstr ""
|
||||
msgstr "Material in der Materialstation"
|
||||
|
||||
msgid "Only materials of the same type can be selected."
|
||||
msgstr ""
|
||||
msgstr "Es können nur Materialien desselben Typs ausgewählt werden."
|
||||
|
||||
msgid "Send G-code to printer host"
|
||||
msgstr "Senden Sie G-Code an den Drucker-Host"
|
||||
@@ -21798,46 +21968,50 @@ msgid "Upload"
|
||||
msgstr "Hochladen"
|
||||
|
||||
msgid "Leveling before print"
|
||||
msgstr ""
|
||||
msgstr "Nivellierung vor dem Druck"
|
||||
|
||||
msgid "Time-lapse"
|
||||
msgstr "Zeitraffer"
|
||||
|
||||
msgid "Enable IFS"
|
||||
msgstr ""
|
||||
msgstr "IFS aktivieren"
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid "Detected %d IFS slots on printer."
|
||||
msgstr ""
|
||||
msgstr "%d IFS-Slots auf dem Drucker erkannt."
|
||||
|
||||
msgid "This printer does not report a material station."
|
||||
msgstr ""
|
||||
msgstr "Dieser Drucker meldet keine Materialstation."
|
||||
|
||||
msgid "Unable to read IFS slots from printer."
|
||||
msgstr ""
|
||||
msgstr "Kann IFS-Slots vom Drucker nicht lesen."
|
||||
|
||||
msgid "Loading IFS slots from printer..."
|
||||
msgstr ""
|
||||
msgstr "Lade IFS-Slots vom Drucker..."
|
||||
|
||||
msgid "Slice the plate first to get project material information."
|
||||
msgstr ""
|
||||
msgstr "Schneiden Sie die Platte zuerst, um Projektmaterialinformationen zu erhalten."
|
||||
|
||||
msgid ""
|
||||
"This plate uses multiple materials. Enable IFS and assign each tool to a "
|
||||
"printer slot."
|
||||
msgstr ""
|
||||
"Diese Platte verwendet mehrere Materialien. Aktivieren Sie IFS und weisen Sie jedem Werkzeug einen Drucker-Slot zu."
|
||||
|
||||
|
||||
msgid "Each project material must be assigned to an IFS slot before printing."
|
||||
msgstr ""
|
||||
msgstr "Jedes Projektmaterial muss vor dem Drucken einem IFS-Slot zugewiesen werden."
|
||||
|
||||
msgid ""
|
||||
"Each project material must be assigned to a loaded IFS slot before printing."
|
||||
msgstr ""
|
||||
"Jedes Projektmaterial muss vor dem Drucken einem geladenen IFS-Slot zugewiesen werden."
|
||||
|
||||
msgid ""
|
||||
"Each project material must match the material loaded in the selected IFS "
|
||||
"slot."
|
||||
msgstr ""
|
||||
"Jedes Projektmaterial muss mit dem in dem ausgewählten IFS-Slot geladenen Material übereinstimmen."
|
||||
|
||||
msgid "Print host upload queue"
|
||||
msgstr "Druck-Host-Upload-Warteschlange"
|
||||
@@ -21894,13 +22068,13 @@ msgstr "Glatte Bauplatte (Seite B)"
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid "Printer: %s"
|
||||
msgstr ""
|
||||
msgstr "Drucker: %s"
|
||||
|
||||
msgid "Calibrate before printing"
|
||||
msgstr ""
|
||||
msgstr "Vor dem Drucken kalibrieren"
|
||||
|
||||
msgid "Filament Mapping:"
|
||||
msgstr ""
|
||||
msgstr "Filamentzuordnung:"
|
||||
|
||||
msgid "Unable to perform boolean operation on selected parts"
|
||||
msgstr ""
|
||||
@@ -22628,16 +22802,16 @@ msgstr ""
|
||||
"Druckerkommunikation. Verfügbare Agenten werden beim Start registriert."
|
||||
|
||||
msgid "Select a Flashforge printer"
|
||||
msgstr ""
|
||||
msgstr "Wählen Sie einen Flashforge-Drucker aus"
|
||||
|
||||
msgid "Discovered Printers"
|
||||
msgstr ""
|
||||
msgstr "Gefundene Drucker"
|
||||
|
||||
msgid "Could not get a valid Printer Host reference"
|
||||
msgstr "Konnte keine gültige Referenz zum Druck-Host erhalten"
|
||||
|
||||
msgid "Valid session not detected. Proceed with login to 3DPrinterOS?"
|
||||
msgstr ""
|
||||
msgstr "Keine gültige Sitzung erkannt. Mit dem Login bei 3DPrinterOS fortfahren?"
|
||||
|
||||
msgid "Success!"
|
||||
msgstr "Erfolgreich!"
|
||||
@@ -22688,28 +22862,28 @@ msgstr ""
|
||||
"fehlgeschlagen."
|
||||
|
||||
msgid "3DPrinterOS Cloud upload options"
|
||||
msgstr ""
|
||||
msgstr "3DPrinterOS Cloud-Upload-Optionen"
|
||||
|
||||
msgid "Single file"
|
||||
msgstr ""
|
||||
msgstr "Einzelne Datei"
|
||||
|
||||
msgid "Project File"
|
||||
msgstr ""
|
||||
msgstr "Projektdatei"
|
||||
|
||||
msgid "Project:"
|
||||
msgstr ""
|
||||
msgstr "Projekt:"
|
||||
|
||||
msgid "Printer type:"
|
||||
msgstr ""
|
||||
msgstr "Druckertyp:"
|
||||
|
||||
msgid "Printer type not found, please select manually."
|
||||
msgstr ""
|
||||
msgstr "Druckertyp nicht gefunden, bitte manuell auswählen."
|
||||
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
msgstr "Autorisierung..."
|
||||
|
||||
msgid "Error session check"
|
||||
msgstr ""
|
||||
msgstr "Fehler bei der Sitzungsüberprüfung"
|
||||
|
||||
#, c-format, boost-format
|
||||
msgid "Mismatched type of print host: %s"
|
||||
@@ -23508,19 +23682,19 @@ msgstr ""
|
||||
"es einzurichten."
|
||||
|
||||
msgid "Flashforge returned an invalid JSON response."
|
||||
msgstr ""
|
||||
msgstr "Flashforge hat eine ungültige JSON-Antwort zurückgegeben."
|
||||
|
||||
msgid "No Flashforge printers were discovered on the local network."
|
||||
msgstr ""
|
||||
msgstr "Es wurden keine Flashforge-Drucker im lokalen Netzwerk gefunden."
|
||||
|
||||
msgid "Connected to Flashforge local API successfully."
|
||||
msgstr ""
|
||||
msgstr "Erfolgreich mit der lokalen Flashforge-API verbunden."
|
||||
|
||||
msgid "Serial connection to Flashforge is working correctly."
|
||||
msgstr "Die serielle Verbindung zu Flashforge funktioniert korrekt."
|
||||
|
||||
msgid "Could not connect to Flashforge local API"
|
||||
msgstr ""
|
||||
msgstr "Konnte keine Verbindung zur lokalen Flashforge-API herstellen."
|
||||
|
||||
msgid "Could not connect to Flashforge via serial"
|
||||
msgstr ""
|
||||
@@ -23529,6 +23703,8 @@ msgstr ""
|
||||
|
||||
msgid "Flashforge local API requires both serial number and access code."
|
||||
msgstr ""
|
||||
"Die lokale Flashforge-API erfordert sowohl die Seriennummer als auch den "
|
||||
"Zugriffscode."
|
||||
|
||||
msgid "The provided state is not correct."
|
||||
msgstr "Der bereitgestellte Status ist nicht korrekt."
|
||||
|
||||
Binary file not shown.
@@ -124,7 +124,7 @@
|
||||
"default_filament_profile": [
|
||||
"Creality HF Generic PLA"
|
||||
],
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; creality_uuid: <random_uuid>\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
|
||||
"machine_end_gcode": "END_PRINT",
|
||||
"scan_first_layer": "0",
|
||||
"thumbnails": [
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
"default_filament_profile": [
|
||||
"Creality HF Generic PLA"
|
||||
],
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; creality_uuid: <random_uuid>\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
|
||||
"machine_end_gcode": "END_PRINT",
|
||||
"scan_first_layer": "0",
|
||||
"thumbnails": [
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
"default_filament_profile": [
|
||||
"Creality HF Generic PLA"
|
||||
],
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; creality_uuid: <random_uuid>\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
|
||||
"machine_end_gcode": "END_PRINT",
|
||||
"scan_first_layer": "0",
|
||||
"thumbnails": [
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"machine_platform_motion_enable": "1",
|
||||
"machine_ptc_exist": "1",
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; creality_uuid: <random_uuid>\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
|
||||
"machine_unload_filament_time": "0",
|
||||
"manual_filament_change": "0",
|
||||
"nozzle_hrc": "0",
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
"default_filament_profile": [
|
||||
"Creality Generic PLA @K1-all"
|
||||
],
|
||||
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
|
||||
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
|
||||
"machine_end_gcode": "END_PRINT",
|
||||
"scan_first_layer": "0",
|
||||
"thumbnails_format": "PNG",
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
"machine_min_travel_rate": "0,0",
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"machine_platform_motion_enable": "1",
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; creality_uuid: <random_uuid>\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
|
||||
"machine_unload_filament_time": "0",
|
||||
"manual_filament_change": "0",
|
||||
"nozzle_hrc": "0",
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"machine_platform_motion_enable": "1",
|
||||
"machine_ptc_exist": "1",
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; creality_uuid: <random_uuid>\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
|
||||
"machine_unload_filament_time": "0",
|
||||
"manual_filament_change": "0",
|
||||
"nozzle_hrc": "0",
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"machine_platform_motion_enable": "1",
|
||||
"machine_ptc_exist": "1",
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; creality_uuid: <random_uuid>\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_start_gcode": "START_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM204 S2000\nM104 S[nozzle_temperature_initial_layer]\nG1 Z3 F600\nM83\nG92 E0\nG1 Z1 F600",
|
||||
"machine_unload_filament_time": "0",
|
||||
"manual_filament_change": "0",
|
||||
"nozzle_hrc": "0",
|
||||
|
||||
@@ -88,7 +88,8 @@
|
||||
"5"
|
||||
],
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"machine_start_gcode": ";SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM104 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y130 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y130 F6000\nG1 E0.8 F300\nG1 X0 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X130 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG92 E0\nG1 Z1 F600",
|
||||
"_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ",
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_unload_filament_time": "0",
|
||||
"manual_filament_change": "0",
|
||||
"nozzle_type": "hardened_steel",
|
||||
|
||||
@@ -86,8 +86,8 @@
|
||||
"5"
|
||||
],
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM104 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 E0.8 F300\nG1 X0 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X150 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG92 E0\nG1 Z1 F600",
|
||||
"machine_unload_filament_time": "0",
|
||||
"_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ",
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"manual_filament_change": "0",
|
||||
"nozzle_type": "hardened_steel",
|
||||
"nozzle_volume": "183",
|
||||
|
||||
@@ -86,7 +86,8 @@
|
||||
"5"
|
||||
],
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM104 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 E0.8 F300\nG1 X0 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X150 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG92 E0\nG1 Z1 F600",
|
||||
"_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ",
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_unload_filament_time": "0",
|
||||
"manual_filament_change": "0",
|
||||
"nozzle_type": "hardened_steel",
|
||||
|
||||
@@ -86,7 +86,8 @@
|
||||
"5"
|
||||
],
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM104 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 E0.8 F300\nG1 X0 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X150 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG92 E0\nG1 Z1 F600",
|
||||
"_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ",
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_unload_filament_time": "0",
|
||||
"manual_filament_change": "0",
|
||||
"nozzle_type": "hardened_steel",
|
||||
|
||||
@@ -138,7 +138,8 @@
|
||||
"default_filament_profile": [
|
||||
"Creality Generic PLA @K2-all"
|
||||
],
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; creality_uuid: <random_uuid>\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ",
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_end_gcode": "END_PRINT",
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X0 Y245 F30000\nG1 Z{z_after_toolchange} F600",
|
||||
|
||||
@@ -138,7 +138,8 @@
|
||||
"default_filament_profile": [
|
||||
"Creality Generic PLA @K2-all"
|
||||
],
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; creality_uuid: <random_uuid>\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ",
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_end_gcode": "END_PRINT",
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X0 Y245 F30000\nG1 Z{z_after_toolchange} F600",
|
||||
|
||||
@@ -138,7 +138,8 @@
|
||||
"default_filament_profile": [
|
||||
"Creality Generic PLA @K2-all"
|
||||
],
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; creality_uuid: <random_uuid>\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ",
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_end_gcode": "END_PRINT",
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X0 Y245 F30000\nG1 Z{z_after_toolchange} F600",
|
||||
|
||||
@@ -138,7 +138,8 @@
|
||||
"default_filament_profile": [
|
||||
"Creality Generic PLA @K2-all"
|
||||
],
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; creality_uuid: <random_uuid>\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ",
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_end_gcode": "END_PRINT",
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X0 Y245 F30000\nG1 Z{z_after_toolchange} F600",
|
||||
|
||||
@@ -138,8 +138,8 @@
|
||||
"default_filament_profile": [
|
||||
"Creality Generic PLA @K2-all"
|
||||
],
|
||||
"machine_start_gcode": ";SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\n\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM104 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 E0.8 F300\nG1 X0 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X150 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG92 E0\nG1 Z1 F600",
|
||||
"machine_end_gcode": "END_PRINT",
|
||||
"_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ",
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\nG1 X0 Y245 F30000\nG1 Z{z_after_toolchange} F600",
|
||||
"before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\n;[layer_z]\nG92 E0\n",
|
||||
|
||||
@@ -136,7 +136,8 @@
|
||||
"default_filament_profile": [
|
||||
"Creality Generic PLA @K2-all"
|
||||
],
|
||||
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM104 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 E0.8 F300\nG1 X0 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X150 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG92 E0\nG1 Z1 F600",
|
||||
"_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ",
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_end_gcode": "{if print_sequence == \"by object\"}\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{max_layer_z+2} F600\n{endif}\nEND_PRINT",
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\n{if print_sequence == \"by object\"}\nG0 Z{max_layer_z + 0.8} F900\n{endif}\nG1 X0 Y160 F30000\nG1 Z{z_after_toolchange} F600",
|
||||
|
||||
@@ -136,7 +136,8 @@
|
||||
"default_filament_profile": [
|
||||
"Creality Generic PLA @K2-all"
|
||||
],
|
||||
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM104 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 E0.8 F300\nG1 X0 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X150 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG92 E0\nG1 Z1 F600",
|
||||
"_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ",
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_end_gcode": "{if print_sequence == \"by object\"}\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{max_layer_z+2} F600\n{endif}\nEND_PRINT",
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\n{if print_sequence == \"by object\"}\nG0 Z{max_layer_z + 0.8} F900\n{endif}\nG1 X0 Y160 F30000\nG1 Z{z_after_toolchange} F600",
|
||||
|
||||
@@ -136,7 +136,8 @@
|
||||
"default_filament_profile": [
|
||||
"Creality Generic PLA @K2-all"
|
||||
],
|
||||
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM104 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 E0.8 F300\nG1 X0 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X150 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG92 E0\nG1 Z1 F600",
|
||||
"_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ",
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_end_gcode": "{if print_sequence == \"by object\"}\nG91\nG1 X2 Y2 Z1 F24000\nG90\nG1 Z{max_layer_z+2} F600\n{endif}\nEND_PRINT",
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"change_filament_gcode": "G2 Z{z_after_toolchange + 0.4} I0.86 J0.86 P1 F10000 ; spiral lift a little from second lift\n{if print_sequence == \"by object\"}\nG0 Z{max_layer_z + 0.8} F900\n{endif}\nG1 X0 Y160 F30000\nG1 Z{z_after_toolchange} F600",
|
||||
|
||||
@@ -53,7 +53,8 @@
|
||||
"machine_min_travel_rate": "0,0",
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"machine_platform_motion_enable": "1",
|
||||
"machine_start_gcode": "M140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM104 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 E0.8 F300\nG1 X0 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG1 X150 Y0 E9 F{filament_max_volumetric_speed[initial_extruder]/0.3*60}\nG92 E0\nG1 Z1 F600",
|
||||
"_comment": "the generated by Creality_Print start gcode removes a warning/error message when printing with Orca because it thinks its sliced with CrealityPrint ",
|
||||
"machine_start_gcode": "; HEADER_BLOCK_START\n; generated by Creality_Print V7.0.1.4212 on [year]-[month]-[day] at [hour]:[minute]:[second]\n; total layer number: [total_layer_count]\n; HEADER_BLOCK_END\n; SET PRINT AREA MIN AND MAX COORDINATES TO ENABLE ADAPTIVE PROBING\n; MINX = {first_layer_print_min[0]}\n; MINY = {first_layer_print_min[1]}\n; MAXX = {first_layer_print_max[0]}\n; MAXY = {first_layer_print_max[1]}\nM140 S0\nM104 S0 \nSTART_PRINT EXTRUDER_TEMP=[nozzle_temperature_initial_layer] BED_TEMP=[bed_temperature_initial_layer_single]\nT[initial_no_support_extruder]\nM109 S[nozzle_temperature_initial_layer]\nM204 S2000\nG1 Z3 F600\nM83\nG1 Y150 F12000\nG1 X0 F12000\nG1 Z0.2 F600\nG1 X0 Y150 F6000\nG1 X0 Y0 E15 F6000\nG1 X150 Y0 E15 F6000\nG92 E0\nG1 Z1 F600",
|
||||
"machine_unload_filament_time": "0",
|
||||
"manual_filament_change": "0",
|
||||
"nozzle_hrc": "0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Elegoo",
|
||||
"version": "02.04.00.02",
|
||||
"version": "02.04.00.04",
|
||||
"force_update": "0",
|
||||
"description": "Elegoo configurations",
|
||||
"machine_model_list": [
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
"change_filament_gcode": "",
|
||||
"machine_pause_gcode": "M600",
|
||||
"support_multi_filament": "0",
|
||||
"layer_change_gcode": "SET_PRINT_STATS_INFO CURRENT_LAYER={layer_num + 1}",
|
||||
"machine_start_gcode": ";;===== date: 20251011 =====================\n;printer_model:[printer_model]\n;initial_filament:{filament_type[initial_extruder]}\n;curr_bed_type:{curr_bed_type}\n;bed_level_temp:[bed_temperature_initial_layer_single]\nM400 ; wait for buffer to clear\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nM729 ;Clean Nozzle\nM190 S[bed_temperature_initial_layer_single]\n\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] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {elsif (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{endif}\n\n;enable_pressure_advance:{enable_pressure_advance[initial_extruder]}\n;This value is called if pressure advance is enabled\n{if enable_pressure_advance[initial_extruder] == \"true\"}\nSET_PRESSURE_ADVANCE ADVANCE=[pressure_advance] ;\nM400\n{endif}\nM204 S{min(20000,max(1000,outer_wall_acceleration))} ;Call exterior wall print acceleration\n\n\nG1 X{print_bed_max[0]*0.5} Y-1.2 F20000\nG1 Z0.3 F900\nM109 S[nozzle_temperature_initial_layer]\nM83\nG92 E0 ;Reset Extruder\nG1 F{min(6000, max(900, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X-1.2 E10.156 ;Draw the first line\nG1 Y98.8 E7.934\nG1 X-0.5 Y100 E0.1\nG1 Y-0.3 E7.934\nG1 X{print_bed_max[0]*0.5-50} E6.284\nG1 F{0.2*min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5-30} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5-10} E2\nG1 F{0.2*min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+10} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+30} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+50} E2\n;End PA test.\n\n\nG3 I-1 J0 Z0.6 F1200.0 ;Move to side a little\nG1 F20000\nG92 E0 ;Reset Extruder\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\n;LAYER_COUNT:[total_layer_count]\n;LAYER:0",
|
||||
"layer_change_gcode": "SET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count] CURRENT_LAYER={layer_num+1}",
|
||||
"machine_start_gcode": ";;===== date: 20251011 =====================\n;printer_model:[printer_model]\n;initial_filament:{filament_type[initial_extruder]}\n;curr_bed_type:{curr_bed_type}\n;bed_level_temp:[bed_temperature_initial_layer_single]\nM400 ; wait for buffer to clear\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\nG90\nG28 ;home\nM729 ;Clean Nozzle\nM190 S[bed_temperature_initial_layer_single]\n\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] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {elsif (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{endif}\n\n;enable_pressure_advance:{enable_pressure_advance[initial_extruder]}\n;This value is called if pressure advance is enabled\n{if enable_pressure_advance[initial_extruder] == \"true\"}\nSET_PRESSURE_ADVANCE ADVANCE=[pressure_advance] ;\nM400\n{endif}\nM204 S{min(20000,max(1000,outer_wall_acceleration))} ;Call exterior wall print acceleration\n\n\nG1 X{print_bed_max[0]*0.5} Y-1.2 F20000\nG1 Z0.3 F900\nM109 S[nozzle_temperature_initial_layer]\nM83\nG92 E0 ;Reset Extruder\nG1 F{min(6000, max(900, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X-1.2 E10.156 ;Draw the first line\nG1 Y98.8 E7.934\nG1 X-0.5 Y100 E0.1\nG1 Y-0.3 E7.934\nG1 X{print_bed_max[0]*0.5-50} E6.284\nG1 F{0.2*min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5-30} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5-10} E2\nG1 F{0.2*min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+10} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+30} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+50} E2\n;End PA test.\n\n\nG3 I-1 J0 Z0.6 F1200.0 ;Move to side a little\nG1 F20000\nG92 E0 ;Reset Extruder\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count] CURRENT_LAYER=0\n;LAYER_COUNT:[total_layer_count]\n;LAYER:0",
|
||||
"machine_end_gcode": ";===== date: 20250603 =====================\nM400 ; wait for buffer to clear\nM140 S0 ;Turn-off bed\nM106 S255 ;Cooling nozzle\nM83\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800\nG2 I1 J0 Z{max_layer_z+0.5} F3000 ; lower z a little\nG90\n{if max_layer_z > 100}G1 Z{min(max_layer_z+50, printable_height+0.5)} F20000{else}G1 Z100 F20000 {endif}; Move print head up \nM204 S5000\nM400\nM83\nG1 X202 F20000\nM400\nG1 Y250 F20000\nG1 Y264.5 F1200\nM400\nG92 E0\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\nM84 ;Disable all steppers"
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
"change_filament_gcode": "\n;==========CC_CHANGE_FILAMENT_GCODE_CCB==========\n;===== date: 2025-12-04-001 =====================\nM106 S0\nM106 P2 S0\nG1 Z{min(max_layer_z+3, printable_height+0.5)} F1200\nM6211 T[next_extruder] L[flush_length] M{old_filament_e_feedrate} N{new_filament_e_feedrate} Q[old_filament_temp] R[nozzle_temperature_range_high] S[new_filament_temp]\nT[next_extruder]\n;==========CC_CHANGE_FILAMENT_GCODE_CCE==========",
|
||||
"machine_pause_gcode": "M600",
|
||||
"support_multi_filament": "1",
|
||||
"layer_change_gcode": "SET_PRINT_STATS_INFO CURRENT_LAYER={layer_num + 1}",
|
||||
"machine_start_gcode": ";===== CC_START_GCODE ================\n;===== date: 2026-04-28-001 =====================\n;printer_model:[printer_model]\n;initial_filament:{filament_type[initial_extruder]}\n;curr_bed_type:{curr_bed_type}\n;bed_level_temp:[bed_temperature_initial_layer_single]\nM400 ; wait for buffer to clear\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\nG90\nM83\nG28 ;home\nM729 ;Clean Nozzle\nM190 S[bed_temperature_initial_layer_single]\n\nM109 S[nozzle_temperature_initial_layer]\nM6211 A1 L200 T[initial_no_support_extruder] Q[nozzle_temperature_initial_layer] R[nozzle_temperature_initial_layer] S[nozzle_temperature_initial_layer]\nT[initial_no_support_extruder]\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] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {elsif (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{endif}\n\n;enable_pressure_advance:{enable_pressure_advance[initial_extruder]}\n;This value is called if pressure advance is enabled\n{if enable_pressure_advance[initial_extruder] == \"true\"}\nSET_PRESSURE_ADVANCE ADVANCE=[pressure_advance] ;\nM400\n{endif}\nM204 S{min(20000,max(1000,outer_wall_acceleration))} ;Call exterior wall print acceleration\n\n\nG1 X{print_bed_max[0]*0.5} Y-1.2 F20000\nG1 Z0.3 F900\n\n\nG90\nM83\nG92 E0 ;Reset Extruder\nG1 F{min(6000, max(900, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X0 E10.156 ;Draw the first line\nG1 Y98.8 E7.934\nG1 X0.9 Y100 E0.1\nG1 Y-0.3 E7.934\nG1 X{print_bed_max[0]*0.5-50} E6.284\nG1 F{0.2*min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5-30} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5-10} E2\nG1 F{0.2*min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+10} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+30} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+50} E2\n;End PA test.\n\n\nG3 I-1 J0 Z0.6 F1200.0 ;Move to side a little\nG1 F20000\nG92 E0 ;Reset Extruder\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\n;LAYER_COUNT:[total_layer_count]\n;LAYER:0",
|
||||
"layer_change_gcode": "SET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count] CURRENT_LAYER={layer_num+1}",
|
||||
"machine_start_gcode": ";===== CC_START_GCODE ================\n;===== date: 2026-04-28-001 =====================\n;printer_model:[printer_model]\n;initial_filament:{filament_type[initial_extruder]}\n;curr_bed_type:{curr_bed_type}\n;bed_level_temp:[bed_temperature_initial_layer_single]\nM400 ; wait for buffer to clear\nM220 S100 ;Set the feed speed to 100%\nM221 S100 ;Set the flow rate to 100%\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\nG90\nM83\nG28 ;home\nM729 ;Clean Nozzle\nM190 S[bed_temperature_initial_layer_single]\n\nM109 S[nozzle_temperature_initial_layer]\nM6211 A1 L200 T[initial_no_support_extruder] Q[nozzle_temperature_initial_layer] R[nozzle_temperature_initial_layer] S[nozzle_temperature_initial_layer]\nT[initial_no_support_extruder]\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] >50)||(bed_temperature_initial_layer[initial_no_support_extruder] >50)}\n M106 P3 S255\n {elsif (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{endif}\n\n;enable_pressure_advance:{enable_pressure_advance[initial_extruder]}\n;This value is called if pressure advance is enabled\n{if enable_pressure_advance[initial_extruder] == \"true\"}\nSET_PRESSURE_ADVANCE ADVANCE=[pressure_advance] ;\nM400\n{endif}\nM204 S{min(20000,max(1000,outer_wall_acceleration))} ;Call exterior wall print acceleration\n\n\nG1 X{print_bed_max[0]*0.5} Y-1.2 F20000\nG1 Z0.3 F900\n\n\nG90\nM83\nG92 E0 ;Reset Extruder\nG1 F{min(6000, max(900, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X0 E10.156 ;Draw the first line\nG1 Y98.8 E7.934\nG1 X0.9 Y100 E0.1\nG1 Y-0.3 E7.934\nG1 X{print_bed_max[0]*0.5-50} E6.284\nG1 F{0.2*min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5-30} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5-10} E2\nG1 F{0.2*min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+10} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+30} E2\nG1 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]/0.5/0.3*60))} \nG1 X{print_bed_max[0]*0.5+50} E2\n;End PA test.\n\n\nG3 I-1 J0 Z0.6 F1200.0 ;Move to side a little\nG1 F20000\nG92 E0 ;Reset Extruder\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count] CURRENT_LAYER=0\n;LAYER_COUNT:[total_layer_count]\n;LAYER:0",
|
||||
"machine_end_gcode": ";===== CC_END_GCODE ================\n;===== date: 2025-12-04-001 =====================\nM400 ; wait for buffer to clear\nM140 S0 ;Turn-off bed\nM106 S255 ;Cooling nozzle\nM83\nG92 E0 ; zero the extruder\nG1 E-0.8 F1800\nG2 I1 J0 Z{max_layer_z+0.5} F3000 ; lower z a little\nG90\n{if max_layer_z > 100}G1 Z{min(max_layer_z+50, printable_height+0.5)} F20000{else}G1 Z100 F20000 {endif}; Move print head up \nM204 S5000\nM749\nM204 S5000\nM400\nM83\nG1 X202 F20000\nM400\nG1 Y250 F20000\nG1 Y264.5 F1200\nM400\nG92 E0\nM104 S0 ;Turn-off hotend\nM140 S0 ;Turn-off bed\nM106 S0 ; turn off fan\nM106 P2 S0 ; turn off remote part cooling fan\nM106 P3 S0 ; turn off chamber cooling fan\nM84 ;Disable all steppers"
|
||||
}
|
||||
|
||||
@@ -86,9 +86,9 @@
|
||||
"9"
|
||||
],
|
||||
"change_filament_gcode": "\n;==========CC2_CHANGE_FILAMENT_GCODE==========\n;===== date: 2026-01-16-001 =====================\nM106 S0\nM106 P2 S0\nG1 Z{min(max_layer_z+3, printable_height+0.5)} F1200\nM6211 T[next_extruder] L[flush_length] M{old_filament_e_feedrate} N{new_filament_e_feedrate} Q[old_filament_temp] R[nozzle_temperature_range_high] S[new_filament_temp]\nT[next_extruder]\n",
|
||||
"layer_change_gcode": "M73 L{layer_num+1}\n;LAYER:{layer_num+1}\nSET_PRINT_STATS_INFO CURRENT_LAYER={layer_num + 1}",
|
||||
"layer_change_gcode": "M73 L{layer_num+1}\n;LAYER:{layer_num+1}\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count] CURRENT_LAYER={layer_num+1}",
|
||||
"machine_end_gcode": ";===== CC2_END_GCODE ================\n;===== date: 2026-01-16-001 =====================\n\n\nM140 S0 ;Turn-off bed\nM83\nG92 E0 ; zero the extruder\nG1 E-1.5 F1800\nG2 I0 J1 Z{max_layer_z+0.5} F3000 ; lower z a little\nM106 S0\nM106 P2 S0\nG90\n{if max_layer_z > 75}G1 Z{min(max_layer_z+5, printable_height+0.5)} F20000{else}G1 Z80 F20000 {endif}; Move print head up \nG180 S9\nM104 S0\nM84\n",
|
||||
"machine_start_gcode": ";===== CC2_START_GCODE ================\n;===== date: 2026-01-16-001 =====================\n\nG90\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\nM190 S[bed_temperature_initial_layer_single] A\nM106 S0\nBED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0 FROM_SLICER=1\nM204 S{min(20000,max(1000,outer_wall_acceleration))} ;Call exterior wall print acceleration\nG28\nM109 S[nozzle_temperature_initial_layer]\nM6211 A1 L200 T[initial_no_support_extruder] Q[nozzle_temperature_initial_layer] R[nozzle_temperature_initial_layer] S[nozzle_temperature_initial_layer]\nT[initial_no_support_extruder]\n\n{if first_layer_print_min[1] > 0.5}\nG180 S7\nG1 X{print_bed_max[0]*0.5-1} Y-1.2 F20000\nG1 Z0.5 F900\nM109 S[nozzle_temperature_initial_layer]\nM83\nG92 E0 ;Reset Extruder\nG1 E6 F{min(1200, max(120, filament_max_volumetric_speed[initial_no_support_extruder]*60/2/2.5043))} \nM106 S200\nG1 X{print_bed_max[0]*0.5-41} E20 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]*60/2/2.5043))} \nG1 F6000\nG1 X{print_bed_max[0]*0.5-46} E0.8\n{else}\nG1 E30 F{min(1200, max(120, filament_max_volumetric_speed[initial_no_support_extruder]*60/2/2.5043))}\n{endif}\nM106 S0\nG180 S8\nG1 F20000\nG92 E0 ;Reset Extruder\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\n;LAYER_COUNT:[total_layer_count]\n;LAYER:0",
|
||||
"machine_start_gcode": ";===== CC2_START_GCODE ================\n;===== date: 2026-01-16-001 =====================\n\nG90\nM104 S140\nM140 S[bed_temperature_initial_layer_single]\nM190 S[bed_temperature_initial_layer_single] A\nM106 S0\nBED_MESH_CALIBRATE mesh_min={adaptive_bed_mesh_min[0]},{adaptive_bed_mesh_min[1]} mesh_max={adaptive_bed_mesh_max[0]},{adaptive_bed_mesh_max[1]} ALGORITHM=[bed_mesh_algo] PROBE_COUNT={bed_mesh_probe_count[0]},{bed_mesh_probe_count[1]} ADAPTIVE=0 ADAPTIVE_MARGIN=0 FROM_SLICER=1\nM204 S{min(20000,max(1000,outer_wall_acceleration))} ;Call exterior wall print acceleration\nG28\nM109 S[nozzle_temperature_initial_layer]\nM6211 A1 L200 T[initial_no_support_extruder] Q[nozzle_temperature_initial_layer] R[nozzle_temperature_initial_layer] S[nozzle_temperature_initial_layer]\nT[initial_no_support_extruder]\n\n{if first_layer_print_min[1] > 0.5}\nG180 S7\nG1 X{print_bed_max[0]*0.5-1} Y-1.2 F20000\nG1 Z0.5 F900\nM109 S[nozzle_temperature_initial_layer]\nM83\nG92 E0 ;Reset Extruder\nG1 E6 F{min(1200, max(120, filament_max_volumetric_speed[initial_no_support_extruder]*60/2/2.5043))} \nM106 S200\nG1 X{print_bed_max[0]*0.5-41} E20 F{min(12000, max(1200, filament_max_volumetric_speed[initial_no_support_extruder]*60/2/2.5043))} \nG1 F6000\nG1 X{print_bed_max[0]*0.5-46} E0.8\n{else}\nG1 E30 F{min(1200, max(120, filament_max_volumetric_speed[initial_no_support_extruder]*60/2/2.5043))}\n{endif}\nM106 S0\nG180 S8\nG1 F20000\nG92 E0 ;Reset Extruder\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count] CURRENT_LAYER=0\n;LAYER_COUNT:[total_layer_count]\n;LAYER:0",
|
||||
"retract_restart_extra_toolchange": [
|
||||
"0.5"
|
||||
]
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
"inherits": "0.20mm Standard @Elegoo Giga 0.4 nozzle",
|
||||
"layer_height": "0.16",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.16mm Optimal @EOS Giga 0.4 nozzle",
|
||||
"name": "0.16mm Optimal @Elegoo Giga 0.4 nozzle"
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
"inherits": "0.30mm Standard @Elegoo Giga 0.6 nozzle",
|
||||
"layer_height": "0.18",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.18mm Fine @EOS Giga 0.6 nozzle",
|
||||
"name": "0.18mm Fine @Elegoo Giga 0.6 nozzle",
|
||||
"compatible_printers": [
|
||||
"Elegoo OrangeStorm Giga 0.6 nozzle"
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "PEOSG04020",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.20mm Standard @EOS Giga 0.4 nozzle",
|
||||
"default_acceleration": "3000",
|
||||
"filename_format": "EOGiga1_{nozzle_diameter[0]}_{input_filename_base}_{filament_name}_{layer_height}_{print_time}.gcode",
|
||||
"initial_layer_print_height": "0.25",
|
||||
|
||||
@@ -4,5 +4,6 @@
|
||||
"wall_sequence": "inner-outer-inner wall",
|
||||
"reduce_crossing_wall": "1",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.20mm Strength @EOS Giga 0.4 nozzle",
|
||||
"wall_loops": "6"
|
||||
}
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
"inherits": "0.20mm Standard @Elegoo Giga 0.4 nozzle",
|
||||
"layer_height": "0.24",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.24mm Draft @EOS Giga 0.4 nozzle",
|
||||
"name": "0.24mm Draft @Elegoo Giga 0.4 nozzle"
|
||||
}
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
"inherits": "0.40mm Standard @Elegoo Giga 0.8 nozzle",
|
||||
"layer_height": "0.24",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.24mm Fine @EOS Giga 0.8 nozzle",
|
||||
"name": "0.24mm Fine @Elegoo Giga 0.8 nozzle"
|
||||
}
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
"inherits": "0.30mm Standard @Elegoo Giga 0.6 nozzle",
|
||||
"layer_height": "0.24",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.24mm Optimal @EOS Giga 0.6 nozzle",
|
||||
"name": "0.24mm Optimal @Elegoo Giga 0.6 nozzle"
|
||||
}
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
"inherits": "0.20mm Standard @Elegoo Giga 0.4 nozzle",
|
||||
"layer_height": "0.28",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.28mm Extra Draft @EOS Giga 0.4 nozzle",
|
||||
"name": "0.28mm Extra Draft @Elegoo Giga 0.4 nozzle"
|
||||
}
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
"inherits": "0.50mm Standard @Elegoo Giga 1.0 nozzle",
|
||||
"layer_height": "0.3",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.30mm Fine @EOS Giga 1.0 nozzle",
|
||||
"name": "0.30mm Fine @Elegoo Giga 1.0 nozzle"
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "PEOSG06030",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.30mm Standard @EOS Giga 0.6 nozzle",
|
||||
"default_acceleration": "3000",
|
||||
"filename_format": "EOGiga1_{nozzle_diameter[0]}_{input_filename_base}_{filament_name}_{layer_height}_{print_time}.gcode",
|
||||
"initial_layer_acceleration": "1000",
|
||||
|
||||
@@ -4,5 +4,6 @@
|
||||
"wall_sequence": "inner-outer-inner wall",
|
||||
"reduce_crossing_wall": "1",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.30mm Strength @EOS Giga 0.6 nozzle",
|
||||
"wall_loops": "5"
|
||||
}
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
"inherits": "0.40mm Standard @Elegoo Giga 0.8 nozzle",
|
||||
"layer_height": "0.32",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.32mm Optimal @EOS Giga 0.8 nozzle",
|
||||
"name": "0.32mm Optimal @Elegoo Giga 0.8 nozzle"
|
||||
}
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
"inherits": "0.30mm Standard @Elegoo Giga 0.6 nozzle",
|
||||
"layer_height": "0.36",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.36mm Draft @EOS Giga 0.6 nozzle",
|
||||
"name": "0.36mm Draft @Elegoo Giga 0.6 nozzle"
|
||||
}
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
"inherits": "0.50mm Standard @Elegoo Giga 1.0 nozzle",
|
||||
"layer_height": "0.4",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.40mm Optimal @EOS Giga 1.0 nozzle",
|
||||
"name": "0.40mm Optimal @Elegoo Giga 1.0 nozzle"
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "PEOSG08040",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.40mm Standard @EOS Giga 0.8 nozzle",
|
||||
"default_acceleration": "3000",
|
||||
"filename_format": "EOGiga1_{nozzle_diameter[0]}_{input_filename_base}_{filament_name}_{layer_height}_{print_time}.gcode",
|
||||
"initial_layer_acceleration": "1000",
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
"inherits": "0.30mm Standard @Elegoo Giga 0.6 nozzle",
|
||||
"layer_height": "0.42",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.42mm Extra Draft @EOS Giga 0.6 nozzle",
|
||||
"name": "0.42mm Extra Draft @Elegoo Giga 0.6 nozzle"
|
||||
}
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
"inherits": "0.40mm Standard @Elegoo Giga 0.8 nozzle",
|
||||
"layer_height": "0.48",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.48mm Draft @EOS Giga 0.8 nozzle",
|
||||
"name": "0.48mm Draft @Elegoo Giga 0.8 nozzle"
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "PEOSG10050",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.50mm Standard @EOS Giga 1.0 nozzle",
|
||||
"default_acceleration": "3000",
|
||||
"filename_format": "EOGiga1_{nozzle_diameter[0]}_{input_filename_base}_{filament_name}_{layer_height}_{print_time}.gcode",
|
||||
"initial_layer_acceleration": "1000",
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{
|
||||
"inherits": "0.40mm Standard @Elegoo Giga 0.8 nozzle",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.56mm Extra Draft @EOS Giga 0.8 nozzle",
|
||||
"name": "0.56mm Extra Draft @Elegoo Giga 0.8 nozzle"
|
||||
}
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
"inherits": "0.50mm Standard @Elegoo Giga 1.0 nozzle",
|
||||
"layer_height": "0.6",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "0.60mm Draft @EOS Giga 1.0 nozzle",
|
||||
"name": "0.60mm Draft @Elegoo Giga 1.0 nozzle"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "OrcaFilamentLibrary",
|
||||
"version": "02.04.00.01",
|
||||
"version": "02.04.00.02",
|
||||
"force_update": "0",
|
||||
"description": "Orca Filament Library",
|
||||
"filament_list": [
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OEABSS00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo ABS",
|
||||
"fan_max_speed": [
|
||||
"40"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OEASACFS00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo ASA-CF",
|
||||
"pressure_advance": [
|
||||
"0.04"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OEPAHTCFS00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo PAHT-CF",
|
||||
"close_fan_the_first_x_layers": [
|
||||
"3"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OEPCS00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo PC",
|
||||
"pressure_advance": [
|
||||
"0.052"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OEPCFRS00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo PC-FR",
|
||||
"pressure_advance": [
|
||||
"0.05"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OEPETCFS00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo PET-CF",
|
||||
"pressure_advance": [
|
||||
"0.05"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OEPETGS00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo PETG",
|
||||
"pressure_advance": [
|
||||
"0.05"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OERPETGHFS00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo PETG HF",
|
||||
"pressure_advance": [
|
||||
"0.052"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OEPETGTRANSS00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo PETG Translucent",
|
||||
"pressure_advance": [
|
||||
"0.052"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OEPETGCFS00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo PETG-CF",
|
||||
"pressure_advance": [
|
||||
"0.052"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OEPETGFS00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo PETG-GF",
|
||||
"pressure_advance": [
|
||||
"0.052"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OEPLABASICS00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo PLA Basic",
|
||||
"nozzle_temperature": [
|
||||
"220"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OEPLAGALAXYS00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo PLA Galaxy",
|
||||
"fan_min_speed": [
|
||||
"80"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OEPLAGLOWS00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo PLA Glow",
|
||||
"pressure_advance": [
|
||||
"0.04"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OEPLAMARBLES00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo PLA Marble",
|
||||
"fan_min_speed": [
|
||||
"80"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OEPLASPARKLES00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo PLA Sparkle",
|
||||
"fan_min_speed": [
|
||||
"80"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OEPLATRA2S00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo PLA Translucent2",
|
||||
"pressure_advance": [
|
||||
"0.04"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OEPLAWOODS00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo PLA Wood",
|
||||
"fan_min_speed": [
|
||||
"80"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OERTPU95AS00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo Rapid TPU 95A",
|
||||
"pressure_advance": [
|
||||
"0.1"
|
||||
],
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"from": "system",
|
||||
"setting_id": "OETPU95AS00",
|
||||
"instantiation": "true",
|
||||
"renamed_from": "Elegoo TPU 95A",
|
||||
"filament_max_volumetric_speed": [
|
||||
"3.2"
|
||||
],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Qidi",
|
||||
"version": "02.04.00.01",
|
||||
"version": "02.04.00.02",
|
||||
"force_update": "0",
|
||||
"description": "Qidi configurations",
|
||||
"machine_model_list": [
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
"20"
|
||||
],
|
||||
"machine_pause_gcode": "PAUSE",
|
||||
"machine_start_gcode": "INIT_MAPPING_VALUE\nPRINT_START BED=[bed_temperature_initial_layer_single] HOTEND=[nozzle_temperature_initial_layer] CHAMBER=[chamber_temperature] EXTRUDER=[initial_no_support_extruder]\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\nM83\nM140 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nM141 S[chamber_temperature]\nG4 P3000\nT[initial_tool]\nG1 X108.000 Y1 F30000\nG0 Z[initial_layer_print_height] F600\n;G1 E3 F1800\nG90\nM83\nG0 X128 E8 F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X133 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X138 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X143 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X148 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X153 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG91\nG1 X1 Z-0.300\nG1 X4\nG1 Z1 F1200\nG90\nM400\nG1 X108.000 Y2.5 F30000\nG0 Z[initial_layer_print_height] F600\nM83\nG0 X128 E10 F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X133 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X138 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X143 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X148 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X153 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG91\nG1 X1 Z-0.300\nG1 X4\nG1 Z1 F1200\nG90\nM400\nG1 Z1 F600",
|
||||
"machine_start_gcode": "INIT_MAPPING_VALUE\nPRINT_START BED=[bed_temperature_initial_layer_single] HOTEND=[nozzle_temperature_initial_layer] CHAMBER=[chamber_temperature] EXTRUDER=[initial_no_support_extruder]\nSET_PRINT_STATS_INFO TOTAL_LAYER=[total_layer_count]\nM83\nT[initial_tool]\nM140 S[bed_temperature_initial_layer_single]\nM104 S[nozzle_temperature_initial_layer]\nM141 S[chamber_temperature]\nG4 P3000\nG1 X108 Y1 F30000\nG0 Z[initial_layer_print_height] F600\nG0 X128 E8 F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X133 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X138 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X143 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X148 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X153 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG1 X154 Z-0.1\nG1 X158\nG1 Z1 F600\nG1 X108 Y2.5 F30000\nG0 Z[initial_layer_print_height] F600\nG0 X128 E10 F{outer_wall_volumetric_speed/(24/20) * 60}\nG0 X133 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X138 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X143 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG0 X148 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5) * 60}\nG0 X153 E.3742 F{outer_wall_volumetric_speed/(0.3*0.5)/4 * 60}\nG1 X154 Z-0.1\nG1 X158\nG1 Z1 F600",
|
||||
"machine_unload_filament_time": "35",
|
||||
"nozzle_diameter": [
|
||||
"0.4"
|
||||
|
||||
75
scripts/msix/AppxManifest.xml
Normal file
75
scripts/msix/AppxManifest.xml
Normal file
@@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Package
|
||||
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
|
||||
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
||||
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
|
||||
xmlns:rescap3="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities/3"
|
||||
xmlns:desktop6="http://schemas.microsoft.com/appx/manifest/desktop/windows10/6"
|
||||
xmlns:virtualization="http://schemas.microsoft.com/appx/manifest/virtualization/windows10"
|
||||
IgnorableNamespaces="uap rescap rescap3 desktop6 virtualization">
|
||||
|
||||
<Identity Name="@MSIX_IDENTITY_NAME@"
|
||||
Publisher="@MSIX_PUBLISHER@"
|
||||
Version="@MSIX_VERSION@"
|
||||
ProcessorArchitecture="x64" />
|
||||
|
||||
<Properties>
|
||||
<DisplayName>OrcaSlicer</DisplayName>
|
||||
<PublisherDisplayName>@MSIX_PUBLISHER_DISPLAY_NAME@</PublisherDisplayName>
|
||||
<Logo>Assets\StoreLogo.png</Logo>
|
||||
<!-- Keep config in the real %APPDATA%\OrcaSlicer so it survives uninstall and
|
||||
is shared with the classic (NSIS/portable) install.
|
||||
Win10 1903+: coarse switch disables AppData write virtualization entirely.
|
||||
Win11+: fine-grained exclusion below takes precedence over the coarse switch. -->
|
||||
<desktop6:FileSystemWriteVirtualization>disabled</desktop6:FileSystemWriteVirtualization>
|
||||
<virtualization:FileSystemWriteVirtualization>
|
||||
<virtualization:ExcludedDirectories>
|
||||
<virtualization:ExcludedDirectory>$(KnownFolder:RoamingAppData)\OrcaSlicer</virtualization:ExcludedDirectory>
|
||||
</virtualization:ExcludedDirectories>
|
||||
</virtualization:FileSystemWriteVirtualization>
|
||||
</Properties>
|
||||
|
||||
<Dependencies>
|
||||
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.18362.0" MaxVersionTested="10.0.26100.0" />
|
||||
</Dependencies>
|
||||
|
||||
<Resources>
|
||||
<Resource Language="en-us" />
|
||||
</Resources>
|
||||
|
||||
<Applications>
|
||||
<Application Id="OrcaSlicer" Executable="orca-slicer.exe" EntryPoint="Windows.FullTrustApplication">
|
||||
<uap:VisualElements
|
||||
DisplayName="OrcaSlicer"
|
||||
Description="Open-source slicer for FDM 3D printers"
|
||||
BackgroundColor="transparent"
|
||||
Square150x150Logo="Assets\Square150x150Logo.png"
|
||||
Square44x44Logo="Assets\Square44x44Logo.png" />
|
||||
<Extensions>
|
||||
<uap:Extension Category="windows.fileTypeAssociation">
|
||||
<uap:FileTypeAssociation Name="orcaslicer-models">
|
||||
<uap:SupportedFileTypes>
|
||||
<uap:FileType>.3mf</uap:FileType>
|
||||
<uap:FileType>.stl</uap:FileType>
|
||||
<uap:FileType>.step</uap:FileType>
|
||||
<uap:FileType>.stp</uap:FileType>
|
||||
<uap:FileType>.gcode</uap:FileType>
|
||||
<uap:FileType>.drc</uap:FileType>
|
||||
</uap:SupportedFileTypes>
|
||||
<rescap3:MigrationProgIds>
|
||||
<rescap3:MigrationProgId>Orca.Slicer.1</rescap3:MigrationProgId>
|
||||
</rescap3:MigrationProgIds>
|
||||
</uap:FileTypeAssociation>
|
||||
</uap:Extension>
|
||||
<uap:Extension Category="windows.protocol">
|
||||
<uap:Protocol Name="orcaslicer" />
|
||||
</uap:Extension>
|
||||
</Extensions>
|
||||
</Application>
|
||||
</Applications>
|
||||
|
||||
<Capabilities>
|
||||
<rescap:Capability Name="runFullTrust" />
|
||||
<rescap:Capability Name="unvirtualizedResources" />
|
||||
</Capabilities>
|
||||
</Package>
|
||||
BIN
scripts/msix/assets/Square150x150Logo.png
Normal file
BIN
scripts/msix/assets/Square150x150Logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 20 KiB |
BIN
scripts/msix/assets/Square44x44Logo.png
Normal file
BIN
scripts/msix/assets/Square44x44Logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.5 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.5 KiB |
BIN
scripts/msix/assets/StoreLogo.png
Normal file
BIN
scripts/msix/assets/StoreLogo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
67
scripts/msix/build_msix.ps1
Normal file
67
scripts/msix/build_msix.ps1
Normal file
@@ -0,0 +1,67 @@
|
||||
<#
|
||||
Builds the unsigned MSIX Store package from an existing install tree.
|
||||
The package is intentionally NOT signed: the Microsoft Store strips and
|
||||
re-signs uploads with Microsoft's certificate. For local installs use
|
||||
Developer Mode loose-layout registration instead:
|
||||
./scripts/msix/build_msix.ps1 -StageOnly
|
||||
Add-AppxPackage -Register <staging>\AppxManifest.xml
|
||||
Requires the Windows SDK (makeappx.exe) unless -StageOnly is used.
|
||||
#>
|
||||
param(
|
||||
[string]$InstallDir = "build/OrcaSlicer",
|
||||
[string]$OutputPath = "build/OrcaSlicer_Windows_MSIX.msix",
|
||||
[string]$StagingDir = "",
|
||||
[switch]$StageOnly,
|
||||
[string]$IdentityName = "OrcaSlicer.OrcaSlicer",
|
||||
[string]$Publisher = "CN=38F7EA55-C73B-4072-B3B2-C8E0EA15BB82",
|
||||
[string]$PublisherDisplayName = "OrcaSlicer"
|
||||
)
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
$repoRoot = Split-Path (Split-Path $PSScriptRoot -Parent) -Parent
|
||||
|
||||
# MSIX version = MAJOR.MINOR.PATCH.0 from the SoftFever_VERSION semver triplet
|
||||
# (Store requires the revision field to be 0).
|
||||
$versionContent = Get-Content (Join-Path $repoRoot 'version.inc') -Raw
|
||||
if ($versionContent -notmatch 'set\(SoftFever_VERSION "(\d+)\.(\d+)\.(\d+)') {
|
||||
throw "Could not parse SoftFever_VERSION from version.inc"
|
||||
}
|
||||
$msixVersion = "$($Matches[1]).$($Matches[2]).$($Matches[3]).0"
|
||||
Write-Output "MSIX version: $msixVersion"
|
||||
|
||||
if (-not (Test-Path (Join-Path $InstallDir 'orca-slicer.exe'))) {
|
||||
throw "orca-slicer.exe not found in '$InstallDir' - build the install tree first"
|
||||
}
|
||||
|
||||
if ([string]::IsNullOrEmpty($StagingDir)) {
|
||||
$StagingDir = Join-Path ([System.IO.Path]::GetTempPath()) 'orca-msix-staging'
|
||||
}
|
||||
if (Test-Path $StagingDir) { Remove-Item $StagingDir -Recurse -Force }
|
||||
New-Item -ItemType Directory -Force $StagingDir | Out-Null
|
||||
|
||||
Copy-Item -Path (Join-Path $InstallDir '*') -Destination $StagingDir -Recurse
|
||||
Copy-Item -Path (Join-Path $PSScriptRoot 'assets') -Destination (Join-Path $StagingDir 'Assets') -Recurse
|
||||
|
||||
$manifest = Get-Content (Join-Path $PSScriptRoot 'AppxManifest.xml') -Raw
|
||||
$manifest = $manifest.Replace('@MSIX_VERSION@', $msixVersion)
|
||||
$manifest = $manifest.Replace('@MSIX_IDENTITY_NAME@', $IdentityName)
|
||||
$manifest = $manifest.Replace('@MSIX_PUBLISHER@', $Publisher)
|
||||
$manifest = $manifest.Replace('@MSIX_PUBLISHER_DISPLAY_NAME@', $PublisherDisplayName)
|
||||
Set-Content -Path (Join-Path $StagingDir 'AppxManifest.xml') -Value $manifest -Encoding utf8
|
||||
|
||||
if ($StageOnly) {
|
||||
Write-Output "Staged loose layout at: $StagingDir"
|
||||
return
|
||||
}
|
||||
|
||||
$makeappx = Get-ChildItem "${env:ProgramFiles(x86)}\Windows Kits\10\bin\10.*\x64\makeappx.exe" -ErrorAction SilentlyContinue |
|
||||
Sort-Object { [version]$_.Directory.Parent.Name } -Descending |
|
||||
Select-Object -First 1 -ExpandProperty FullName
|
||||
if (-not $makeappx) {
|
||||
throw "makeappx.exe not found under '${env:ProgramFiles(x86)}\Windows Kits\10\bin' - install the Windows SDK"
|
||||
}
|
||||
Write-Output "Using makeappx: $makeappx"
|
||||
|
||||
& $makeappx pack /d $StagingDir /p $OutputPath /o
|
||||
if ($LASTEXITCODE -ne 0) { throw "makeappx pack failed with exit code $LASTEXITCODE" }
|
||||
Write-Output "Packed: $OutputPath"
|
||||
56
scripts/msix/generate_assets.ps1
Normal file
56
scripts/msix/generate_assets.ps1
Normal file
@@ -0,0 +1,56 @@
|
||||
# Generates the MSIX package logo assets from the master vector logo
|
||||
# (resources\images\OrcaSlicer_gradient_circle.svg). Each PNG is rendered from
|
||||
# the SVG at its exact target size (true per-size vector rasterization, not
|
||||
# downscaled from one bitmap), preserving alpha transparency in the corners
|
||||
# outside the circle (the manifest uses BackgroundColor="transparent").
|
||||
#
|
||||
# Run once locally on Windows (re-run only if the logo changes), then commit
|
||||
# the PNGs in assets/. CI never runs this script.
|
||||
#
|
||||
# Prerequisite: Python 3 with the resvg-py package (pip install resvg-py).
|
||||
# It bundles the resvg SVG renderer, needed because the master SVG uses
|
||||
# gradients with alpha-fade stops that System.Drawing cannot rasterize.
|
||||
param(
|
||||
[string]$Python = 'python'
|
||||
)
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
$repoRoot = Split-Path (Split-Path $PSScriptRoot -Parent) -Parent
|
||||
$source = Join-Path $repoRoot 'resources\images\OrcaSlicer_gradient_circle.svg'
|
||||
$outDir = Join-Path $PSScriptRoot 'assets'
|
||||
New-Item -ItemType Directory -Force $outDir | Out-Null
|
||||
|
||||
$sizes = [ordered]@{
|
||||
'Square150x150Logo.png' = 150
|
||||
'Square44x44Logo.png' = 44
|
||||
'Square44x44Logo.targetsize-44_altform-unplated.png' = 44
|
||||
'StoreLogo.png' = 50
|
||||
}
|
||||
|
||||
$py = @'
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
import resvg_py
|
||||
|
||||
svg, out_dir = sys.argv[1], Path(sys.argv[2])
|
||||
for spec in sys.argv[3:]:
|
||||
name, px = spec.rsplit('=', 1)
|
||||
px = int(px)
|
||||
data = resvg_py.svg_to_bytes(svg_path=svg, width=px, height=px)
|
||||
(out_dir / name).write_bytes(bytes(data))
|
||||
print(f'Wrote {name} ({px}x{px})')
|
||||
'@
|
||||
|
||||
$renderScript = Join-Path $env:TEMP 'orca_msix_render.py'
|
||||
Set-Content -Path $renderScript -Value $py -Encoding utf8
|
||||
try {
|
||||
$specs = foreach ($name in $sizes.Keys) { "$name=$($sizes[$name])" }
|
||||
& $Python $renderScript $source $outDir @specs
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
throw 'resvg render failed. Is resvg-py installed? (pip install resvg-py)'
|
||||
}
|
||||
}
|
||||
finally {
|
||||
Remove-Item $renderScript -ErrorAction SilentlyContinue
|
||||
}
|
||||
@@ -2362,6 +2362,10 @@ bool PresetCollection::validate_preset(const std::string &preset_name, std::stri
|
||||
const std::string canonical_inherit_name = this->canonical_preset_name(inherit_name);
|
||||
it = this->find_preset_internal(canonical_inherit_name);
|
||||
found = it != m_presets.end() && it->name == canonical_inherit_name && is_trusted(*it);
|
||||
if (!found) {
|
||||
it = this->find_preset_renamed(canonical_inherit_name);
|
||||
found = it != m_presets.end() && is_trusted(*it);
|
||||
}
|
||||
if (found)
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": preset_name %1%, inherit_name %2%, found inherit in list")%preset_name %inherit_name;
|
||||
else
|
||||
@@ -2453,7 +2457,9 @@ std::pair<Preset*, bool> PresetCollection::load_external_preset(
|
||||
|
||||
if (!inherits.empty() && (different_settings_list.size() > 0)) {
|
||||
auto iter = this->find_preset_internal(inherits);
|
||||
if (iter != m_presets.end() && iter->name == inherits) {
|
||||
if (iter == m_presets.end() || iter->name != inherits)
|
||||
iter = this->find_preset_renamed(inherits);
|
||||
if (iter != m_presets.end()) {
|
||||
//std::vector<std::string> dirty_options = cfg.diff(iter->config);
|
||||
BOOST_LOG_TRIVIAL(info) << __FUNCTION__ << boost::format(": change preset %1% inherit %2% 's value to %3% 's values")%original_name %inherits %path;
|
||||
cfg.update_non_diff_values_to_base_config(iter->config, keys, different_settings_list, extruder_id_name, extruder_variant_name, *key_set1, *key_set2);
|
||||
@@ -2505,7 +2511,9 @@ std::pair<Preset*, bool> PresetCollection::load_external_preset(
|
||||
// and override its settings with the loaded ones.
|
||||
assert(it == m_presets.end());
|
||||
it = this->find_preset_internal(inherits);
|
||||
found = it != m_presets.end() && it->name == inherits;
|
||||
if (it == m_presets.end() || it->name != inherits)
|
||||
it = this->find_preset_renamed(inherits);
|
||||
found = it != m_presets.end();
|
||||
if (found && profile_print_params_same(it->config, cfg)) {
|
||||
// The system preset exists and it matches the values stored inside config.
|
||||
if (select == LoadAndSelect::Always)
|
||||
|
||||
@@ -807,6 +807,8 @@ wxAuiToolBarItem* BBLTopbar::FindToolByCurrentPosition()
|
||||
}
|
||||
|
||||
#ifdef __WXMSW__
|
||||
#include <windowsx.h>
|
||||
|
||||
WXLRESULT CenteredTitle::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
|
||||
{
|
||||
switch (nMsg) {
|
||||
@@ -823,6 +825,8 @@ WXLRESULT BBLTopbar::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam
|
||||
{
|
||||
switch (nMsg) {
|
||||
case WM_NCHITTEST: {
|
||||
m_last_mouse_position = ScreenToClient({GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam)});
|
||||
|
||||
wxAuiToolBarItem* item = this->FindToolByCurrentPosition();
|
||||
if (item != NULL && item->GetWindow() != m_title_ctrl) {
|
||||
break;
|
||||
|
||||
@@ -2859,7 +2859,11 @@ bool GUI_App::on_init_inner()
|
||||
switch (dialog.ShowModal())
|
||||
{
|
||||
case wxID_YES:
|
||||
wxLaunchDefaultBrowser(version_info.url);
|
||||
// Store builds get updates from the Microsoft Store, not the GitHub release page.
|
||||
if (is_running_in_msix())
|
||||
open_ms_store_product_page();
|
||||
else
|
||||
wxLaunchDefaultBrowser(version_info.url);
|
||||
break;
|
||||
case wxID_NO:
|
||||
break;
|
||||
@@ -4940,6 +4944,7 @@ void GUI_App::on_http_error(wxCommandEvent &evt)
|
||||
// Parse the conflict body to extract the error code and server profile id
|
||||
int conflict_code = 0;
|
||||
std::string conflict_setting_id;
|
||||
std::string conflict_preset_name;
|
||||
try {
|
||||
json conflict_body = json::parse(body_str);
|
||||
if (conflict_body.contains("code"))
|
||||
@@ -4947,21 +4952,40 @@ void GUI_App::on_http_error(wxCommandEvent &evt)
|
||||
if (conflict_body.contains("server_profile") && conflict_body["server_profile"].contains("id")
|
||||
&& conflict_body["server_profile"]["id"].is_string())
|
||||
conflict_setting_id = conflict_body["server_profile"]["id"].get<std::string>();
|
||||
// The local preset name is injected into the conflict body by the agent (sync_push),
|
||||
// since the server response itself omits it for tombstone (-3) conflicts.
|
||||
if (conflict_body.contains("name") && conflict_body["name"].is_string())
|
||||
conflict_preset_name = conflict_body["name"].get<std::string>();
|
||||
} catch (...) {
|
||||
BOOST_LOG_TRIVIAL(warning) << "Failed to parse 409 conflict body.";
|
||||
}
|
||||
// Capture the user id up front so the force-push closure does not have to touch m_agent.
|
||||
std::string conflict_user_id = m_agent ? m_agent->get_user_id() : std::string();
|
||||
auto* plater = wxGetApp().plater();
|
||||
if (plater != nullptr && wxGetApp().imgui()->display_initialized()) {
|
||||
std::string text;
|
||||
if (conflict_code == -1) {
|
||||
|
||||
switch (conflict_code) {
|
||||
case -1:
|
||||
text = _u8L("Cloud sync conflict: this preset has a newer version in OrcaCloud.\n"
|
||||
"Pull downloads the cloud copy. Force push overwrites it with your local preset.");
|
||||
} else {
|
||||
break;
|
||||
case -2:
|
||||
text = _u8L("Cloud sync conflict: a preset with this name already exists in OrcaCloud.\n"
|
||||
"Pull downloads the cloud copy. Force push overwrites it with your local preset.");
|
||||
}
|
||||
break;
|
||||
case -3:
|
||||
text = _u8L("Cloud sync conflict: a preset with the same name was previously deleted from the cloud.\n"
|
||||
"Delete will delete your local preset. Force push overwrites it with your local preset.");
|
||||
break;
|
||||
default:
|
||||
text = _u8L("Cloud sync conflict: there was an unexpected or unidentified preset conflict.\n"
|
||||
"Pull downloads the cloud copy. Force push overwrites it with your local preset.");
|
||||
break;
|
||||
};
|
||||
|
||||
plater->get_notification_manager()->push_orca_sync_conflict_notification(
|
||||
text,
|
||||
text, conflict_code,
|
||||
[this](wxEvtHandler*) {
|
||||
// Runs on the GUI thread (on_http_error is a queued wx event); restart_sync_user_preset()
|
||||
// already joins the old sync thread off the UI thread, so no extra thread is needed here.
|
||||
@@ -4971,7 +4995,7 @@ void GUI_App::on_http_error(wxCommandEvent &evt)
|
||||
restart_sync_user_preset();
|
||||
return true;
|
||||
},
|
||||
[this, conflict_setting_id](wxEvtHandler*) {
|
||||
[this, conflict_setting_id, conflict_preset_name, conflict_user_id](wxEvtHandler*) {
|
||||
if (mainframe == nullptr)
|
||||
return false;
|
||||
MessageDialog
|
||||
@@ -4981,7 +5005,13 @@ void GUI_App::on_http_error(wxCommandEvent &evt)
|
||||
if (dlg.ShowModal() != wxID_YES)
|
||||
return false;
|
||||
|
||||
force_push_conflicting_preset(conflict_setting_id);
|
||||
std::string setting_id = conflict_setting_id;
|
||||
if (setting_id.empty()) {
|
||||
setting_id = OrcaCloudServiceAgent::generate_uuid_for_setting_id(conflict_preset_name, conflict_user_id);
|
||||
BOOST_LOG_TRIVIAL(info) << "conflict setting id empty, generated one: " << setting_id;
|
||||
}
|
||||
|
||||
force_push_conflicting_preset(setting_id);
|
||||
return true;
|
||||
});
|
||||
}
|
||||
@@ -7055,15 +7085,26 @@ void GUI_App::force_push_conflicting_preset(const std::string& setting_id)
|
||||
m_pending_conflict_setting_ids.push_back(setting_id);
|
||||
}
|
||||
|
||||
const std::string user_id = m_agent ? m_agent->get_user_id() : std::string();
|
||||
|
||||
// The 409 left this preset on "hold", which get_user_presets() skips. Restore it to
|
||||
// "update" so the next push-sync re-includes it and consumes the queued force flag.
|
||||
// (We must NOT pull from the cloud here as the Pull path does — that would overwrite
|
||||
// the local changes the user is trying to force-push.)
|
||||
// For a -3 tombstone on a newly created preset the on-disk setting_id is EMPTY (it only
|
||||
// gets assigned after a successful first push), so derive it on the fly from the preset
|
||||
// name and stamp it onto the preset — otherwise sync_with_lock's `id == preset.setting_id`
|
||||
// check never fires and the force-push silently no-ops.
|
||||
PresetCollection* collections[] = {&preset_bundle->prints, &preset_bundle->filaments, &preset_bundle->printers};
|
||||
for (PresetCollection* coll : collections) {
|
||||
for (const Preset& preset : coll->get_presets()) {
|
||||
if (preset.setting_id == setting_id && preset.sync_info == "hold") {
|
||||
coll->set_sync_info_and_save(preset.name, preset.setting_id, "update", 0);
|
||||
if (preset.sync_info != "hold")
|
||||
continue;
|
||||
const std::string preset_id = preset.setting_id.empty()
|
||||
? OrcaCloudServiceAgent::generate_uuid_for_setting_id(preset.name, user_id)
|
||||
: preset.setting_id;
|
||||
if (preset_id == setting_id) {
|
||||
coll->set_sync_info_and_save(preset.name, setting_id, "update", 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -9075,6 +9116,10 @@ static bool del_win_registry(HKEY hkeyHive, const wchar_t *pszVar, const wchar_t
|
||||
void GUI_App::associate_files(std::wstring extend)
|
||||
{
|
||||
#ifdef WIN32
|
||||
// MSIX: shell integration is declared in the package manifest; registry
|
||||
// writes from a packaged process are virtualized and invisible to the shell.
|
||||
if (is_running_in_msix())
|
||||
return;
|
||||
wchar_t app_path[MAX_PATH];
|
||||
::GetModuleFileNameW(nullptr, app_path, sizeof(app_path));
|
||||
|
||||
@@ -9100,6 +9145,8 @@ void GUI_App::associate_files(std::wstring extend)
|
||||
void GUI_App::disassociate_files(std::wstring extend)
|
||||
{
|
||||
#ifdef WIN32
|
||||
if (is_running_in_msix())
|
||||
return;
|
||||
wchar_t app_path[MAX_PATH];
|
||||
::GetModuleFileNameW(nullptr, app_path, sizeof(app_path));
|
||||
|
||||
@@ -9151,6 +9198,8 @@ bool GUI_App::check_url_association(std::wstring url_prefix, std::wstring& reg_b
|
||||
void GUI_App::associate_url(std::wstring url_prefix)
|
||||
{
|
||||
#ifdef WIN32
|
||||
if (is_running_in_msix())
|
||||
return;
|
||||
boost::filesystem::path binary_path(boost::filesystem::canonical(boost::dll::program_location()));
|
||||
wxString wbinary = from_path(binary_path);
|
||||
BOOST_LOG_TRIVIAL(info) << "Downloader registration: Path of binary: " << wbinary.ToUTF8().data();
|
||||
@@ -9176,6 +9225,8 @@ void GUI_App::associate_url(std::wstring url_prefix)
|
||||
void GUI_App::disassociate_url(std::wstring url_prefix)
|
||||
{
|
||||
#ifdef WIN32
|
||||
if (is_running_in_msix())
|
||||
return;
|
||||
wxRegKey key_full(wxRegKey::HKCU, "Software\\Classes\\" + url_prefix + "\\shell\\open\\command");
|
||||
if (!key_full.Exists()) {
|
||||
return;
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <wx/font.h>
|
||||
#include <wx/fontutil.h>
|
||||
#include <wx/display.h>
|
||||
#include <wx/utils.h>
|
||||
|
||||
#include "libslic3r/Config.hpp"
|
||||
|
||||
@@ -171,6 +172,42 @@ template<class F> typename F::FN winapi_get_function(const wchar_t *dll, const c
|
||||
}
|
||||
#endif
|
||||
|
||||
bool is_running_in_msix()
|
||||
{
|
||||
#ifdef _WIN32
|
||||
// The package identity APIs are Win8+ - resolved dynamically so the exe still loads on Win7
|
||||
// (same treatment as the DPI APIs below). Null-buffer probe: returns ERROR_INSUFFICIENT_BUFFER
|
||||
// when packaged, APPMODEL_ERROR_NO_PACKAGE when running unpackaged.
|
||||
struct GetCurrentPackageFullName_t { typedef LONG (WINAPI *FN)(UINT32 *length, PWSTR full_name); };
|
||||
static const bool packaged = []() {
|
||||
auto fn = winapi_get_function<GetCurrentPackageFullName_t>(L"Kernel32.dll", "GetCurrentPackageFullName");
|
||||
UINT32 length = 0;
|
||||
return fn != nullptr && fn(&length, nullptr) != APPMODEL_ERROR_NO_PACKAGE;
|
||||
}();
|
||||
return packaged;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
void open_ms_store_product_page()
|
||||
{
|
||||
#ifdef _WIN32
|
||||
struct GetCurrentPackageFamilyName_t { typedef LONG (WINAPI *FN)(UINT32 *length, PWSTR family_name); };
|
||||
static auto fn = winapi_get_function<GetCurrentPackageFamilyName_t>(L"Kernel32.dll", "GetCurrentPackageFamilyName");
|
||||
if (fn == nullptr)
|
||||
return;
|
||||
UINT32 length = 0;
|
||||
if (fn(&length, nullptr) != ERROR_INSUFFICIENT_BUFFER)
|
||||
return;
|
||||
std::wstring family_name(length, L'\0');
|
||||
if (fn(&length, family_name.data()) != ERROR_SUCCESS)
|
||||
return;
|
||||
family_name.resize(length > 0 ? length - 1 : 0); // drop the terminating null
|
||||
wxLaunchDefaultBrowser(wxString(L"ms-windows-store://pdp/?PFN=") + family_name.c_str());
|
||||
#endif
|
||||
}
|
||||
|
||||
// If called with nullptr, a DPI for the primary monitor is returned.
|
||||
int get_dpi_for_window(const wxWindow *window)
|
||||
{
|
||||
|
||||
@@ -67,6 +67,10 @@ wxDECLARE_EVENT(EVT_VOLUME_DETACHED, VolumeDetachedEvent);
|
||||
|
||||
wxTopLevelWindow* find_toplevel_parent(wxWindow *window);
|
||||
wxString format_nozzle_diameter(float diameter);
|
||||
// True when running inside an MSIX package (Microsoft Store build); always false on non-Windows.
|
||||
bool is_running_in_msix();
|
||||
// Opens the Microsoft Store product page for the current package. No-op when not packaged.
|
||||
void open_ms_store_product_page();
|
||||
|
||||
void on_window_geometry(wxTopLevelWindow *tlw, std::function<void()> callback);
|
||||
|
||||
|
||||
@@ -2416,7 +2416,7 @@ void NotificationManager::OrcaSyncConflictNotification::render_text(ImGuiWrapper
|
||||
}
|
||||
|
||||
const float action_y = starting_y + m_endlines.size() * shift_y;
|
||||
const std::string pull_text = _u8L("Pull");
|
||||
const std::string pull_text = conflict_code == -3 ? _u8L("Delete") : _u8L("Pull");
|
||||
render_hyperlink_action(imgui, x_offset, action_y, pull_text, "##orca_sync_pull",
|
||||
[this] { if (m_pull_callback && m_pull_callback(m_evt_handler)) close(); });
|
||||
if (m_force_push_callback) {
|
||||
@@ -2437,13 +2437,14 @@ void NotificationManager::push_shared_profiles_notification(const std::string& e
|
||||
}
|
||||
|
||||
void NotificationManager::push_orca_sync_conflict_notification(const std::string& text,
|
||||
int conflict_code,
|
||||
std::function<bool(wxEvtHandler*)> pull_callback,
|
||||
std::function<bool(wxEvtHandler*)> force_push_callback)
|
||||
{
|
||||
close_notification_of_type(NotificationType::OrcaSyncConflict);
|
||||
NotificationData data{ NotificationType::OrcaSyncConflict, NotificationLevel::WarningNotificationLevel, 0, text };
|
||||
push_notification_data(std::make_unique<NotificationManager::OrcaSyncConflictNotification>(
|
||||
data, m_id_provider, m_evt_handler, std::move(pull_callback), std::move(force_push_callback)), 0);
|
||||
data, m_id_provider, m_evt_handler, std::move(pull_callback), std::move(force_push_callback), conflict_code), 0);
|
||||
}
|
||||
|
||||
void NotificationManager::push_download_URL_progress_notification(size_t id, const std::string& text, std::function<bool(DownloaderUserAction, int)> user_action_callback)
|
||||
|
||||
@@ -279,6 +279,7 @@ public:
|
||||
// Shared profiles available for selected printer
|
||||
void push_shared_profiles_notification(const std::string& explore_url);
|
||||
void push_orca_sync_conflict_notification(const std::string& text,
|
||||
int conflict_code,
|
||||
std::function<bool(wxEvtHandler*)> pull_callback,
|
||||
std::function<bool(wxEvtHandler*)> force_push_callback);
|
||||
|
||||
@@ -905,10 +906,12 @@ private:
|
||||
public:
|
||||
OrcaSyncConflictNotification(const NotificationData& n, NotificationIDProvider& id_provider, wxEvtHandler* evt_handler,
|
||||
std::function<bool(wxEvtHandler*)> pull_callback,
|
||||
std::function<bool(wxEvtHandler*)> force_push_callback)
|
||||
std::function<bool(wxEvtHandler*)> force_push_callback,
|
||||
int conflict_code)
|
||||
: PopNotification(n, id_provider, evt_handler)
|
||||
, m_pull_callback(std::move(pull_callback))
|
||||
, m_force_push_callback(std::move(force_push_callback))
|
||||
, conflict_code(conflict_code)
|
||||
{
|
||||
m_multiline = true;
|
||||
}
|
||||
@@ -920,6 +923,7 @@ private:
|
||||
|
||||
std::function<bool(wxEvtHandler*)> m_pull_callback;
|
||||
std::function<bool(wxEvtHandler*)> m_force_push_callback;
|
||||
int conflict_code;
|
||||
};
|
||||
class SlicingProgressNotification;
|
||||
|
||||
|
||||
@@ -1846,6 +1846,26 @@ void PreferencesDialog::create_items()
|
||||
//// ASSOCIATE TAB
|
||||
/////////////////////////////////////
|
||||
#ifdef _WIN32
|
||||
// MSIX: associations are declared in the package manifest and defaults are
|
||||
// managed by Windows Settings; the runtime registry toggles below cannot work.
|
||||
// Show a minimal page that sends the user to Windows' Default Apps settings instead.
|
||||
if (is_running_in_msix()) {
|
||||
m_pref_tabs->AppendItem(_L("Associate"));
|
||||
f_sizers.push_back(new wxFlexGridSizer(1, 1, v_gap, 0));
|
||||
g_sizer = f_sizers.back();
|
||||
g_sizer->AddGrowableCol(0, 1);
|
||||
|
||||
g_sizer->Add(create_item_title(_L("Associate files to OrcaSlicer")), 1, wxEXPAND);
|
||||
|
||||
auto item_open_default_apps = create_item_button(
|
||||
_L("File associations for the Microsoft Store version are managed by Windows Settings."),
|
||||
_L("Open Windows Default Apps Settings"), "", "",
|
||||
[]() { wxLaunchDefaultBrowser("ms-settings:defaultapps"); });
|
||||
g_sizer->Add(item_open_default_apps);
|
||||
|
||||
g_sizer->AddSpacer(FromDIP(10));
|
||||
sizer_page->Add(g_sizer, 0, wxEXPAND);
|
||||
} else {
|
||||
m_pref_tabs->AppendItem(_L("Associate"));
|
||||
f_sizers.push_back(new wxFlexGridSizer(1, 1, v_gap, 0));
|
||||
g_sizer = f_sizers.back();
|
||||
@@ -1880,6 +1900,7 @@ void PreferencesDialog::create_items()
|
||||
|
||||
g_sizer->AddSpacer(FromDIP(10));
|
||||
sizer_page->Add(g_sizer, 0, wxEXPAND);
|
||||
}
|
||||
#endif // _WIN32
|
||||
|
||||
//////////////////////////
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "libslic3r/Thread.hpp"
|
||||
#include "GUI.hpp"
|
||||
#include "GUI_App.hpp"
|
||||
#include "GUI_Utils.hpp"
|
||||
#include "GUI_Preview.hpp"
|
||||
#include "MainFrame.hpp"
|
||||
#include "format.hpp"
|
||||
@@ -252,7 +253,9 @@ UpdateVersionDialog::UpdateVersionDialog(wxWindow *parent)
|
||||
m_text_up_info = new Label(this, Label::Head_14, wxEmptyString, LB_AUTO_WRAP);
|
||||
m_text_up_info->SetForegroundColour(wxColour(0x26, 0x2E, 0x30));
|
||||
|
||||
auto github_link = new HyperLink(this, _L("Check on Github"), "", LB_AUTO_WRAP);
|
||||
// Store builds get updates from the Microsoft Store: wxID_YES opens the Store
|
||||
// product page there (see the EVT_SLIC3R_VERSION_ONLINE handler) instead of GitHub.
|
||||
auto github_link = new HyperLink(this, is_running_in_msix() ? _L("Check on Microsoft Store") : _L("Check on Github"), "", LB_AUTO_WRAP);
|
||||
github_link->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent &e) {
|
||||
EndModal(wxID_YES);
|
||||
});
|
||||
@@ -302,7 +305,7 @@ UpdateVersionDialog::UpdateVersionDialog(wxWindow *parent)
|
||||
|
||||
auto sizer_button = new wxBoxSizer(wxHORIZONTAL);
|
||||
|
||||
m_button_download = new Button(this, _L("Download"));
|
||||
m_button_download = new Button(this, is_running_in_msix() ? _L("Open Microsoft Store") : _L("Download"));
|
||||
m_button_download->SetStyle(ButtonStyle::Confirm, ButtonType::Choice);
|
||||
|
||||
m_button_download->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent &e) {
|
||||
@@ -479,7 +482,10 @@ void UpdateVersionDialog::update_version_info(wxString release_note, wxString ve
|
||||
// else {
|
||||
//m_simplebook_release_note->SetMaxSize(wxSize(FromDIP(560), FromDIP(430)));
|
||||
m_simplebook_release_note->SetSelection(1);
|
||||
m_text_up_info->SetLabel(wxString::Format(_L("Click to download new version in default browser: %s"), version));
|
||||
if (is_running_in_msix())
|
||||
m_text_up_info->SetLabel(wxString::Format(_L("New version available: %s. Please update OrcaSlicer from the Microsoft Store."), version));
|
||||
else
|
||||
m_text_up_info->SetLabel(wxString::Format(_L("Click to download new version in default browser: %s"), version));
|
||||
auto data_buf_in = release_note.utf8_str();
|
||||
auto bg_color = StateColor::darkModeColorFor(wxColour("#FFFFFF")).GetAsString();
|
||||
auto fg_color = StateColor::darkModeColorFor(wxColour("#262E30")).GetAsString();
|
||||
|
||||
@@ -101,24 +101,6 @@ std::string resolve_display_name(
|
||||
return username;
|
||||
}
|
||||
|
||||
std::string generate_uuid_for_setting_id(const std::string& name, const std::string& user_id = "")
|
||||
{
|
||||
if (name.empty()) {
|
||||
return "";
|
||||
}
|
||||
|
||||
// Mix user_id into the hashed input so two different users generating a setting_id
|
||||
// for an identically-named preset get distinct UUIDs. Without this, the cloud's ID
|
||||
// space collides across accounts and the second user's create gets HTTP 409 with
|
||||
// server_profile=null on every sync (the foreign owner's record is not exposed).
|
||||
static const boost::uuids::uuid orca_namespace =
|
||||
boost::uuids::string_generator()("f47ac10b-58cc-4372-a567-0e02b2c3d479");
|
||||
|
||||
boost::uuids::name_generator_sha1 gen(orca_namespace);
|
||||
boost::uuids::uuid id = user_id.empty() ? gen(name) : gen(user_id + "/" + name);
|
||||
return boost::uuids::to_string(id);
|
||||
}
|
||||
|
||||
std::string base64url_encode(const std::vector<unsigned char>& data)
|
||||
{
|
||||
std::string out;
|
||||
@@ -412,6 +394,24 @@ OrcaCloudServiceAgent::~OrcaCloudServiceAgent()
|
||||
}
|
||||
}
|
||||
|
||||
std::string OrcaCloudServiceAgent::generate_uuid_for_setting_id(const std::string& name, const std::string& user_id)
|
||||
{
|
||||
if (name.empty()) {
|
||||
return "";
|
||||
}
|
||||
|
||||
// Mix user_id into the hashed input so two different users generating a setting_id
|
||||
// for an identically-named preset get distinct UUIDs. Without this, the cloud's ID
|
||||
// space collides across accounts and the second user's create gets HTTP 409 with
|
||||
// server_profile=null on every sync (the foreign owner's record is not exposed).
|
||||
static const boost::uuids::uuid orca_namespace =
|
||||
boost::uuids::string_generator()("f47ac10b-58cc-4372-a567-0e02b2c3d479");
|
||||
|
||||
boost::uuids::name_generator_sha1 gen(orca_namespace);
|
||||
boost::uuids::uuid id = user_id.empty() ? gen(name) : gen(user_id + "/" + name);
|
||||
return boost::uuids::to_string(id);
|
||||
}
|
||||
|
||||
void OrcaCloudServiceAgent::configure_urls(AppConfig* app_config)
|
||||
{
|
||||
if (!app_config) return;
|
||||
@@ -1250,8 +1250,10 @@ SyncPushResult OrcaCloudServiceAgent::sync_push(const std::string& profile_id,
|
||||
|
||||
if (http_code == 409) {
|
||||
// Conflict - parse server version
|
||||
nlohmann::json err_body;
|
||||
try {
|
||||
auto json = nlohmann::json::parse(response);
|
||||
err_body = json;
|
||||
if (json.is_null()) {
|
||||
result.server_deleted = true;
|
||||
} else {
|
||||
@@ -1261,6 +1263,13 @@ SyncPushResult OrcaCloudServiceAgent::sync_push(const std::string& profile_id,
|
||||
result.server_version.updated_time = profile_data.value(ORCA_JSON_KEY_UPDATE_TIME, 0);
|
||||
}
|
||||
} catch (...) {}
|
||||
// Surface the conflict via the http-error callback with the local preset name injected.
|
||||
// The raw server body omits the name for tombstone (-3) conflicts (server_profile is null),
|
||||
// but the GUI needs it to regenerate the deterministic setting_id for a force push.
|
||||
if (!err_body.is_object())
|
||||
err_body = nlohmann::json::object();
|
||||
err_body["name"] = name;
|
||||
invoke_http_error_callback(409, err_body.dump());
|
||||
result.error_message = response;
|
||||
return result;
|
||||
}
|
||||
@@ -1937,7 +1946,10 @@ int OrcaCloudServiceAgent::http_post(const std::string& path, const std::string&
|
||||
if (response_body) *response_body = res.body;
|
||||
if (http_code) *http_code = res.status;
|
||||
|
||||
if (!suppress && (!res.success || res.status >= 400)) {
|
||||
// 409 is a push-only domain conflict; sync_push re-fires the error callback with the
|
||||
// local preset name injected (the raw server body omits it for tombstone conflicts),
|
||||
// so skip the generic nameless auto-fire here to avoid a duplicate, nameless event.
|
||||
if (!suppress && (!res.success || res.status >= 400) && res.status != 409) {
|
||||
invoke_http_error_callback(res.status, res.body);
|
||||
}
|
||||
|
||||
|
||||
@@ -300,6 +300,8 @@ public:
|
||||
bool set_user_session(const nlohmann::json& session_json, bool notify_login = true);
|
||||
void clear_session();
|
||||
|
||||
static std::string generate_uuid_for_setting_id(const std::string& name, const std::string& user_id = "");
|
||||
|
||||
private:
|
||||
// Sync protocol helpers
|
||||
int sync_pull(
|
||||
|
||||
Reference in New Issue
Block a user