From 000f8abc6d72d594d561f22f4d0cd6ec3aaf98b2 Mon Sep 17 00:00:00 2001 From: Eric McCann Date: Sun, 4 Oct 2026 11:52:56 -0400 Subject: [PATCH] CoreOne INDX 8T and 4T: welcome to earth, MMU3 fixes (#15903) * Add opt-in printer overrides for filament tool-change settings Allow printer presets to define uniform ramming, loading, unloading, cooling, purge, filament scripts and pressure-advance enable settings without duplicating material presets. Apply overrides during preset composition and FDM normalization, and expose the switch in Multimaterial. Keep the feature disabled by default. Omitted or empty override vectors preserve material settings; a single value applies to every filament, including an explicitly empty script. Reject multi-value overrides. Preserve empty float vectors across project serialization and initialize empty nullable filament overrides before resizing them, preventing preset cache generation from accessing an empty vector. Include focused override tests and document the configuration semantics, Prusa MMU3 integration and INDX tool-change behavior. Co-authored-by: Codex * Add Prusa MMU3 and CORE One INDX profiles with shared material tuning Add MK4 MMU3 and four-tool/eight-tool CORE One INDX printer definitions, process presets and printer resources. Reuse ordinary MK4 and CORE One printer/process inheritance while retaining device-specific startup, shutdown, tool-change and wipe-tower behavior. Move uniform MMU3 tip forming and INDX handling into machine filament overrides. Keep MMU3 pressure advance and purge material-specific, retain INDX material tuning, and share surviving materials with migration aliases for retired MMU3 and XL tool-change copies. Preserve unrelated Prusa filament identities, scalar value formats and inheritance rather than applying broad profile cleanup. Validation: Prusa profile checks and all 69 printer smoke slices passed. The final cleanup preserved emitted commands with identical filament selections. Co-authored-by: Codex * Refresh filament controls after loading printer presets Synchronize the plater filament controls after preset loading, even when the internal filament list already matches the nozzle count. Co-authored-by: Codex * Fix nullable Z-hop overrides in Prusa filament variants Represent empty overrides as nil for each inherited extruder variant so the native profile loader preserves machine Z-hop settings. Validation: full profile checks, native loading, and 1,115-printer slicing sweep passed. Co-authored-by: Codex * Separate Prusa profiles from machine-owned filament overrides Retain profile tuning without unsupported machine override keys. Move supporting code, tests and override documentation into a separate feature change. Co-authored-by: Codex * Default INDX tools to hardened high-flow nozzles Use the High Flow variant for every INDX tool and its dedicated filament presets. Raise Generic PLA throughput to 28 mm3/s. Co-authored-by: codex * Use normal filament-change lifts for INDX and MMU3 Avoid duplicate INDX retraction and account for its 12.5-second dock swap in print estimates. Co-authored-by: codex * Set z_hop_types for the machine too * Fix profile check failures in the Prusa CORE One filament presets --------- Co-authored-by: Codex Co-authored-by: SoftFever <103989404+SoftFever@users.noreply.github.com> Co-authored-by: SoftFever --- docs/HLSD/prusa-indx-profiles.md | 54 ++ resources/profiles/Prusa.json | 714 +++++++++--------- .../Prusa/Prusa CORE One INDX 4T_cover.png | Bin 0 -> 47255 bytes .../Prusa/Prusa CORE One INDX 8T_cover.png | Bin 0 -> 50079 bytes .../Prusa/Prusa MK4 MMU3 HF_cover.png | Bin 0 -> 61299 bytes .../profiles/Prusa/Prusa MK4 MMU3_cover.png | Bin 0 -> 61299 bytes resources/profiles/Prusa/coreone_indx.stl | Bin 0 -> 119984 bytes resources/profiles/Prusa/coreone_indx.svg | 507 +++++++++++++ .../Generic ABS @Prusa CORE One 0.6.json | 13 - .../Generic ABS @Prusa CORE One INDX.json | 73 ++ .../Generic ABS @Prusa CORE One MMU3.json | 53 -- .../filament/Generic ABS @Prusa CORE One.json | 42 +- .../filament/Generic ABS @Prusa MK4S 0.6.json | 13 - .../filament/Generic ABS @Prusa MK4S 0.8.json | 13 - .../filament/Generic ABS @Prusa MK4S.json | 6 +- .../filament/Generic ABS @Prusa XL 5T.json | 69 -- .../Prusa/filament/Generic ABS @Prusa XL.json | 29 +- .../Generic ABS HF @Prusa MINIIS 0.6.json | 3 +- .../Generic ABS HF @Prusa MINIIS 0.8.json | 3 +- .../Generic ABS HF @Prusa MINIIS.json | 3 +- .../filament/Generic ABS HF @Prusa base.json | 8 - .../Generic ASA @Prusa CORE One 0.6.json | 5 + .../Generic ASA @Prusa CORE One 0.8.json | 5 + .../Generic ASA @Prusa CORE One HF 0.4.json | 15 + .../Generic ASA @Prusa CORE One HF 0.5.json | 15 + .../Generic ASA @Prusa CORE One HF 0.6.json | 15 + .../Generic ASA @Prusa CORE One HF 0.8.json | 20 + .../Generic ASA @Prusa CORE One MMU3.json | 53 -- .../filament/Generic ASA @Prusa CORE One.json | 148 +++- .../filament/Generic FLEX @Prusa XL 5T.json | 35 - .../filament/Generic FLEX @Prusa XL.json | 10 +- .../Prusa/filament/Generic PA @Prusa.json | 8 +- .../Prusa/filament/Generic PC @Prusa.json | 116 ++- .../Generic PETG @Prusa CORE One INDX.json | 91 +++ .../Generic PETG @Prusa CORE One MMU3.json | 53 -- .../Generic PETG @Prusa CORE One.json | 38 +- .../filament/Generic PETG @Prusa XL 5T.json | 72 -- .../filament/Generic PETG @Prusa XL.json | 29 +- .../Generic PETG HF @Prusa MINIIS 0.6.json | 3 +- .../Generic PETG HF @Prusa MINIIS 0.8.json | 3 +- .../Generic PETG HF @Prusa MINIIS.json | 3 +- .../filament/Generic PETG HF @Prusa base.json | 8 - .../Generic PLA @Prusa CORE One INDX.json | 70 ++ .../Generic PLA @Prusa CORE One MMU3.json | 53 -- .../filament/Generic PLA @Prusa CORE One.json | 58 +- .../filament/Generic PLA @Prusa XL 5T.json | 67 -- .../Prusa/filament/Generic PLA @Prusa XL.json | 29 +- .../Generic PLA HF @Prusa MINIIS 0.6.json | 3 +- .../Generic PLA HF @Prusa MINIIS 0.8.json | 3 +- .../Generic PLA HF @Prusa MINIIS.json | 3 +- .../filament/Generic PLA HF @Prusa base.json | 8 - .../Generic PLA Silk @Prusa CORE One 0.6.json | 10 + .../Generic PLA Silk @Prusa CORE One 0.8.json | 5 + ...Generic PLA Silk @Prusa CORE One INDX.json | 184 +++++ ...Generic PLA Silk @Prusa CORE One MMU3.json | 53 -- .../Generic PLA Silk @Prusa CORE One.json | 166 +++- .../Generic PVA HF @Prusa MINIIS 0.6.json | 3 +- .../Generic PVA HF @Prusa MINIIS 0.8.json | 3 +- .../Generic PVA HF @Prusa MINIIS.json | 3 +- .../filament/Generic PVA HF @Prusa base.json | 8 - .../Generic TPU @Prusa CORE One MMU3.json | 53 -- .../filament/Generic TPU @Prusa CORE One.json | 56 +- .../Generic TPU HF @Prusa MINIIS.json | 3 +- .../filament/Generic TPU HF @Prusa base.json | 8 - .../Prusament ASA @CORE One MMU3.json | 54 -- .../filament/Prusament ASA @CORE One.json | 7 +- .../Prusa/filament/Prusament ASA @XL 5T.json | 74 -- .../Prusa/filament/Prusament ASA @XL.json | 28 +- .../Prusament PA-CF @CORE One MMU3.json | 54 -- .../Prusa/filament/Prusament PA-CF @XL.json | 59 -- ...ment PA11 Carbon Fiber @CORE One 0.6.json} | 8 +- ...ment PA11 Carbon Fiber @CORE One 0.8.json} | 8 +- ...rusament PA11 Carbon Fiber @CORE One.json} | 13 +- ...n => Prusament PA11 Carbon Fiber @XL.json} | 83 +- .../Prusament PC Blend @CORE One MMU3.json | 54 -- .../Prusament PC Blend @CORE One.json | 9 +- .../filament/Prusament PC Blend @XL 5T.json | 74 -- .../filament/Prusament PC Blend @XL.json | 28 +- ... PC Blend Carbon Fiber @CORE One 0.6.json} | 8 +- ... PC Blend Carbon Fiber @CORE One 0.8.json} | 8 +- ...ment PC Blend Carbon Fiber @CORE One.json} | 15 +- ... Prusament PC Blend Carbon Fiber @XL.json} | 83 +- .../Prusament PC-CF @CORE One MMU3.json | 54 -- .../Prusa/filament/Prusament PC-CF @XL.json | 59 -- .../Prusament PETG @CORE One MMU3.json | 54 -- .../filament/Prusament PETG @CORE One.json | 7 +- .../Prusament PETG @Prusa CORE One INDX.json | 125 +++ .../Prusa/filament/Prusament PETG @XL 5T.json | 71 -- .../Prusa/filament/Prusament PETG @XL.json | 28 +- .../Prusament PLA @CORE One MMU3.json | 54 -- .../filament/Prusament PLA @CORE One.json | 9 +- .../Prusament PLA @Prusa CORE One INDX.json | 125 +++ .../Prusa/filament/Prusament PLA @XL 5T.json | 66 -- .../Prusa/filament/Prusament PLA @XL.json | 28 +- .../Prusament PVB @CORE One MMU3.json | 57 -- .../filament/Prusament PVB @CORE One.json | 11 +- .../Prusa/filament/Prusament PVB @XL 5T.json | 75 -- .../Prusa/filament/Prusament PVB @XL.json | 28 +- .../Prusament rPLA @CORE One MMU3.json | 54 -- .../filament/Prusament rPLA @CORE One.json | 9 +- .../Prusa/filament/Prusament rPLA @XL 5T.json | 69 -- .../Prusa/filament/Prusament rPLA @XL.json | 28 +- .../machine/Prusa CORE One HF 0.4 nozzle.json | 2 +- .../Prusa CORE One INDX 4T HF 0.4 nozzle.json | 160 ++++ .../Prusa/machine/Prusa CORE One INDX 4T.json | 12 + .../Prusa CORE One INDX 8T HF 0.4 nozzle.json | 260 +++++++ .../Prusa/machine/Prusa CORE One INDX 8T.json | 12 + .../Prusa CORE One MMU3 0.4 nozzle.json | 78 +- .../Prusa CORE One MMU3 0.6 nozzle.json | 2 +- .../Prusa/machine/Prusa CORE One MMU3.json | 2 +- .../Prusa/machine/Prusa MK4 0.4 nozzle.json | 2 +- .../machine/Prusa MK4 MMU3 0.4 nozzle.json | 23 + .../machine/Prusa MK4 MMU3 0.6 nozzle.json | 24 + .../Prusa/machine/Prusa MK4 MMU3 HF.json | 12 + .../machine/Prusa MK4 MMU3 HF0.4 nozzle.json | 23 + .../Prusa/machine/Prusa MK4 MMU3.json | 12 + .../machine/Prusa XL 5T 0.25 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 5T 0.3 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 5T 0.4 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 5T 0.5 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 5T 0.6 nozzle.json | 2 +- .../Prusa/machine/Prusa XL 5T 0.8 nozzle.json | 2 +- .../profiles/Prusa/machine/Prusa XL 5T.json | 2 +- .../profiles/Prusa/machine/Prusa XL.json | 2 +- .../fdm_machine_common_coreone_indx.json | 82 ++ .../machine/fdm_machine_common_mk4_mmu3.json | 132 ++++ .../machine/fdm_machine_common_mk4s.json | 2 +- .../machine/fdm_machine_common_nextruder.json | 7 + ...10mm Fine @Prusa CORE One INDX HF 0.4.json | 58 ++ .../0.15mm BALANCED @COREONE0.4 + MMU3.json | 91 ++- ...mm Detail @Prusa CORE One INDX HF 0.4.json | 27 + .../0.20mm BALANCED @COREONE0.4 + MMU3.json | 85 +-- ... Balanced @Prusa CORE One INDX HF 0.4.json | 13 + .../process/0.20mm SPEED @MK4 MMU3 0.4.json | 85 +++ .../process/0.20mm SPEED @MK4 MMU3 HF0.4.json | 85 +++ .../0.25mm BALANCED @COREONE0.4 + MMU3.json | 87 +-- ...5mm Draft @Prusa CORE One INDX HF 0.4.json | 30 + .../0.25mm SPEED @COREONE0.4 + MMU3.json | 83 +- .../process/0.25mm SPEED @MK4 MMU3 0.6.json | 87 +++ .../0.25mm STRUCTURAL @COREONE0.4 + MMU3.json | 89 +-- .../process/fdm_process_coreone_indx.json | 126 ++++ .../Prusa/process/fdm_process_mk4_mmu3.json | 99 +++ 142 files changed, 4184 insertions(+), 2599 deletions(-) create mode 100644 docs/HLSD/prusa-indx-profiles.md create mode 100644 resources/profiles/Prusa/Prusa CORE One INDX 4T_cover.png create mode 100644 resources/profiles/Prusa/Prusa CORE One INDX 8T_cover.png create mode 100644 resources/profiles/Prusa/Prusa MK4 MMU3 HF_cover.png create mode 100644 resources/profiles/Prusa/Prusa MK4 MMU3_cover.png create mode 100644 resources/profiles/Prusa/coreone_indx.stl create mode 100644 resources/profiles/Prusa/coreone_indx.svg delete mode 100644 resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One 0.6.json create mode 100644 resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One INDX.json delete mode 100644 resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One MMU3.json delete mode 100644 resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S 0.6.json delete mode 100644 resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S 0.8.json delete mode 100644 resources/profiles/Prusa/filament/Generic ABS @Prusa XL 5T.json delete mode 100644 resources/profiles/Prusa/filament/Generic ABS HF @Prusa base.json delete mode 100644 resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One MMU3.json delete mode 100644 resources/profiles/Prusa/filament/Generic FLEX @Prusa XL 5T.json create mode 100644 resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One INDX.json delete mode 100644 resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One MMU3.json delete mode 100644 resources/profiles/Prusa/filament/Generic PETG @Prusa XL 5T.json delete mode 100644 resources/profiles/Prusa/filament/Generic PETG HF @Prusa base.json create mode 100644 resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One INDX.json delete mode 100644 resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One MMU3.json delete mode 100644 resources/profiles/Prusa/filament/Generic PLA @Prusa XL 5T.json delete mode 100644 resources/profiles/Prusa/filament/Generic PLA HF @Prusa base.json create mode 100644 resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One INDX.json delete mode 100644 resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One MMU3.json delete mode 100644 resources/profiles/Prusa/filament/Generic PVA HF @Prusa base.json delete mode 100644 resources/profiles/Prusa/filament/Generic TPU @Prusa CORE One MMU3.json delete mode 100644 resources/profiles/Prusa/filament/Generic TPU HF @Prusa base.json delete mode 100644 resources/profiles/Prusa/filament/Prusament ASA @CORE One MMU3.json delete mode 100644 resources/profiles/Prusa/filament/Prusament ASA @XL 5T.json delete mode 100644 resources/profiles/Prusa/filament/Prusament PA-CF @CORE One MMU3.json delete mode 100644 resources/profiles/Prusa/filament/Prusament PA-CF @XL.json rename resources/profiles/Prusa/filament/{Prusament PA-CF @CORE One 0.6.json => Prusament PA11 Carbon Fiber @CORE One 0.6.json} (52%) rename resources/profiles/Prusa/filament/{Prusament PA-CF @CORE One 0.8.json => Prusament PA11 Carbon Fiber @CORE One 0.8.json} (52%) rename resources/profiles/Prusa/filament/{Prusament PA-CF @CORE One.json => Prusament PA11 Carbon Fiber @CORE One.json} (83%) rename resources/profiles/Prusa/filament/{Prusament PA-CF @XL 5T.json => Prusament PA11 Carbon Fiber @XL.json} (63%) delete mode 100644 resources/profiles/Prusa/filament/Prusament PC Blend @CORE One MMU3.json delete mode 100644 resources/profiles/Prusa/filament/Prusament PC Blend @XL 5T.json rename resources/profiles/Prusa/filament/{Prusament PC-CF @CORE One 0.6.json => Prusament PC Blend Carbon Fiber @CORE One 0.6.json} (55%) rename resources/profiles/Prusa/filament/{Prusament PC-CF @CORE One 0.8.json => Prusament PC Blend Carbon Fiber @CORE One 0.8.json} (55%) rename resources/profiles/Prusa/filament/{Prusament PC-CF @CORE One.json => Prusament PC Blend Carbon Fiber @CORE One.json} (83%) rename resources/profiles/Prusa/filament/{Prusament PC-CF @XL 5T.json => Prusament PC Blend Carbon Fiber @XL.json} (63%) delete mode 100644 resources/profiles/Prusa/filament/Prusament PC-CF @CORE One MMU3.json delete mode 100644 resources/profiles/Prusa/filament/Prusament PC-CF @XL.json delete mode 100644 resources/profiles/Prusa/filament/Prusament PETG @CORE One MMU3.json create mode 100644 resources/profiles/Prusa/filament/Prusament PETG @Prusa CORE One INDX.json delete mode 100644 resources/profiles/Prusa/filament/Prusament PETG @XL 5T.json delete mode 100644 resources/profiles/Prusa/filament/Prusament PLA @CORE One MMU3.json create mode 100644 resources/profiles/Prusa/filament/Prusament PLA @Prusa CORE One INDX.json delete mode 100644 resources/profiles/Prusa/filament/Prusament PLA @XL 5T.json delete mode 100644 resources/profiles/Prusa/filament/Prusament PVB @CORE One MMU3.json delete mode 100644 resources/profiles/Prusa/filament/Prusament PVB @XL 5T.json delete mode 100644 resources/profiles/Prusa/filament/Prusament rPLA @CORE One MMU3.json delete mode 100644 resources/profiles/Prusa/filament/Prusament rPLA @XL 5T.json create mode 100644 resources/profiles/Prusa/machine/Prusa CORE One INDX 4T HF 0.4 nozzle.json create mode 100644 resources/profiles/Prusa/machine/Prusa CORE One INDX 4T.json create mode 100644 resources/profiles/Prusa/machine/Prusa CORE One INDX 8T HF 0.4 nozzle.json create mode 100644 resources/profiles/Prusa/machine/Prusa CORE One INDX 8T.json create mode 100644 resources/profiles/Prusa/machine/Prusa MK4 MMU3 0.4 nozzle.json create mode 100644 resources/profiles/Prusa/machine/Prusa MK4 MMU3 0.6 nozzle.json create mode 100644 resources/profiles/Prusa/machine/Prusa MK4 MMU3 HF.json create mode 100644 resources/profiles/Prusa/machine/Prusa MK4 MMU3 HF0.4 nozzle.json create mode 100644 resources/profiles/Prusa/machine/Prusa MK4 MMU3.json create mode 100644 resources/profiles/Prusa/machine/fdm_machine_common_coreone_indx.json create mode 100644 resources/profiles/Prusa/machine/fdm_machine_common_mk4_mmu3.json create mode 100644 resources/profiles/Prusa/machine/fdm_machine_common_nextruder.json create mode 100644 resources/profiles/Prusa/process/0.10mm Fine @Prusa CORE One INDX HF 0.4.json create mode 100644 resources/profiles/Prusa/process/0.15mm Detail @Prusa CORE One INDX HF 0.4.json create mode 100644 resources/profiles/Prusa/process/0.20mm Balanced @Prusa CORE One INDX HF 0.4.json create mode 100644 resources/profiles/Prusa/process/0.20mm SPEED @MK4 MMU3 0.4.json create mode 100644 resources/profiles/Prusa/process/0.20mm SPEED @MK4 MMU3 HF0.4.json create mode 100644 resources/profiles/Prusa/process/0.25mm Draft @Prusa CORE One INDX HF 0.4.json create mode 100644 resources/profiles/Prusa/process/0.25mm SPEED @MK4 MMU3 0.6.json create mode 100644 resources/profiles/Prusa/process/fdm_process_coreone_indx.json create mode 100644 resources/profiles/Prusa/process/fdm_process_mk4_mmu3.json diff --git a/docs/HLSD/prusa-indx-profiles.md b/docs/HLSD/prusa-indx-profiles.md new file mode 100644 index 0000000000..272e5bb5aa --- /dev/null +++ b/docs/HLSD/prusa-indx-profiles.md @@ -0,0 +1,54 @@ +# Prusa CORE One INDX profiles + +The Prusa bundle provides separate four-tool and eight-tool CORE One INDX models +with 0.4 mm high-flow nozzles and a 248 x 205 x 270 mm printable volume. These are +independent-tool printers, not single-extruder MMU3 machines. Both inherit +`fdm_machine_common_coreone_indx`, which inherits the ordinary CORE One HF +printer; the concrete printer presets supply their tool-count-dependent arrays. The bed and wizard resources come from Prusa. + +The source configuration is PrusaResearch 2.5.10 from +[Prusa's profile repository](https://github.com/prusa3d/PrusaSlicer-settings-prusa-fff/blob/65c5c8f1e1c3836f306119c49d717759cbc368db/PrusaResearch/2.5.10.ini). +Its printer, process and filament settings are translated to Orca option names. +The supplied process presets cover 0.10, 0.15, 0.20 and 0.25 mm layers. Their +shared `fdm_process_coreone_indx` base inherits the ordinary CORE One HF SPEED +process, with explicit INDX differences and layer-specific child settings. +Material presets are shared with the ordinary CORE One family. + +## Tool changes and extrusion state + +The start script initializes a persistent `tool_init` vector, counts the tools +used by the job, homes and probes using a loaded tool, calibrates the used tools, +and primes the initial tool at the cleaning station. The change script preserves +Prusa's `G27`, `P0`, `T`, `G12`, `G750` and `M906` sequences. It updates +`e_retracted` so Orca's subsequent unretraction agrees with the script's extrusion. +Per-tool temperature commands are guarded by `is_extruder_used`. + +The off-bed purge station is the default. With a prime tower enabled, a newly +used tool still receives its initial station purge, while an initialized tool +uses the source's wipe-tower preparation path. `tool_init` persists across these +changes; treating every tool selection as first use would change the purge and +deretraction sequence. + +Purge volume uses the filament's minimal purge setting. Orca's optional flush +volumetric speed is divided by filament cross-sectional area before it is used +as a linear extrusion-speed override. Prusa's separate `filament_flush_volume` +override is not available in these profiles. The source's `EXCLUDE_E_START` and +`EXCLUDE_E_END` internal markers become comments rather than printer commands. + +Pressure-advance restoration and automatic pressure-advance emission use the +selected filament preset's settings. These profiles do not impose machine-owned +filament overrides. Dock-fan control retains the source's material and layer +conditions; shutdown parks the tool and turns off the used heaters and dock fan. + +## Configuration boundaries + +The scripts use Orca's temperature, retraction, fan and speed option names. The +nozzle-check high-flow flag is fixed because these presets describe HF nozzles; +the abrasive-material flag is derived from the filament's required nozzle HRC. +An unset idle temperature uses Orca's zero sentinel. ABS's source XY shrinkage +compensation is represented using Orca's retained-size percentage. + +Prusa's consistent-surface cooling strategy and filament-specific infill crossing +speed limits have no direct Orca profile equivalent. These presets use Orca's +native layer-time cooling and material volumetric limits. They do not add slicer +features or change existing Prusa printer profiles. diff --git a/resources/profiles/Prusa.json b/resources/profiles/Prusa.json index c0c6ce2f4e..57884bea9b 100644 --- a/resources/profiles/Prusa.json +++ b/resources/profiles/Prusa.json @@ -1,6 +1,6 @@ { "name": "Prusa", - "version": "02.04.00.09", + "version": "02.04.00.15", "force_update": "0", "description": "Prusa configurations", "machine_model_list": [ @@ -12,6 +12,14 @@ "name": "Prusa CORE One HF", "sub_path": "machine/Prusa CORE One HF.json" }, + { + "name": "Prusa CORE One INDX 4T", + "sub_path": "machine/Prusa CORE One INDX 4T.json" + }, + { + "name": "Prusa CORE One INDX 8T", + "sub_path": "machine/Prusa CORE One INDX 8T.json" + }, { "name": "Prusa CORE One L", "sub_path": "machine/Prusa CORE One L.json" @@ -44,6 +52,14 @@ "name": "Prusa MK4", "sub_path": "machine/Prusa MK4.json" }, + { + "name": "Prusa MK4 MMU3", + "sub_path": "machine/Prusa MK4 MMU3.json" + }, + { + "name": "Prusa MK4 MMU3 HF", + "sub_path": "machine/Prusa MK4 MMU3 HF.json" + }, { "name": "Prusa MK4S", "sub_path": "machine/Prusa MK4S.json" @@ -707,24 +723,8 @@ "sub_path": "process/0.25mm Speed @MINIIS.json" }, { - "name": "0.15mm BALANCED @COREONE0.4 + MMU3", - "sub_path": "process/0.15mm BALANCED @COREONE0.4 + MMU3.json" - }, - { - "name": "0.20mm BALANCED @COREONE0.4 + MMU3", - "sub_path": "process/0.20mm BALANCED @COREONE0.4 + MMU3.json" - }, - { - "name": "0.25mm BALANCED @COREONE0.4 + MMU3", - "sub_path": "process/0.25mm BALANCED @COREONE0.4 + MMU3.json" - }, - { - "name": "0.25mm SPEED @COREONE0.4 + MMU3", - "sub_path": "process/0.25mm SPEED @COREONE0.4 + MMU3.json" - }, - { - "name": "0.25mm STRUCTURAL @COREONE0.4 + MMU3", - "sub_path": "process/0.25mm STRUCTURAL @COREONE0.4 + MMU3.json" + "name": "fdm_process_mk4_mmu3", + "sub_path": "process/fdm_process_mk4_mmu3.json" }, { "name": "0.05mm DETAIL @MK4S 0.25", @@ -1130,6 +1130,18 @@ "name": "0.55mm Draft @Prusa XL 5T 0.8", "sub_path": "process/0.55mm Draft @Prusa XL 5T 0.8.json" }, + { + "name": "0.20mm SPEED @MK4 MMU3 0.4", + "sub_path": "process/0.20mm SPEED @MK4 MMU3 0.4.json" + }, + { + "name": "0.20mm SPEED @MK4 MMU3 HF0.4", + "sub_path": "process/0.20mm SPEED @MK4 MMU3 HF0.4.json" + }, + { + "name": "0.25mm SPEED @MK4 MMU3 0.6", + "sub_path": "process/0.25mm SPEED @MK4 MMU3 0.6.json" + }, { "name": "0.05mm DETAIL @CORE One 0.25", "sub_path": "process/0.05mm DETAIL @CORE One 0.25.json" @@ -1194,6 +1206,10 @@ "name": "0.10mm FAST DETAIL @CORE One L 0.4", "sub_path": "process/0.10mm FAST DETAIL @CORE One L 0.4.json" }, + { + "name": "0.15mm BALANCED @COREONE0.4 + MMU3", + "sub_path": "process/0.15mm BALANCED @COREONE0.4 + MMU3.json" + }, { "name": "0.15mm SPEED @COREONE0.4 + MMU3", "sub_path": "process/0.15mm SPEED @COREONE0.4 + MMU3.json" @@ -1218,6 +1234,10 @@ "name": "0.20mm SOLUBLE INTERFACE @COREONE0.4 + MMU3", "sub_path": "process/0.20mm SOLUBLE INTERFACE @COREONE0.4 + MMU3.json" }, + { + "name": "0.20mm BALANCED @COREONE0.4 + MMU3", + "sub_path": "process/0.20mm BALANCED @COREONE0.4 + MMU3.json" + }, { "name": "0.20mm SPEED @COREONE0.4 + MMU3", "sub_path": "process/0.20mm SPEED @COREONE0.4 + MMU3.json" @@ -1274,6 +1294,10 @@ "name": "0.20mm STRUCTURAL @CORE One L 0.6", "sub_path": "process/0.20mm STRUCTURAL @CORE One L 0.6.json" }, + { + "name": "fdm_process_coreone_indx", + "sub_path": "process/fdm_process_coreone_indx.json" + }, { "name": "0.15mm STRUCTURAL @CORE One 0.4", "sub_path": "process/0.15mm STRUCTURAL @CORE One 0.4.json" @@ -1314,6 +1338,14 @@ "name": "0.25mm STRUCTURAL @CORE One L 0.6", "sub_path": "process/0.25mm STRUCTURAL @CORE One L 0.6.json" }, + { + "name": "0.25mm BALANCED @COREONE0.4 + MMU3", + "sub_path": "process/0.25mm BALANCED @COREONE0.4 + MMU3.json" + }, + { + "name": "0.25mm SPEED @COREONE0.4 + MMU3", + "sub_path": "process/0.25mm SPEED @COREONE0.4 + MMU3.json" + }, { "name": "0.30mm SPEED @CORE One HF 0.8", "sub_path": "process/0.30mm SPEED @CORE One HF 0.8.json" @@ -1466,10 +1498,30 @@ "name": "0.20mm STRUCTURAL @COREONE0.6 + MMU3", "sub_path": "process/0.20mm STRUCTURAL @COREONE0.6 + MMU3.json" }, + { + "name": "0.10mm Fine @Prusa CORE One INDX HF 0.4", + "sub_path": "process/0.10mm Fine @Prusa CORE One INDX HF 0.4.json" + }, + { + "name": "0.15mm Detail @Prusa CORE One INDX HF 0.4", + "sub_path": "process/0.15mm Detail @Prusa CORE One INDX HF 0.4.json" + }, + { + "name": "0.20mm Balanced @Prusa CORE One INDX HF 0.4", + "sub_path": "process/0.20mm Balanced @Prusa CORE One INDX HF 0.4.json" + }, + { + "name": "0.25mm Draft @Prusa CORE One INDX HF 0.4", + "sub_path": "process/0.25mm Draft @Prusa CORE One INDX HF 0.4.json" + }, { "name": "0.15mm STRUCTURAL @COREONE0.4 + MMU3", "sub_path": "process/0.15mm STRUCTURAL @COREONE0.4 + MMU3.json" }, + { + "name": "0.25mm STRUCTURAL @COREONE0.4 + MMU3", + "sub_path": "process/0.25mm STRUCTURAL @COREONE0.4 + MMU3.json" + }, { "name": "0.25mm STRUCTURAL @COREONE0.6 + MMU3", "sub_path": "process/0.25mm STRUCTURAL @COREONE0.6 + MMU3.json" @@ -1520,10 +1572,50 @@ } ], "filament_list": [ + { + "name": "Generic ASA @Prusa CORE One", + "sub_path": "filament/Generic ASA @Prusa CORE One.json" + }, + { + "name": "Generic PLA Silk @Prusa CORE One", + "sub_path": "filament/Generic PLA Silk @Prusa CORE One.json" + }, { "name": "fdm_filament_common", "sub_path": "filament/fdm_filament_common.json" }, + { + "name": "Generic ASA @Prusa CORE One 0.6", + "sub_path": "filament/Generic ASA @Prusa CORE One 0.6.json" + }, + { + "name": "Generic ASA @Prusa CORE One 0.8", + "sub_path": "filament/Generic ASA @Prusa CORE One 0.8.json" + }, + { + "name": "Generic ASA @Prusa CORE One HF 0.4", + "sub_path": "filament/Generic ASA @Prusa CORE One HF 0.4.json" + }, + { + "name": "Generic ASA @Prusa CORE One HF 0.5", + "sub_path": "filament/Generic ASA @Prusa CORE One HF 0.5.json" + }, + { + "name": "Generic ASA @Prusa CORE One HF 0.6", + "sub_path": "filament/Generic ASA @Prusa CORE One HF 0.6.json" + }, + { + "name": "Generic ASA @Prusa CORE One HF 0.8", + "sub_path": "filament/Generic ASA @Prusa CORE One HF 0.8.json" + }, + { + "name": "Generic PLA Silk @Prusa CORE One 0.6", + "sub_path": "filament/Generic PLA Silk @Prusa CORE One 0.6.json" + }, + { + "name": "Generic PLA Silk @Prusa CORE One 0.8", + "sub_path": "filament/Generic PLA Silk @Prusa CORE One 0.8.json" + }, { "name": "fdm_filament_abs", "sub_path": "filament/fdm_filament_abs.json" @@ -1572,10 +1664,6 @@ "name": "fdm_filament_tpu", "sub_path": "filament/fdm_filament_tpu.json" }, - { - "name": "Generic ABS @Prusa CORE One", - "sub_path": "filament/Generic ABS @Prusa CORE One.json" - }, { "name": "Generic ABS @Prusa MK3.5", "sub_path": "filament/Generic ABS @Prusa MK3.5.json" @@ -1612,18 +1700,10 @@ "name": "Generic ABS HF @Prusa MK3.5 0.8", "sub_path": "filament/Generic ABS HF @Prusa MK3.5 0.8.json" }, - { - "name": "Generic ABS HF @Prusa base", - "sub_path": "filament/Generic ABS HF @Prusa base.json" - }, { "name": "Generic ASA @Prusa", "sub_path": "filament/Generic ASA @Prusa.json" }, - { - "name": "Generic ASA @Prusa CORE One", - "sub_path": "filament/Generic ASA @Prusa CORE One.json" - }, { "name": "Generic ASA @Prusa MINIIS", "sub_path": "filament/Generic ASA @Prusa MINIIS.json" @@ -1700,22 +1780,10 @@ "name": "Prusament ASA @XL", "sub_path": "filament/Prusament ASA @XL.json" }, - { - "name": "Prusament ASA @XL 5T", - "sub_path": "filament/Prusament ASA @XL 5T.json" - }, { "name": "Generic FLEX @Prusa XL", "sub_path": "filament/Generic FLEX @Prusa XL.json" }, - { - "name": "Generic FLEX @Prusa XL 5T", - "sub_path": "filament/Generic FLEX @Prusa XL 5T.json" - }, - { - "name": "Generic TPU @Prusa CORE One", - "sub_path": "filament/Generic TPU @Prusa CORE One.json" - }, { "name": "Generic PA @Prusa MK3.5", "sub_path": "filament/Generic PA @Prusa MK3.5.json" @@ -1757,16 +1825,8 @@ "sub_path": "filament/Generic PA-CF @Prusa base.json" }, { - "name": "Prusament PA-CF @CORE One", - "sub_path": "filament/Prusament PA-CF @CORE One.json" - }, - { - "name": "Prusament PA-CF @XL", - "sub_path": "filament/Prusament PA-CF @XL.json" - }, - { - "name": "Prusament PA-CF @XL 5T", - "sub_path": "filament/Prusament PA-CF @XL 5T.json" + "name": "Prusament PA11 Carbon Fiber @CORE One", + "sub_path": "filament/Prusament PA11 Carbon Fiber @CORE One.json" }, { "name": "Prusament PA11 Carbon Fiber @MK3S", @@ -1781,8 +1841,8 @@ "sub_path": "filament/Prusament PA11 Carbon Fiber @MK4S.json" }, { - "name": "Generic PC @Prusa", - "sub_path": "filament/Generic PC @Prusa.json" + "name": "Prusament PA11 Carbon Fiber @XL", + "sub_path": "filament/Prusament PA11 Carbon Fiber @XL.json" }, { "name": "Generic PC @Prusa MINIIS", @@ -1853,12 +1913,8 @@ "sub_path": "filament/Prusament PC Blend @XL.json" }, { - "name": "Prusament PC Blend @XL 5T", - "sub_path": "filament/Prusament PC Blend @XL 5T.json" - }, - { - "name": "Prusament PC-CF @CORE One", - "sub_path": "filament/Prusament PC-CF @CORE One.json" + "name": "Prusament PC Blend Carbon Fiber @CORE One", + "sub_path": "filament/Prusament PC Blend Carbon Fiber @CORE One.json" }, { "name": "Prusament PC Blend Carbon Fiber @MK3S", @@ -1873,16 +1929,8 @@ "sub_path": "filament/Prusament PC Blend Carbon Fiber @MK4S.json" }, { - "name": "Prusament PC-CF @XL", - "sub_path": "filament/Prusament PC-CF @XL.json" - }, - { - "name": "Prusament PC-CF @XL 5T", - "sub_path": "filament/Prusament PC-CF @XL 5T.json" - }, - { - "name": "Generic PETG @Prusa CORE One", - "sub_path": "filament/Generic PETG @Prusa CORE One.json" + "name": "Prusament PC Blend Carbon Fiber @XL", + "sub_path": "filament/Prusament PC Blend Carbon Fiber @XL.json" }, { "name": "Generic PETG @Prusa MK3.5", @@ -1920,10 +1968,6 @@ "name": "Generic PETG HF @Prusa MK3.5 0.8", "sub_path": "filament/Generic PETG HF @Prusa MK3.5 0.8.json" }, - { - "name": "Generic PETG HF @Prusa base", - "sub_path": "filament/Generic PETG HF @Prusa base.json" - }, { "name": "Prusament PETG @CORE One", "sub_path": "filament/Prusament PETG @CORE One.json" @@ -1941,12 +1985,12 @@ "sub_path": "filament/Prusament PETG @MK4S.json" }, { - "name": "Prusament PETG @base", - "sub_path": "filament/Prusament PETG @base.json" + "name": "Prusament PETG @Prusa CORE One INDX", + "sub_path": "filament/Prusament PETG @Prusa CORE One INDX.json" }, { - "name": "Generic PLA @Prusa CORE One", - "sub_path": "filament/Generic PLA @Prusa CORE One.json" + "name": "Prusament PETG @base", + "sub_path": "filament/Prusament PETG @base.json" }, { "name": "Generic PLA @Prusa MK3.5", @@ -1984,14 +2028,6 @@ "name": "Generic PLA HF @Prusa MK3.5 0.8", "sub_path": "filament/Generic PLA HF @Prusa MK3.5 0.8.json" }, - { - "name": "Generic PLA HF @Prusa base", - "sub_path": "filament/Generic PLA HF @Prusa base.json" - }, - { - "name": "Generic PLA Silk @Prusa CORE One", - "sub_path": "filament/Generic PLA Silk @Prusa CORE One.json" - }, { "name": "Generic PLA-CF @Prusa MK3.5", "sub_path": "filament/Generic PLA-CF @Prusa MK3.5.json" @@ -2028,6 +2064,10 @@ "name": "Prusament PLA @MK4S", "sub_path": "filament/Prusament PLA @MK4S.json" }, + { + "name": "Prusament PLA @Prusa CORE One INDX", + "sub_path": "filament/Prusament PLA @Prusa CORE One INDX.json" + }, { "name": "Prusament PLA @base", "sub_path": "filament/Prusament PLA @base.json" @@ -2084,10 +2124,6 @@ "name": "Generic PVA HF @Prusa MK3.5 0.8", "sub_path": "filament/Generic PVA HF @Prusa MK3.5 0.8.json" }, - { - "name": "Generic PVA HF @Prusa base", - "sub_path": "filament/Generic PVA HF @Prusa base.json" - }, { "name": "Prusament PVB @CORE One", "sub_path": "filament/Prusament PVB @CORE One.json" @@ -2108,10 +2144,6 @@ "name": "Prusament PVB @XL", "sub_path": "filament/Prusament PVB @XL.json" }, - { - "name": "Prusament PVB @XL 5T", - "sub_path": "filament/Prusament PVB @XL 5T.json" - }, { "name": "Generic TPU @Prusa MK3.5", "sub_path": "filament/Generic TPU @Prusa MK3.5.json" @@ -2128,46 +2160,6 @@ "name": "Generic TPU HF @Prusa MK3.5", "sub_path": "filament/Generic TPU HF @Prusa MK3.5.json" }, - { - "name": "Generic TPU HF @Prusa base", - "sub_path": "filament/Generic TPU HF @Prusa base.json" - }, - { - "name": "Generic ABS @Prusa CORE One 0.6", - "sub_path": "filament/Generic ABS @Prusa CORE One 0.6.json" - }, - { - "name": "Generic ABS @Prusa CORE One 0.8", - "sub_path": "filament/Generic ABS @Prusa CORE One 0.8.json" - }, - { - "name": "Generic ABS @Prusa CORE One HF 0.4", - "sub_path": "filament/Generic ABS @Prusa CORE One HF 0.4.json" - }, - { - "name": "Generic ABS @Prusa CORE One HF 0.5", - "sub_path": "filament/Generic ABS @Prusa CORE One HF 0.5.json" - }, - { - "name": "Generic ABS @Prusa CORE One HF 0.6", - "sub_path": "filament/Generic ABS @Prusa CORE One HF 0.6.json" - }, - { - "name": "Generic ABS @Prusa CORE One HF 0.8", - "sub_path": "filament/Generic ABS @Prusa CORE One HF 0.8.json" - }, - { - "name": "Generic ABS @Prusa CORE One MMU3", - "sub_path": "filament/Generic ABS @Prusa CORE One MMU3.json" - }, - { - "name": "Generic ABS @Prusa MK4S 0.6", - "sub_path": "filament/Generic ABS @Prusa MK4S 0.6.json" - }, - { - "name": "Generic ABS @Prusa MK4S 0.8", - "sub_path": "filament/Generic ABS @Prusa MK4S 0.8.json" - }, { "name": "Generic ABS @Prusa MK4S HF0.4", "sub_path": "filament/Generic ABS @Prusa MK4S HF0.4.json" @@ -2176,6 +2168,14 @@ "name": "Generic ABS @Prusa", "sub_path": "filament/Generic ABS @Prusa.json" }, + { + "name": "Generic ABS @Prusa CORE One", + "sub_path": "filament/Generic ABS @Prusa CORE One.json" + }, + { + "name": "Generic ABS @Prusa CORE One INDX", + "sub_path": "filament/Generic ABS @Prusa CORE One INDX.json" + }, { "name": "Generic ABS @Prusa MINIIS", "sub_path": "filament/Generic ABS @Prusa MINIIS.json" @@ -2200,10 +2200,6 @@ "name": "Generic ABS @Prusa XL", "sub_path": "filament/Generic ABS @Prusa XL.json" }, - { - "name": "Generic ABS @Prusa XL 5T", - "sub_path": "filament/Generic ABS @Prusa XL 5T.json" - }, { "name": "Generic ABS HF @Prusa MINIIS", "sub_path": "filament/Generic ABS HF @Prusa MINIIS.json" @@ -2216,34 +2212,6 @@ "name": "Generic ABS HF @Prusa MINIIS 0.8", "sub_path": "filament/Generic ABS HF @Prusa MINIIS 0.8.json" }, - { - "name": "Generic ASA @Prusa CORE One 0.6", - "sub_path": "filament/Generic ASA @Prusa CORE One 0.6.json" - }, - { - "name": "Generic ASA @Prusa CORE One 0.8", - "sub_path": "filament/Generic ASA @Prusa CORE One 0.8.json" - }, - { - "name": "Generic ASA @Prusa CORE One HF 0.4", - "sub_path": "filament/Generic ASA @Prusa CORE One HF 0.4.json" - }, - { - "name": "Generic ASA @Prusa CORE One HF 0.5", - "sub_path": "filament/Generic ASA @Prusa CORE One HF 0.5.json" - }, - { - "name": "Generic ASA @Prusa CORE One HF 0.6", - "sub_path": "filament/Generic ASA @Prusa CORE One HF 0.6.json" - }, - { - "name": "Generic ASA @Prusa CORE One HF 0.8", - "sub_path": "filament/Generic ASA @Prusa CORE One HF 0.8.json" - }, - { - "name": "Generic ASA @Prusa CORE One MMU3", - "sub_path": "filament/Generic ASA @Prusa CORE One MMU3.json" - }, { "name": "Generic ASA @Prusa MK4S 0.6", "sub_path": "filament/Generic ASA @Prusa MK4S 0.6.json" @@ -2292,10 +2260,6 @@ "name": "Prusament ASA @CORE One HF 0.8", "sub_path": "filament/Prusament ASA @CORE One HF 0.8.json" }, - { - "name": "Prusament ASA @CORE One MMU3", - "sub_path": "filament/Prusament ASA @CORE One MMU3.json" - }, { "name": "Prusament ASA @MK4S 0.6", "sub_path": "filament/Prusament ASA @MK4S 0.6.json" @@ -2320,18 +2284,6 @@ "name": "Prusament ASA @MK4S HF0.8", "sub_path": "filament/Prusament ASA @MK4S HF0.8.json" }, - { - "name": "Generic TPU @Prusa CORE One 0.6", - "sub_path": "filament/Generic TPU @Prusa CORE One 0.6.json" - }, - { - "name": "Generic TPU @Prusa CORE One 0.8", - "sub_path": "filament/Generic TPU @Prusa CORE One 0.8.json" - }, - { - "name": "Generic TPU @Prusa CORE One MMU3", - "sub_path": "filament/Generic TPU @Prusa CORE One MMU3.json" - }, { "name": "Generic PA @Prusa", "sub_path": "filament/Generic PA @Prusa.json" @@ -2373,16 +2325,12 @@ "sub_path": "filament/Generic PA-CF @Prusa MINIIS 0.8.json" }, { - "name": "Prusament PA-CF @CORE One 0.6", - "sub_path": "filament/Prusament PA-CF @CORE One 0.6.json" + "name": "Prusament PA11 Carbon Fiber @CORE One 0.6", + "sub_path": "filament/Prusament PA11 Carbon Fiber @CORE One 0.6.json" }, { - "name": "Prusament PA-CF @CORE One 0.8", - "sub_path": "filament/Prusament PA-CF @CORE One 0.8.json" - }, - { - "name": "Prusament PA-CF @CORE One MMU3", - "sub_path": "filament/Prusament PA-CF @CORE One MMU3.json" + "name": "Prusament PA11 Carbon Fiber @CORE One 0.8", + "sub_path": "filament/Prusament PA11 Carbon Fiber @CORE One 0.8.json" }, { "name": "Prusament PA11 Carbon Fiber @MK4S 0.6", @@ -2444,10 +2392,6 @@ "name": "Prusament PC Blend @CORE One HF 0.8", "sub_path": "filament/Prusament PC Blend @CORE One HF 0.8.json" }, - { - "name": "Prusament PC Blend @CORE One MMU3", - "sub_path": "filament/Prusament PC Blend @CORE One MMU3.json" - }, { "name": "Prusament PC Blend @MK4S 0.6", "sub_path": "filament/Prusament PC Blend @MK4S 0.6.json" @@ -2473,16 +2417,12 @@ "sub_path": "filament/Prusament PC Blend @MK4S HF0.8.json" }, { - "name": "Prusament PC-CF @CORE One 0.6", - "sub_path": "filament/Prusament PC-CF @CORE One 0.6.json" + "name": "Prusament PC Blend Carbon Fiber @CORE One 0.6", + "sub_path": "filament/Prusament PC Blend Carbon Fiber @CORE One 0.6.json" }, { - "name": "Prusament PC-CF @CORE One 0.8", - "sub_path": "filament/Prusament PC-CF @CORE One 0.8.json" - }, - { - "name": "Prusament PC-CF @CORE One MMU3", - "sub_path": "filament/Prusament PC-CF @CORE One MMU3.json" + "name": "Prusament PC Blend Carbon Fiber @CORE One 0.8", + "sub_path": "filament/Prusament PC Blend Carbon Fiber @CORE One 0.8.json" }, { "name": "Prusament PC Blend Carbon Fiber @MK4S 0.6", @@ -2508,34 +2448,6 @@ "name": "Prusament PC Blend Carbon Fiber @MK4S HF0.8", "sub_path": "filament/Prusament PC Blend Carbon Fiber @MK4S HF0.8.json" }, - { - "name": "Generic PETG @Prusa CORE One 0.6", - "sub_path": "filament/Generic PETG @Prusa CORE One 0.6.json" - }, - { - "name": "Generic PETG @Prusa CORE One 0.8", - "sub_path": "filament/Generic PETG @Prusa CORE One 0.8.json" - }, - { - "name": "Generic PETG @Prusa CORE One HF 0.4", - "sub_path": "filament/Generic PETG @Prusa CORE One HF 0.4.json" - }, - { - "name": "Generic PETG @Prusa CORE One HF 0.5", - "sub_path": "filament/Generic PETG @Prusa CORE One HF 0.5.json" - }, - { - "name": "Generic PETG @Prusa CORE One HF 0.6", - "sub_path": "filament/Generic PETG @Prusa CORE One HF 0.6.json" - }, - { - "name": "Generic PETG @Prusa CORE One HF 0.8", - "sub_path": "filament/Generic PETG @Prusa CORE One HF 0.8.json" - }, - { - "name": "Generic PETG @Prusa CORE One MMU3", - "sub_path": "filament/Generic PETG @Prusa CORE One MMU3.json" - }, { "name": "Generic PETG @Prusa MK4S 0.6", "sub_path": "filament/Generic PETG @Prusa MK4S 0.6.json" @@ -2552,6 +2464,14 @@ "name": "Generic PETG @Prusa", "sub_path": "filament/Generic PETG @Prusa.json" }, + { + "name": "Generic PETG @Prusa CORE One", + "sub_path": "filament/Generic PETG @Prusa CORE One.json" + }, + { + "name": "Generic PETG @Prusa CORE One INDX", + "sub_path": "filament/Generic PETG @Prusa CORE One INDX.json" + }, { "name": "Generic PETG @Prusa MINIIS", "sub_path": "filament/Generic PETG @Prusa MINIIS.json" @@ -2576,10 +2496,6 @@ "name": "Generic PETG @Prusa XL", "sub_path": "filament/Generic PETG @Prusa XL.json" }, - { - "name": "Generic PETG @Prusa XL 5T", - "sub_path": "filament/Generic PETG @Prusa XL 5T.json" - }, { "name": "Generic PETG HF @Prusa MINIIS", "sub_path": "filament/Generic PETG HF @Prusa MINIIS.json" @@ -2616,10 +2532,6 @@ "name": "Prusament PETG @CORE One HF 0.8", "sub_path": "filament/Prusament PETG @CORE One HF 0.8.json" }, - { - "name": "Prusament PETG @CORE One MMU3", - "sub_path": "filament/Prusament PETG @CORE One MMU3.json" - }, { "name": "Prusament PETG @MK4S 0.6", "sub_path": "filament/Prusament PETG @MK4S 0.6.json" @@ -2648,38 +2560,6 @@ "name": "Prusament PETG @XL", "sub_path": "filament/Prusament PETG @XL.json" }, - { - "name": "Prusament PETG @XL 5T", - "sub_path": "filament/Prusament PETG @XL 5T.json" - }, - { - "name": "Generic PLA @Prusa CORE One 0.6", - "sub_path": "filament/Generic PLA @Prusa CORE One 0.6.json" - }, - { - "name": "Generic PLA @Prusa CORE One 0.8", - "sub_path": "filament/Generic PLA @Prusa CORE One 0.8.json" - }, - { - "name": "Generic PLA @Prusa CORE One HF 0.4", - "sub_path": "filament/Generic PLA @Prusa CORE One HF 0.4.json" - }, - { - "name": "Generic PLA @Prusa CORE One HF 0.5", - "sub_path": "filament/Generic PLA @Prusa CORE One HF 0.5.json" - }, - { - "name": "Generic PLA @Prusa CORE One HF 0.6", - "sub_path": "filament/Generic PLA @Prusa CORE One HF 0.6.json" - }, - { - "name": "Generic PLA @Prusa CORE One HF 0.8", - "sub_path": "filament/Generic PLA @Prusa CORE One HF 0.8.json" - }, - { - "name": "Generic PLA @Prusa CORE One MMU3", - "sub_path": "filament/Generic PLA @Prusa CORE One MMU3.json" - }, { "name": "Generic PLA @Prusa MK4S 0.6", "sub_path": "filament/Generic PLA @Prusa MK4S 0.6.json" @@ -2700,6 +2580,14 @@ "name": "Generic PLA @Prusa", "sub_path": "filament/Generic PLA @Prusa.json" }, + { + "name": "Generic PLA @Prusa CORE One", + "sub_path": "filament/Generic PLA @Prusa CORE One.json" + }, + { + "name": "Generic PLA @Prusa CORE One INDX", + "sub_path": "filament/Generic PLA @Prusa CORE One INDX.json" + }, { "name": "Generic PLA @Prusa MINIIS", "sub_path": "filament/Generic PLA @Prusa MINIIS.json" @@ -2724,10 +2612,6 @@ "name": "Generic PLA @Prusa XL", "sub_path": "filament/Generic PLA @Prusa XL.json" }, - { - "name": "Generic PLA @Prusa XL 5T", - "sub_path": "filament/Generic PLA @Prusa XL 5T.json" - }, { "name": "Generic PLA HF @Prusa MINIIS", "sub_path": "filament/Generic PLA HF @Prusa MINIIS.json" @@ -2740,18 +2624,6 @@ "name": "Generic PLA HF @Prusa MINIIS 0.8", "sub_path": "filament/Generic PLA HF @Prusa MINIIS 0.8.json" }, - { - "name": "Generic PLA Silk @Prusa CORE One 0.6", - "sub_path": "filament/Generic PLA Silk @Prusa CORE One 0.6.json" - }, - { - "name": "Generic PLA Silk @Prusa CORE One 0.8", - "sub_path": "filament/Generic PLA Silk @Prusa CORE One 0.8.json" - }, - { - "name": "Generic PLA Silk @Prusa CORE One MMU3", - "sub_path": "filament/Generic PLA Silk @Prusa CORE One MMU3.json" - }, { "name": "Generic PLA-CF @Prusa", "sub_path": "filament/Generic PLA-CF @Prusa.json" @@ -2796,10 +2668,6 @@ "name": "Prusament PLA @CORE One HF 0.8", "sub_path": "filament/Prusament PLA @CORE One HF 0.8.json" }, - { - "name": "Prusament PLA @CORE One MMU3", - "sub_path": "filament/Prusament PLA @CORE One MMU3.json" - }, { "name": "Prusament PLA @MK4S 0.6", "sub_path": "filament/Prusament PLA @MK4S 0.6.json" @@ -2828,10 +2696,6 @@ "name": "Prusament PLA @XL", "sub_path": "filament/Prusament PLA @XL.json" }, - { - "name": "Prusament PLA @XL 5T", - "sub_path": "filament/Prusament PLA @XL 5T.json" - }, { "name": "Prusament rPLA @CORE One 0.6", "sub_path": "filament/Prusament rPLA @CORE One 0.6.json" @@ -2840,10 +2704,6 @@ "name": "Prusament rPLA @CORE One 0.8", "sub_path": "filament/Prusament rPLA @CORE One 0.8.json" }, - { - "name": "Prusament rPLA @CORE One MMU3", - "sub_path": "filament/Prusament rPLA @CORE One MMU3.json" - }, { "name": "Prusament rPLA @MK4S 0.6", "sub_path": "filament/Prusament rPLA @MK4S 0.6.json" @@ -2872,10 +2732,6 @@ "name": "Prusament rPLA @XL", "sub_path": "filament/Prusament rPLA @XL.json" }, - { - "name": "Prusament rPLA @XL 5T", - "sub_path": "filament/Prusament rPLA @XL 5T.json" - }, { "name": "Generic PVA @Prusa", "sub_path": "filament/Generic PVA @Prusa.json" @@ -2916,10 +2772,6 @@ "name": "Prusament PVB @CORE One 0.8", "sub_path": "filament/Prusament PVB @CORE One 0.8.json" }, - { - "name": "Prusament PVB @CORE One MMU3", - "sub_path": "filament/Prusament PVB @CORE One MMU3.json" - }, { "name": "Prusament PVB @MK4S 0.6", "sub_path": "filament/Prusament PVB @MK4S 0.6.json" @@ -2956,6 +2808,10 @@ "name": "Generic TPU @Prusa", "sub_path": "filament/Generic TPU @Prusa.json" }, + { + "name": "Generic TPU @Prusa CORE One", + "sub_path": "filament/Generic TPU @Prusa CORE One.json" + }, { "name": "Generic TPU @Prusa MINIIS", "sub_path": "filament/Generic TPU @Prusa MINIIS.json" @@ -2980,6 +2836,26 @@ "name": "Generic ABS @Prusa MK4S HF0.8", "sub_path": "filament/Generic ABS @Prusa MK4S HF0.8.json" }, + { + "name": "Generic ABS @Prusa CORE One 0.8", + "sub_path": "filament/Generic ABS @Prusa CORE One 0.8.json" + }, + { + "name": "Generic ABS @Prusa CORE One HF 0.4", + "sub_path": "filament/Generic ABS @Prusa CORE One HF 0.4.json" + }, + { + "name": "Generic ABS @Prusa CORE One HF 0.5", + "sub_path": "filament/Generic ABS @Prusa CORE One HF 0.5.json" + }, + { + "name": "Generic ABS @Prusa CORE One HF 0.6", + "sub_path": "filament/Generic ABS @Prusa CORE One HF 0.6.json" + }, + { + "name": "Generic ABS @Prusa CORE One HF 0.8", + "sub_path": "filament/Generic ABS @Prusa CORE One HF 0.8.json" + }, { "name": "Generic ASA @Prusa MK4S HF0.5", "sub_path": "filament/Generic ASA @Prusa MK4S HF0.5.json" @@ -3004,6 +2880,30 @@ "name": "Generic PETG @Prusa MK4S HF0.8", "sub_path": "filament/Generic PETG @Prusa MK4S HF0.8.json" }, + { + "name": "Generic PETG @Prusa CORE One 0.6", + "sub_path": "filament/Generic PETG @Prusa CORE One 0.6.json" + }, + { + "name": "Generic PETG @Prusa CORE One 0.8", + "sub_path": "filament/Generic PETG @Prusa CORE One 0.8.json" + }, + { + "name": "Generic PETG @Prusa CORE One HF 0.4", + "sub_path": "filament/Generic PETG @Prusa CORE One HF 0.4.json" + }, + { + "name": "Generic PETG @Prusa CORE One HF 0.5", + "sub_path": "filament/Generic PETG @Prusa CORE One HF 0.5.json" + }, + { + "name": "Generic PETG @Prusa CORE One HF 0.6", + "sub_path": "filament/Generic PETG @Prusa CORE One HF 0.6.json" + }, + { + "name": "Generic PETG @Prusa CORE One HF 0.8", + "sub_path": "filament/Generic PETG @Prusa CORE One HF 0.8.json" + }, { "name": "Generic PLA @Prusa MK4S HF0.5", "sub_path": "filament/Generic PLA @Prusa MK4S HF0.5.json" @@ -3023,6 +2923,46 @@ { "name": "Generic PLA Silk @Prusa MK4S 0.8", "sub_path": "filament/Generic PLA Silk @Prusa MK4S 0.8.json" + }, + { + "name": "Generic PLA @Prusa CORE One 0.6", + "sub_path": "filament/Generic PLA @Prusa CORE One 0.6.json" + }, + { + "name": "Generic PLA @Prusa CORE One 0.8", + "sub_path": "filament/Generic PLA @Prusa CORE One 0.8.json" + }, + { + "name": "Generic PLA @Prusa CORE One HF 0.4", + "sub_path": "filament/Generic PLA @Prusa CORE One HF 0.4.json" + }, + { + "name": "Generic PLA @Prusa CORE One HF 0.5", + "sub_path": "filament/Generic PLA @Prusa CORE One HF 0.5.json" + }, + { + "name": "Generic PLA @Prusa CORE One HF 0.6", + "sub_path": "filament/Generic PLA @Prusa CORE One HF 0.6.json" + }, + { + "name": "Generic PLA @Prusa CORE One HF 0.8", + "sub_path": "filament/Generic PLA @Prusa CORE One HF 0.8.json" + }, + { + "name": "Generic TPU @Prusa CORE One 0.6", + "sub_path": "filament/Generic TPU @Prusa CORE One 0.6.json" + }, + { + "name": "Generic TPU @Prusa CORE One 0.8", + "sub_path": "filament/Generic TPU @Prusa CORE One 0.8.json" + }, + { + "name": "Generic PC @Prusa", + "sub_path": "filament/Generic PC @Prusa.json" + }, + { + "name": "Generic PLA Silk @Prusa CORE One INDX", + "sub_path": "filament/Generic PLA Silk @Prusa CORE One INDX.json" } ], "machine_list": [ @@ -3030,10 +2970,6 @@ "name": "fdm_machine_common", "sub_path": "machine/fdm_machine_common.json" }, - { - "name": "Prusa CORE One HF 0.4 nozzle", - "sub_path": "machine/Prusa CORE One HF 0.4 nozzle.json" - }, { "name": "Prusa CORE One L HF 0.4 nozzle", "sub_path": "machine/Prusa CORE One L HF 0.4 nozzle.json" @@ -3082,10 +3018,6 @@ "name": "Prusa MK4 0.25 nozzle", "sub_path": "machine/Prusa MK4 0.25 nozzle.json" }, - { - "name": "Prusa MK4 0.4 nozzle", - "sub_path": "machine/Prusa MK4 0.4 nozzle.json" - }, { "name": "Prusa MK4 0.6 nozzle", "sub_path": "machine/Prusa MK4 0.6 nozzle.json" @@ -3095,37 +3027,13 @@ "sub_path": "machine/Prusa MK4 0.8 nozzle.json" }, { - "name": "fdm_machine_common_mk4s", - "sub_path": "machine/fdm_machine_common_mk4s.json" + "name": "fdm_machine_common_nextruder", + "sub_path": "machine/fdm_machine_common_nextruder.json" }, { "name": "fdm_machine_common_xl", "sub_path": "machine/fdm_machine_common_xl.json" }, - { - "name": "Prusa CORE One 0.25 nozzle", - "sub_path": "machine/Prusa CORE One 0.25 nozzle.json" - }, - { - "name": "Prusa CORE One 0.3 nozzle", - "sub_path": "machine/Prusa CORE One 0.3 nozzle.json" - }, - { - "name": "Prusa CORE One 0.4 nozzle", - "sub_path": "machine/Prusa CORE One 0.4 nozzle.json" - }, - { - "name": "Prusa CORE One HF 0.5 nozzle", - "sub_path": "machine/Prusa CORE One HF 0.5 nozzle.json" - }, - { - "name": "Prusa CORE One HF 0.6 nozzle", - "sub_path": "machine/Prusa CORE One HF 0.6 nozzle.json" - }, - { - "name": "Prusa CORE One HF 0.8 nozzle", - "sub_path": "machine/Prusa CORE One HF 0.8 nozzle.json" - }, { "name": "Prusa CORE One L 0.4 nozzle", "sub_path": "machine/Prusa CORE One L 0.4 nozzle.json" @@ -3167,8 +3075,16 @@ "sub_path": "machine/Prusa MK3.5 0.8 nozzle.json" }, { - "name": "Prusa MK4S 0.4 nozzle", - "sub_path": "machine/Prusa MK4S 0.4 nozzle.json" + "name": "Prusa CORE One HF 0.4 nozzle", + "sub_path": "machine/Prusa CORE One HF 0.4 nozzle.json" + }, + { + "name": "Prusa MK4 0.4 nozzle", + "sub_path": "machine/Prusa MK4 0.4 nozzle.json" + }, + { + "name": "fdm_machine_common_mk4s", + "sub_path": "machine/fdm_machine_common_mk4s.json" }, { "name": "Prusa XL 0.25 nozzle", @@ -3198,22 +3114,6 @@ "name": "fdm_machine_common_xl_5t", "sub_path": "machine/fdm_machine_common_xl_5t.json" }, - { - "name": "Prusa CORE One MMU3 0.4 nozzle", - "sub_path": "machine/Prusa CORE One MMU3 0.4 nozzle.json" - }, - { - "name": "Prusa CORE One 0.5 nozzle", - "sub_path": "machine/Prusa CORE One 0.5 nozzle.json" - }, - { - "name": "Prusa CORE One 0.6 nozzle", - "sub_path": "machine/Prusa CORE One 0.6 nozzle.json" - }, - { - "name": "Prusa CORE One 0.8 nozzle", - "sub_path": "machine/Prusa CORE One 0.8 nozzle.json" - }, { "name": "Prusa CORE One L 0.5 nozzle", "sub_path": "machine/Prusa CORE One L 0.5 nozzle.json" @@ -3227,28 +3127,40 @@ "sub_path": "machine/Prusa CORE One L 0.8 nozzle.json" }, { - "name": "Prusa MK4S 0.25 nozzle", - "sub_path": "machine/Prusa MK4S 0.25 nozzle.json" + "name": "Prusa CORE One 0.25 nozzle", + "sub_path": "machine/Prusa CORE One 0.25 nozzle.json" }, { - "name": "Prusa MK4S 0.3 nozzle", - "sub_path": "machine/Prusa MK4S 0.3 nozzle.json" + "name": "Prusa CORE One 0.3 nozzle", + "sub_path": "machine/Prusa CORE One 0.3 nozzle.json" }, { - "name": "Prusa MK4S 0.5 nozzle", - "sub_path": "machine/Prusa MK4S 0.5 nozzle.json" + "name": "Prusa CORE One 0.4 nozzle", + "sub_path": "machine/Prusa CORE One 0.4 nozzle.json" }, { - "name": "Prusa MK4S 0.6 nozzle", - "sub_path": "machine/Prusa MK4S 0.6 nozzle.json" + "name": "Prusa CORE One HF 0.5 nozzle", + "sub_path": "machine/Prusa CORE One HF 0.5 nozzle.json" }, { - "name": "Prusa MK4S 0.8 nozzle", - "sub_path": "machine/Prusa MK4S 0.8 nozzle.json" + "name": "Prusa CORE One HF 0.6 nozzle", + "sub_path": "machine/Prusa CORE One HF 0.6 nozzle.json" }, { - "name": "Prusa MK4S HF0.4 nozzle", - "sub_path": "machine/Prusa MK4S HF0.4 nozzle.json" + "name": "Prusa CORE One HF 0.8 nozzle", + "sub_path": "machine/Prusa CORE One HF 0.8 nozzle.json" + }, + { + "name": "fdm_machine_common_coreone_indx", + "sub_path": "machine/fdm_machine_common_coreone_indx.json" + }, + { + "name": "fdm_machine_common_mk4_mmu3", + "sub_path": "machine/fdm_machine_common_mk4_mmu3.json" + }, + { + "name": "Prusa MK4S 0.4 nozzle", + "sub_path": "machine/Prusa MK4S 0.4 nozzle.json" }, { "name": "Prusa XL 5T 0.25 nozzle", @@ -3274,6 +3186,66 @@ "name": "Prusa XL 5T 0.8 nozzle", "sub_path": "machine/Prusa XL 5T 0.8 nozzle.json" }, + { + "name": "Prusa CORE One MMU3 0.4 nozzle", + "sub_path": "machine/Prusa CORE One MMU3 0.4 nozzle.json" + }, + { + "name": "Prusa CORE One 0.5 nozzle", + "sub_path": "machine/Prusa CORE One 0.5 nozzle.json" + }, + { + "name": "Prusa CORE One 0.6 nozzle", + "sub_path": "machine/Prusa CORE One 0.6 nozzle.json" + }, + { + "name": "Prusa CORE One 0.8 nozzle", + "sub_path": "machine/Prusa CORE One 0.8 nozzle.json" + }, + { + "name": "Prusa CORE One INDX 4T HF 0.4 nozzle", + "sub_path": "machine/Prusa CORE One INDX 4T HF 0.4 nozzle.json" + }, + { + "name": "Prusa CORE One INDX 8T HF 0.4 nozzle", + "sub_path": "machine/Prusa CORE One INDX 8T HF 0.4 nozzle.json" + }, + { + "name": "Prusa MK4 MMU3 0.4 nozzle", + "sub_path": "machine/Prusa MK4 MMU3 0.4 nozzle.json" + }, + { + "name": "Prusa MK4 MMU3 0.6 nozzle", + "sub_path": "machine/Prusa MK4 MMU3 0.6 nozzle.json" + }, + { + "name": "Prusa MK4 MMU3 HF0.4 nozzle", + "sub_path": "machine/Prusa MK4 MMU3 HF0.4 nozzle.json" + }, + { + "name": "Prusa MK4S 0.25 nozzle", + "sub_path": "machine/Prusa MK4S 0.25 nozzle.json" + }, + { + "name": "Prusa MK4S 0.3 nozzle", + "sub_path": "machine/Prusa MK4S 0.3 nozzle.json" + }, + { + "name": "Prusa MK4S 0.5 nozzle", + "sub_path": "machine/Prusa MK4S 0.5 nozzle.json" + }, + { + "name": "Prusa MK4S 0.6 nozzle", + "sub_path": "machine/Prusa MK4S 0.6 nozzle.json" + }, + { + "name": "Prusa MK4S 0.8 nozzle", + "sub_path": "machine/Prusa MK4S 0.8 nozzle.json" + }, + { + "name": "Prusa MK4S HF0.4 nozzle", + "sub_path": "machine/Prusa MK4S HF0.4 nozzle.json" + }, { "name": "Prusa CORE One MMU3 0.25 nozzle", "sub_path": "machine/Prusa CORE One MMU3 0.25 nozzle.json" diff --git a/resources/profiles/Prusa/Prusa CORE One INDX 4T_cover.png b/resources/profiles/Prusa/Prusa CORE One INDX 4T_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..fc4a7b6539978fc46f7944679646848651ff918e GIT binary patch literal 47255 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%0D(f}kGt?uj!ak@844j>Th@^wy=0Fsawmekp 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 literal 0 HcmV?d00001 diff --git a/resources/profiles/Prusa/Prusa CORE One INDX 8T_cover.png b/resources/profiles/Prusa/Prusa CORE One INDX 8T_cover.png new file mode 100644 index 0000000000000000000000000000000000000000..28b8a311fe4ed4ad4760e6283abed2abce815457 GIT binary patch literal 50079 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

ZczFBR{#)3ULr{t_mJlc4VW?+qL#$0& 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%0Ai;)N;PNSoJPqi7~2n^p19oL~Up7UB(Wa5l*LA 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 + diff --git a/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One 0.6.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One 0.6.json deleted file mode 100644 index 8493c75c81..0000000000 --- a/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One 0.6.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "filament", - "name": "Generic ABS @Prusa CORE One 0.6", - "renamed_from": "Prusa Generic ABS @CORE One 0.6;Prusa Generic ABS CORE One 0.6", - "inherits": "Generic ABS @Prusa CORE One", - "from": "system", - "setting_id": "PYQhstNvKFJ7qsxe", - "filament_id": "OFY9muEs", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One 0.6 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One INDX.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One INDX.json new file mode 100644 index 0000000000..7a154dfc54 --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One INDX.json @@ -0,0 +1,73 @@ +{ + "type": "filament", + "name": "Generic ABS @Prusa CORE One INDX", + "inherits": "Generic ABS @Prusa base", + "from": "system", + "setting_id": "JEatvybG9xIkrPk3", + "instantiation": "true", + "filament_cost": [ + "34.65" + ], + "filament_notes": [ + "\nPrusa INDX 2.5.10 tuning." + ], + "slow_down_min_speed": [ + "15" + ], + "slow_down_layer_time": [ + "20" + ], + "hot_plate_temp": [ + "110" + ], + "overhang_fan_speed": [ + "25" + ], + "close_fan_the_first_x_layers": [ + "4" + ], + "default_filament_colour": [ + "#FFF2EC" + ], + "filament_max_volumetric_speed": [ + "25" + ], + "hot_plate_temp_initial_layer": [ + "110" + ], + "fan_max_speed": [ + "20" + ], + "fan_min_speed": [ + "15" + ], + "chamber_temperature": [ + "55" + ], + "chamber_minimal_temperature": [ + "40" + ], + "filament_shrinkage_compensation_z": [ + "0.22%" + ], + "compatible_printers": [ + "Prusa CORE One INDX 4T HF 0.4 nozzle", + "Prusa CORE One INDX 8T HF 0.4 nozzle" + ], + "compatible_printers_condition": "", + "textured_plate_temp": [ + "110" + ], + "textured_plate_temp_initial_layer": [ + "110" + ], + "activate_chamber_temp_control": [ + "1" + ], + "filament_shrink": [ + "99.78%" + ], + "filament_extruder_variant": [ + "Direct Drive High Flow" + ] +} diff --git a/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One MMU3.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One MMU3.json deleted file mode 100644 index b909758269..0000000000 --- a/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One MMU3.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "type": "filament", - "name": "Generic ABS @Prusa CORE One MMU3", - "inherits": "Generic ABS @Prusa CORE One", - "from": "system", - "setting_id": "TM5fcvhbo1lgzsU6", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle", - "Prusa CORE One MMU3 0.25 nozzle", - "Prusa CORE One MMU3 0.3 nozzle", - "Prusa CORE One MMU3 0.6 nozzle" - ], - "filament_cooling_final_speed": [ - "2.5" - ], - "filament_cooling_initial_speed": [ - "5" - ], - "filament_cooling_moves": [ - "3" - ], - "filament_extruder_variant": [ - "Direct Drive Standard" - ], - "filament_loading_speed": [ - "10" - ], - "filament_loading_speed_start": [ - "50" - ], - "filament_ramming_parameters": [ - "250 100 42.4194 42.4194 42.4194 42.4194 42.4194| 0.05 42.4387 0.45 42.4387 0.95 42.4387 1.45 42.4387 1.95 42.4387 2.45 42.4387 2.95 42.4387 3.45 42.4387 3.95 42.4387 4.45 42.4387 4.95 42.4387" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "26.5" - ], - "filament_start_gcode": [ - "M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.012{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\n\nM142 S40 ; set heatbreak target temp" - ], - "filament_unloading_speed": [ - "60" - ], - "filament_unloading_speed_start": [ - "60" - ], - "idle_temperature": [ - "130" - ] -} diff --git a/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One.json index 146903ac55..a3fcbdee47 100644 --- a/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa CORE One.json @@ -1,11 +1,10 @@ { "type": "filament", "name": "Generic ABS @Prusa CORE One", - "renamed_from": "Prusa Generic ABS @CORE One;Prusa Generic ABS CORE One", - "inherits": "fdm_filament_abs", + "renamed_from": "Prusa Generic ABS @CORE One;Prusa Generic ABS CORE One;Generic ABS @Prusa CORE One MMU3;Generic ABS @MMU3;Generic ABS @Prusa CORE One 0.6;Prusa Generic ABS @CORE One 0.6;Prusa Generic ABS CORE One 0.6", + "inherits": "Generic ABS @Prusa base", "from": "system", "setting_id": "0k31oXq1pLQsHvrj", - "filament_id": "OFY9muEs", "instantiation": "true", "chamber_temperature": [ "40" @@ -17,10 +16,12 @@ "Prusa CORE One 0.25 nozzle", "Prusa CORE One 0.3 nozzle", "Prusa CORE One 0.4 nozzle", - "Prusa CORE One 0.5 nozzle" - ], - "fan_cooling_layer_time": [ - "30" + "Prusa CORE One 0.5 nozzle", + "Prusa CORE One MMU3 0.4 nozzle", + "Prusa CORE One MMU3 0.25 nozzle", + "Prusa CORE One MMU3 0.3 nozzle", + "Prusa CORE One MMU3 0.6 nozzle", + "Prusa CORE One 0.6 nozzle" ], "fan_max_speed": [ "20" @@ -31,39 +32,18 @@ "filament_cost": [ "27.82" ], - "filament_density": [ - "1.04" - ], - "filament_diameter": [ - "1.75" - ], "filament_end_gcode": [ "; Filament-specific end gcode" ], - "filament_flow_ratio": [ - "1" - ], "filament_max_volumetric_speed": [ "15" ], "filament_minimal_purge_on_wipe_tower": [ "35" ], - "filament_notes": [ - "" - ], - "filament_soluble": [ - "0" - ], "filament_start_gcode": [ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.04{elsif nozzle_diameter[filament_extruder_id]==0.25}0.1{elsif nozzle_diameter[filament_extruder_id]==0.3}0.06{elsif nozzle_diameter[filament_extruder_id]==0.35}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.03{elsif nozzle_diameter[filament_extruder_id]==0.6}0.02{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.012{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S40 ; set heatbreak target temp" ], - "filament_type": [ - "ABS" - ], - "filament_vendor": [ - "Generic" - ], "hot_plate_temp": [ "110" ], @@ -73,12 +53,6 @@ "idle_temperature": [ "130" ], - "nozzle_temperature": [ - "260" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], "overhang_fan_speed": [ "25" ], diff --git a/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S 0.6.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S 0.6.json deleted file mode 100644 index 9e27724462..0000000000 --- a/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S 0.6.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "filament", - "name": "Generic ABS @Prusa MK4S 0.6", - "renamed_from": "Prusa Generic ABS @MK4S 0.6;Prusa Generic ABS MK4S 0.6", - "inherits": "Generic ABS @Prusa MK4S", - "from": "system", - "setting_id": "aNRfxkoYTEG3NPV1", - "filament_id": "OFY9muEs", - "instantiation": "true", - "compatible_printers": [ - "Prusa MK4S 0.6 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S 0.8.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S 0.8.json deleted file mode 100644 index 72718602a4..0000000000 --- a/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S 0.8.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "filament", - "name": "Generic ABS @Prusa MK4S 0.8", - "renamed_from": "Prusa Generic ABS @MK4S 0.8;Prusa Generic ABS MK4S 0.8", - "inherits": "Generic ABS @Prusa MK4S", - "from": "system", - "setting_id": "sL7NL7GOf52fzxnj", - "filament_id": "OFY9muEs", - "instantiation": "true", - "compatible_printers": [ - "Prusa MK4S 0.8 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S.json index 2809ff16e9..b925dd414a 100644 --- a/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa MK4S.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic ABS @Prusa MK4S", - "renamed_from": "Prusa Generic ABS @MK4S;Prusa Generic ABS MK4S", + "renamed_from": "Prusa Generic ABS @MK4S;Prusa Generic ABS MK4S;Generic ABS @Prusa MK4S 0.6;Prusa Generic ABS @MK4S 0.6;Prusa Generic ABS MK4S 0.6;Generic ABS @Prusa MK4S 0.8;Prusa Generic ABS @MK4S 0.8;Prusa Generic ABS MK4S 0.8", "inherits": "fdm_filament_abs", "from": "system", "setting_id": "6xkFvOyWtTQNXYAm", @@ -12,7 +12,9 @@ "Prusa MK4S 0.25 nozzle", "Prusa MK4S 0.3 nozzle", "Prusa MK4S 0.4 nozzle", - "Prusa MK4S 0.5 nozzle" + "Prusa MK4S 0.5 nozzle", + "Prusa MK4S 0.6 nozzle", + "Prusa MK4S 0.8 nozzle" ], "default_filament_colour": "#FFF2EC", "fan_max_speed": "10", diff --git a/resources/profiles/Prusa/filament/Generic ABS @Prusa XL 5T.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa XL 5T.json deleted file mode 100644 index ee328ff399..0000000000 --- a/resources/profiles/Prusa/filament/Generic ABS @Prusa XL 5T.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "type": "filament", - "name": "Generic ABS @Prusa XL 5T", - "renamed_from": "Prusa Generic ABS @XL 5T;Prusa Generic ABS XL 5T", - "inherits": "Generic ABS @Prusa base", - "from": "system", - "setting_id": "XfavDzEzzrXDQVUC", - "instantiation": "true", - "nozzle_temperature_intial_layer": "255", - "nozzle_temperature": "255", - "hot_plate_temp_initial_layer": "100", - "hot_plate_temp": "105", - "slow_down_min_speed": "15", - "filament_flow_ratio": [ - "1" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "slow_down_layer_time": [ - "20" - ], - "fan_max_speed": [ - "15" - ], - "fan_min_speed": [ - "15" - ], - "overhang_fan_speed": [ - "25" - ], - "close_fan_the_first_x_layers": [ - "4" - ], - "filament_loading_speed_start": "19", - "filament_loading_speed": "14", - "filament_unloading_speed_start": "100", - "filament_unloading_speed": "20", - "filament_cooling_moves": "5", - "filament_cooling_initial_speed": "10", - "filament_cooling_final_speed": "50", - "filament_retract_lift_below": "1.5", - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_volume": [ - "5" - ], - "filament_multitool_ramming_flow": [ - "40" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "29" - ], - "filament_start_gcode": [ - "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.04{elsif nozzle_diameter[0]==0.25}0.1{elsif nozzle_diameter[0]==0.3}0.06{elsif nozzle_diameter[0]==0.35}0.05{elsif nozzle_diameter[0]==0.5}0.03{elsif nozzle_diameter[0]==0.6}0.02{elsif nozzle_diameter[0]==0.8}0.01{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.02{elsif nozzle_diameter[0]==0.5}0.018{elsif nozzle_diameter[0]==0.6}0.012{elsif nozzle_diameter[0]==0.8}0.01{elsif nozzle_diameter[0]==0.25}0.09{elsif nozzle_diameter[0]==0.3}0.065{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S40 ; set heatbreak target temp" - ], - "compatible_printers": [ - "Prusa XL 5T 0.25 nozzle", - "Prusa XL 5T 0.3 nozzle", - "Prusa XL 5T 0.4 nozzle", - "Prusa XL 5T 0.5 nozzle", - "Prusa XL 5T 0.6 nozzle", - "Prusa XL 5T 0.8 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Generic ABS @Prusa XL.json b/resources/profiles/Prusa/filament/Generic ABS @Prusa XL.json index f6a0a45d88..7f677004a4 100644 --- a/resources/profiles/Prusa/filament/Generic ABS @Prusa XL.json +++ b/resources/profiles/Prusa/filament/Generic ABS @Prusa XL.json @@ -1,12 +1,11 @@ { "type": "filament", "name": "Generic ABS @Prusa XL", - "renamed_from": "Prusa Generic ABS @XL;Prusa Generic ABS XL", + "renamed_from": "Prusa Generic ABS @XL;Prusa Generic ABS XL;Generic ABS @Prusa XL 5T;Prusa Generic ABS @XL 5T;Prusa Generic ABS XL 5T", "inherits": "Generic ABS @Prusa base", "from": "system", "setting_id": "HYHkGEjr6Kid2Xg2", "instantiation": "true", - "nozzle_temperature_intial_layer": "255", "nozzle_temperature": "255", "hot_plate_temp_initial_layer": "100", "hot_plate_temp": "105", @@ -49,6 +48,30 @@ "Prusa XL 0.4 nozzle", "Prusa XL 0.5 nozzle", "Prusa XL 0.6 nozzle", - "Prusa XL 0.8 nozzle" + "Prusa XL 0.8 nozzle", + "Prusa XL 5T 0.25 nozzle", + "Prusa XL 5T 0.3 nozzle", + "Prusa XL 5T 0.4 nozzle", + "Prusa XL 5T 0.5 nozzle", + "Prusa XL 5T 0.6 nozzle", + "Prusa XL 5T 0.8 nozzle" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "nozzle_temperature_initial_layer": [ + "255" ] } diff --git a/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS 0.6.json index c6390f9d8d..d65d35d1e9 100644 --- a/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS 0.6.json @@ -2,9 +2,10 @@ "type": "filament", "name": "Generic ABS HF @Prusa MINIIS 0.6", "renamed_from": "Prusa Generic ABS HF @MINIIS 0.6;Prusa Generic ABS HF MINIIS 0.6", - "inherits": "Generic ABS HF @Prusa base", + "inherits": "Generic ABS @Prusa base", "from": "system", "setting_id": "L6copDR26trR0D8B", + "filament_id": "OF55jHAJ", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS 0.8.json index a52f9f3f40..b8bd2abc8c 100644 --- a/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS 0.8.json @@ -2,9 +2,10 @@ "type": "filament", "name": "Generic ABS HF @Prusa MINIIS 0.8", "renamed_from": "Prusa Generic ABS HF @MINIIS 0.8;Prusa Generic ABS HF MINIIS 0.8", - "inherits": "Generic ABS HF @Prusa base", + "inherits": "Generic ABS @Prusa base", "from": "system", "setting_id": "oxiwspATW960u3eZ", + "filament_id": "OF55jHAJ", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS.json b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS.json index b845f03d4d..db1f492a61 100644 --- a/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa MINIIS.json @@ -2,9 +2,10 @@ "type": "filament", "name": "Generic ABS HF @Prusa MINIIS", "renamed_from": "Prusa Generic ABS HF @MINIIS;Prusa Generic ABS HF MINIIS", - "inherits": "Generic ABS HF @Prusa base", + "inherits": "Generic ABS @Prusa base", "from": "system", "setting_id": "KcRRWqB7hrovzBng", + "filament_id": "OF55jHAJ", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Generic ABS HF @Prusa base.json b/resources/profiles/Prusa/filament/Generic ABS HF @Prusa base.json deleted file mode 100644 index adeb00182e..0000000000 --- a/resources/profiles/Prusa/filament/Generic ABS HF @Prusa base.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "filament", - "name": "Generic ABS HF @Prusa base", - "inherits": "fdm_filament_abs", - "from": "system", - "filament_id": "OF55jHAJ", - "instantiation": "false" -} diff --git a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One 0.6.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One 0.6.json index 15413c6ac0..802476cdc3 100644 --- a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One 0.6.json @@ -11,6 +11,11 @@ "Prusa CORE One 0.6 nozzle" ], "nozzle_temperature": [ + "255", + "255", + "255", + "255", + "255", "255" ], "slow_down_layer_time": [ diff --git a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One 0.8.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One 0.8.json index 008cbbc758..541237079c 100644 --- a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One 0.8.json @@ -11,6 +11,11 @@ "Prusa CORE One 0.8 nozzle" ], "fan_max_speed": [ + "30", + "30", + "30", + "30", + "30", "30" ], "overhang_fan_speed": [ diff --git a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.4.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.4.json index 825a3de691..80c129fab9 100644 --- a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.4.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.4.json @@ -11,15 +11,30 @@ "Prusa CORE One HF 0.4 nozzle" ], "filament_max_volumetric_speed": [ + "26", + "26", + "26", + "26", + "26", "26" ], "filament_start_gcode": [ "M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.015{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\nM142 S40 ; set heatbreak target temp" ], "nozzle_temperature": [ + "265", + "265", + "265", + "265", + "265", "265" ], "nozzle_temperature_initial_layer": [ + "265", + "265", + "265", + "265", + "265", "265" ] } diff --git a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.5.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.5.json index 86dec35130..4ea45b0f5b 100644 --- a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.5.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.5.json @@ -11,15 +11,30 @@ "Prusa CORE One HF 0.5 nozzle" ], "filament_max_volumetric_speed": [ + "27", + "27", + "27", + "27", + "27", "27" ], "filament_start_gcode": [ "M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.015{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\nM142 S40 ; set heatbreak target temp" ], "nozzle_temperature": [ + "265", + "265", + "265", + "265", + "265", "265" ], "nozzle_temperature_initial_layer": [ + "265", + "265", + "265", + "265", + "265", "265" ] } diff --git a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.6.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.6.json index e3de3e1d3d..d6b2fff248 100644 --- a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.6.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.6.json @@ -11,15 +11,30 @@ "Prusa CORE One HF 0.6 nozzle" ], "filament_max_volumetric_speed": [ + "34", + "34", + "34", + "34", + "34", "34" ], "filament_start_gcode": [ "M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.015{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\nM142 S40 ; set heatbreak target temp" ], "nozzle_temperature": [ + "265", + "265", + "265", + "265", + "265", "265" ], "nozzle_temperature_initial_layer": [ + "265", + "265", + "265", + "265", + "265", "265" ], "slow_down_layer_time": [ diff --git a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.8.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.8.json index c8d78a0e69..c8936c7376 100644 --- a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.8.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One HF 0.8.json @@ -11,18 +11,38 @@ "Prusa CORE One HF 0.8 nozzle" ], "fan_max_speed": [ + "30", + "30", + "30", + "30", + "30", "30" ], "filament_max_volumetric_speed": [ + "36", + "36", + "36", + "36", + "36", "36" ], "filament_start_gcode": [ "M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.015{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\nM142 S40 ; set heatbreak target temp" ], "nozzle_temperature": [ + "270", + "270", + "270", + "270", + "270", "270" ], "nozzle_temperature_initial_layer": [ + "270", + "270", + "270", + "270", + "270", "270" ], "overhang_fan_speed": [ diff --git a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One MMU3.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One MMU3.json deleted file mode 100644 index 4461d30750..0000000000 --- a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One MMU3.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "type": "filament", - "name": "Generic ASA @Prusa CORE One MMU3", - "inherits": "Generic ASA @Prusa CORE One", - "from": "system", - "setting_id": "0uAHoCupgHmVYVEx", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle", - "Prusa CORE One MMU3 0.25 nozzle", - "Prusa CORE One MMU3 0.3 nozzle", - "Prusa CORE One MMU3 0.6 nozzle" - ], - "filament_cooling_final_speed": [ - "2.5" - ], - "filament_cooling_initial_speed": [ - "5" - ], - "filament_cooling_moves": [ - "3" - ], - "filament_extruder_variant": [ - "Direct Drive Standard" - ], - "filament_loading_speed": [ - "10" - ], - "filament_loading_speed_start": [ - "50" - ], - "filament_ramming_parameters": [ - "250 100 42.4194 42.4194 42.4194 42.4194 42.4194| 0.05 42.4387 0.45 42.4387 0.95 42.4387 1.45 42.4387 1.95 42.4387 2.45 42.4387 2.95 42.4387 3.45 42.4387 3.95 42.4387 4.45 42.4387 4.95 42.4387" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "26.5" - ], - "filament_start_gcode": [ - "M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.012{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\n\nM142 S40 ; set heatbreak target temp" - ], - "filament_unloading_speed": [ - "60" - ], - "filament_unloading_speed_start": [ - "60" - ], - "idle_temperature": [ - "130" - ] -} diff --git a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One.json b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One.json index 853b1e0803..09a8349005 100644 --- a/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One.json +++ b/resources/profiles/Prusa/filament/Generic ASA @Prusa CORE One.json @@ -1,11 +1,10 @@ { "type": "filament", "name": "Generic ASA @Prusa CORE One", - "renamed_from": "Prusa Generic ASA @CORE One;Prusa Generic ASA CORE One", - "inherits": "fdm_filament_asa", + "renamed_from": "Prusa Generic ASA @CORE One;Prusa Generic ASA CORE One;Generic ASA @Prusa CORE One MMU3;Generic ASA @MMU3", + "inherits": "Generic ASA @System", "from": "system", "setting_id": "Q7fgojkHRZI0floy", - "filament_id": "OFLPAxz3", "instantiation": "true", "chamber_temperature": [ "40" @@ -17,15 +16,29 @@ "Prusa CORE One 0.25 nozzle", "Prusa CORE One 0.3 nozzle", "Prusa CORE One 0.4 nozzle", - "Prusa CORE One 0.5 nozzle" + "Prusa CORE One 0.5 nozzle", + "Prusa CORE One MMU3 0.4 nozzle", + "Prusa CORE One MMU3 0.25 nozzle", + "Prusa CORE One MMU3 0.3 nozzle", + "Prusa CORE One MMU3 0.6 nozzle" ], "fan_cooling_layer_time": [ "20" ], "fan_max_speed": [ + "25", + "25", + "25", + "25", + "25", "25" ], "fan_min_speed": [ + "20", + "20", + "20", + "20", + "20", "20" ], "filament_cost": [ @@ -34,36 +47,36 @@ "filament_density": [ "1.07" ], - "filament_diameter": [ - "1.75" - ], "filament_end_gcode": [ "; Filament-specific end gcode" ], "filament_flow_ratio": [ + "1", + "1", + "1", + "1", + "1", "1" ], "filament_max_volumetric_speed": [ + "15", + "15", + "15", + "15", + "15", "15" ], "filament_minimal_purge_on_wipe_tower": [ + "35", + "35", + "35", + "35", + "35", "35" ], - "filament_notes": [ - "" - ], - "filament_soluble": [ - "0" - ], "filament_start_gcode": [ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.04{elsif nozzle_diameter[filament_extruder_id]==0.25}0.1{elsif nozzle_diameter[filament_extruder_id]==0.3}0.06{elsif nozzle_diameter[filament_extruder_id]==0.35}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.03{elsif nozzle_diameter[filament_extruder_id]==0.6}0.02{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.012{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S40 ; set heatbreak target temp" ], - "filament_type": [ - "ASA" - ], - "filament_vendor": [ - "Generic" - ], "hot_plate_temp": [ "110" ], @@ -73,22 +86,101 @@ "idle_temperature": [ "130" ], - "nozzle_temperature": [ - "260" - ], - "nozzle_temperature_initial_layer": [ - "260" - ], "overhang_fan_speed": [ "25" ], - "reduce_fan_stop_start_freq": [ - "1" - ], "slow_down_layer_time": [ "10" ], "slow_down_min_speed": [ "15" + ], + "supertack_plate_temp": [ + "35" + ], + "eng_plate_temp": [ + "105" + ], + "textured_plate_temp": [ + "45" + ], + "filament_multitool_ramming_flow": [ + "10", + "10", + "10", + "10", + "10", + "10" + ], + "filament_retraction_distances_when_cut": [ + "18", + "18", + "18", + "18", + "18", + "18" + ], + "textured_plate_temp_initial_layer": [ + "45" + ], + "cool_plate_temp": [ + "105" + ], + "filament_long_retractions_when_cut": [ + "0", + "0", + "0", + "0", + "0", + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "cool_plate_temp_initial_layer": [ + "105" + ], + "nozzle_temperature_range_high": [ + "270", + "270", + "270", + "270", + "270", + "270" + ], + "during_print_exhaust_fan_speed": [ + "60", + "60", + "60", + "60", + "60", + "60" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "filament_z_hop_types": [ + "nil", + "nil", + "nil", + "nil", + "nil", + "nil" + ], + "filament_multitool_ramming": [ + "0", + "0", + "0", + "0", + "0", + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80", + "80", + "80", + "80", + "80", + "80" ] } diff --git a/resources/profiles/Prusa/filament/Generic FLEX @Prusa XL 5T.json b/resources/profiles/Prusa/filament/Generic FLEX @Prusa XL 5T.json deleted file mode 100644 index 9be4ea1ba0..0000000000 --- a/resources/profiles/Prusa/filament/Generic FLEX @Prusa XL 5T.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "type": "filament", - "name": "Generic FLEX @Prusa XL 5T", - "renamed_from": "Prusa Generic FLEX @XL 5T;Prusa Generic FLEX XL 5T", - "inherits": "fdm_filament_flex", - "from": "system", - "setting_id": "ef8fSryRYselyr4G", - "filament_id": "OFbPuPKY", - "instantiation": "true", - "filament_loading_speed_start": "3", - "filament_loading_speed": "28", - "filament_unloading_speed_start": "100", - "filament_unloading_speed": "90", - "filament_cooling_moves": "4", - "filament_cooling_initial_speed": "2.2", - "filament_cooling_final_speed": "3.4", - "filament_retract_lift_below": "0.6", - "filament_multitool_ramming": [ - "0" - ], - "filament_multitool_ramming_volume": [ - "40" - ], - "filament_multitool_ramming_flow": [ - "2.5" - ], - "compatible_printers": [ - "Prusa XL 5T 0.25 nozzle", - "Prusa XL 5T 0.3 nozzle", - "Prusa XL 5T 0.4 nozzle", - "Prusa XL 5T 0.5 nozzle", - "Prusa XL 5T 0.6 nozzle", - "Prusa XL 5T 0.8 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Generic FLEX @Prusa XL.json b/resources/profiles/Prusa/filament/Generic FLEX @Prusa XL.json index 24f34f49ab..f284aeef5e 100644 --- a/resources/profiles/Prusa/filament/Generic FLEX @Prusa XL.json +++ b/resources/profiles/Prusa/filament/Generic FLEX @Prusa XL.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic FLEX @Prusa XL", - "renamed_from": "Prusa Generic FLEX @XL;Prusa Generic FLEX XL", + "renamed_from": "Prusa Generic FLEX @XL;Prusa Generic FLEX XL;Generic FLEX @Prusa XL 5T;Prusa Generic FLEX @XL 5T;Prusa Generic FLEX XL 5T", "inherits": "fdm_filament_flex", "from": "system", "setting_id": "qrFWrwgQSXgU7oCb", @@ -30,6 +30,12 @@ "Prusa XL 0.4 nozzle", "Prusa XL 0.5 nozzle", "Prusa XL 0.6 nozzle", - "Prusa XL 0.8 nozzle" + "Prusa XL 0.8 nozzle", + "Prusa XL 5T 0.25 nozzle", + "Prusa XL 5T 0.3 nozzle", + "Prusa XL 5T 0.4 nozzle", + "Prusa XL 5T 0.5 nozzle", + "Prusa XL 5T 0.6 nozzle", + "Prusa XL 5T 0.8 nozzle" ] } diff --git a/resources/profiles/Prusa/filament/Generic PA @Prusa.json b/resources/profiles/Prusa/filament/Generic PA @Prusa.json index d6d2f33cd8..4289d3d403 100644 --- a/resources/profiles/Prusa/filament/Generic PA @Prusa.json +++ b/resources/profiles/Prusa/filament/Generic PA @Prusa.json @@ -1,7 +1,7 @@ { "type": "filament", "name": "Generic PA @Prusa", - "renamed_from": "Prusa Generic PA", + "renamed_from": "Prusa Generic PA;Generic PA @Prusa CORE One MMU3;Generic PA @MMU3", "inherits": "Generic PA @Prusa base", "from": "system", "setting_id": "zTnz1NYXoXxIHhRv", @@ -27,6 +27,10 @@ "Prusa MK4 0.25 nozzle", "Prusa MK4 0.4 nozzle", "Prusa MK4 0.6 nozzle", - "Prusa MK4 0.8 nozzle" + "Prusa MK4 0.8 nozzle", + "Prusa CORE One MMU3 0.4 nozzle", + "Prusa CORE One MMU3 0.25 nozzle", + "Prusa CORE One MMU3 0.3 nozzle", + "Prusa CORE One MMU3 0.6 nozzle" ] } diff --git a/resources/profiles/Prusa/filament/Generic PC @Prusa.json b/resources/profiles/Prusa/filament/Generic PC @Prusa.json index c9048035b7..59fce1f977 100644 --- a/resources/profiles/Prusa/filament/Generic PC @Prusa.json +++ b/resources/profiles/Prusa/filament/Generic PC @Prusa.json @@ -1,27 +1,17 @@ { "type": "filament", "name": "Generic PC @Prusa", - "renamed_from": "Prusa Generic PC", - "inherits": "fdm_filament_pc", + "renamed_from": "Prusa Generic PC;Generic PC @Prusa CORE One MMU3;Generic PC @MMU3", + "inherits": "Generic PC @System", "from": "system", "setting_id": "UJ5KpqIb5mpcNXzl", - "filament_id": "OFLakOUI", "instantiation": "true", - "filament_max_volumetric_speed": [ - "12" - ], - "filament_flow_ratio": [ - "0.94" - ], "eng_plate_temp": [ "100" ], "hot_plate_temp": [ "100" ], - "cool_plate_temp_initial_layer": [ - "0" - ], "eng_plate_temp_initial_layer": [ "100" ], @@ -40,6 +30,106 @@ "Prusa MINI 0.25 nozzle", "Prusa MINI 0.4 nozzle", "Prusa MINI 0.6 nozzle", - "Prusa MINI 0.8 nozzle" + "Prusa MINI 0.8 nozzle", + "Prusa CORE One MMU3 0.4 nozzle", + "Prusa CORE One MMU3 0.25 nozzle", + "Prusa CORE One MMU3 0.3 nozzle", + "Prusa CORE One MMU3 0.6 nozzle" + ], + "supertack_plate_temp": [ + "35" + ], + "idle_temperature": [ + "0" + ], + "textured_plate_temp": [ + "45" + ], + "filament_multitool_ramming_flow": [ + "10", + "10", + "10", + "10", + "10", + "10" + ], + "filament_retraction_distances_when_cut": [ + "18", + "18", + "18", + "18", + "18", + "18" + ], + "textured_plate_temp_initial_layer": [ + "45" + ], + "filament_multitool_ramming_volume": [ + "10", + "10", + "10", + "10", + "10", + "10" + ], + "temperature_vitrification": [ + "140" + ], + "filament_long_retractions_when_cut": [ + "0", + "0", + "0", + "0", + "0", + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "nozzle_temperature_range_high": [ + "280", + "280", + "280", + "280", + "280", + "280" + ], + "during_print_exhaust_fan_speed": [ + "60", + "60", + "60", + "60", + "60", + "60" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "filament_z_hop_types": [ + "nil", + "nil", + "nil", + "nil", + "nil", + "nil" + ], + "filament_end_gcode": [ + "; filament end gcode \n" + ], + "filament_multitool_ramming": [ + "0", + "0", + "0", + "0", + "0", + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80", + "80", + "80", + "80", + "80", + "80" ] } diff --git a/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One INDX.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One INDX.json new file mode 100644 index 0000000000..7e72e330d8 --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One INDX.json @@ -0,0 +1,91 @@ +{ + "type": "filament", + "name": "Generic PETG @Prusa CORE One INDX", + "inherits": "Generic PETG @Prusa base", + "from": "system", + "setting_id": "HbevqxqvYHuvRc3v", + "instantiation": "true", + "filament_cost": [ + "27.82" + ], + "filament_notes": [ + "\nPrusa INDX 2.5.10 tuning." + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "9" + ], + "hot_plate_temp": [ + "85" + ], + "overhang_fan_speed": [ + "60" + ], + "full_fan_speed_layer": [ + "5" + ], + "fan_cooling_layer_time": [ + "25" + ], + "default_filament_colour": [ + "#FF8000" + ], + "filament_max_volumetric_speed": [ + "17" + ], + "hot_plate_temp_initial_layer": [ + "85" + ], + "nozzle_temperature_initial_layer": [ + "245" + ], + "fan_max_speed": [ + "65" + ], + "fan_min_speed": [ + "30" + ], + "nozzle_temperature": [ + "240" + ], + "filament_retraction_length": [ + "1.6" + ], + "filament_wipe": [ + "1" + ], + "filament_retract_before_wipe": [ + "20" + ], + "filament_z_hop": [ + "1" + ], + "chamber_temperature": [ + "35" + ], + "filament_retract_length_toolchange": [ + "1.6" + ], + "compatible_printers": [ + "Prusa CORE One INDX 4T HF 0.4 nozzle", + "Prusa CORE One INDX 8T HF 0.4 nozzle" + ], + "compatible_printers_condition": "", + "textured_plate_temp": [ + "85" + ], + "textured_plate_temp_initial_layer": [ + "85" + ], + "activate_chamber_temp_control": [ + "1" + ], + "pressure_advance": [ + "0.052" + ], + "filament_extruder_variant": [ + "Direct Drive High Flow" + ] +} diff --git a/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One MMU3.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One MMU3.json deleted file mode 100644 index c026e6d770..0000000000 --- a/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One MMU3.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "type": "filament", - "name": "Generic PETG @Prusa CORE One MMU3", - "inherits": "Generic PETG @Prusa CORE One", - "from": "system", - "setting_id": "JutuB6ct5A1l2Biz", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle", - "Prusa CORE One MMU3 0.25 nozzle", - "Prusa CORE One MMU3 0.3 nozzle", - "Prusa CORE One MMU3 0.6 nozzle" - ], - "filament_cooling_final_speed": [ - "2.5" - ], - "filament_cooling_initial_speed": [ - "5" - ], - "filament_cooling_moves": [ - "3" - ], - "filament_extruder_variant": [ - "Direct Drive Standard" - ], - "filament_loading_speed": [ - "10" - ], - "filament_loading_speed_start": [ - "50" - ], - "filament_ramming_parameters": [ - "250 100 42.4194 42.4194 42.4194 42.4194 42.4194| 0.05 42.4387 0.45 42.4387 0.95 42.4387 1.45 42.4387 1.95 42.4387 2.45 42.4387 2.95 42.4387 3.45 42.4387 3.95 42.4387 4.45 42.4387 4.95 42.4387" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "26.5" - ], - "filament_start_gcode": [ - "M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.053{elsif nozzle_diameter[filament_extruder_id]==0.5}0.042{elsif nozzle_diameter[filament_extruder_id]==0.6}0.032{elsif nozzle_diameter[filament_extruder_id]==0.8}0.018{elsif nozzle_diameter[filament_extruder_id]==0.25}0.18{elsif nozzle_diameter[filament_extruder_id]==0.3}0.1{else}0{endif} ; Filament gcode\n\nM142 S36 ; set heatbreak target temp" - ], - "filament_unloading_speed": [ - "60" - ], - "filament_unloading_speed_start": [ - "60" - ], - "idle_temperature": [ - "130" - ] -} diff --git a/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One.json index 1c940b74b1..b605f77a89 100644 --- a/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa CORE One.json @@ -1,23 +1,23 @@ { "type": "filament", "name": "Generic PETG @Prusa CORE One", - "renamed_from": "Prusa Generic PETG @CORE One;Prusa Generic PETG CORE One", - "inherits": "fdm_filament_pet", + "renamed_from": "Prusa Generic PETG @CORE One;Prusa Generic PETG CORE One;Generic PETG @Prusa CORE One MMU3;Generic PETG @MMU3", + "inherits": "Generic PETG @Prusa base", "from": "system", "setting_id": "W71PW5bpf7CV16D4", - "filament_id": "OFYPdQJh", "instantiation": "true", "chamber_temperature": [ "35" ], - "close_fan_the_first_x_layers": [ - "3" - ], "compatible_printers": [ "Prusa CORE One 0.25 nozzle", "Prusa CORE One 0.3 nozzle", "Prusa CORE One 0.4 nozzle", - "Prusa CORE One 0.5 nozzle" + "Prusa CORE One 0.5 nozzle", + "Prusa CORE One MMU3 0.4 nozzle", + "Prusa CORE One MMU3 0.25 nozzle", + "Prusa CORE One MMU3 0.3 nozzle", + "Prusa CORE One MMU3 0.6 nozzle" ], "fan_cooling_layer_time": [ "25" @@ -31,45 +31,24 @@ "filament_cost": [ "27.82" ], - "filament_density": [ - "1.27" - ], - "filament_diameter": [ - "1.75" - ], "filament_end_gcode": [ "; Filament-specific end gcode" ], - "filament_flow_ratio": [ - "1" - ], "filament_max_volumetric_speed": [ "12" ], "filament_minimal_purge_on_wipe_tower": [ "35" ], - "filament_notes": [ - "" - ], "filament_retract_before_wipe": [ "20" ], "filament_retraction_length": [ "0.8" ], - "filament_soluble": [ - "0" - ], "filament_start_gcode": [ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.07{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{elsif nozzle_diameter[filament_extruder_id]==0.35}0.08{elsif nozzle_diameter[filament_extruder_id]==0.6}0.04{elsif nozzle_diameter[filament_extruder_id]==0.5}0.05{elsif nozzle_diameter[filament_extruder_id]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.053{elsif nozzle_diameter[filament_extruder_id]==0.5}0.042{elsif nozzle_diameter[filament_extruder_id]==0.6}0.032{elsif nozzle_diameter[filament_extruder_id]==0.8}0.018{elsif nozzle_diameter[filament_extruder_id]==0.25}0.18{elsif nozzle_diameter[filament_extruder_id]==0.3}0.1{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp" ], - "filament_type": [ - "PETG" - ], - "filament_vendor": [ - "Generic" - ], "filament_wipe": [ "1" ], @@ -100,9 +79,6 @@ "overhang_fan_speed": [ "60" ], - "reduce_fan_stop_start_freq": [ - "1" - ], "slow_down_layer_time": [ "9" ], diff --git a/resources/profiles/Prusa/filament/Generic PETG @Prusa XL 5T.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa XL 5T.json deleted file mode 100644 index 52e208e7c9..0000000000 --- a/resources/profiles/Prusa/filament/Generic PETG @Prusa XL 5T.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "type": "filament", - "name": "Generic PETG @Prusa XL 5T", - "renamed_from": "Prusa Generic PETG @XL 5T;Prusa Generic PETG XL 5T", - "inherits": "Generic PETG @Prusa base", - "from": "system", - "setting_id": "DNJECSjW6zKYALxE", - "instantiation": "true", - "nozzle_temperature_intial_layer": "230", - "nozzle_temperature": "240", - "hot_plate_temp_initial_layer": "80", - "hot_plate_temp": "80", - "full_fan_speed_layer": "5", - "slow_down_min_speed": "15", - "filament_flow_ratio": [ - "1" - ], - "filament_max_volumetric_speed": [ - "9" - ], - "slow_down_layer_time": [ - "9" - ], - "fan_max_speed": [ - "50" - ], - "fan_min_speed": [ - "30" - ], - "overhang_fan_speed": [ - "50" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_loading_speed_start": "50", - "filament_loading_speed": "10", - "filament_unloading_speed_start": "100", - "filament_unloading_speed": "100", - "filament_cooling_moves": "3", - "filament_cooling_initial_speed": "5", - "filament_cooling_final_speed": "2.5", - "filament_retract_lift_below": "1.5", - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_volume": [ - "5" - ], - "filament_multitool_ramming_flow": [ - "40" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "29" - ], - "filament_wipe": "1", - "filament_retract_before_wipe": "20%", - "filament_start_gcode": [ - "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.07{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.09{elsif nozzle_diameter[0]==0.35}0.08{elsif nozzle_diameter[0]==0.6}0.04{elsif nozzle_diameter[0]==0.5}0.05{elsif nozzle_diameter[0]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.053{elsif nozzle_diameter[0]==0.5}0.042{elsif nozzle_diameter[0]==0.6}0.032{elsif nozzle_diameter[0]==0.8}0.018{elsif nozzle_diameter[0]==0.25}0.18{elsif nozzle_diameter[0]==0.3}0.1{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp" - ], - "compatible_printers": [ - "Prusa XL 5T 0.25 nozzle", - "Prusa XL 5T 0.3 nozzle", - "Prusa XL 5T 0.4 nozzle", - "Prusa XL 5T 0.5 nozzle", - "Prusa XL 5T 0.6 nozzle", - "Prusa XL 5T 0.8 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Generic PETG @Prusa XL.json b/resources/profiles/Prusa/filament/Generic PETG @Prusa XL.json index 78a3e589b2..53cf3b6095 100644 --- a/resources/profiles/Prusa/filament/Generic PETG @Prusa XL.json +++ b/resources/profiles/Prusa/filament/Generic PETG @Prusa XL.json @@ -1,12 +1,11 @@ { "type": "filament", "name": "Generic PETG @Prusa XL", - "renamed_from": "Prusa Generic PETG @XL;Prusa Generic PETG XL", + "renamed_from": "Prusa Generic PETG @XL;Prusa Generic PETG XL;Generic PETG @Prusa XL 5T;Prusa Generic PETG @XL 5T;Prusa Generic PETG XL 5T", "inherits": "Generic PETG @Prusa base", "from": "system", "setting_id": "8vcNv4b4H7aYA01G", "instantiation": "true", - "nozzle_temperature_intial_layer": "230", "nozzle_temperature": "240", "hot_plate_temp_initial_layer": "80", "hot_plate_temp": "80", @@ -52,6 +51,30 @@ "Prusa XL 0.4 nozzle", "Prusa XL 0.5 nozzle", "Prusa XL 0.6 nozzle", - "Prusa XL 0.8 nozzle" + "Prusa XL 0.8 nozzle", + "Prusa XL 5T 0.25 nozzle", + "Prusa XL 5T 0.3 nozzle", + "Prusa XL 5T 0.4 nozzle", + "Prusa XL 5T 0.5 nozzle", + "Prusa XL 5T 0.6 nozzle", + "Prusa XL 5T 0.8 nozzle" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "nozzle_temperature_initial_layer": [ + "230" ] } diff --git a/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS 0.6.json index 24584986f2..a1fea8d6b2 100644 --- a/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS 0.6.json @@ -2,9 +2,10 @@ "type": "filament", "name": "Generic PETG HF @Prusa MINIIS 0.6", "renamed_from": "Prusa Generic PETG HF @MINIIS 0.6;Prusa Generic PETG HF MINIIS 0.6", - "inherits": "Generic PETG HF @Prusa base", + "inherits": "Generic PETG @Prusa base", "from": "system", "setting_id": "nF8YzRMvaT4D8LBD", + "filament_id": "OF7lOgYF", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS 0.8.json index 5a50d4e42c..67ba82dfc7 100644 --- a/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS 0.8.json @@ -2,9 +2,10 @@ "type": "filament", "name": "Generic PETG HF @Prusa MINIIS 0.8", "renamed_from": "Prusa Generic PETG HF @MINIIS 0.8;Prusa Generic PETG HF MINIIS 0.8", - "inherits": "Generic PETG HF @Prusa base", + "inherits": "Generic PETG @Prusa base", "from": "system", "setting_id": "7itUjrAu9Oj9hxiU", + "filament_id": "OF7lOgYF", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS.json b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS.json index 1c2f083063..9f06fd1cc1 100644 --- a/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa MINIIS.json @@ -2,9 +2,10 @@ "type": "filament", "name": "Generic PETG HF @Prusa MINIIS", "renamed_from": "Prusa Generic PETG HF @MINIIS;Prusa Generic PETG HF MINIIS", - "inherits": "Generic PETG HF @Prusa base", + "inherits": "Generic PETG @Prusa base", "from": "system", "setting_id": "dPNOryBcrviemefo", + "filament_id": "OF7lOgYF", "instantiation": "true", "reduce_fan_stop_start_freq": [ "1" diff --git a/resources/profiles/Prusa/filament/Generic PETG HF @Prusa base.json b/resources/profiles/Prusa/filament/Generic PETG HF @Prusa base.json deleted file mode 100644 index c15595a97c..0000000000 --- a/resources/profiles/Prusa/filament/Generic PETG HF @Prusa base.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "filament", - "name": "Generic PETG HF @Prusa base", - "inherits": "fdm_filament_pet", - "from": "system", - "filament_id": "OF7lOgYF", - "instantiation": "false" -} diff --git a/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One INDX.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One INDX.json new file mode 100644 index 0000000000..98583cf4b3 --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One INDX.json @@ -0,0 +1,70 @@ +{ + "type": "filament", + "name": "Generic PLA @Prusa CORE One INDX", + "inherits": "Generic PLA @Prusa base", + "from": "system", + "setting_id": "4qjcaIf1vk3K1x4Z", + "instantiation": "true", + "filament_cost": [ + "25.4" + ], + "filament_notes": [ + "\nPrusa INDX 2.5.10 tuning." + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "9" + ], + "full_fan_speed_layer": [ + "3" + ], + "fan_cooling_layer_time": [ + "40" + ], + "default_filament_colour": [ + "#FF8000" + ], + "filament_max_volumetric_speed": [ + "28" + ], + "nozzle_temperature": [ + "215" + ], + "filament_z_hop": [ + "0.8" + ], + "chamber_temperature": [ + "20" + ], + "filament_retract_length_toolchange": [ + "0.8" + ], + "filament_wipe": [ + "1" + ], + "filament_retract_before_wipe": [ + "70%" + ], + "compatible_printers": [ + "Prusa CORE One INDX 4T HF 0.4 nozzle", + "Prusa CORE One INDX 8T HF 0.4 nozzle" + ], + "compatible_printers_condition": "", + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "activate_chamber_temp_control": [ + "1" + ], + "pressure_advance": [ + "0.027" + ], + "filament_extruder_variant": [ + "Direct Drive High Flow" + ] +} diff --git a/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One MMU3.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One MMU3.json deleted file mode 100644 index 32498fb8a9..0000000000 --- a/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One MMU3.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "type": "filament", - "name": "Generic PLA @Prusa CORE One MMU3", - "inherits": "Generic PLA @Prusa CORE One", - "from": "system", - "setting_id": "haNaA1KFlYeqtfIg", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle", - "Prusa CORE One MMU3 0.25 nozzle", - "Prusa CORE One MMU3 0.3 nozzle", - "Prusa CORE One MMU3 0.6 nozzle" - ], - "filament_cooling_final_speed": [ - "3.5" - ], - "filament_cooling_initial_speed": [ - "10" - ], - "filament_cooling_moves": [ - "2" - ], - "filament_extruder_variant": [ - "Direct Drive Standard" - ], - "filament_loading_speed": [ - "10" - ], - "filament_loading_speed_start": [ - "50" - ], - "filament_ramming_parameters": [ - "250 100 40.1613 40.3548 40.4516 40.3548 40.2581| 0.05 40.1483 0.45 40.3419 0.95 40.3419 1.45 40.3419 1.95 40.3419 2.45 40.3419 2.95 40.3419 3.45 40.3419 3.95 40.3419 4.45 40.3419 4.95 40.3419" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "29" - ], - "filament_start_gcode": [ - "M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.03{elsif nozzle_diameter[filament_extruder_id]==0.5}0.022{elsif nozzle_diameter[filament_extruder_id]==0.6}0.019{elsif nozzle_diameter[filament_extruder_id]==0.8}0.013{elsif nozzle_diameter[filament_extruder_id]==0.25}0.1{elsif nozzle_diameter[filament_extruder_id]==0.3}0.07{else}0{endif} ; Filament gcode\n\nM142 S36 ; set heatbreak target temp" - ], - "filament_unloading_speed": [ - "40" - ], - "filament_unloading_speed_start": [ - "30" - ], - "idle_temperature": [ - "170" - ] -} diff --git a/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One.json index d16a6c0366..247ebd2763 100644 --- a/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa CORE One.json @@ -1,70 +1,43 @@ { "type": "filament", "name": "Generic PLA @Prusa CORE One", - "renamed_from": "Prusa Generic PLA @CORE One;Prusa Generic PLA CORE One", - "inherits": "fdm_filament_pla", + "renamed_from": "Prusa Generic PLA @CORE One;Prusa Generic PLA CORE One;Generic PLA @Prusa CORE One MMU3;Generic PLA @MMU3", + "inherits": "Generic PLA @Prusa base", "from": "system", "setting_id": "r2i4c7DsYXYIMVCX", - "filament_id": "OFDSrzZ8", "instantiation": "true", "chamber_temperature": [ "20" ], - "close_fan_the_first_x_layers": [ - "1" - ], "compatible_printers": [ "Prusa CORE One 0.25 nozzle", "Prusa CORE One 0.3 nozzle", "Prusa CORE One 0.4 nozzle", "Prusa CORE One 0.5 nozzle", - "Prusa CORE One L 0.4 nozzle" + "Prusa CORE One L 0.4 nozzle", + "Prusa CORE One MMU3 0.4 nozzle", + "Prusa CORE One MMU3 0.25 nozzle", + "Prusa CORE One MMU3 0.3 nozzle", + "Prusa CORE One MMU3 0.6 nozzle" ], "fan_cooling_layer_time": [ "40" ], - "fan_max_speed": [ - "100" - ], "fan_min_speed": [ "85" ], "filament_cost": [ "25.4" ], - "filament_density": [ - "1.24" - ], - "filament_diameter": [ - "1.75" - ], "filament_end_gcode": [ "; Filament-specific end gcode" ], - "filament_flow_ratio": [ - "1" - ], "filament_max_volumetric_speed": [ "15" ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_notes": [ - "" - ], - "filament_soluble": [ - "0" - ], "filament_start_gcode": [ "M900 K{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.07{elsif nozzle_diameter[filament_extruder_id]==0.35}0.06{elsif nozzle_diameter[filament_extruder_id]==0.6}0.03{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One|CORE One L).*/}\nM572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.036{elsif nozzle_diameter[filament_extruder_id]==0.5}0.025{elsif nozzle_diameter[filament_extruder_id]==0.6}0.022{elsif nozzle_diameter[filament_extruder_id]==0.8}0.014{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp" ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], "filament_z_hop": [ "0.6" ], @@ -74,27 +47,12 @@ "full_fan_speed_layer": [ "3" ], - "hot_plate_temp": [ - "60" - ], - "hot_plate_temp_initial_layer": [ - "60" - ], "idle_temperature": [ - "150" - ], - "nozzle_temperature": [ - "220" + "170" ], "nozzle_temperature_initial_layer": [ "230" ], - "overhang_fan_speed": [ - "100" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], "slow_down_layer_time": [ "8" ], diff --git a/resources/profiles/Prusa/filament/Generic PLA @Prusa XL 5T.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa XL 5T.json deleted file mode 100644 index 532ccba57a..0000000000 --- a/resources/profiles/Prusa/filament/Generic PLA @Prusa XL 5T.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "type": "filament", - "name": "Generic PLA @Prusa XL 5T", - "renamed_from": "Prusa Generic PLA @XL 5T;Prusa Generic PLA XL 5T", - "inherits": "Generic PLA @Prusa base", - "from": "system", - "setting_id": "wDxtZLt5J2JODMBq", - "instantiation": "true", - "nozzle_temperature_intial_layer": "215", - "nozzle_temperature": "210", - "hot_plate_temp_initial_layer": "60", - "hot_plate_temp": "60", - "full_fan_speed_layer": "3", - "slow_down_min_speed": "15", - "filament_flow_ratio": [ - "1" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "slow_down_layer_time": [ - "10" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "filament_loading_speed_start": "50", - "filament_loading_speed": "10", - "filament_unloading_speed_start": "100", - "filament_unloading_speed": "100", - "filament_cooling_moves": "2", - "filament_cooling_initial_speed": "10", - "filament_cooling_final_speed": "3.5", - "filament_retract_lift_below": "0.6", - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_volume": [ - "5" - ], - "filament_multitool_ramming_flow": [ - "40" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "29" - ], - "filament_start_gcode": [ - "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.07{elsif nozzle_diameter[0]==0.35}0.06{elsif nozzle_diameter[0]==0.6}0.03{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.036{elsif nozzle_diameter[0]==0.5}0.025{elsif nozzle_diameter[0]==0.6}0.02{elsif nozzle_diameter[0]==0.8}0.014{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp" - ], - "compatible_printers": [ - "Prusa XL 5T 0.25 nozzle", - "Prusa XL 5T 0.3 nozzle", - "Prusa XL 5T 0.4 nozzle", - "Prusa XL 5T 0.5 nozzle", - "Prusa XL 5T 0.6 nozzle", - "Prusa XL 5T 0.8 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Generic PLA @Prusa XL.json b/resources/profiles/Prusa/filament/Generic PLA @Prusa XL.json index 4e560f4bac..20005310e3 100644 --- a/resources/profiles/Prusa/filament/Generic PLA @Prusa XL.json +++ b/resources/profiles/Prusa/filament/Generic PLA @Prusa XL.json @@ -1,12 +1,11 @@ { "type": "filament", "name": "Generic PLA @Prusa XL", - "renamed_from": "Prusa Generic PLA @XL;Prusa Generic PLA XL", + "renamed_from": "Prusa Generic PLA @XL;Prusa Generic PLA XL;Generic PLA @Prusa XL 5T;Prusa Generic PLA @XL 5T;Prusa Generic PLA XL 5T", "inherits": "Generic PLA @Prusa base", "from": "system", "setting_id": "27u5AiklUhmExsys", "instantiation": "true", - "nozzle_temperature_intial_layer": "215", "nozzle_temperature": "210", "hot_plate_temp_initial_layer": "60", "hot_plate_temp": "60", @@ -47,6 +46,30 @@ "Prusa XL 0.4 nozzle", "Prusa XL 0.5 nozzle", "Prusa XL 0.6 nozzle", - "Prusa XL 0.8 nozzle" + "Prusa XL 0.8 nozzle", + "Prusa XL 5T 0.25 nozzle", + "Prusa XL 5T 0.3 nozzle", + "Prusa XL 5T 0.4 nozzle", + "Prusa XL 5T 0.5 nozzle", + "Prusa XL 5T 0.6 nozzle", + "Prusa XL 5T 0.8 nozzle" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "nozzle_temperature_initial_layer": [ + "215" ] } diff --git a/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS 0.6.json index 9459c8734a..1e9a64a849 100644 --- a/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS 0.6.json @@ -2,9 +2,10 @@ "type": "filament", "name": "Generic PLA HF @Prusa MINIIS 0.6", "renamed_from": "Prusa Generic PLA HF @MINIIS 0.6;Prusa Generic PLA HF MINIIS 0.6", - "inherits": "Generic PLA HF @Prusa base", + "inherits": "Generic PLA @Prusa base", "from": "system", "setting_id": "eqBN6ykUB4csEMCR", + "filament_id": "OFZr862X", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS 0.8.json index 232e4b6638..5ae47420a3 100644 --- a/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS 0.8.json @@ -2,9 +2,10 @@ "type": "filament", "name": "Generic PLA HF @Prusa MINIIS 0.8", "renamed_from": "Prusa Generic PLA HF @MINIIS 0.8;Prusa Generic PLA HF MINIIS 0.8", - "inherits": "Generic PLA HF @Prusa base", + "inherits": "Generic PLA @Prusa base", "from": "system", "setting_id": "FuCHQFBuP9yLUzT0", + "filament_id": "OFZr862X", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS.json b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS.json index c59708df52..36048c27fa 100644 --- a/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa MINIIS.json @@ -2,9 +2,10 @@ "type": "filament", "name": "Generic PLA HF @Prusa MINIIS", "renamed_from": "Prusa Generic PLA HF @MINIIS;Prusa Generic PLA HF MINIIS", - "inherits": "Generic PLA HF @Prusa base", + "inherits": "Generic PLA @Prusa base", "from": "system", "setting_id": "cQJUt7LR5hkKT0Za", + "filament_id": "OFZr862X", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Generic PLA HF @Prusa base.json b/resources/profiles/Prusa/filament/Generic PLA HF @Prusa base.json deleted file mode 100644 index aaf85ff4a7..0000000000 --- a/resources/profiles/Prusa/filament/Generic PLA HF @Prusa base.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "filament", - "name": "Generic PLA HF @Prusa base", - "inherits": "fdm_filament_pla", - "from": "system", - "filament_id": "OFZr862X", - "instantiation": "false" -} diff --git a/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One 0.6.json b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One 0.6.json index 7772677dad..55f3698ba3 100644 --- a/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One 0.6.json @@ -12,9 +12,19 @@ "Prusa CORE One HF 0.6 nozzle" ], "filament_max_volumetric_speed": [ + "9", + "9", + "9", + "9", + "9", "9" ], "nozzle_temperature": [ + "215", + "215", + "215", + "215", + "215", "215" ], "slow_down_layer_time": [ diff --git a/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One 0.8.json b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One 0.8.json index 8eddb354ab..b3ba3f18bb 100644 --- a/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One 0.8.json @@ -12,6 +12,11 @@ "Prusa CORE One HF 0.8 nozzle" ], "filament_max_volumetric_speed": [ + "12", + "12", + "12", + "12", + "12", "12" ], "slow_down_layer_time": [ diff --git a/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One INDX.json b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One INDX.json new file mode 100644 index 0000000000..4c180da592 --- /dev/null +++ b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One INDX.json @@ -0,0 +1,184 @@ +{ + "type": "filament", + "name": "Generic PLA Silk @Prusa CORE One INDX", + "inherits": "Generic PLA Silk @System", + "from": "system", + "setting_id": "eKla6su22rYaL9iz", + "instantiation": "true", + "filament_flow_ratio": [ + "1", + "1", + "1", + "1", + "1", + "1" + ], + "filament_cost": [ + "25.4" + ], + "filament_notes": [ + "\nPrusa INDX 2.5.10 tuning." + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "12" + ], + "hot_plate_temp": [ + "60" + ], + "full_fan_speed_layer": [ + "3" + ], + "fan_cooling_layer_time": [ + "40" + ], + "default_filament_colour": [ + "#FF8000" + ], + "filament_max_volumetric_speed": [ + "12.5", + "12.5", + "12.5", + "12.5", + "12.5", + "12.5" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature": [ + "215", + "215", + "215", + "215", + "215", + "215" + ], + "filament_z_hop": [ + "0.8", + "0.8", + "0.8", + "0.8", + "0.8", + "0.8" + ], + "chamber_temperature": [ + "20" + ], + "filament_retraction_length": [ + "0.8", + "0.8", + "0.8", + "0.8", + "0.8", + "0.8" + ], + "filament_retract_length_toolchange": [ + "0.8", + "0.8", + "0.8", + "0.8", + "0.8", + "0.8" + ], + "filament_wipe": [ + "1", + "1", + "1", + "1", + "1", + "1" + ], + "filament_retract_before_wipe": [ + "70%", + "70%", + "70%", + "70%", + "70%", + "70%" + ], + "compatible_printers": [ + "Prusa CORE One INDX 4T HF 0.4 nozzle", + "Prusa CORE One INDX 8T HF 0.4 nozzle" + ], + "compatible_printers_condition": "", + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "activate_chamber_temp_control": [ + "1" + ], + "pressure_advance": [ + "0.025", + "0.025", + "0.025", + "0.025", + "0.025", + "0.025" + ], + "supertack_plate_temp": [ + "35" + ], + "filament_retraction_distances_when_cut": [ + "18", + "18", + "18", + "18", + "18", + "18" + ], + "temperature_vitrification": [ + "60" + ], + "filament_long_retractions_when_cut": [ + "0", + "0", + "0", + "0", + "0", + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "nozzle_temperature_range_high": [ + "230", + "230", + "230", + "230", + "230", + "230" + ], + "during_print_exhaust_fan_speed": [ + "60", + "60", + "60", + "60", + "60", + "60" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "filament_z_hop_types": [ + "nil", + "nil", + "nil", + "nil", + "nil", + "nil" + ], + "complete_print_exhaust_fan_speed": [ + "80", + "80", + "80", + "80", + "80", + "80" + ] +} diff --git a/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One MMU3.json b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One MMU3.json deleted file mode 100644 index d45bd3cd90..0000000000 --- a/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One MMU3.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "type": "filament", - "name": "Generic PLA Silk @Prusa CORE One MMU3", - "inherits": "Generic PLA Silk @Prusa CORE One", - "from": "system", - "setting_id": "MMarDGtK4f7u78gA", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle", - "Prusa CORE One MMU3 0.25 nozzle", - "Prusa CORE One MMU3 0.3 nozzle", - "Prusa CORE One MMU3 0.6 nozzle" - ], - "filament_cooling_final_speed": [ - "3.5" - ], - "filament_cooling_initial_speed": [ - "10" - ], - "filament_cooling_moves": [ - "2" - ], - "filament_extruder_variant": [ - "Direct Drive Standard" - ], - "filament_loading_speed": [ - "10" - ], - "filament_loading_speed_start": [ - "50" - ], - "filament_ramming_parameters": [ - "250 100 40.1613 40.3548 40.4516 40.3548 40.2581| 0.05 40.1483 0.45 40.3419 0.95 40.3419 1.45 40.3419 1.95 40.3419 2.45 40.3419 2.95 40.3419 3.45 40.3419 3.95 40.3419 4.45 40.3419 4.95 40.3419" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "29" - ], - "filament_start_gcode": [ - "M572 S{if nozzle_diameter[0]==0.4}0.03{elsif nozzle_diameter[0]==0.5}0.022{elsif nozzle_diameter[0]==0.6}0.018{elsif nozzle_diameter[0]==0.8}0.012{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.075{else}0{endif} ; Filament gcode\n\nM142 S36 ; set heatbreak target temp" - ], - "filament_unloading_speed": [ - "40" - ], - "filament_unloading_speed_start": [ - "30" - ], - "idle_temperature": [ - "170" - ] -} diff --git a/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One.json b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One.json index ba4c693334..71aa3d915d 100644 --- a/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One.json +++ b/resources/profiles/Prusa/filament/Generic PLA Silk @Prusa CORE One.json @@ -1,75 +1,76 @@ { "type": "filament", "name": "Generic PLA Silk @Prusa CORE One", - "renamed_from": "Prusa Generic PLA Silk @CORE One;Prusa Generic PLA Silk CORE One", - "inherits": "fdm_filament_pla", + "renamed_from": "Prusa Generic PLA Silk @CORE One;Prusa Generic PLA Silk CORE One;Generic PLA Silk @Prusa CORE One MMU3;Generic PLA Silk @MMU3", + "inherits": "Generic PLA Silk @System", "from": "system", "setting_id": "F9lNHyhZwZi7aD74", - "filament_id": "OFesA6rF", "instantiation": "true", "chamber_temperature": [ "20" ], - "close_fan_the_first_x_layers": [ - "1" - ], "compatible_printers": [ "Prusa CORE One 0.25 nozzle", "Prusa CORE One 0.3 nozzle", "Prusa CORE One 0.4 nozzle", "Prusa CORE One 0.5 nozzle", "Prusa CORE One HF 0.4 nozzle", - "Prusa CORE One HF 0.5 nozzle" + "Prusa CORE One HF 0.5 nozzle", + "Prusa CORE One MMU3 0.4 nozzle", + "Prusa CORE One MMU3 0.25 nozzle", + "Prusa CORE One MMU3 0.3 nozzle", + "Prusa CORE One MMU3 0.6 nozzle" ], "fan_cooling_layer_time": [ "40" ], - "fan_max_speed": [ - "100" - ], "fan_min_speed": [ + "85", + "85", + "85", + "85", + "85", "85" ], "filament_cost": [ "25.4" ], - "filament_density": [ - "1.24" - ], - "filament_diameter": [ - "1.75" - ], "filament_end_gcode": [ "; Filament-specific end gcode" ], "filament_flow_ratio": [ + "1", + "1", + "1", + "1", + "1", "1" ], "filament_max_volumetric_speed": [ + "7", + "7", + "7", + "7", + "7", "7" ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_notes": [ - "" - ], - "filament_soluble": [ - "0" - ], "filament_start_gcode": [ "M900 K{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.07{elsif nozzle_diameter[0]==0.35}0.06{elsif nozzle_diameter[0]==0.6}0.03{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*(MK4IS|XLIS|MK4S|MK3.9S|CORE One).*/}\nM572 S{if nozzle_diameter[0]==0.4}0.03{elsif nozzle_diameter[0]==0.5}0.022{elsif nozzle_diameter[0]==0.6}0.018{elsif nozzle_diameter[0]==0.8}0.012{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.075{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp" ], - "filament_type": [ - "PLA" - ], - "filament_vendor": [ - "Generic" - ], "filament_z_hop": [ + "0.6", + "0.6", + "0.6", + "0.6", + "0.6", "0.6" ], "filament_z_hop_types": [ + "Slope Lift", + "Slope Lift", + "Slope Lift", + "Slope Lift", + "Slope Lift", "Slope Lift" ], "full_fan_speed_layer": [ @@ -82,24 +83,107 @@ "60" ], "idle_temperature": [ - "150" + "170" ], "nozzle_temperature": [ + "225", + "225", + "225", + "225", + "225", "225" ], "nozzle_temperature_initial_layer": [ + "230", + "230", + "230", + "230", + "230", "230" ], - "overhang_fan_speed": [ - "100" - ], - "reduce_fan_stop_start_freq": [ - "1" - ], - "slow_down_layer_time": [ - "8" - ], "slow_down_min_speed": [ "20" + ], + "supertack_plate_temp": [ + "35" + ], + "textured_plate_temp": [ + "45" + ], + "filament_retraction_length": [ + "nil", + "nil", + "nil", + "nil", + "nil", + "nil" + ], + "filament_retraction_distances_when_cut": [ + "18", + "18", + "18", + "18", + "18", + "18" + ], + "textured_plate_temp_initial_layer": [ + "45" + ], + "filament_multitool_ramming_volume": [ + "10", + "10", + "10", + "10", + "10", + "10" + ], + "temperature_vitrification": [ + "60" + ], + "filament_long_retractions_when_cut": [ + "0", + "0", + "0", + "0", + "0", + "0" + ], + "required_nozzle_HRC": [ + "0" + ], + "nozzle_temperature_range_high": [ + "230", + "230", + "230", + "230", + "230", + "230" + ], + "during_print_exhaust_fan_speed": [ + "60", + "60", + "60", + "60", + "60", + "60" + ], + "supertack_plate_temp_initial_layer": [ + "35" + ], + "filament_multitool_ramming": [ + "0", + "0", + "0", + "0", + "0", + "0" + ], + "complete_print_exhaust_fan_speed": [ + "80", + "80", + "80", + "80", + "80", + "80" ] } diff --git a/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS 0.6.json b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS 0.6.json index b6d9877fe8..187d0b1fe6 100644 --- a/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS 0.6.json +++ b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS 0.6.json @@ -2,9 +2,10 @@ "type": "filament", "name": "Generic PVA HF @Prusa MINIIS 0.6", "renamed_from": "Prusa Generic PVA HF @MINIIS 0.6;Prusa Generic PVA HF MINIIS 0.6", - "inherits": "Generic PVA HF @Prusa base", + "inherits": "Generic PVA @Prusa base", "from": "system", "setting_id": "qeWFOMhrKa1yezHw", + "filament_id": "OFDwBwO5", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS 0.8.json b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS 0.8.json index 55510df02d..c2ca3b86ca 100644 --- a/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS 0.8.json +++ b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS 0.8.json @@ -2,9 +2,10 @@ "type": "filament", "name": "Generic PVA HF @Prusa MINIIS 0.8", "renamed_from": "Prusa Generic PVA HF @MINIIS 0.8;Prusa Generic PVA HF MINIIS 0.8", - "inherits": "Generic PVA HF @Prusa base", + "inherits": "Generic PVA @Prusa base", "from": "system", "setting_id": "h0RQ3XME0UFEeZVA", + "filament_id": "OFDwBwO5", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS.json b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS.json index d15d79a5a1..9b903a6401 100644 --- a/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa MINIIS.json @@ -2,9 +2,10 @@ "type": "filament", "name": "Generic PVA HF @Prusa MINIIS", "renamed_from": "Prusa Generic PVA HF @MINIIS;Prusa Generic PVA HF MINIIS", - "inherits": "Generic PVA HF @Prusa base", + "inherits": "Generic PVA @Prusa base", "from": "system", "setting_id": "VZcvmjCAtivpMepD", + "filament_id": "OFDwBwO5", "instantiation": "true", "filament_flow_ratio": [ "1" diff --git a/resources/profiles/Prusa/filament/Generic PVA HF @Prusa base.json b/resources/profiles/Prusa/filament/Generic PVA HF @Prusa base.json deleted file mode 100644 index bd599d74b3..0000000000 --- a/resources/profiles/Prusa/filament/Generic PVA HF @Prusa base.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "filament", - "name": "Generic PVA HF @Prusa base", - "inherits": "fdm_filament_pva", - "from": "system", - "filament_id": "OFDwBwO5", - "instantiation": "false" -} diff --git a/resources/profiles/Prusa/filament/Generic TPU @Prusa CORE One MMU3.json b/resources/profiles/Prusa/filament/Generic TPU @Prusa CORE One MMU3.json deleted file mode 100644 index 7aa75a058f..0000000000 --- a/resources/profiles/Prusa/filament/Generic TPU @Prusa CORE One MMU3.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "type": "filament", - "name": "Generic TPU @Prusa CORE One MMU3", - "inherits": "Generic TPU @Prusa CORE One", - "from": "system", - "setting_id": "pYEUfg7uqu2LGw2n", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle", - "Prusa CORE One MMU3 0.25 nozzle", - "Prusa CORE One MMU3 0.3 nozzle", - "Prusa CORE One MMU3 0.6 nozzle" - ], - "filament_cooling_final_speed": [ - "3.4" - ], - "filament_cooling_initial_speed": [ - "2.2" - ], - "filament_cooling_moves": [ - "4" - ], - "filament_extruder_variant": [ - "Direct Drive Standard" - ], - "filament_loading_speed": [ - "28" - ], - "filament_loading_speed_start": [ - "3" - ], - "filament_ramming_parameters": [ - "120 100 6.6 6.8 7.2 7.6 7.9 8.2 8.7 9.4 9.9 10.0| 0.05 6.6 0.45 6.8 0.95 7.8 1.45 8.3 1.95 9.7 2.45 10 2.95 7.6 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6" - ], - "filament_stamping_distance": [ - "0" - ], - "filament_stamping_loading_speed": [ - "0" - ], - "filament_start_gcode": [ - "M900 K0 ; Filament gcode\n\nM142 S36 ; set heatbreak target temp" - ], - "filament_unloading_speed": [ - "90" - ], - "filament_unloading_speed_start": [ - "100" - ], - "idle_temperature": [ - "150" - ] -} diff --git a/resources/profiles/Prusa/filament/Generic TPU @Prusa CORE One.json b/resources/profiles/Prusa/filament/Generic TPU @Prusa CORE One.json index ae0a3edf7b..99677801a4 100644 --- a/resources/profiles/Prusa/filament/Generic TPU @Prusa CORE One.json +++ b/resources/profiles/Prusa/filament/Generic TPU @Prusa CORE One.json @@ -1,11 +1,10 @@ { "type": "filament", "name": "Generic TPU @Prusa CORE One", - "renamed_from": "Prusa Generic TPU @CORE One;Prusa Generic TPU CORE One", - "inherits": "fdm_filament_flex", + "renamed_from": "Prusa Generic TPU @CORE One;Prusa Generic TPU CORE One;Generic TPU @Prusa CORE One MMU3;Generic TPU @MMU3", + "inherits": "Generic TPU @Prusa base", "from": "system", "setting_id": "jsXqf9CeaXCvsrWM", - "filament_id": "OFgbpcy9", "instantiation": "true", "chamber_temperature": [ "30" @@ -19,10 +18,11 @@ "Prusa CORE One 0.4 nozzle", "Prusa CORE One 0.5 nozzle", "Prusa CORE One HF 0.4 nozzle", - "Prusa CORE One HF 0.5 nozzle" - ], - "fan_cooling_layer_time": [ - "100" + "Prusa CORE One HF 0.5 nozzle", + "Prusa CORE One MMU3 0.4 nozzle", + "Prusa CORE One MMU3 0.25 nozzle", + "Prusa CORE One MMU3 0.3 nozzle", + "Prusa CORE One MMU3 0.6 nozzle" ], "fan_max_speed": [ "50" @@ -39,9 +39,6 @@ "filament_deretraction_speed": [ "20" ], - "filament_diameter": [ - "1.75" - ], "filament_end_gcode": [ "; Filament-specific end gcode" ], @@ -51,12 +48,6 @@ "filament_max_volumetric_speed": [ "2.5" ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_notes": [ - "" - ], "filament_retraction_length": [ "2.5" ], @@ -66,18 +57,9 @@ "filament_retraction_speed": [ "60" ], - "filament_soluble": [ - "0" - ], "filament_start_gcode": [ "M900 K0 ; Filament gcode\n\nM142 S36 ; set heatbreak target temp" ], - "filament_type": [ - "TPU" - ], - "filament_vendor": [ - "Generic" - ], "filament_wipe": [ "0" ], @@ -102,13 +84,31 @@ "overhang_fan_speed": [ "70" ], - "reduce_fan_stop_start_freq": [ - "1" - ], "slow_down_layer_time": [ "10" ], "slow_down_min_speed": [ "15" + ], + "eng_plate_temp_initial_layer": [ + "60" + ], + "eng_plate_temp": [ + "60" + ], + "cool_plate_temp": [ + "60" + ], + "nozzle_temperature_range_low": [ + "190" + ], + "temperature_vitrification": [ + "100" + ], + "cool_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature_range_high": [ + "240" ] } diff --git a/resources/profiles/Prusa/filament/Generic TPU HF @Prusa MINIIS.json b/resources/profiles/Prusa/filament/Generic TPU HF @Prusa MINIIS.json index dc35f57d09..b7be0fc300 100644 --- a/resources/profiles/Prusa/filament/Generic TPU HF @Prusa MINIIS.json +++ b/resources/profiles/Prusa/filament/Generic TPU HF @Prusa MINIIS.json @@ -2,9 +2,10 @@ "type": "filament", "name": "Generic TPU HF @Prusa MINIIS", "renamed_from": "Prusa Generic TPU HF @MINIIS;Prusa Generic TPU HF MINIIS", - "inherits": "Generic TPU HF @Prusa base", + "inherits": "Generic TPU @Prusa base", "from": "system", "setting_id": "Jw1UjgrXtYG5rMDt", + "filament_id": "OFnT7Qpb", "instantiation": "true", "filament_max_volumetric_speed": [ "10" diff --git a/resources/profiles/Prusa/filament/Generic TPU HF @Prusa base.json b/resources/profiles/Prusa/filament/Generic TPU HF @Prusa base.json deleted file mode 100644 index 47b1b82c77..0000000000 --- a/resources/profiles/Prusa/filament/Generic TPU HF @Prusa base.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "filament", - "name": "Generic TPU HF @Prusa base", - "inherits": "fdm_filament_tpu", - "from": "system", - "filament_id": "OFnT7Qpb", - "instantiation": "false" -} diff --git a/resources/profiles/Prusa/filament/Prusament ASA @CORE One MMU3.json b/resources/profiles/Prusa/filament/Prusament ASA @CORE One MMU3.json deleted file mode 100644 index 6f415ba213..0000000000 --- a/resources/profiles/Prusa/filament/Prusament ASA @CORE One MMU3.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "type": "filament", - "name": "Prusament ASA @CORE One MMU3", - "inherits": "Prusament ASA @CORE One", - "from": "system", - "setting_id": "pESQ8XminojyIGyw", - "filament_id": "OFmFwUWM", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle", - "Prusa CORE One MMU3 0.25 nozzle", - "Prusa CORE One MMU3 0.3 nozzle", - "Prusa CORE One MMU3 0.6 nozzle" - ], - "filament_cooling_final_speed": [ - "2.5" - ], - "filament_cooling_initial_speed": [ - "5" - ], - "filament_cooling_moves": [ - "3" - ], - "filament_extruder_variant": [ - "Direct Drive Standard" - ], - "filament_loading_speed": [ - "10" - ], - "filament_loading_speed_start": [ - "50" - ], - "filament_ramming_parameters": [ - "250 100 42.4194 42.4194 42.4194 42.4194 42.4194| 0.05 42.4387 0.45 42.4387 0.95 42.4387 1.45 42.4387 1.95 42.4387 2.45 42.4387 2.95 42.4387 3.45 42.4387 3.95 42.4387 4.45 42.4387 4.95 42.4387" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "26.5" - ], - "filament_start_gcode": [ - "M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.02{elsif nozzle_diameter[filament_extruder_id]==0.5}0.018{elsif nozzle_diameter[filament_extruder_id]==0.6}0.012{elsif nozzle_diameter[filament_extruder_id]==0.8}0.01{elsif nozzle_diameter[filament_extruder_id]==0.25}0.09{elsif nozzle_diameter[filament_extruder_id]==0.3}0.065{else}0{endif} ; Filament gcode\n\nM142 S40 ; set heatbreak target temp" - ], - "filament_unloading_speed": [ - "60" - ], - "filament_unloading_speed_start": [ - "60" - ], - "idle_temperature": [ - "130" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusament ASA @CORE One.json b/resources/profiles/Prusa/filament/Prusament ASA @CORE One.json index b1f2dace26..fef0f31669 100644 --- a/resources/profiles/Prusa/filament/Prusament ASA @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusament ASA @CORE One.json @@ -1,6 +1,7 @@ { "type": "filament", "name": "Prusament ASA @CORE One", + "renamed_from": "Prusament ASA CORE One;Prusament ASA @CORE One MMU3;Prusament ASA CORE One MMU3", "inherits": "fdm_filament_asa", "from": "system", "setting_id": "UUTjJ4Y8St3c87jD", @@ -16,7 +17,11 @@ "Prusa CORE One 0.25 nozzle", "Prusa CORE One 0.3 nozzle", "Prusa CORE One 0.4 nozzle", - "Prusa CORE One 0.5 nozzle" + "Prusa CORE One 0.5 nozzle", + "Prusa CORE One MMU3 0.4 nozzle", + "Prusa CORE One MMU3 0.25 nozzle", + "Prusa CORE One MMU3 0.3 nozzle", + "Prusa CORE One MMU3 0.6 nozzle" ], "fan_cooling_layer_time": [ "20" diff --git a/resources/profiles/Prusa/filament/Prusament ASA @XL 5T.json b/resources/profiles/Prusa/filament/Prusament ASA @XL 5T.json deleted file mode 100644 index 43aed0f993..0000000000 --- a/resources/profiles/Prusa/filament/Prusament ASA @XL 5T.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "type": "filament", - "name": "Prusament ASA @XL 5T", - "inherits": "fdm_filament_asa", - "from": "system", - "setting_id": "IQu91UAWOJOQcUq9", - "filament_id": "OFmFwUWM", - "instantiation": "true", - "filament_vendor": [ - "Prusa Polymers" - ], - "nozzle_temperature_intial_layer": "260", - "nozzle_temperature": "260", - "hot_plate_temp_initial_layer": "100", - "hot_plate_temp": "105", - "filament_flow_ratio": [ - "1" - ], - "fan_max_speed": [ - "10" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_speed": [ - "30" - ], - "close_fan_the_first_x_layers": [ - "4" - ], - "slow_down_min_speed": [ - "15" - ], - "slow_down_layer_time": [ - "15" - ], - "filament_max_volumetric_speed": [ - "12" - ], - "filament_loading_speed_start": "19", - "filament_loading_speed": "14", - "filament_unloading_speed_start": "100", - "filament_unloading_speed": "20", - "filament_cooling_moves": "5", - "filament_cooling_initial_speed": "10", - "filament_cooling_final_speed": "50", - "filament_retract_lift_below": "1.5", - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_volume": [ - "5" - ], - "filament_multitool_ramming_flow": [ - "40" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "29" - ], - "filament_start_gcode": [ - "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.04{elsif nozzle_diameter[0]==0.25}0.1{elsif nozzle_diameter[0]==0.3}0.06{elsif nozzle_diameter[0]==0.35}0.05{elsif nozzle_diameter[0]==0.5}0.03{elsif nozzle_diameter[0]==0.6}0.02{elsif nozzle_diameter[0]==0.8}0.01{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.02{elsif nozzle_diameter[0]==0.5}0.018{elsif nozzle_diameter[0]==0.6}0.012{elsif nozzle_diameter[0]==0.8}0.01{elsif nozzle_diameter[0]==0.25}0.09{elsif nozzle_diameter[0]==0.3}0.065{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S40 ; set heatbreak target temp" - ], - "compatible_printers": [ - "Prusa XL 5T 0.25 nozzle", - "Prusa XL 5T 0.3 nozzle", - "Prusa XL 5T 0.4 nozzle", - "Prusa XL 5T 0.5 nozzle", - "Prusa XL 5T 0.6 nozzle", - "Prusa XL 5T 0.8 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusament ASA @XL.json b/resources/profiles/Prusa/filament/Prusament ASA @XL.json index d118538809..38c88c6ee4 100644 --- a/resources/profiles/Prusa/filament/Prusament ASA @XL.json +++ b/resources/profiles/Prusa/filament/Prusament ASA @XL.json @@ -1,6 +1,7 @@ { "type": "filament", "name": "Prusament ASA @XL", + "renamed_from": "Prusament ASA XL;Prusament ASA @XL 5T;Prusament ASA XL 5T", "inherits": "fdm_filament_asa", "from": "system", "setting_id": "RaEoFoZdXkkOz9yh", @@ -9,7 +10,6 @@ "filament_vendor": [ "Prusa Polymers" ], - "nozzle_temperature_intial_layer": "260", "nozzle_temperature": "260", "hot_plate_temp_initial_layer": "100", "hot_plate_temp": "105", @@ -54,6 +54,30 @@ "Prusa XL 0.4 nozzle", "Prusa XL 0.5 nozzle", "Prusa XL 0.6 nozzle", - "Prusa XL 0.8 nozzle" + "Prusa XL 0.8 nozzle", + "Prusa XL 5T 0.25 nozzle", + "Prusa XL 5T 0.3 nozzle", + "Prusa XL 5T 0.4 nozzle", + "Prusa XL 5T 0.5 nozzle", + "Prusa XL 5T 0.6 nozzle", + "Prusa XL 5T 0.8 nozzle" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "nozzle_temperature_initial_layer": [ + "260" ] } diff --git a/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One MMU3.json b/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One MMU3.json deleted file mode 100644 index cfdc1c5412..0000000000 --- a/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One MMU3.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "type": "filament", - "name": "Prusament PA-CF @CORE One MMU3", - "inherits": "Prusament PA-CF @CORE One", - "from": "system", - "setting_id": "DsvJLtFStnmOCm1m", - "filament_id": "OF54SvEe", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle", - "Prusa CORE One MMU3 0.25 nozzle", - "Prusa CORE One MMU3 0.3 nozzle", - "Prusa CORE One MMU3 0.6 nozzle" - ], - "filament_cooling_final_speed": [ - "2.5" - ], - "filament_cooling_initial_speed": [ - "5" - ], - "filament_cooling_moves": [ - "3" - ], - "filament_extruder_variant": [ - "Direct Drive Standard" - ], - "filament_loading_speed": [ - "10" - ], - "filament_loading_speed_start": [ - "50" - ], - "filament_ramming_parameters": [ - "250 100 42.4194 42.4194 42.4194 42.4194 42.4194| 0.05 42.4387 0.45 42.4387 0.95 42.4387 1.45 42.4387 1.95 42.4387 2.45 42.4387 2.95 42.4387 3.45 42.4387 3.95 42.4387 4.45 42.4387 4.95 42.4387" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "26.5" - ], - "filament_start_gcode": [ - "M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.6}0.025{elsif nozzle_diameter[filament_extruder_id]==0.8}0.016{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{else}0{endif} ; Filament gcode\n\nM142 S45 ; set heatbreak target temp" - ], - "filament_unloading_speed": [ - "60" - ], - "filament_unloading_speed_start": [ - "60" - ], - "idle_temperature": [ - "130" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusament PA-CF @XL.json b/resources/profiles/Prusa/filament/Prusament PA-CF @XL.json deleted file mode 100644 index 957a27f8cc..0000000000 --- a/resources/profiles/Prusa/filament/Prusament PA-CF @XL.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "type": "filament", - "name": "Prusament PA-CF @XL", - "inherits": "fdm_filament_pa11cf", - "from": "system", - "setting_id": "IrL4iU2kkMBHIw3e", - "filament_id": "OF54SvEe", - "instantiation": "true", - "filament_vendor": [ - "Prusa Polymers" - ], - "nozzle_temperature_intial_layer": "275", - "nozzle_temperature": "285", - "hot_plate_temp_initial_layer": "100", - "hot_plate_temp": "105", - "filament_flow_ratio": [ - "1.05" - ], - "fan_max_speed": [ - "20" - ], - "fan_min_speed": [ - "20" - ], - "overhang_fan_speed": [ - "30" - ], - "close_fan_the_first_x_layers": [ - "4" - ], - "slow_down_min_speed": [ - "15" - ], - "slow_down_layer_time": [ - "20" - ], - "filament_max_volumetric_speed": [ - "6.5" - ], - "filament_loading_speed_start": "19", - "filament_loading_speed": "14", - "filament_unloading_speed_start": "100", - "filament_unloading_speed": "20", - "filament_cooling_moves": "5", - "filament_cooling_initial_speed": "10", - "filament_cooling_final_speed": "50", - "filament_retract_lift_below": "1.5", - "filament_start_gcode": [ - "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.07{elsif nozzle_diameter[0]==0.3}0.09{elsif nozzle_diameter[0]==0.35}0.08{elsif nozzle_diameter[0]==0.6}0.04{elsif nozzle_diameter[0]==0.5}0.05{elsif nozzle_diameter[0]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.6}0.025{elsif nozzle_diameter[0]==0.8}0.016{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp" - ], - "compatible_printers": [ - "Prusa XL 0.25 nozzle", - "Prusa XL 0.3 nozzle", - "Prusa XL 0.4 nozzle", - "Prusa XL 0.5 nozzle", - "Prusa XL 0.6 nozzle", - "Prusa XL 0.8 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusament PA11 Carbon Fiber @CORE One 0.6.json similarity index 52% rename from resources/profiles/Prusa/filament/Prusament PA-CF @CORE One 0.6.json rename to resources/profiles/Prusa/filament/Prusament PA11 Carbon Fiber @CORE One 0.6.json index cbbd006468..9413c3c8df 100644 --- a/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Prusament PA11 Carbon Fiber @CORE One 0.6.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Prusament PA-CF @CORE One 0.6", - "inherits": "Prusament PA-CF @CORE One", + "name": "Prusament PA11 Carbon Fiber @CORE One 0.6", + "renamed_from": "Prusament PA-CF CORE One 0.6;Prusament PA-CF @CORE One 0.6", + "inherits": "Prusament PA11 Carbon Fiber @CORE One", "from": "system", - "setting_id": "sEDEmqR4k65IhJ4D", - "filament_id": "OF54SvEe", + "setting_id": "NnKKBWPNEdRvH949", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusament PA11 Carbon Fiber @CORE One 0.8.json similarity index 52% rename from resources/profiles/Prusa/filament/Prusament PA-CF @CORE One 0.8.json rename to resources/profiles/Prusa/filament/Prusament PA11 Carbon Fiber @CORE One 0.8.json index 434c534282..4bb2201267 100644 --- a/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Prusament PA11 Carbon Fiber @CORE One 0.8.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Prusament PA-CF @CORE One 0.8", - "inherits": "Prusament PA-CF @CORE One", + "name": "Prusament PA11 Carbon Fiber @CORE One 0.8", + "renamed_from": "Prusament PA-CF CORE One 0.8;Prusament PA-CF @CORE One 0.8", + "inherits": "Prusament PA11 Carbon Fiber @CORE One", "from": "system", - "setting_id": "gwFsNIMKGU1f2vPS", - "filament_id": "OF54SvEe", + "setting_id": "pf0wt2nXYdq9bDfT", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One.json b/resources/profiles/Prusa/filament/Prusament PA11 Carbon Fiber @CORE One.json similarity index 83% rename from resources/profiles/Prusa/filament/Prusament PA-CF @CORE One.json rename to resources/profiles/Prusa/filament/Prusament PA11 Carbon Fiber @CORE One.json index 33382b1974..0913f1ea9a 100644 --- a/resources/profiles/Prusa/filament/Prusament PA-CF @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusament PA11 Carbon Fiber @CORE One.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusament PA-CF @CORE One", + "name": "Prusament PA11 Carbon Fiber @CORE One", + "renamed_from": "Prusament PA-CF CORE One;Prusament PA-CF @CORE One MMU3;Prusament PA-CF CORE One MMU3;Prusament PA-CF @CORE One", "inherits": "fdm_filament_pa", "from": "system", - "setting_id": "08PdV2lMsSv1JeOt", - "filament_id": "OF54SvEe", + "setting_id": "sNGgucQjiFXwuFkq", + "filament_id": "OF4MZtnE", "instantiation": "true", "chamber_temperature": [ "40" @@ -18,7 +19,11 @@ "Prusa CORE One 0.4 nozzle", "Prusa CORE One 0.5 nozzle", "Prusa CORE One HF 0.4 nozzle", - "Prusa CORE One HF 0.5 nozzle" + "Prusa CORE One HF 0.5 nozzle", + "Prusa CORE One MMU3 0.4 nozzle", + "Prusa CORE One MMU3 0.25 nozzle", + "Prusa CORE One MMU3 0.3 nozzle", + "Prusa CORE One MMU3 0.6 nozzle" ], "fan_cooling_layer_time": [ "15" diff --git a/resources/profiles/Prusa/filament/Prusament PA-CF @XL 5T.json b/resources/profiles/Prusa/filament/Prusament PA11 Carbon Fiber @XL.json similarity index 63% rename from resources/profiles/Prusa/filament/Prusament PA-CF @XL 5T.json rename to resources/profiles/Prusa/filament/Prusament PA11 Carbon Fiber @XL.json index 80a9653148..64a56c6998 100644 --- a/resources/profiles/Prusa/filament/Prusament PA-CF @XL 5T.json +++ b/resources/profiles/Prusa/filament/Prusament PA11 Carbon Fiber @XL.json @@ -1,18 +1,24 @@ { "type": "filament", - "name": "Prusament PA-CF @XL 5T", + "name": "Prusament PA11 Carbon Fiber @XL", + "renamed_from": "Prusament PA-CF XL;Prusament PA-CF @XL 5T;Prusament PA-CF XL 5T;Prusament PA-CF @XL", "inherits": "fdm_filament_pa11cf", "from": "system", - "setting_id": "FYerOcjToJ3ABpu1", - "filament_id": "OF54SvEe", + "setting_id": "exG5swknk2cWAbpY", + "filament_id": "OF4MZtnE", "instantiation": "true", "filament_vendor": [ "Prusa Polymers" ], - "nozzle_temperature_intial_layer": "275", - "nozzle_temperature": "285", - "hot_plate_temp_initial_layer": "100", - "hot_plate_temp": "105", + "nozzle_temperature": [ + "285" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "hot_plate_temp": [ + "105" + ], "filament_flow_ratio": [ "1.05" ], @@ -37,16 +43,46 @@ "filament_max_volumetric_speed": [ "6.5" ], - "filament_loading_speed_start": "19", - "filament_loading_speed": "14", - "filament_unloading_speed_start": "100", - "filament_unloading_speed": "20", - "filament_cooling_moves": "5", - "filament_cooling_initial_speed": "10", - "filament_cooling_final_speed": "50", - "filament_retract_lift_below": "1.5", - "filament_multitool_ramming": [ - "1" + "filament_loading_speed_start": [ + "19" + ], + "filament_loading_speed": [ + "14" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_unloading_speed": [ + "20" + ], + "filament_cooling_moves": [ + "5" + ], + "filament_cooling_initial_speed": [ + "10" + ], + "filament_cooling_final_speed": [ + "50" + ], + "filament_retract_lift_below": [ + "1.5" + ], + "filament_start_gcode": [ + "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.07{elsif nozzle_diameter[0]==0.3}0.09{elsif nozzle_diameter[0]==0.35}0.08{elsif nozzle_diameter[0]==0.6}0.04{elsif nozzle_diameter[0]==0.5}0.05{elsif nozzle_diameter[0]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.6}0.025{elsif nozzle_diameter[0]==0.8}0.016{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp" + ], + "compatible_printers": [ + "Prusa XL 0.25 nozzle", + "Prusa XL 0.3 nozzle", + "Prusa XL 0.4 nozzle", + "Prusa XL 0.5 nozzle", + "Prusa XL 0.6 nozzle", + "Prusa XL 0.8 nozzle", + "Prusa XL 5T 0.25 nozzle", + "Prusa XL 5T 0.3 nozzle", + "Prusa XL 5T 0.4 nozzle", + "Prusa XL 5T 0.5 nozzle", + "Prusa XL 5T 0.6 nozzle", + "Prusa XL 5T 0.8 nozzle" ], "filament_multitool_ramming_volume": [ "5" @@ -60,15 +96,10 @@ "filament_stamping_loading_speed": [ "29" ], - "filament_start_gcode": [ - "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.07{elsif nozzle_diameter[0]==0.3}0.09{elsif nozzle_diameter[0]==0.35}0.08{elsif nozzle_diameter[0]==0.6}0.04{elsif nozzle_diameter[0]==0.5}0.05{elsif nozzle_diameter[0]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.6}0.025{elsif nozzle_diameter[0]==0.8}0.016{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp" + "filament_multitool_ramming": [ + "1" ], - "compatible_printers": [ - "Prusa XL 5T 0.25 nozzle", - "Prusa XL 5T 0.3 nozzle", - "Prusa XL 5T 0.4 nozzle", - "Prusa XL 5T 0.5 nozzle", - "Prusa XL 5T 0.6 nozzle", - "Prusa XL 5T 0.8 nozzle" + "nozzle_temperature_initial_layer": [ + "275" ] } diff --git a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One MMU3.json b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One MMU3.json deleted file mode 100644 index ac1e31b8a5..0000000000 --- a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One MMU3.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "type": "filament", - "name": "Prusament PC Blend @CORE One MMU3", - "inherits": "Prusament PC Blend @CORE One", - "from": "system", - "setting_id": "VjMN8MwtU3BG5cA9", - "filament_id": "OFvDbkFq", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle", - "Prusa CORE One MMU3 0.25 nozzle", - "Prusa CORE One MMU3 0.3 nozzle", - "Prusa CORE One MMU3 0.6 nozzle" - ], - "filament_cooling_final_speed": [ - "2.5" - ], - "filament_cooling_initial_speed": [ - "5" - ], - "filament_cooling_moves": [ - "3" - ], - "filament_extruder_variant": [ - "Direct Drive Standard" - ], - "filament_loading_speed": [ - "10" - ], - "filament_loading_speed_start": [ - "50" - ], - "filament_ramming_parameters": [ - "250 100 42.4194 42.4194 42.4194 42.4194 42.4194| 0.05 42.4387 0.45 42.4387 0.95 42.4387 1.45 42.4387 1.95 42.4387 2.45 42.4387 2.95 42.4387 3.45 42.4387 3.95 42.4387 4.45 42.4387 4.95 42.4387" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "26.5" - ], - "filament_start_gcode": [ - "M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.6}0.025{elsif nozzle_diameter[filament_extruder_id]==0.8}0.016{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{else}0{endif} ; Filament gcode\n\nM142 S45 ; set heatbreak target temp" - ], - "filament_unloading_speed": [ - "60" - ], - "filament_unloading_speed_start": [ - "60" - ], - "idle_temperature": [ - "150" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One.json b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One.json index 34ecd1d759..1ef6ad5868 100644 --- a/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusament PC Blend @CORE One.json @@ -1,6 +1,7 @@ { "type": "filament", "name": "Prusament PC Blend @CORE One", + "renamed_from": "Prusament PC Blend CORE One;Prusament PC Blend @CORE One MMU3;Prusament PC Blend CORE One MMU3", "inherits": "fdm_filament_pc", "from": "system", "setting_id": "x1SkWhSSkVVIPwCF", @@ -16,7 +17,11 @@ "Prusa CORE One 0.25 nozzle", "Prusa CORE One 0.3 nozzle", "Prusa CORE One 0.4 nozzle", - "Prusa CORE One 0.5 nozzle" + "Prusa CORE One 0.5 nozzle", + "Prusa CORE One MMU3 0.4 nozzle", + "Prusa CORE One MMU3 0.25 nozzle", + "Prusa CORE One MMU3 0.3 nozzle", + "Prusa CORE One MMU3 0.6 nozzle" ], "fan_cooling_layer_time": [ "35" @@ -73,7 +78,7 @@ "110" ], "idle_temperature": [ - "130" + "150" ], "nozzle_temperature": [ "275" diff --git a/resources/profiles/Prusa/filament/Prusament PC Blend @XL 5T.json b/resources/profiles/Prusa/filament/Prusament PC Blend @XL 5T.json deleted file mode 100644 index ff60e677cb..0000000000 --- a/resources/profiles/Prusa/filament/Prusament PC Blend @XL 5T.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "type": "filament", - "name": "Prusament PC Blend @XL 5T", - "inherits": "fdm_filament_pc", - "from": "system", - "setting_id": "FOgpd4BtawBtmjPB", - "filament_id": "OFvDbkFq", - "instantiation": "true", - "filament_vendor": [ - "Prusa Polymers" - ], - "nozzle_temperature_intial_layer": "275", - "nozzle_temperature": "275", - "hot_plate_temp_initial_layer": "100", - "hot_plate_temp": "105", - "filament_flow_ratio": [ - "1" - ], - "fan_max_speed": [ - "10" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_speed": [ - "30" - ], - "close_fan_the_first_x_layers": [ - "4" - ], - "slow_down_min_speed": [ - "15" - ], - "slow_down_layer_time": [ - "20" - ], - "filament_max_volumetric_speed": [ - "9" - ], - "filament_loading_speed_start": "19", - "filament_loading_speed": "14", - "filament_unloading_speed_start": "100", - "filament_unloading_speed": "20", - "filament_cooling_moves": "5", - "filament_cooling_initial_speed": "10", - "filament_cooling_final_speed": "50", - "filament_retract_lift_below": "1.5", - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_volume": [ - "5" - ], - "filament_multitool_ramming_flow": [ - "40" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "29" - ], - "filament_start_gcode": [ - "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.07{elsif nozzle_diameter[0]==0.3}0.09{elsif nozzle_diameter[0]==0.35}0.08{elsif nozzle_diameter[0]==0.6}0.04{elsif nozzle_diameter[0]==0.5}0.05{elsif nozzle_diameter[0]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.6}0.025{elsif nozzle_diameter[0]==0.8}0.016{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp" - ], - "compatible_printers": [ - "Prusa XL 5T 0.25 nozzle", - "Prusa XL 5T 0.3 nozzle", - "Prusa XL 5T 0.4 nozzle", - "Prusa XL 5T 0.5 nozzle", - "Prusa XL 5T 0.6 nozzle", - "Prusa XL 5T 0.8 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusament PC Blend @XL.json b/resources/profiles/Prusa/filament/Prusament PC Blend @XL.json index d3fdac3873..5c1ed726c6 100644 --- a/resources/profiles/Prusa/filament/Prusament PC Blend @XL.json +++ b/resources/profiles/Prusa/filament/Prusament PC Blend @XL.json @@ -1,6 +1,7 @@ { "type": "filament", "name": "Prusament PC Blend @XL", + "renamed_from": "Prusament PC Blend XL;Prusament PC Blend @XL 5T;Prusament PC Blend XL 5T", "inherits": "fdm_filament_pc", "from": "system", "setting_id": "DLTlxt04GREtOiec", @@ -9,7 +10,6 @@ "filament_vendor": [ "Prusa Polymers" ], - "nozzle_temperature_intial_layer": "275", "nozzle_temperature": "275", "hot_plate_temp_initial_layer": "100", "hot_plate_temp": "105", @@ -54,6 +54,30 @@ "Prusa XL 0.4 nozzle", "Prusa XL 0.5 nozzle", "Prusa XL 0.6 nozzle", - "Prusa XL 0.8 nozzle" + "Prusa XL 0.8 nozzle", + "Prusa XL 5T 0.25 nozzle", + "Prusa XL 5T 0.3 nozzle", + "Prusa XL 5T 0.4 nozzle", + "Prusa XL 5T 0.5 nozzle", + "Prusa XL 5T 0.6 nozzle", + "Prusa XL 5T 0.8 nozzle" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "nozzle_temperature_initial_layer": [ + "275" ] } diff --git a/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One 0.6.json b/resources/profiles/Prusa/filament/Prusament PC Blend Carbon Fiber @CORE One 0.6.json similarity index 55% rename from resources/profiles/Prusa/filament/Prusament PC-CF @CORE One 0.6.json rename to resources/profiles/Prusa/filament/Prusament PC Blend Carbon Fiber @CORE One 0.6.json index f4722bb89a..369c850611 100644 --- a/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One 0.6.json +++ b/resources/profiles/Prusa/filament/Prusament PC Blend Carbon Fiber @CORE One 0.6.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Prusament PC-CF @CORE One 0.6", - "inherits": "Prusament PC-CF @CORE One", + "name": "Prusament PC Blend Carbon Fiber @CORE One 0.6", + "renamed_from": "Prusament PC-CF CORE One 0.6;Prusament PC-CF @CORE One 0.6", + "inherits": "Prusament PC Blend Carbon Fiber @CORE One", "from": "system", - "setting_id": "DYPBEKeKBdTenG3S", - "filament_id": "OFjz0a3m", + "setting_id": "Gsq4L4tYlg0j2waT", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.6 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One 0.8.json b/resources/profiles/Prusa/filament/Prusament PC Blend Carbon Fiber @CORE One 0.8.json similarity index 55% rename from resources/profiles/Prusa/filament/Prusament PC-CF @CORE One 0.8.json rename to resources/profiles/Prusa/filament/Prusament PC Blend Carbon Fiber @CORE One 0.8.json index 2abf3ab8d7..b595e8caff 100644 --- a/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One 0.8.json +++ b/resources/profiles/Prusa/filament/Prusament PC Blend Carbon Fiber @CORE One 0.8.json @@ -1,10 +1,10 @@ { "type": "filament", - "name": "Prusament PC-CF @CORE One 0.8", - "inherits": "Prusament PC-CF @CORE One", + "name": "Prusament PC Blend Carbon Fiber @CORE One 0.8", + "renamed_from": "Prusament PC-CF CORE One 0.8;Prusament PC-CF @CORE One 0.8", + "inherits": "Prusament PC Blend Carbon Fiber @CORE One", "from": "system", - "setting_id": "0J8ZuIRTB6EgSke8", - "filament_id": "OFjz0a3m", + "setting_id": "9xRQMlnH6yEd960F", "instantiation": "true", "compatible_printers": [ "Prusa CORE One 0.8 nozzle", diff --git a/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One.json b/resources/profiles/Prusa/filament/Prusament PC Blend Carbon Fiber @CORE One.json similarity index 83% rename from resources/profiles/Prusa/filament/Prusament PC-CF @CORE One.json rename to resources/profiles/Prusa/filament/Prusament PC Blend Carbon Fiber @CORE One.json index 0d5622b7ab..d691595bf5 100644 --- a/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusament PC Blend Carbon Fiber @CORE One.json @@ -1,10 +1,11 @@ { "type": "filament", - "name": "Prusament PC-CF @CORE One", + "name": "Prusament PC Blend Carbon Fiber @CORE One", + "renamed_from": "Prusament PC-CF CORE One;Prusament PC-CF @CORE One MMU3;Prusament PC-CF CORE One MMU3;Prusament PC-CF @CORE One", "inherits": "fdm_filament_pc", "from": "system", - "setting_id": "IK6Z7DVevvmR96Or", - "filament_id": "OFjz0a3m", + "setting_id": "B8Cm9l8i9osp5J2q", + "filament_id": "OFdO6vpt", "instantiation": "true", "chamber_temperature": [ "40" @@ -18,7 +19,11 @@ "Prusa CORE One 0.4 nozzle", "Prusa CORE One 0.5 nozzle", "Prusa CORE One HF 0.4 nozzle", - "Prusa CORE One HF 0.5 nozzle" + "Prusa CORE One HF 0.5 nozzle", + "Prusa CORE One MMU3 0.4 nozzle", + "Prusa CORE One MMU3 0.25 nozzle", + "Prusa CORE One MMU3 0.3 nozzle", + "Prusa CORE One MMU3 0.6 nozzle" ], "fan_cooling_layer_time": [ "15" @@ -75,7 +80,7 @@ "110" ], "idle_temperature": [ - "130" + "150" ], "nozzle_temperature": [ "285" diff --git a/resources/profiles/Prusa/filament/Prusament PC-CF @XL 5T.json b/resources/profiles/Prusa/filament/Prusament PC Blend Carbon Fiber @XL.json similarity index 63% rename from resources/profiles/Prusa/filament/Prusament PC-CF @XL 5T.json rename to resources/profiles/Prusa/filament/Prusament PC Blend Carbon Fiber @XL.json index 7ef720791d..1d47a8d9fb 100644 --- a/resources/profiles/Prusa/filament/Prusament PC-CF @XL 5T.json +++ b/resources/profiles/Prusa/filament/Prusament PC Blend Carbon Fiber @XL.json @@ -1,18 +1,24 @@ { "type": "filament", - "name": "Prusament PC-CF @XL 5T", + "name": "Prusament PC Blend Carbon Fiber @XL", + "renamed_from": "Prusament PC-CF XL;Prusament PC-CF @XL 5T;Prusament PC-CF XL 5T;Prusament PC-CF @XL", "inherits": "fdm_filament_pccf", "from": "system", - "setting_id": "m1YND6uz3GWeVIBG", - "filament_id": "OFjz0a3m", + "setting_id": "kEl0d9cAhfqIdihm", + "filament_id": "OFdO6vpt", "instantiation": "true", "filament_vendor": [ "Prusa Polymers" ], - "nozzle_temperature_intial_layer": "285", - "nozzle_temperature": "285", - "hot_plate_temp_initial_layer": "100", - "hot_plate_temp": "105", + "nozzle_temperature": [ + "285" + ], + "hot_plate_temp_initial_layer": [ + "100" + ], + "hot_plate_temp": [ + "105" + ], "filament_flow_ratio": [ "1.04" ], @@ -37,16 +43,46 @@ "filament_max_volumetric_speed": [ "8" ], - "filament_loading_speed_start": "19", - "filament_loading_speed": "14", - "filament_unloading_speed_start": "100", - "filament_unloading_speed": "20", - "filament_cooling_moves": "5", - "filament_cooling_initial_speed": "10", - "filament_cooling_final_speed": "50", - "filament_retract_lift_below": "1.5", - "filament_multitool_ramming": [ - "1" + "filament_loading_speed_start": [ + "19" + ], + "filament_loading_speed": [ + "14" + ], + "filament_unloading_speed_start": [ + "100" + ], + "filament_unloading_speed": [ + "20" + ], + "filament_cooling_moves": [ + "5" + ], + "filament_cooling_initial_speed": [ + "10" + ], + "filament_cooling_final_speed": [ + "50" + ], + "filament_retract_lift_below": [ + "1.5" + ], + "filament_start_gcode": [ + "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.07{elsif nozzle_diameter[0]==0.3}0.09{elsif nozzle_diameter[0]==0.35}0.08{elsif nozzle_diameter[0]==0.6}0.04{elsif nozzle_diameter[0]==0.5}0.05{elsif nozzle_diameter[0]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.6}0.025{elsif nozzle_diameter[0]==0.8}0.016{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp" + ], + "compatible_printers": [ + "Prusa XL 0.25 nozzle", + "Prusa XL 0.3 nozzle", + "Prusa XL 0.4 nozzle", + "Prusa XL 0.5 nozzle", + "Prusa XL 0.6 nozzle", + "Prusa XL 0.8 nozzle", + "Prusa XL 5T 0.25 nozzle", + "Prusa XL 5T 0.3 nozzle", + "Prusa XL 5T 0.4 nozzle", + "Prusa XL 5T 0.5 nozzle", + "Prusa XL 5T 0.6 nozzle", + "Prusa XL 5T 0.8 nozzle" ], "filament_multitool_ramming_volume": [ "5" @@ -60,15 +96,10 @@ "filament_stamping_loading_speed": [ "29" ], - "filament_start_gcode": [ - "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.07{elsif nozzle_diameter[0]==0.3}0.09{elsif nozzle_diameter[0]==0.35}0.08{elsif nozzle_diameter[0]==0.6}0.04{elsif nozzle_diameter[0]==0.5}0.05{elsif nozzle_diameter[0]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.6}0.025{elsif nozzle_diameter[0]==0.8}0.016{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp" + "filament_multitool_ramming": [ + "1" ], - "compatible_printers": [ - "Prusa XL 5T 0.25 nozzle", - "Prusa XL 5T 0.3 nozzle", - "Prusa XL 5T 0.4 nozzle", - "Prusa XL 5T 0.5 nozzle", - "Prusa XL 5T 0.6 nozzle", - "Prusa XL 5T 0.8 nozzle" + "nozzle_temperature_initial_layer": [ + "285" ] } diff --git a/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One MMU3.json b/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One MMU3.json deleted file mode 100644 index fc73ddf3b4..0000000000 --- a/resources/profiles/Prusa/filament/Prusament PC-CF @CORE One MMU3.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "type": "filament", - "name": "Prusament PC-CF @CORE One MMU3", - "inherits": "Prusament PC-CF @CORE One", - "from": "system", - "setting_id": "hTcuccoINAUJ4PfR", - "filament_id": "OFjz0a3m", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle", - "Prusa CORE One MMU3 0.25 nozzle", - "Prusa CORE One MMU3 0.3 nozzle", - "Prusa CORE One MMU3 0.6 nozzle" - ], - "filament_cooling_final_speed": [ - "2.5" - ], - "filament_cooling_initial_speed": [ - "5" - ], - "filament_cooling_moves": [ - "3" - ], - "filament_extruder_variant": [ - "Direct Drive Standard" - ], - "filament_loading_speed": [ - "10" - ], - "filament_loading_speed_start": [ - "50" - ], - "filament_ramming_parameters": [ - "250 100 42.4194 42.4194 42.4194 42.4194 42.4194| 0.05 42.4387 0.45 42.4387 0.95 42.4387 1.45 42.4387 1.95 42.4387 2.45 42.4387 2.95 42.4387 3.45 42.4387 3.95 42.4387 4.45 42.4387 4.95 42.4387" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "26.5" - ], - "filament_start_gcode": [ - "M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.05{elsif nozzle_diameter[filament_extruder_id]==0.5}0.035{elsif nozzle_diameter[filament_extruder_id]==0.6}0.025{elsif nozzle_diameter[filament_extruder_id]==0.8}0.016{elsif nozzle_diameter[filament_extruder_id]==0.25}0.14{elsif nozzle_diameter[filament_extruder_id]==0.3}0.09{else}0{endif} ; Filament gcode\n\nM142 S45 ; set heatbreak target temp" - ], - "filament_unloading_speed": [ - "60" - ], - "filament_unloading_speed_start": [ - "60" - ], - "idle_temperature": [ - "150" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusament PC-CF @XL.json b/resources/profiles/Prusa/filament/Prusament PC-CF @XL.json deleted file mode 100644 index 44abf2918e..0000000000 --- a/resources/profiles/Prusa/filament/Prusament PC-CF @XL.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "type": "filament", - "name": "Prusament PC-CF @XL", - "inherits": "fdm_filament_pccf", - "from": "system", - "setting_id": "Eq5x2CcEUUAZ5aof", - "filament_id": "OFjz0a3m", - "instantiation": "true", - "filament_vendor": [ - "Prusa Polymers" - ], - "nozzle_temperature_intial_layer": "285", - "nozzle_temperature": "285", - "hot_plate_temp_initial_layer": "100", - "hot_plate_temp": "105", - "filament_flow_ratio": [ - "1.04" - ], - "fan_max_speed": [ - "10" - ], - "fan_min_speed": [ - "10" - ], - "overhang_fan_speed": [ - "30" - ], - "close_fan_the_first_x_layers": [ - "4" - ], - "slow_down_min_speed": [ - "15" - ], - "slow_down_layer_time": [ - "20" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "filament_loading_speed_start": "19", - "filament_loading_speed": "14", - "filament_unloading_speed_start": "100", - "filament_unloading_speed": "20", - "filament_cooling_moves": "5", - "filament_cooling_initial_speed": "10", - "filament_cooling_final_speed": "50", - "filament_retract_lift_below": "1.5", - "filament_start_gcode": [ - "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.07{elsif nozzle_diameter[0]==0.3}0.09{elsif nozzle_diameter[0]==0.35}0.08{elsif nozzle_diameter[0]==0.6}0.04{elsif nozzle_diameter[0]==0.5}0.05{elsif nozzle_diameter[0]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.6}0.025{elsif nozzle_diameter[0]==0.8}0.016{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.09{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S45 ; set heatbreak target temp" - ], - "compatible_printers": [ - "Prusa XL 0.25 nozzle", - "Prusa XL 0.3 nozzle", - "Prusa XL 0.4 nozzle", - "Prusa XL 0.5 nozzle", - "Prusa XL 0.6 nozzle", - "Prusa XL 0.8 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusament PETG @CORE One MMU3.json b/resources/profiles/Prusa/filament/Prusament PETG @CORE One MMU3.json deleted file mode 100644 index 70d19cc0d1..0000000000 --- a/resources/profiles/Prusa/filament/Prusament PETG @CORE One MMU3.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "type": "filament", - "name": "Prusament PETG @CORE One MMU3", - "inherits": "Prusament PETG @CORE One", - "from": "system", - "setting_id": "ypQNV38FrfRu9QSd", - "filament_id": "OFkR8E2c", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle", - "Prusa CORE One MMU3 0.25 nozzle", - "Prusa CORE One MMU3 0.3 nozzle", - "Prusa CORE One MMU3 0.6 nozzle" - ], - "filament_cooling_final_speed": [ - "2.5" - ], - "filament_cooling_initial_speed": [ - "5" - ], - "filament_cooling_moves": [ - "3" - ], - "filament_extruder_variant": [ - "Direct Drive Standard" - ], - "filament_loading_speed": [ - "10" - ], - "filament_loading_speed_start": [ - "50" - ], - "filament_ramming_parameters": [ - "250 100 42.4194 42.4194 42.4194 42.4194 42.4194| 0.05 42.4387 0.45 42.4387 0.95 42.4387 1.45 42.4387 1.95 42.4387 2.45 42.4387 2.95 42.4387 3.45 42.4387 3.95 42.4387 4.45 42.4387 4.95 42.4387" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "26.5" - ], - "filament_start_gcode": [ - "M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.053{elsif nozzle_diameter[filament_extruder_id]==0.5}0.042{elsif nozzle_diameter[filament_extruder_id]==0.6}0.032{elsif nozzle_diameter[filament_extruder_id]==0.8}0.018{elsif nozzle_diameter[filament_extruder_id]==0.25}0.18{elsif nozzle_diameter[filament_extruder_id]==0.3}0.1{else}0{endif} ; Filament gcode\n\nM142 S36 ; set heatbreak target temp" - ], - "filament_unloading_speed": [ - "60" - ], - "filament_unloading_speed_start": [ - "60" - ], - "idle_temperature": [ - "130" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusament PETG @CORE One.json b/resources/profiles/Prusa/filament/Prusament PETG @CORE One.json index 00f78be204..39090d8977 100644 --- a/resources/profiles/Prusa/filament/Prusament PETG @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusament PETG @CORE One.json @@ -1,6 +1,7 @@ { "type": "filament", "name": "Prusament PETG @CORE One", + "renamed_from": "Prusament PETG CORE One;Prusament PETG @CORE One MMU3;Prusament PETG CORE One MMU3", "inherits": "fdm_filament_pet", "from": "system", "setting_id": "LSvba9ds3XTwDMCG", @@ -16,7 +17,11 @@ "Prusa CORE One 0.25 nozzle", "Prusa CORE One 0.3 nozzle", "Prusa CORE One 0.4 nozzle", - "Prusa CORE One 0.5 nozzle" + "Prusa CORE One 0.5 nozzle", + "Prusa CORE One MMU3 0.4 nozzle", + "Prusa CORE One MMU3 0.25 nozzle", + "Prusa CORE One MMU3 0.3 nozzle", + "Prusa CORE One MMU3 0.6 nozzle" ], "fan_cooling_layer_time": [ "25" diff --git a/resources/profiles/Prusa/filament/Prusament PETG @Prusa CORE One INDX.json b/resources/profiles/Prusa/filament/Prusament PETG @Prusa CORE One INDX.json new file mode 100644 index 0000000000..0fdb644150 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusament PETG @Prusa CORE One INDX.json @@ -0,0 +1,125 @@ +{ + "type": "filament", + "name": "Prusament PETG @Prusa CORE One INDX", + "inherits": "fdm_filament_pet", + "from": "system", + "setting_id": "2viuOmBvXuQm2FwV", + "filament_id": "OFkR8E2c", + "instantiation": "true", + "filament_flow_ratio": [ + "1" + ], + "filament_cost": [ + "29.99" + ], + "filament_density": [ + "1.27" + ], + "filament_diameter": [ + "1.75" + ], + "filament_notes": [ + "\nPrusa INDX 2.5.10 tuning." + ], + "filament_soluble": [ + "0" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "9" + ], + "hot_plate_temp": [ + "90" + ], + "overhang_fan_speed": [ + "60" + ], + "close_fan_the_first_x_layers": [ + "3" + ], + "full_fan_speed_layer": [ + "5" + ], + "fan_cooling_layer_time": [ + "25" + ], + "default_filament_colour": [ + "#FF8000" + ], + "filament_max_volumetric_speed": [ + "20" + ], + "filament_type": [ + "PETG" + ], + "hot_plate_temp_initial_layer": [ + "85" + ], + "nozzle_temperature_initial_layer": [ + "255" + ], + "fan_max_speed": [ + "65" + ], + "fan_min_speed": [ + "30" + ], + "nozzle_temperature": [ + "250" + ], + "filament_retraction_length": [ + "1.6" + ], + "filament_vendor": [ + "Prusa Polymers" + ], + "filament_wipe": [ + "1" + ], + "filament_retract_before_wipe": [ + "20" + ], + "filament_z_hop": [ + "1" + ], + "chamber_temperature": [ + "35" + ], + "chamber_minimal_temperature": [ + "0" + ], + "filament_retract_length_toolchange": [ + "1.6" + ], + "compatible_printers": [ + "Prusa CORE One INDX 4T HF 0.4 nozzle", + "Prusa CORE One INDX 8T HF 0.4 nozzle" + ], + "compatible_printers_condition": "", + "idle_temperature": [ + "0" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "textured_plate_temp": [ + "90" + ], + "textured_plate_temp_initial_layer": [ + "85" + ], + "activate_chamber_temp_control": [ + "1" + ], + "pressure_advance": [ + "0.058" + ], + "filament_extruder_variant": [ + "Direct Drive High Flow" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusament PETG @XL 5T.json b/resources/profiles/Prusa/filament/Prusament PETG @XL 5T.json deleted file mode 100644 index 95e9ecc79b..0000000000 --- a/resources/profiles/Prusa/filament/Prusament PETG @XL 5T.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "type": "filament", - "name": "Prusament PETG @XL 5T", - "inherits": "Prusament PETG @base", - "from": "system", - "setting_id": "USigpRWuzpdkT6ZW", - "instantiation": "true", - "nozzle_temperature_intial_layer": "240", - "nozzle_temperature": "250", - "hot_plate_temp_initial_layer": "80", - "hot_plate_temp": "80", - "full_fan_speed_layer": "5", - "slow_down_min_speed": "15", - "filament_flow_ratio": [ - "1" - ], - "filament_max_volumetric_speed": [ - "9.5" - ], - "slow_down_layer_time": [ - "9" - ], - "fan_max_speed": [ - "50" - ], - "fan_min_speed": [ - "30" - ], - "overhang_fan_speed": [ - "50" - ], - "close_fan_the_first_x_layers": [ - "3" - ], - "filament_loading_speed_start": "50", - "filament_loading_speed": "10", - "filament_unloading_speed_start": "100", - "filament_unloading_speed": "100", - "filament_cooling_moves": "3", - "filament_cooling_initial_speed": "5", - "filament_cooling_final_speed": "2.5", - "filament_retract_lift_below": "1.5", - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_volume": [ - "10" - ], - "filament_multitool_ramming_flow": [ - "40" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "29" - ], - "filament_wipe": "1", - "filament_retract_before_wipe": "20%", - "filament_start_gcode": [ - "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.07{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.09{elsif nozzle_diameter[0]==0.35}0.08{elsif nozzle_diameter[0]==0.6}0.04{elsif nozzle_diameter[0]==0.5}0.05{elsif nozzle_diameter[0]==0.8}0.02{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.053{elsif nozzle_diameter[0]==0.5}0.042{elsif nozzle_diameter[0]==0.6}0.032{elsif nozzle_diameter[0]==0.8}0.018{elsif nozzle_diameter[0]==0.25}0.18{elsif nozzle_diameter[0]==0.3}0.1{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp" - ], - "compatible_printers": [ - "Prusa XL 5T 0.25 nozzle", - "Prusa XL 5T 0.3 nozzle", - "Prusa XL 5T 0.4 nozzle", - "Prusa XL 5T 0.5 nozzle", - "Prusa XL 5T 0.6 nozzle", - "Prusa XL 5T 0.8 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusament PETG @XL.json b/resources/profiles/Prusa/filament/Prusament PETG @XL.json index 56c2fa7a2b..611ee20168 100644 --- a/resources/profiles/Prusa/filament/Prusament PETG @XL.json +++ b/resources/profiles/Prusa/filament/Prusament PETG @XL.json @@ -1,11 +1,11 @@ { "type": "filament", "name": "Prusament PETG @XL", + "renamed_from": "Prusament PETG XL;Prusament PETG @XL 5T;Prusament PETG XL 5T", "inherits": "Prusament PETG @base", "from": "system", "setting_id": "vPPD8EkKFy5j8pg5", "instantiation": "true", - "nozzle_temperature_intial_layer": "240", "nozzle_temperature": "250", "hot_plate_temp_initial_layer": "80", "hot_plate_temp": "80", @@ -51,6 +51,30 @@ "Prusa XL 0.4 nozzle", "Prusa XL 0.5 nozzle", "Prusa XL 0.6 nozzle", - "Prusa XL 0.8 nozzle" + "Prusa XL 0.8 nozzle", + "Prusa XL 5T 0.25 nozzle", + "Prusa XL 5T 0.3 nozzle", + "Prusa XL 5T 0.4 nozzle", + "Prusa XL 5T 0.5 nozzle", + "Prusa XL 5T 0.6 nozzle", + "Prusa XL 5T 0.8 nozzle" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_multitool_ramming_volume": [ + "10" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "nozzle_temperature_initial_layer": [ + "240" ] } diff --git a/resources/profiles/Prusa/filament/Prusament PLA @CORE One MMU3.json b/resources/profiles/Prusa/filament/Prusament PLA @CORE One MMU3.json deleted file mode 100644 index df0112ed8f..0000000000 --- a/resources/profiles/Prusa/filament/Prusament PLA @CORE One MMU3.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "type": "filament", - "name": "Prusament PLA @CORE One MMU3", - "inherits": "Prusament PLA @CORE One", - "from": "system", - "setting_id": "HSqoQhcjRqpny2g2", - "filament_id": "OFnO4wnf", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle", - "Prusa CORE One MMU3 0.25 nozzle", - "Prusa CORE One MMU3 0.3 nozzle", - "Prusa CORE One MMU3 0.6 nozzle" - ], - "filament_cooling_final_speed": [ - "3.5" - ], - "filament_cooling_initial_speed": [ - "10" - ], - "filament_cooling_moves": [ - "2" - ], - "filament_extruder_variant": [ - "Direct Drive Standard" - ], - "filament_loading_speed": [ - "10" - ], - "filament_loading_speed_start": [ - "50" - ], - "filament_ramming_parameters": [ - "250 100 40.1613 40.3548 40.4516 40.3548 40.2581| 0.05 40.1483 0.45 40.3419 0.95 40.3419 1.45 40.3419 1.95 40.3419 2.45 40.3419 2.95 40.3419 3.45 40.3419 3.95 40.3419 4.45 40.3419 4.95 40.3419" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "29" - ], - "filament_start_gcode": [ - "M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.036{elsif nozzle_diameter[filament_extruder_id]==0.5}0.025{elsif nozzle_diameter[filament_extruder_id]==0.6}0.022{elsif nozzle_diameter[filament_extruder_id]==0.8}0.014{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.08{else}0{endif} ; Filament gcode\n\nM142 S36 ; set heatbreak target temp" - ], - "filament_unloading_speed": [ - "40" - ], - "filament_unloading_speed_start": [ - "30" - ], - "idle_temperature": [ - "170" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusament PLA @CORE One.json b/resources/profiles/Prusa/filament/Prusament PLA @CORE One.json index ddf62b89ac..e90e22ad51 100644 --- a/resources/profiles/Prusa/filament/Prusament PLA @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusament PLA @CORE One.json @@ -1,6 +1,7 @@ { "type": "filament", "name": "Prusament PLA @CORE One", + "renamed_from": "Prusament PLA CORE One;Prusament PLA @CORE One MMU3;Prusament PLA CORE One MMU3", "inherits": "fdm_filament_pla", "from": "system", "setting_id": "PuujUMjNKLZvZNAH", @@ -17,7 +18,11 @@ "Prusa CORE One 0.3 nozzle", "Prusa CORE One 0.4 nozzle", "Prusa CORE One 0.5 nozzle", - "Prusa CORE One L 0.4 nozzle" + "Prusa CORE One L 0.4 nozzle", + "Prusa CORE One MMU3 0.4 nozzle", + "Prusa CORE One MMU3 0.25 nozzle", + "Prusa CORE One MMU3 0.3 nozzle", + "Prusa CORE One MMU3 0.6 nozzle" ], "fan_cooling_layer_time": [ "40" @@ -80,7 +85,7 @@ "60" ], "idle_temperature": [ - "150" + "170" ], "nozzle_temperature": [ "225" diff --git a/resources/profiles/Prusa/filament/Prusament PLA @Prusa CORE One INDX.json b/resources/profiles/Prusa/filament/Prusament PLA @Prusa CORE One INDX.json new file mode 100644 index 0000000000..f5f64a98b3 --- /dev/null +++ b/resources/profiles/Prusa/filament/Prusament PLA @Prusa CORE One INDX.json @@ -0,0 +1,125 @@ +{ + "type": "filament", + "name": "Prusament PLA @Prusa CORE One INDX", + "inherits": "fdm_filament_pla", + "from": "system", + "setting_id": "B2UB9QUbbjpn12Ka", + "filament_id": "OFnO4wnf", + "instantiation": "true", + "filament_flow_ratio": [ + "1" + ], + "filament_cost": [ + "27.99" + ], + "filament_density": [ + "1.24" + ], + "filament_diameter": [ + "1.75" + ], + "filament_notes": [ + "\nPrusa INDX 2.5.10 tuning." + ], + "filament_soluble": [ + "0" + ], + "slow_down_min_speed": [ + "20" + ], + "slow_down_layer_time": [ + "9" + ], + "hot_plate_temp": [ + "60" + ], + "overhang_fan_speed": [ + "100" + ], + "close_fan_the_first_x_layers": [ + "1" + ], + "full_fan_speed_layer": [ + "3" + ], + "fan_cooling_layer_time": [ + "40" + ], + "default_filament_colour": [ + "#FF8000" + ], + "filament_max_volumetric_speed": [ + "28" + ], + "filament_type": [ + "PLA" + ], + "hot_plate_temp_initial_layer": [ + "60" + ], + "nozzle_temperature_initial_layer": [ + "230" + ], + "fan_max_speed": [ + "100" + ], + "fan_min_speed": [ + "100" + ], + "nozzle_temperature": [ + "225" + ], + "filament_vendor": [ + "Prusa Polymers" + ], + "filament_z_hop": [ + "0.8" + ], + "chamber_temperature": [ + "20" + ], + "chamber_minimal_temperature": [ + "0" + ], + "filament_retraction_length": [ + "0.8" + ], + "filament_retract_length_toolchange": [ + "0.8" + ], + "filament_wipe": [ + "1" + ], + "filament_retract_before_wipe": [ + "70%" + ], + "compatible_printers": [ + "Prusa CORE One INDX 4T HF 0.4 nozzle", + "Prusa CORE One INDX 8T HF 0.4 nozzle" + ], + "compatible_printers_condition": "", + "idle_temperature": [ + "0" + ], + "enable_overhang_bridge_fan": [ + "1" + ], + "slow_down_for_layer_cooling": [ + "1" + ], + "textured_plate_temp": [ + "60" + ], + "textured_plate_temp_initial_layer": [ + "60" + ], + "activate_chamber_temp_control": [ + "1" + ], + "pressure_advance": [ + "0.038" + ], + "filament_extruder_variant": [ + "Direct Drive High Flow" + ] +} diff --git a/resources/profiles/Prusa/filament/Prusament PLA @XL 5T.json b/resources/profiles/Prusa/filament/Prusament PLA @XL 5T.json deleted file mode 100644 index ae302e09eb..0000000000 --- a/resources/profiles/Prusa/filament/Prusament PLA @XL 5T.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "type": "filament", - "name": "Prusament PLA @XL 5T", - "inherits": "Prusament PLA @base", - "from": "system", - "setting_id": "3xyT73BMaAvbb1Ej", - "instantiation": "true", - "nozzle_temperature_intial_layer": "215", - "nozzle_temperature": "215", - "hot_plate_temp_initial_layer": "60", - "hot_plate_temp": "60", - "full_fan_speed_layer": "3", - "slow_down_min_speed": "15", - "filament_flow_ratio": [ - "1" - ], - "filament_max_volumetric_speed": [ - "15" - ], - "slow_down_layer_time": [ - "10" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "filament_loading_speed_start": "50", - "filament_loading_speed": "10", - "filament_unloading_speed_start": "100", - "filament_unloading_speed": "100", - "filament_cooling_moves": "2", - "filament_cooling_initial_speed": "10", - "filament_cooling_final_speed": "3.5", - "filament_retract_lift_below": "0.6", - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_volume": [ - "5" - ], - "filament_multitool_ramming_flow": [ - "40" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "29" - ], - "filament_start_gcode": [ - "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.07{elsif nozzle_diameter[0]==0.35}0.06{elsif nozzle_diameter[0]==0.6}0.03{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.036{elsif nozzle_diameter[0]==0.5}0.025{elsif nozzle_diameter[0]==0.6}0.02{elsif nozzle_diameter[0]==0.8}0.014{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp" - ], - "compatible_printers": [ - "Prusa XL 5T 0.25 nozzle", - "Prusa XL 5T 0.3 nozzle", - "Prusa XL 5T 0.4 nozzle", - "Prusa XL 5T 0.5 nozzle", - "Prusa XL 5T 0.6 nozzle", - "Prusa XL 5T 0.8 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusament PLA @XL.json b/resources/profiles/Prusa/filament/Prusament PLA @XL.json index b5d006dc46..6daf90e405 100644 --- a/resources/profiles/Prusa/filament/Prusament PLA @XL.json +++ b/resources/profiles/Prusa/filament/Prusament PLA @XL.json @@ -1,11 +1,11 @@ { "type": "filament", "name": "Prusament PLA @XL", + "renamed_from": "Prusament PLA XL;Prusament PLA @XL 5T;Prusament PLA XL 5T", "inherits": "Prusament PLA @base", "from": "system", "setting_id": "PlHq1KqHrreo5W8m", "instantiation": "true", - "nozzle_temperature_intial_layer": "215", "nozzle_temperature": "215", "hot_plate_temp_initial_layer": "60", "hot_plate_temp": "60", @@ -46,6 +46,30 @@ "Prusa XL 0.4 nozzle", "Prusa XL 0.5 nozzle", "Prusa XL 0.6 nozzle", - "Prusa XL 0.8 nozzle" + "Prusa XL 0.8 nozzle", + "Prusa XL 5T 0.25 nozzle", + "Prusa XL 5T 0.3 nozzle", + "Prusa XL 5T 0.4 nozzle", + "Prusa XL 5T 0.5 nozzle", + "Prusa XL 5T 0.6 nozzle", + "Prusa XL 5T 0.8 nozzle" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "nozzle_temperature_initial_layer": [ + "215" ] } diff --git a/resources/profiles/Prusa/filament/Prusament PVB @CORE One MMU3.json b/resources/profiles/Prusa/filament/Prusament PVB @CORE One MMU3.json deleted file mode 100644 index 992b9ebd58..0000000000 --- a/resources/profiles/Prusa/filament/Prusament PVB @CORE One MMU3.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "type": "filament", - "name": "Prusament PVB @CORE One MMU3", - "inherits": "Prusament PVB @CORE One", - "from": "system", - "setting_id": "IXUO4uCgUY1p5jIo", - "filament_id": "OFh7mvPO", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle", - "Prusa CORE One MMU3 0.25 nozzle", - "Prusa CORE One MMU3 0.3 nozzle", - "Prusa CORE One MMU3 0.6 nozzle" - ], - "filament_cooling_final_speed": [ - "3.5" - ], - "filament_cooling_initial_speed": [ - "10" - ], - "filament_cooling_moves": [ - "2" - ], - "filament_extruder_variant": [ - "Direct Drive Standard" - ], - "filament_loading_speed": [ - "10" - ], - "filament_loading_speed_start": [ - "50" - ], - "filament_minimal_purge_on_wipe_tower": [ - "15" - ], - "filament_ramming_parameters": [ - "250 100 40.1613 40.3548 40.4516 40.3548 40.2581| 0.05 40.1483 0.45 40.3419 0.95 40.3419 1.45 40.3419 1.95 40.3419 2.45 40.3419 2.95 40.3419 3.45 40.3419 3.95 40.3419 4.45 40.3419 4.95 40.3419" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "29" - ], - "filament_start_gcode": [ - "M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.036{elsif nozzle_diameter[filament_extruder_id]==0.5}0.025{elsif nozzle_diameter[filament_extruder_id]==0.6}0.022{elsif nozzle_diameter[filament_extruder_id]==0.8}0.014{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.08{else}0{endif} ; Filament gcode\n\nM142 S36 ; set heatbreak target temp" - ], - "filament_unloading_speed": [ - "40" - ], - "filament_unloading_speed_start": [ - "30" - ], - "idle_temperature": [ - "170" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusament PVB @CORE One.json b/resources/profiles/Prusa/filament/Prusament PVB @CORE One.json index 4504aa77bf..56987a8093 100644 --- a/resources/profiles/Prusa/filament/Prusament PVB @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusament PVB @CORE One.json @@ -1,6 +1,7 @@ { "type": "filament", "name": "Prusament PVB @CORE One", + "renamed_from": "Prusament PVB CORE One;Prusament PVB @CORE One MMU3;Prusament PVB CORE One MMU3", "inherits": "fdm_filament_pvb", "from": "system", "setting_id": "085dGkrnPhatF07x", @@ -18,7 +19,11 @@ "Prusa CORE One 0.4 nozzle", "Prusa CORE One 0.5 nozzle", "Prusa CORE One HF 0.4 nozzle", - "Prusa CORE One HF 0.5 nozzle" + "Prusa CORE One HF 0.5 nozzle", + "Prusa CORE One MMU3 0.4 nozzle", + "Prusa CORE One MMU3 0.25 nozzle", + "Prusa CORE One MMU3 0.3 nozzle", + "Prusa CORE One MMU3 0.6 nozzle" ], "fan_cooling_layer_time": [ "40" @@ -48,7 +53,7 @@ "8" ], "filament_minimal_purge_on_wipe_tower": [ - "35" + "15" ], "filament_notes": [ "" @@ -81,7 +86,7 @@ "75" ], "idle_temperature": [ - "150" + "170" ], "nozzle_temperature": [ "215" diff --git a/resources/profiles/Prusa/filament/Prusament PVB @XL 5T.json b/resources/profiles/Prusa/filament/Prusament PVB @XL 5T.json deleted file mode 100644 index 2c689937cf..0000000000 --- a/resources/profiles/Prusa/filament/Prusament PVB @XL 5T.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "type": "filament", - "name": "Prusament PVB @XL 5T", - "inherits": "fdm_filament_pvb", - "from": "system", - "setting_id": "DIrPylH6rmu6YA43", - "filament_id": "OFh7mvPO", - "instantiation": "true", - "filament_vendor": [ - "Prusa Polymers" - ], - "nozzle_temperature_intial_layer": "215", - "nozzle_temperature": "215", - "hot_plate_temp_initial_layer": "75", - "hot_plate_temp": "75", - "slow_down_min_speed": "15", - "filament_flow_ratio": [ - "1" - ], - "filament_max_volumetric_speed": [ - "8" - ], - "slow_down_layer_time": [ - "10" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "full_fan_speed_layer": [ - "3" - ], - "filament_loading_speed_start": "50", - "filament_loading_speed": "10", - "filament_unloading_speed_start": "100", - "filament_unloading_speed": "100", - "filament_cooling_moves": "2", - "filament_cooling_initial_speed": "10", - "filament_cooling_final_speed": "3.5", - "filament_retract_lift_below": "0.6", - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_volume": [ - "5" - ], - "filament_multitool_ramming_flow": [ - "40" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "29" - ], - "filament_start_gcode": [ - "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.07{elsif nozzle_diameter[0]==0.35}0.06{elsif nozzle_diameter[0]==0.6}0.03{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.036{elsif nozzle_diameter[0]==0.5}0.025{elsif nozzle_diameter[0]==0.6}0.02{elsif nozzle_diameter[0]==0.8}0.014{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp" - ], - "compatible_printers": [ - "Prusa XL 5T 0.25 nozzle", - "Prusa XL 5T 0.3 nozzle", - "Prusa XL 5T 0.4 nozzle", - "Prusa XL 5T 0.5 nozzle", - "Prusa XL 5T 0.6 nozzle", - "Prusa XL 5T 0.8 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusament PVB @XL.json b/resources/profiles/Prusa/filament/Prusament PVB @XL.json index 01df675ba1..7d9d9f11d3 100644 --- a/resources/profiles/Prusa/filament/Prusament PVB @XL.json +++ b/resources/profiles/Prusa/filament/Prusament PVB @XL.json @@ -1,6 +1,7 @@ { "type": "filament", "name": "Prusament PVB @XL", + "renamed_from": "Prusament PVB XL;Prusament PVB @XL 5T;Prusament PVB XL 5T", "inherits": "fdm_filament_pvb", "from": "system", "setting_id": "RF55nfxQwqUqe00Q", @@ -9,7 +10,6 @@ "filament_vendor": [ "Prusa Polymers" ], - "nozzle_temperature_intial_layer": "215", "nozzle_temperature": "215", "hot_plate_temp_initial_layer": "75", "hot_plate_temp": "75", @@ -55,6 +55,30 @@ "Prusa XL 0.4 nozzle", "Prusa XL 0.5 nozzle", "Prusa XL 0.6 nozzle", - "Prusa XL 0.8 nozzle" + "Prusa XL 0.8 nozzle", + "Prusa XL 5T 0.25 nozzle", + "Prusa XL 5T 0.3 nozzle", + "Prusa XL 5T 0.4 nozzle", + "Prusa XL 5T 0.5 nozzle", + "Prusa XL 5T 0.6 nozzle", + "Prusa XL 5T 0.8 nozzle" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "nozzle_temperature_initial_layer": [ + "215" ] } diff --git a/resources/profiles/Prusa/filament/Prusament rPLA @CORE One MMU3.json b/resources/profiles/Prusa/filament/Prusament rPLA @CORE One MMU3.json deleted file mode 100644 index 282449b194..0000000000 --- a/resources/profiles/Prusa/filament/Prusament rPLA @CORE One MMU3.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "type": "filament", - "name": "Prusament rPLA @CORE One MMU3", - "inherits": "Prusament rPLA @CORE One", - "from": "system", - "setting_id": "n0gSFPBaa7PQ1Y1x", - "filament_id": "OFWRITFw", - "instantiation": "true", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle", - "Prusa CORE One MMU3 0.25 nozzle", - "Prusa CORE One MMU3 0.3 nozzle", - "Prusa CORE One MMU3 0.6 nozzle" - ], - "filament_cooling_final_speed": [ - "3.5" - ], - "filament_cooling_initial_speed": [ - "10" - ], - "filament_cooling_moves": [ - "2" - ], - "filament_extruder_variant": [ - "Direct Drive Standard" - ], - "filament_loading_speed": [ - "10" - ], - "filament_loading_speed_start": [ - "50" - ], - "filament_ramming_parameters": [ - "250 100 40.1613 40.3548 40.4516 40.3548 40.2581| 0.05 40.1483 0.45 40.3419 0.95 40.3419 1.45 40.3419 1.95 40.3419 2.45 40.3419 2.95 40.3419 3.45 40.3419 3.95 40.3419 4.45 40.3419 4.95 40.3419" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "29" - ], - "filament_start_gcode": [ - "M572 S{if nozzle_diameter[filament_extruder_id]==0.4}0.036{elsif nozzle_diameter[filament_extruder_id]==0.5}0.025{elsif nozzle_diameter[filament_extruder_id]==0.6}0.022{elsif nozzle_diameter[filament_extruder_id]==0.8}0.014{elsif nozzle_diameter[filament_extruder_id]==0.25}0.12{elsif nozzle_diameter[filament_extruder_id]==0.3}0.08{else}0{endif} ; Filament gcode\n\nM142 S36 ; set heatbreak target temp" - ], - "filament_unloading_speed": [ - "40" - ], - "filament_unloading_speed_start": [ - "30" - ], - "idle_temperature": [ - "170" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusament rPLA @CORE One.json b/resources/profiles/Prusa/filament/Prusament rPLA @CORE One.json index b520bf4a22..7f41ae32e4 100644 --- a/resources/profiles/Prusa/filament/Prusament rPLA @CORE One.json +++ b/resources/profiles/Prusa/filament/Prusament rPLA @CORE One.json @@ -1,6 +1,7 @@ { "type": "filament", "name": "Prusament rPLA @CORE One", + "renamed_from": "Prusament rPLA CORE One;Prusament rPLA @CORE One MMU3;Prusament rPLA CORE One MMU3", "inherits": "fdm_filament_pla", "from": "system", "setting_id": "Bw6H4vFnq7YExyLd", @@ -18,7 +19,11 @@ "Prusa CORE One 0.4 nozzle", "Prusa CORE One 0.5 nozzle", "Prusa CORE One HF 0.4 nozzle", - "Prusa CORE One HF 0.5 nozzle" + "Prusa CORE One HF 0.5 nozzle", + "Prusa CORE One MMU3 0.4 nozzle", + "Prusa CORE One MMU3 0.25 nozzle", + "Prusa CORE One MMU3 0.3 nozzle", + "Prusa CORE One MMU3 0.6 nozzle" ], "fan_cooling_layer_time": [ "40" @@ -81,7 +86,7 @@ "60" ], "idle_temperature": [ - "150" + "170" ], "nozzle_temperature": [ "205" diff --git a/resources/profiles/Prusa/filament/Prusament rPLA @XL 5T.json b/resources/profiles/Prusa/filament/Prusament rPLA @XL 5T.json deleted file mode 100644 index 1b847cb1c8..0000000000 --- a/resources/profiles/Prusa/filament/Prusament rPLA @XL 5T.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "type": "filament", - "name": "Prusament rPLA @XL 5T", - "inherits": "Prusament rPLA @base", - "from": "system", - "setting_id": "yAiHzmW4pa8deage", - "instantiation": "true", - "nozzle_temperature_intial_layer": "205", - "nozzle_temperature": "205", - "hot_plate_temp_initial_layer": "60", - "hot_plate_temp": "60", - "full_fan_speed_layer": "3", - "slow_down_min_speed": "15", - "filament_flow_ratio": [ - "1" - ], - "close_fan_the_first_x_layers": [ - "1" - ], - "slow_down_layer_time": [ - "10" - ], - "fan_max_speed": [ - "100" - ], - "fan_min_speed": [ - "100" - ], - "overhang_fan_speed": [ - "100" - ], - "filament_max_volumetric_speed": [ - "10" - ], - "filament_loading_speed_start": "50", - "filament_loading_speed": "10", - "filament_unloading_speed_start": "100", - "filament_unloading_speed": "100", - "filament_cooling_moves": "2", - "filament_cooling_initial_speed": "10", - "filament_cooling_final_speed": "3.5", - "filament_retract_lift_below": "0.6", - "filament_multitool_ramming": [ - "1" - ], - "filament_multitool_ramming_volume": [ - "5" - ], - "filament_multitool_ramming_flow": [ - "40" - ], - "filament_stamping_distance": [ - "45" - ], - "filament_stamping_loading_speed": [ - "29" - ], - "filament_start_gcode": [ - "; filament start gcode\nM900 K{if nozzle_diameter[0]==0.4}0.05{elsif nozzle_diameter[0]==0.25}0.14{elsif nozzle_diameter[0]==0.3}0.07{elsif nozzle_diameter[0]==0.35}0.06{elsif nozzle_diameter[0]==0.6}0.03{elsif nozzle_diameter[0]==0.5}0.035{elsif nozzle_diameter[0]==0.8}0.015{else}0{endif} ; Filament gcode\n\n{if printer_notes=~/.*PRINTER_MODEL_XLIS.*/}\nM572 S{if nozzle_diameter[0]==0.4}0.036{elsif nozzle_diameter[0]==0.5}0.025{elsif nozzle_diameter[0]==0.6}0.02{elsif nozzle_diameter[0]==0.8}0.014{elsif nozzle_diameter[0]==0.25}0.12{elsif nozzle_diameter[0]==0.3}0.08{else}0{endif} ; Filament gcode\n{endif}\n\nM142 S36 ; set heatbreak target temp" - ], - "compatible_printers": [ - "Prusa XL 5T 0.25 nozzle", - "Prusa XL 5T 0.3 nozzle", - "Prusa XL 5T 0.4 nozzle", - "Prusa XL 5T 0.5 nozzle", - "Prusa XL 5T 0.6 nozzle", - "Prusa XL 5T 0.8 nozzle" - ] -} diff --git a/resources/profiles/Prusa/filament/Prusament rPLA @XL.json b/resources/profiles/Prusa/filament/Prusament rPLA @XL.json index 97c4f6d108..2e301b6bd7 100644 --- a/resources/profiles/Prusa/filament/Prusament rPLA @XL.json +++ b/resources/profiles/Prusa/filament/Prusament rPLA @XL.json @@ -1,11 +1,11 @@ { "type": "filament", "name": "Prusament rPLA @XL", + "renamed_from": "Prusament rPLA XL;Prusament rPLA @XL 5T;Prusament rPLA XL 5T", "inherits": "Prusament rPLA @base", "from": "system", "setting_id": "j2BSXHFa7D3Gze7C", "instantiation": "true", - "nozzle_temperature_intial_layer": "205", "nozzle_temperature": "205", "hot_plate_temp_initial_layer": "60", "hot_plate_temp": "60", @@ -49,6 +49,30 @@ "Prusa XL 0.4 nozzle", "Prusa XL 0.5 nozzle", "Prusa XL 0.6 nozzle", - "Prusa XL 0.8 nozzle" + "Prusa XL 0.8 nozzle", + "Prusa XL 5T 0.25 nozzle", + "Prusa XL 5T 0.3 nozzle", + "Prusa XL 5T 0.4 nozzle", + "Prusa XL 5T 0.5 nozzle", + "Prusa XL 5T 0.6 nozzle", + "Prusa XL 5T 0.8 nozzle" + ], + "filament_multitool_ramming": [ + "1" + ], + "filament_multitool_ramming_flow": [ + "40" + ], + "filament_multitool_ramming_volume": [ + "5" + ], + "filament_stamping_distance": [ + "45" + ], + "filament_stamping_loading_speed": [ + "29" + ], + "nozzle_temperature_initial_layer": [ + "205" ] } diff --git a/resources/profiles/Prusa/machine/Prusa CORE One HF 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa CORE One HF 0.4 nozzle.json index 8841c35b39..71ab257163 100644 --- a/resources/profiles/Prusa/machine/Prusa CORE One HF 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa CORE One HF 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "machine", "name": "Prusa CORE One HF 0.4 nozzle", - "inherits": "fdm_machine_common", + "inherits": "fdm_machine_common_nextruder", "from": "system", "setting_id": "AUk8BqRmHxaFL1UZ", "instantiation": "true", diff --git a/resources/profiles/Prusa/machine/Prusa CORE One INDX 4T HF 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa CORE One INDX 4T HF 0.4 nozzle.json new file mode 100644 index 0000000000..5a00907bcf --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa CORE One INDX 4T HF 0.4 nozzle.json @@ -0,0 +1,160 @@ +{ + "type": "machine", + "name": "Prusa CORE One INDX 4T HF 0.4 nozzle", + "inherits": "fdm_machine_common_coreone_indx", + "from": "system", + "setting_id": "YwspeW5ezTkXTF3H", + "instantiation": "true", + "deretraction_speed": [ + "30", + "30", + "30", + "30" + ], + "extruder_colour": [ + "#F58231", + "#1F77B4", + "#2CA02C", + "#D62728" + ], + "extruder_offset": [ + "0x0", + "0x0", + "0x0", + "0x0" + ], + "max_layer_height": [ + "0.3", + "0.3", + "0.3", + "0.3" + ], + "min_layer_height": [ + "0.07", + "0.07", + "0.07", + "0.07" + ], + "nozzle_diameter": [ + "0.4", + "0.4", + "0.4", + "0.4" + ], + "retraction_minimum_travel": [ + "1.5", + "1.5", + "1.5", + "1.5" + ], + "retract_before_wipe": [ + "80%", + "80%", + "80%", + "80%" + ], + "retract_when_changing_layer": [ + "1", + "1", + "1", + "1" + ], + "retraction_length": [ + "0.8", + "0.8", + "0.8", + "0.8" + ], + "retract_length_toolchange": [ + "0", + "0", + "0", + "0" + ], + "retract_lift_above": [ + "0", + "0", + "0", + "0" + ], + "retract_lift_below": [ + "269", + "269", + "269", + "269" + ], + "retract_restart_extra": [ + "0", + "0", + "0", + "0" + ], + "retract_restart_extra_toolchange": [ + "0", + "0", + "0", + "0" + ], + "retraction_speed": [ + "40", + "40", + "40", + "40" + ], + "z_hop": [ + "1.5", + "1.5", + "1.5", + "1.5" + ], + "travel_slope": [ + "1", + "1", + "1", + "1" + ], + "wipe": [ + "0", + "0", + "0", + "0" + ], + "printer_model": "Prusa CORE One INDX 4T", + "printer_variant": "0.4", + "z_hop_types": [ + "Slope Lift", + "Slope Lift", + "Slope Lift", + "Slope Lift" + ], + "default_nozzle_volume_type": [ + "High Flow", + "High Flow", + "High Flow", + "High Flow" + ], + "extruder_variant_list": [ + "Direct Drive High Flow", + "Direct Drive High Flow", + "Direct Drive High Flow", + "Direct Drive High Flow" + ], + "nozzle_type": [ + "hardened_steel", + "hardened_steel", + "hardened_steel", + "hardened_steel" + ], + "printer_extruder_variant": [ + "Direct Drive High Flow", + "Direct Drive High Flow", + "Direct Drive High Flow", + "Direct Drive High Flow" + ], + "printer_extruder_id": [ + "1", + "2", + "3", + "4" + ] +} diff --git a/resources/profiles/Prusa/machine/Prusa CORE One INDX 4T.json b/resources/profiles/Prusa/machine/Prusa CORE One INDX 4T.json new file mode 100644 index 0000000000..3784239d47 --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa CORE One INDX 4T.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Prusa CORE One INDX 4T", + "model_id": "prusa_coreone_indx_4t", + "nozzle_diameter": "0.4", + "machine_tech": "FFF", + "family": "Prusa", + "bed_model": "coreone_indx.stl", + "bed_texture": "coreone_indx.svg", + "hotend_model": "", + "default_materials": "Generic PLA @Prusa CORE One INDX;Generic PETG @Prusa CORE One INDX;Generic ABS @Prusa CORE One INDX;Generic PLA Silk @Prusa CORE One INDX;Prusament PLA @Prusa CORE One INDX;Prusament PETG @Prusa CORE One INDX" +} diff --git a/resources/profiles/Prusa/machine/Prusa CORE One INDX 8T HF 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa CORE One INDX 8T HF 0.4 nozzle.json new file mode 100644 index 0000000000..053cedec73 --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa CORE One INDX 8T HF 0.4 nozzle.json @@ -0,0 +1,260 @@ +{ + "type": "machine", + "name": "Prusa CORE One INDX 8T HF 0.4 nozzle", + "inherits": "fdm_machine_common_coreone_indx", + "from": "system", + "setting_id": "8SAlV75rzPq2N1u2", + "instantiation": "true", + "deretraction_speed": [ + "30", + "30", + "30", + "30", + "30", + "30", + "30", + "30" + ], + "extruder_colour": [ + "#F58231", + "#1F77B4", + "#2CA02C", + "#D62728", + "#9467BD", + "#8C564B", + "#17BECF", + "#BCBD22" + ], + "extruder_offset": [ + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0", + "0x0" + ], + "max_layer_height": [ + "0.3", + "0.3", + "0.3", + "0.3", + "0.3", + "0.3", + "0.3", + "0.3" + ], + "min_layer_height": [ + "0.07", + "0.07", + "0.07", + "0.07", + "0.07", + "0.07", + "0.07", + "0.07" + ], + "nozzle_diameter": [ + "0.4", + "0.4", + "0.4", + "0.4", + "0.4", + "0.4", + "0.4", + "0.4" + ], + "retraction_minimum_travel": [ + "1.5", + "1.5", + "1.5", + "1.5", + "1.5", + "1.5", + "1.5", + "1.5" + ], + "retract_before_wipe": [ + "80%", + "80%", + "80%", + "80%", + "80%", + "80%", + "80%", + "80%" + ], + "retract_when_changing_layer": [ + "1", + "1", + "1", + "1", + "1", + "1", + "1", + "1" + ], + "retraction_length": [ + "0.8", + "0.8", + "0.8", + "0.8", + "0.8", + "0.8", + "0.8", + "0.8" + ], + "retract_length_toolchange": [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + "retract_lift_above": [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + "retract_lift_below": [ + "269", + "269", + "269", + "269", + "269", + "269", + "269", + "269" + ], + "retract_restart_extra": [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + "retract_restart_extra_toolchange": [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + "retraction_speed": [ + "40", + "40", + "40", + "40", + "40", + "40", + "40", + "40" + ], + "z_hop": [ + "1.5", + "1.5", + "1.5", + "1.5", + "1.5", + "1.5", + "1.5", + "1.5" + ], + "travel_slope": [ + "1", + "1", + "1", + "1", + "1", + "1", + "1", + "1" + ], + "wipe": [ + "0", + "0", + "0", + "0", + "0", + "0", + "0", + "0" + ], + "printer_model": "Prusa CORE One INDX 8T", + "printer_variant": "0.4", + "z_hop_types": [ + "Slope Lift", + "Slope Lift", + "Slope Lift", + "Slope Lift", + "Slope Lift", + "Slope Lift", + "Slope Lift", + "Slope Lift" + ], + "default_nozzle_volume_type": [ + "High Flow", + "High Flow", + "High Flow", + "High Flow", + "High Flow", + "High Flow", + "High Flow", + "High Flow" + ], + "extruder_variant_list": [ + "Direct Drive High Flow", + "Direct Drive High Flow", + "Direct Drive High Flow", + "Direct Drive High Flow", + "Direct Drive High Flow", + "Direct Drive High Flow", + "Direct Drive High Flow", + "Direct Drive High Flow" + ], + "nozzle_type": [ + "hardened_steel", + "hardened_steel", + "hardened_steel", + "hardened_steel", + "hardened_steel", + "hardened_steel", + "hardened_steel", + "hardened_steel" + ], + "printer_extruder_variant": [ + "Direct Drive High Flow", + "Direct Drive High Flow", + "Direct Drive High Flow", + "Direct Drive High Flow", + "Direct Drive High Flow", + "Direct Drive High Flow", + "Direct Drive High Flow", + "Direct Drive High Flow" + ], + "printer_extruder_id": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8" + ] +} diff --git a/resources/profiles/Prusa/machine/Prusa CORE One INDX 8T.json b/resources/profiles/Prusa/machine/Prusa CORE One INDX 8T.json new file mode 100644 index 0000000000..7464143719 --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa CORE One INDX 8T.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Prusa CORE One INDX 8T", + "model_id": "prusa_coreone_indx_8t", + "nozzle_diameter": "0.4", + "machine_tech": "FFF", + "family": "Prusa", + "bed_model": "coreone_indx.stl", + "bed_texture": "coreone_indx.svg", + "hotend_model": "", + "default_materials": "Generic PLA @Prusa CORE One INDX;Generic PETG @Prusa CORE One INDX;Generic ABS @Prusa CORE One INDX;Generic PLA Silk @Prusa CORE One INDX;Prusament PLA @Prusa CORE One INDX;Prusament PETG @Prusa CORE One INDX" +} diff --git a/resources/profiles/Prusa/machine/Prusa CORE One MMU3 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa CORE One MMU3 0.4 nozzle.json index 83a6a95ca5..7755be1aa1 100644 --- a/resources/profiles/Prusa/machine/Prusa CORE One MMU3 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa CORE One MMU3 0.4 nozzle.json @@ -5,25 +5,73 @@ "from": "system", "setting_id": "7NzvROXEkMpOMzJ5", "instantiation": "true", - "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]", - "change_filament_gcode": "", - "cooling_tube_length": "20", - "cooling_tube_retraction": "45", - "default_filament_profile": "Prusament PLA @CORE One MMU3", - "default_print_profile": "0.20mm SPEED @COREONE0.4 + MMU3", - "extra_loading_move": "-52", - "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\n", + "filament_change_lift_type": "Normal Lift", + "machine_start_gcode": "M17 ; enable steppers\nM862.1 P[nozzle_diameter] A{(printer_notes=~/.*ABRASIVE_NOZZLE.*/ ? 1 : 0)} F{(printer_notes=~/.*HF_NOZZLE.*/ ? 1 : 0)} ; nozzle check\nM862.3 P \"COREONE\" ; printer model check\nM862.5 P2 ; g-code level check\nM862.6 P \"Input shaper\" ; FW feature check\nM862.6 P \"MMU3\" ; FW feature check\nM115 U6.4.0+11974\n\n; setup MMU\nM708 A0x0b X5 ; extra load distance\nM708 A0x0d X140 ; unload feedrate\nM708 A0x11 X140 ; load feedrate\nM708 A0x14 X50 ; slow feedrate\nM708 A0x1e X12 ; Pulley current to ~200mA\nM708 A0x12 X90 ; selector feedrate mm/s\nM708 A0x13 X400 ; idler feedrate deg/s\nM708 A0x0f X400 ; selector acceleration mm/s2\n\nM555 X{(min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)} Y{(max(0, first_layer_print_min[1]) - 4)} W{((min(print_bed_max[0], max(first_layer_print_min[0] + 32, first_layer_print_max[0])))) - ((min(print_bed_max[0], first_layer_print_min[0] + 32) - 32))} H{((first_layer_print_max[1])) - ((max(0, first_layer_print_min[1]) - 4))} ; define print area\n\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n\n{if chamber_temperature[initial_tool] > 35} \n; we need to preheat the chamber\nM140 S115 ; set bed temp for chamber heating\n{else} \n; just set the selected bed temp otherwise\nM140 S[first_layer_bed_temperature] ; set bed temp\n{endif}\nM109 R{((filament_notes[initial_tool]=~/.*HT_MBL10.*/) ? (first_layer_temperature[initial_tool] - 10) : (filament_type[initial_tool] == \"PC\" or filament_type[initial_tool] == \"PA\") ? (first_layer_temperature[initial_tool] - 25) : (filament_type[initial_tool] == \"FLEX\") ? 210 : (filament_type[initial_tool]=~/.*PET.*/) ? 175 : 170)} ; wait for temp\n\nM84 E ; turn off E motor\n\nG28 ; home all without mesh bed level\n\n; -- Chamber Temperature Control --\n{if chamber_temperature[initial_tool] > 35} ; if we need to heat the chamber\n; min chamber temp section\nM104 T{initial_tool} S{if idle_temperature[initial_tool] == 0}100{else}{idle_temperature[initial_tool]}{endif} ; set idle temp\nG1 Z10 F720 ; set bed position\nG1 X242 Y-9 F4800 ; set print head position\nM191 S{chamber_temperature[initial_tool]} ; wait for minimal chamber temp\nM141 S0 ; set nominal chamber temp\nM107\nM140 S[first_layer_bed_temperature] ; set bed temp\n\n{else}\nM141 S{if chamber_temperature[initial_tool] == 0}20{else}{chamber_temperature[initial_tool]}{endif} ; set nominal chamber temp\n{endif}\n\n{if first_layer_bed_temperature[initial_tool]<=60}M106 S70{endif}\nG0 Z40 F10000\nM104 T{initial_tool} S{if idle_temperature[initial_tool] == 0}100{else}{idle_temperature[initial_tool]}{endif}\nM190 R[first_layer_bed_temperature] ; wait for bed temp\nM107\n\nG29 G ; absorb heat\n\nM109 R{((filament_notes[0]=~/.*HT_MBL10.*/) ? (first_layer_temperature[0] - 10) : (filament_type[0] == \"PC\" or filament_type[0] == \"PA\") ? (first_layer_temperature[0] - 25) : (filament_type[0] == \"FLEX\") ? 210 : 170)} ; wait for MBL temp\n\nM302 S160 ; lower cold extrusion limit to 160C\n\n{if filament_type[initial_tool]==\"FLEX\"}\nG1 E-4 F2400 ; retraction\n{else}\nG1 E-2 F2400 ; retraction\n{endif}\n\nM84 E ; turn off E motor\n\n; --- Mesh Bed Leveling (MBL) ---\n\nG29 P9 X208 Y-2.5 W32 H4 ; limited MBL\nM84 E ; turn off E motor\n\nG29 P1 ; invalidate MBL and probe print area\nG29 P1 X150 Y0 W100 H20 C ; probe near purge area\nG29 P3.2 ; MBL interpolation\nG29 P3.13 ; MBL extrapolation outside probe area\nG29 A ; activate MBL\n\n; prepare for purge\nM104 S{first_layer_temperature[initial_tool]}\nG0 X249 Y-2.5 Z15 F4800 ; move away and ready for the purge\nM109 S{first_layer_temperature[initial_tool]}\n\nG92 E0\nM569 S0 E ; set spreadcycle mode for extruder\n\nM591 S0 ; disable stuck detection\n\nT[initial_tool]\nG1 E{parking_pos_retraction + extra_loading_move - 15} F1000 ; load to the nozzle\n\n;\n; Extrude purge line\n;\nG92 E0 ; reset extruder position\nG1 E{(filament_type[initial_tool] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E5 X235 Z0.2 F500 ; purge\nG0 X145 E36 F500 ; purge\nG0 X135 E4 F500 ; purge\nG0 X125 E4 F650 ; purge\nG0 X122 Z0.05 F8000 ; wipe, move close to the bed\nG0 X119 Z0.2 F8000 ; wipe, move quickly away from the bed\n\nM591 R ; restore stuck detection\n\nG92 E0\nM221 S100 ; set flow to 100%", "machine_end_gcode": "{if layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+1, max_print_height)} F720 ; Move print head up{endif}\nM140 S0 ; turn off heatbed\nM141 S0 ; disable chamber control\nM107 ; turn off fan\nG1 X242 Y211 F10200 ; park\n{if layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+50, max_print_height)} F720 ; Move bed down{endif}\nM702 ; unload the current filament\nM104 S0 ; turn off temperature\nG4 ; wait\nM572 S0 ; reset PA\nM84 X Y E ; disable motors\n; max_layer_z = [max_layer_z]", - "machine_load_filament_time": "10.9", "machine_max_speed_z": [ "12", "40" ], - "machine_start_gcode": "M17 ; enable steppers\nM862.1 P[nozzle_diameter] A{(printer_notes=~/.*ABRASIVE_NOZZLE.*/ ? 1 : 0)} F{(printer_notes=~/.*HF_NOZZLE.*/ ? 1 : 0)} ; nozzle check\nM862.3 P \"COREONE\" ; printer model check\nM862.5 P2 ; g-code level check\nM862.6 P \"Input shaper\" ; FW feature check\nM862.6 P \"MMU3\" ; FW feature check\nM115 U6.4.0+11974\n\n; setup MMU\nM708 A0x0b X5 ; extra load distance\nM708 A0x0d X140 ; unload feedrate\nM708 A0x11 X140 ; load feedrate\nM708 A0x14 X50 ; slow feedrate\nM708 A0x1e X12 ; Pulley current to ~200mA\nM708 A0x12 X90 ; selector feedrate mm/s\nM708 A0x13 X400 ; idler feedrate deg/s\nM708 A0x0f X400 ; selector acceleration mm/s2\n\nM555 X{(min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)} Y{(max(0, first_layer_print_min[1]) - 4)} W{((min(print_bed_max[0], max(first_layer_print_min[0] + 32, first_layer_print_max[0])))) - ((min(print_bed_max[0], first_layer_print_min[0] + 32) - 32))} H{((first_layer_print_max[1])) - ((max(0, first_layer_print_min[1]) - 4))} ; define print area\n\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n\n{if chamber_temperature[initial_tool] > 35} \n; we need to preheat the chamber\nM140 S115 ; set bed temp for chamber heating\n{else} \n; just set the selected bed temp otherwise\nM140 S[first_layer_bed_temperature] ; set bed temp\n{endif}\nM109 R{((filament_notes[initial_tool]=~/.*HT_MBL10.*/) ? (first_layer_temperature[initial_tool] - 10) : (filament_type[initial_tool] == \"PC\" or filament_type[initial_tool] == \"PA\") ? (first_layer_temperature[initial_tool] - 25) : (filament_type[initial_tool] == \"FLEX\") ? 210 : (filament_type[initial_tool]=~/.*PET.*/) ? 175 : 170)} ; wait for temp\n\nM84 E ; turn off E motor\n\nG28 ; home all without mesh bed level\n\n; -- Chamber Temperature Control --\n{if chamber_temperature[initial_tool] > 35} ; if we need to heat the chamber\n; min chamber temp section\nM104 T{initial_tool} S{if idle_temperature[initial_tool] == 0}100{else}{idle_temperature[initial_tool]}{endif} ; set idle temp\nG1 Z10 F720 ; set bed position\nG1 X242 Y-9 F4800 ; set print head position\nM191 S{chamber_temperature[initial_tool]} ; wait for minimal chamber temp\nM141 S0 ; set nominal chamber temp\nM107\nM140 S[first_layer_bed_temperature] ; set bed temp\n\n{else}\nM141 S{if chamber_temperature[initial_tool] == 0}20{else}{chamber_temperature[initial_tool]}{endif} ; set nominal chamber temp\n{endif}\n\n{if first_layer_bed_temperature[initial_tool]<=60}M106 S70{endif}\nG0 Z40 F10000\nM104 T{initial_tool} S{if idle_temperature[initial_tool] == 0}100{else}{idle_temperature[initial_tool]}{endif}\nM190 R[first_layer_bed_temperature] ; wait for bed temp\nM107\n\nG29 G ; absorb heat\n\nM109 R{((filament_notes[0]=~/.*HT_MBL10.*/) ? (first_layer_temperature[0] - 10) : (filament_type[0] == \"PC\" or filament_type[0] == \"PA\") ? (first_layer_temperature[0] - 25) : (filament_type[0] == \"FLEX\") ? 210 : 170)} ; wait for MBL temp\n\nM302 S160 ; lower cold extrusion limit to 160C\n\n{if filament_type[initial_tool]==\"FLEX\"}\nG1 E-4 F2400 ; retraction\n{else}\nG1 E-2 F2400 ; retraction\n{endif}\n\nM84 E ; turn off E motor\n\n; --- Mesh Bed Leveling (MBL) ---\n\nG29 P9 X208 Y-2.5 W32 H4 ; limited MBL\nM84 E ; turn off E motor\n\nG29 P1 ; invalidate MBL and probe print area\nG29 P1 X150 Y0 W100 H20 C ; probe near purge area\nG29 P3.2 ; MBL interpolation\nG29 P3.13 ; MBL extrapolation outside probe area\nG29 A ; activate MBL\n\n; prepare for purge\nM104 S{first_layer_temperature[initial_tool]}\nG0 X249 Y-2.5 Z15 F4800 ; move away and ready for the purge\nM109 S{first_layer_temperature[initial_tool]}\n\nG92 E0\nM569 S0 E ; set spreadcycle mode for extruder\n\nM591 S0 ; disable stuck detection\n\nT[initial_tool]\nG1 E{parking_pos_retraction + extra_loading_move - 15} F1000 ; load to the nozzle\n\n;\n; Extrude purge line\n;\nG92 E0 ; reset extruder position\nG1 E{(filament_type[initial_tool] == \"FLEX\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E5 X235 Z0.2 F500 ; purge\nG0 X145 E36 F500 ; purge\nG0 X135 E4 F500 ; purge\nG0 X125 E4 F650 ; purge\nG0 X122 Z0.05 F8000 ; wipe, move close to the bed\nG0 X119 Z0.2 F8000 ; wipe, move quickly away from the bed\n\nM591 R ; restore stuck detection\n\nG92 E0\nM221 S100 ; set flow to 100%", - "machine_unload_filament_time": "8.9", - "nozzle_diameter": [ - "0.4" + "max_layer_height": [ + "0.30" ], + "min_layer_height": [ + "0.07" + ], + "retraction_minimum_travel": [ + "1.5" + ], + "retract_before_wipe": [ + "80" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_length": [ + "0.7" + ], + "retract_length_toolchange": [ + "0" + ], + "z_hop": [ + "0.2" + ], + "retraction_speed": [ + "45" + ], + "deretraction_speed": [ + "25" + ], + "single_extruder_multi_material": "1", + "change_filament_gcode": "", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\n", + "wipe": [ + "0" + ], + "default_filament_profile": [ + "Prusament PLA @CORE One" + ], + "default_print_profile": "0.20mm SPEED @COREONE0.4 + MMU3", + "printer_model": "Prusa CORE One MMU3", + "printer_notes": "Don't remove the following keywords! These keywords are used in the \"compatible printer\" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_MODEL_COREONEMMU3\nPRINTER_MODEL_MK4\nCOREMMU\nRAMMING_EXTRA\nPG\nNO_TEMPLATES\nThe MK4 marker enables WipeTower2 cold ramming and filament monitoring control for the CORE One MMU3.", + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "269" + ], + "travel_slope": [ + "1" + ], + "z_hop_types": [ + "Slope Lift" + ], + "cooling_tube_length": "20", + "cooling_tube_retraction": "45", + "extra_loading_move": "-52", + "machine_load_filament_time": "10.9", + "machine_unload_filament_time": "8.9", "nozzle_height": "4", "parking_pos_retraction": "84", "printer_extruder_id": [ @@ -32,9 +80,5 @@ "printer_extruder_variant": [ "Direct Drive Standard" ], - "printer_model": "Prusa CORE One MMU3", - "printer_notes": "Don't remove the following keywords! These keywords are used in the \"compatible printer\" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_MODEL_COREONEMMU3\nPRINTER_MODEL_MK4\nCOREMMU\nRAMMING_EXTRA\nPG\nNO_TEMPLATES\nThe MK4 marker enables WipeTower2 cold ramming and filament monitoring control for the CORE One MMU3.", - "printer_variant": "0.4", - "single_extruder_multi_material": "1", "wipe_tower_type": "type2" } diff --git a/resources/profiles/Prusa/machine/Prusa CORE One MMU3 0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa CORE One MMU3 0.6 nozzle.json index 11de2e2eac..38522a7084 100644 --- a/resources/profiles/Prusa/machine/Prusa CORE One MMU3 0.6 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa CORE One MMU3 0.6 nozzle.json @@ -5,7 +5,7 @@ "from": "system", "setting_id": "rFDxiYXLDZVYHqe8", "instantiation": "true", - "default_filament_profile": "Prusament PLA @CORE One MMU3", + "default_filament_profile": "Prusament PLA @CORE One", "default_print_profile": "0.20mm SPEED @COREONE0.6 + MMU3", "max_layer_height": "0.40", "min_layer_height": "0.15", diff --git a/resources/profiles/Prusa/machine/Prusa CORE One MMU3.json b/resources/profiles/Prusa/machine/Prusa CORE One MMU3.json index a0e766e818..a9af70344e 100644 --- a/resources/profiles/Prusa/machine/Prusa CORE One MMU3.json +++ b/resources/profiles/Prusa/machine/Prusa CORE One MMU3.json @@ -3,7 +3,7 @@ "name": "Prusa CORE One MMU3", "bed_model": "coreone_bed.stl", "bed_texture": "coreone.svg", - "default_materials": "Generic ABS @Prusa CORE One MMU3;Generic ASA @Prusa CORE One MMU3;Generic PETG @Prusa CORE One MMU3;Generic PLA @Prusa CORE One MMU3;Generic PLA Silk @Prusa CORE One MMU3;Generic TPU @Prusa CORE One MMU3", + "default_materials": "Generic ABS @Prusa CORE One;Generic ASA @Prusa CORE One;Generic PETG @Prusa CORE One;Generic PLA @Prusa CORE One;Generic PLA Silk @Prusa CORE One;Generic TPU @Prusa CORE One", "family": "Prusa", "hotend_model": "", "machine_tech": "FFF", diff --git a/resources/profiles/Prusa/machine/Prusa MK4 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4 0.4 nozzle.json index 417a953aaa..7b6340b694 100644 --- a/resources/profiles/Prusa/machine/Prusa MK4 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa MK4 0.4 nozzle.json @@ -1,7 +1,7 @@ { "type": "machine", "name": "Prusa MK4 0.4 nozzle", - "inherits": "fdm_machine_common", + "inherits": "fdm_machine_common_nextruder", "from": "system", "setting_id": "tGox5Ldie8Ka8UAJ", "instantiation": "true", diff --git a/resources/profiles/Prusa/machine/Prusa MK4 MMU3 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4 MMU3 0.4 nozzle.json new file mode 100644 index 0000000000..a330559184 --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa MK4 MMU3 0.4 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "machine", + "name": "Prusa MK4 MMU3 0.4 nozzle", + "inherits": "fdm_machine_common_mk4_mmu3", + "from": "system", + "setting_id": "M3rB1WJRfuSz9YOB", + "instantiation": "true", + "max_layer_height": [ + "0.25" + ], + "min_layer_height": [ + "0.07" + ], + "wipe": [ + "0" + ], + "printer_model": "Prusa MK4 MMU3", + "default_filament_profile": [ + "Generic PLA @System" + ], + "default_print_profile": "0.20mm SPEED @MK4 MMU3 0.4", + "printer_notes": "Don't remove the following keywords! These keywords are used in the \"compatible printer\" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_MODEL_MK4IS\nPRINTER_MODEL_MK4MMU3\nPG" +} diff --git a/resources/profiles/Prusa/machine/Prusa MK4 MMU3 0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4 MMU3 0.6 nozzle.json new file mode 100644 index 0000000000..dcbb537214 --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa MK4 MMU3 0.6 nozzle.json @@ -0,0 +1,24 @@ +{ + "type": "machine", + "name": "Prusa MK4 MMU3 0.6 nozzle", + "inherits": "fdm_machine_common_mk4_mmu3", + "from": "system", + "setting_id": "gf4NGRIRW2yBCW9l", + "instantiation": "true", + "max_layer_height": [ + "0.40" + ], + "min_layer_height": [ + "0.15" + ], + "nozzle_diameter": [ + "0.6" + ], + "printer_model": "Prusa MK4 MMU3", + "printer_variant": "0.6", + "default_filament_profile": [ + "Generic PLA @System" + ], + "default_print_profile": "0.25mm SPEED @MK4 MMU3 0.6", + "printer_notes": "Don't remove the following keywords! These keywords are used in the \"compatible printer\" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_MODEL_MK4IS\nPRINTER_MODEL_MK4MMU3\nPG" +} diff --git a/resources/profiles/Prusa/machine/Prusa MK4 MMU3 HF.json b/resources/profiles/Prusa/machine/Prusa MK4 MMU3 HF.json new file mode 100644 index 0000000000..11eaf998ec --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa MK4 MMU3 HF.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Prusa MK4 MMU3 HF", + "model_id": "MK4ISMMU3", + "nozzle_diameter": "0.4", + "machine_tech": "FFF", + "family": "Prusa", + "bed_model": "mk4_bed.stl", + "bed_texture": "mk4is.svg", + "hotend_model": "", + "default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System" +} diff --git a/resources/profiles/Prusa/machine/Prusa MK4 MMU3 HF0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa MK4 MMU3 HF0.4 nozzle.json new file mode 100644 index 0000000000..9010b9d75d --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa MK4 MMU3 HF0.4 nozzle.json @@ -0,0 +1,23 @@ +{ + "type": "machine", + "name": "Prusa MK4 MMU3 HF0.4 nozzle", + "inherits": "fdm_machine_common_mk4_mmu3", + "from": "system", + "setting_id": "IkDPfJGc9QSHjKY0", + "instantiation": "true", + "max_layer_height": [ + "0.25" + ], + "min_layer_height": [ + "0.07" + ], + "wipe": [ + "0" + ], + "printer_model": "Prusa MK4 MMU3 HF", + "default_filament_profile": [ + "Generic PLA @System" + ], + "default_print_profile": "0.20mm SPEED @MK4 MMU3 HF0.4", + "printer_notes": "Don't remove the following keywords! These keywords are used in the \"compatible printer\" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_MODEL_MK4IS\nPRINTER_MODEL_MK4MMU3\nPG\nHF_NOZZLE" +} diff --git a/resources/profiles/Prusa/machine/Prusa MK4 MMU3.json b/resources/profiles/Prusa/machine/Prusa MK4 MMU3.json new file mode 100644 index 0000000000..76a181b22a --- /dev/null +++ b/resources/profiles/Prusa/machine/Prusa MK4 MMU3.json @@ -0,0 +1,12 @@ +{ + "type": "machine_model", + "name": "Prusa MK4 MMU3", + "model_id": "MK4ISMMU3", + "nozzle_diameter": "0.4;0.6", + "machine_tech": "FFF", + "family": "Prusa", + "bed_model": "mk4_bed.stl", + "bed_texture": "mk4is.svg", + "hotend_model": "", + "default_materials": "Generic PLA @System;Generic PETG @System;Generic ABS @System" +} diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.25 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.25 nozzle.json index 8a29e7dadf..009da28736 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.25 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.25 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL 5T", - "default_filament_profile": "Generic PLA @Prusa XL 5T", + "default_filament_profile": "Generic PLA @Prusa XL", "default_print_profile": "0.15mm Speed @Prusa XL 5T 0.25", "printer_variant": "0.25", "max_layer_height": "0.15", diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.3 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.3 nozzle.json index d380fe5434..db8142601e 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.3 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.3 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL 5T", - "default_filament_profile": "Generic PLA @Prusa XL 5T", + "default_filament_profile": "Generic PLA @Prusa XL", "default_print_profile": "0.20mm Speed @Prusa XL 5T 0.3", "printer_variant": "0.3", "max_layer_height": "0.22", diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.4 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.4 nozzle.json index 3b29778f29..dd97ce76f1 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.4 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.4 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL 5T", - "default_filament_profile": "Generic PLA @Prusa XL 5T", + "default_filament_profile": "Generic PLA @Prusa XL", "default_print_profile": "0.20mm Speed @Prusa XL 5T 0.4", "printer_variant": "0.4", "nozzle_diameter": [ diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.5 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.5 nozzle.json index e795d8f8b0..e3c3b47ecc 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.5 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.5 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL 5T", - "default_filament_profile": "Generic PLA @Prusa XL 5T", + "default_filament_profile": "Generic PLA @Prusa XL", "default_print_profile": "0.25mm Speed @Prusa XL 5T 0.5", "printer_variant": "0.5", "max_layer_height": "0.32", diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.6 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.6 nozzle.json index 76569ca735..168aa9c971 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.6 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.6 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL 5T", - "default_filament_profile": "Generic PLA @Prusa XL 5T", + "default_filament_profile": "Generic PLA @Prusa XL", "default_print_profile": "0.32mm Speed @Prusa XL 5T 0.6", "printer_variant": "0.6", "max_layer_height": "0.4", diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T 0.8 nozzle.json b/resources/profiles/Prusa/machine/Prusa XL 5T 0.8 nozzle.json index d72bfeccad..175aecd9e0 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T 0.8 nozzle.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T 0.8 nozzle.json @@ -7,7 +7,7 @@ "instantiation": "true", "gcode_flavor": "marlin2", "printer_model": "Prusa XL 5T", - "default_filament_profile": "Generic PLA @Prusa XL 5T", + "default_filament_profile": "Generic PLA @Prusa XL", "default_print_profile": "0.40mm Quality @Prusa XL 5T 0.8", "printer_variant": "0.8", "max_layer_height": "0.6", diff --git a/resources/profiles/Prusa/machine/Prusa XL 5T.json b/resources/profiles/Prusa/machine/Prusa XL 5T.json index 02e93a78b5..523c1cbb7c 100644 --- a/resources/profiles/Prusa/machine/Prusa XL 5T.json +++ b/resources/profiles/Prusa/machine/Prusa XL 5T.json @@ -8,5 +8,5 @@ "bed_model": "Prusa XL_bed.stl", "bed_texture": "Prusa XL.svg", "hotend_model": "", - "default_materials": "Generic PLA @Prusa XL 5T;Prusament PLA @XL 5T;Prusament rPLA @XL 5T;Generic PETG @Prusa XL 5T;Prusament PETG @XL 5T;Generic ABS @Prusa XL 5T;Prusament ASA @XL 5T;Prusament PC Blend @XL 5T;Prusament PC-CF @XL 5T;Prusament PVB @XL 5T;Prusament PA-CF @XL 5T;Generic FLEX @Prusa XL 5T" + "default_materials": "Generic PLA @Prusa XL;Prusament PLA @XL;Prusament rPLA @XL;Generic PETG @Prusa XL;Prusament PETG @XL;Generic ABS @Prusa XL;Prusament ASA @XL;Prusament PC Blend @XL;Prusament PC Blend Carbon Fiber @XL;Prusament PVB @XL;Prusament PA11 Carbon Fiber @XL;Generic FLEX @Prusa XL" } diff --git a/resources/profiles/Prusa/machine/Prusa XL.json b/resources/profiles/Prusa/machine/Prusa XL.json index 17cc16e486..638f0c307a 100644 --- a/resources/profiles/Prusa/machine/Prusa XL.json +++ b/resources/profiles/Prusa/machine/Prusa XL.json @@ -8,5 +8,5 @@ "bed_model": "Prusa XL_bed.stl", "bed_texture": "Prusa XL.svg", "hotend_model": "", - "default_materials": "Generic PLA @Prusa XL;Prusament PLA @XL;Prusament rPLA @XL;Generic PETG @Prusa XL;Prusament PETG @XL;Generic ABS @Prusa XL;Prusament ASA @XL;Prusament PC Blend @XL;Prusament PC-CF @XL;Prusament PVB @XL;Prusament PA-CF @XL;Generic FLEX @Prusa XL" + "default_materials": "Generic PLA @Prusa XL;Prusament PLA @XL;Prusament rPLA @XL;Generic PETG @Prusa XL;Prusament PETG @XL;Generic ABS @Prusa XL;Prusament ASA @XL;Prusament PC Blend @XL;Prusament PC Blend Carbon Fiber @XL;Prusament PVB @XL;Prusament PA11 Carbon Fiber @XL;Generic FLEX @Prusa XL" } diff --git a/resources/profiles/Prusa/machine/fdm_machine_common_coreone_indx.json b/resources/profiles/Prusa/machine/fdm_machine_common_coreone_indx.json new file mode 100644 index 0000000000..89867d94ad --- /dev/null +++ b/resources/profiles/Prusa/machine/fdm_machine_common_coreone_indx.json @@ -0,0 +1,82 @@ +{ + "type": "machine", + "name": "fdm_machine_common_coreone_indx", + "inherits": "Prusa CORE One HF 0.4 nozzle", + "from": "system", + "instantiation": "false", + "filament_change_lift_type": "Normal Lift", + "machine_start_gcode": "{\nglobal retract_toolchange = 8;\nglobal tool_init = (0,0,0,0,0,0,0,0);\nglobal used_tools = 0 ;\nglobal low_temp_types = \"PLA|PVA|BVOH|FLEX|TPU|TPE|PVB\";\n}\n\n; number of used tools\n{if is_extruder_used[0]}{used_tools = used_tools + 1}{endif}\n{if is_extruder_used[1]}{used_tools = used_tools + 1}{endif}\n{if is_extruder_used[2]}{used_tools = used_tools + 1}{endif}\n{if is_extruder_used[3]}{used_tools = used_tools + 1}{endif}\n{if is_extruder_used[4]}{used_tools = used_tools + 1}{endif}\n{if is_extruder_used[5]}{used_tools = used_tools + 1}{endif}\n{if is_extruder_used[6]}{used_tools = used_tools + 1}{endif}\n{if is_extruder_used[7]}{used_tools = used_tools + 1}{endif}\n\n{local probe_temp = \"\" + ((filament_notes[initial_tool]=~/.*MBL160.*/) ? 160 : (filament_notes[initial_tool]=~/.*HT_MBL10.*/) ? (nozzle_temperature_initial_layer[initial_tool] - 10) : (filament_type[initial_tool] == \"PC\" or filament_type[initial_tool] == \"PA\") ? (nozzle_temperature_initial_layer[initial_tool] - 55) : (filament_type[initial_tool] == \"TPU\") ? 170 : (filament_type[initial_tool]=~/.*PET.*/) ? 170 : 170) + \"\";}\n\nM862.3 P \"COREONEINDX\" ; printer model check\nM862.5 P2 ; g-code level check\nM862.6 P\"Input shaper\" ; FW feature check\nM862.6 P\"INDX lock\" ; FW feature check\nM115 U6.9.0+16311\n\nM591 S0 ; disable stuck detection\n\nM555 X{(min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)} Y{(max(0, first_layer_print_min[1]) - 4)} W{((min(print_bed_max[0], max(first_layer_print_min[0] + 32, first_layer_print_max[0])))) - ((min(print_bed_max[0], first_layer_print_min[0] + 32) - 32))} H{((first_layer_print_max[1])) - ((max(0, first_layer_print_min[1]) - 4))}\n\n; inform about nozzle diameter\n{if (is_extruder_used[0])}M862.1 T0 P{nozzle_diameter[0]} A{((required_nozzle_HRC[0] > 0) ? 1 : 0)} F{(true ? 1 : 0)}{endif}\n{if (is_extruder_used[1])}M862.1 T1 P{nozzle_diameter[1]} A{((required_nozzle_HRC[1] > 0) ? 1 : 0)} F{(true ? 1 : 0)}{endif}\n{if (is_extruder_used[2])}M862.1 T2 P{nozzle_diameter[2]} A{((required_nozzle_HRC[2] > 0) ? 1 : 0)} F{(true ? 1 : 0)}{endif}\n{if (is_extruder_used[3])}M862.1 T3 P{nozzle_diameter[3]} A{((required_nozzle_HRC[3] > 0) ? 1 : 0)} F{(true ? 1 : 0)}{endif}\n{if (is_extruder_used[4])}M862.1 T4 P{nozzle_diameter[4]} A{((required_nozzle_HRC[4] > 0) ? 1 : 0)} F{(true ? 1 : 0)}{endif}\n{if (is_extruder_used[5])}M862.1 T5 P{nozzle_diameter[5]} A{((required_nozzle_HRC[5] > 0) ? 1 : 0)} F{(true ? 1 : 0)}{endif}\n{if (is_extruder_used[6])}M862.1 T6 P{nozzle_diameter[6]} A{((required_nozzle_HRC[6] > 0) ? 1 : 0)} F{(true ? 1 : 0)}{endif}\n{if (is_extruder_used[7])}M862.1 T7 P{nozzle_diameter[7]} A{((required_nozzle_HRC[7] > 0) ? 1 : 0)} F{(true ? 1 : 0)}{endif}\n\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n\nM140 S{first_layer_bed_temperature[initial_tool]} ; set bed temp\n\n{if chamber_minimal_temperature[initial_tool] == 0}\n M141 S{chamber_temperature[initial_tool]} ; set nominal chamber temp\n{endif}\n\n; Home XY\nG28 XY\n\n; Pick tool for Z homing\n{if is_extruder_used[0]}T0 S1 L2 D0\n{elsif is_extruder_used[1]}T1 S1 L2 D0\n{elsif is_extruder_used[2]}T2 S1 L2 D0\n{elsif is_extruder_used[3]}T3 S1 L2 D0\n{elsif is_extruder_used[4]}T4 S1 L2 D0\n{elsif is_extruder_used[5]}T5 S1 L2 D0\n{elsif is_extruder_used[6]}T6 S1 L2 D0\n{elsif is_extruder_used[7]}T7 S1 L2 D0\n{endif}\n\nM104 S120\n\n; Home Z\nG28 Z\n\nG0 Z40 F10000\nM190 R{first_layer_bed_temperature[initial_tool]} ; wait for bed temp\n; try picking tools used in print\nG1 F10000\n\n{local perimeter_flow_rate = 1.0 * (outer_wall_speed > 0 ? outer_wall_speed : (inner_wall_speed > 0 ? inner_wall_speed : 100)) * (layer_height * (outer_wall_line_width - layer_height) + 3.14159 * (layer_height/2) * (layer_height/2))}\n\n{if (is_extruder_used[0] and filament_type[0] != \"TPU\")}M574 S0 V35 T{nozzle_temperature[0]} F{ (filament_max_volumetric_speed[0] > 0 ? min(perimeter_flow_rate, filament_max_volumetric_speed[0]) : perimeter_flow_rate ) / (3.14159 / 4 * filament_diameter[0] * filament_diameter[0]) }{endif}\n{if (is_extruder_used[1] and filament_type[1] != \"TPU\")}M574 S1 V35 T{nozzle_temperature[1]} F{ (filament_max_volumetric_speed[1] > 0 ? min(perimeter_flow_rate, filament_max_volumetric_speed[1]) : perimeter_flow_rate ) / (3.14159 / 4 * filament_diameter[1] * filament_diameter[1]) }{endif}\n{if (is_extruder_used[2] and filament_type[2] != \"TPU\")}M574 S2 V35 T{nozzle_temperature[2]} F{ (filament_max_volumetric_speed[2] > 0 ? min(perimeter_flow_rate, filament_max_volumetric_speed[2]) : perimeter_flow_rate ) / (3.14159 / 4 * filament_diameter[2] * filament_diameter[2]) }{endif}\n{if (is_extruder_used[3] and filament_type[3] != \"TPU\")}M574 S3 V35 T{nozzle_temperature[3]} F{ (filament_max_volumetric_speed[3] > 0 ? min(perimeter_flow_rate, filament_max_volumetric_speed[3]) : perimeter_flow_rate ) / (3.14159 / 4 * filament_diameter[3] * filament_diameter[3]) }{endif}\n{if (is_extruder_used[4] and filament_type[4] != \"TPU\")}M574 S4 V35 T{nozzle_temperature[4]} F{ (filament_max_volumetric_speed[4] > 0 ? min(perimeter_flow_rate, filament_max_volumetric_speed[4]) : perimeter_flow_rate ) / (3.14159 / 4 * filament_diameter[4] * filament_diameter[4]) }{endif}\n{if (is_extruder_used[5] and filament_type[5] != \"TPU\")}M574 S5 V35 T{nozzle_temperature[5]} F{ (filament_max_volumetric_speed[5] > 0 ? min(perimeter_flow_rate, filament_max_volumetric_speed[5]) : perimeter_flow_rate ) / (3.14159 / 4 * filament_diameter[5] * filament_diameter[5]) }{endif}\n{if (is_extruder_used[6] and filament_type[6] != \"TPU\")}M574 S6 V35 T{nozzle_temperature[6]} F{ (filament_max_volumetric_speed[6] > 0 ? min(perimeter_flow_rate, filament_max_volumetric_speed[6]) : perimeter_flow_rate ) / (3.14159 / 4 * filament_diameter[6] * filament_diameter[6]) }{endif}\n{if (is_extruder_used[7] and filament_type[7] != \"TPU\")}M574 S7 V35 T{nozzle_temperature[7]} F{ (filament_max_volumetric_speed[7] > 0 ? min(perimeter_flow_rate, filament_max_volumetric_speed[7]) : perimeter_flow_rate ) / (3.14159 / 4 * filament_diameter[7] * filament_diameter[7]) }{endif}\n\nG427 R2 P3 ; Calibrate all used and mapped tools\n\nT{initial_tool} S1 L0 D0\n\n{if chamber_minimal_temperature[initial_tool] != 0}\n ; Min chamber temp section\n M104 S0\n M140 S115 ; set bed temp for chamber heating\n G1 Z10 F720 ; set bed position\n G1 X242 Y0 F4800 ; set print head position\n M191 S{chamber_minimal_temperature[initial_tool]} ; wait for minimal chamber temp\n M141 S{chamber_temperature[initial_tool]} ; set nominal chamber temp\n M140 S{first_layer_bed_temperature[initial_tool]} ; set bed temp\n{endif}\n\n{if first_layer_bed_temperature[initial_tool] <= 60}M106 S70{endif}\nG0 Z40 F10000\nM104 S{if (idle_temperature[initial_tool] == 0)}100{else}{idle_temperature[initial_tool]}{endif}\nM190 R{first_layer_bed_temperature[initial_tool]} ; wait for bed temp\nM107\n\nG29 G ; absorb heat\n\nM109 S{probe_temp} ; wait for temp\n\n;\n; MBL\n;\nM84 E ; turn off E motor\nG29 P1 ; invalidate mbl & probe print area\n;G29 P1 X150 Y0 W100 H20 C ; probe near purge place\nG29 P3.2 ; interpolate mbl probes\nG29 P3.13 ; extrapolate mbl outside probe area\nG29 A ; activate mbl\n\nG0 Z1 ; add Z clearance\n\nM569 S0 E ; set spreadcycle mode for extruder\nG92 E0 ; reset extruder position\n\n;-------Clean and prime initial tool------\n{\nlocal speed_tc = min(travel_speed, 350.0) * 60;\nlocal deretract_length = 1.6;\nlocal target_temp = nozzle_temperature_initial_layer[initial_tool];\nlocal eject_temp = max(160,target_temp - 60);\nlocal filament_area = 3.14 * filament_diameter[initial_tool] * filament_diameter[initial_tool] / 4.0;\nlocal purge_mm = 12 / filament_area;\nlocal purge_speed_fast = 60.0 * min(6,max(1.5,0.6*filament_max_volumetric_speed[initial_tool]/filament_area));\nlocal purge_speed_slow = 60.0 * min(3,max(1.5,0.3*filament_max_volumetric_speed[initial_tool]/filament_area));\nlocal tc_deretract_speed = 60.0 * min(20,max(5,deretraction_speed[initial_tool]));\n}\n\n{if (filament_flush_volumetric_speed[initial_tool] / filament_area) > 0}\n {purge_speed_fast = 60.0 * min(10,max(1,(filament_flush_volumetric_speed[initial_tool] / filament_area)))}\n {purge_speed_slow = 60.0 * min(10,max(1,(filament_flush_volumetric_speed[initial_tool] / filament_area) / 2))}\n{endif}\n\n{if filament_type[initial_tool]==\"TPU\"}\n {tc_deretract_speed = 60*10}\n{endif}\n\nM83\n\nG1 F{speed_tc}\n\nM204 S7000\n\nM104 S{eject_temp+15}\n\nG12 S90 ; enter cleaner\n\nM109 C{eject_temp} ; Skip residency\n\nM104 S{target_temp + 5}\n\nG12 S30 ; eject poop\n\nM106 S{255 / 100 * fan_max_speed[initial_tool]}\n\nM906 P1 ; Set extruder current\n\nM109 C{target_temp}\n\nM104 S{target_temp}\n\nG1 E{deretract_length} F{tc_deretract_speed}\n\nG91 ; use relative coordinates\nM83 ; extruder relative mode\nM572 S0.0 ; Disable PressureAdvance\n\n;FLUSH_START\nG1 X-0.2 E{0.15 * purge_mm} F{0.20 / (0.15 * purge_mm) * purge_speed_slow}\nG1 X0.40 E{0.30 * purge_mm} F{0.40 / (0.30 * purge_mm) * purge_speed_slow}\nG1 Y-0.5 E{0.10 * purge_mm} F{0.50 / (0.10 * purge_mm) * purge_speed_slow}\nG1 Y-0.5 E{0.10 * purge_mm} F{0.50 / (0.10 * purge_mm) * purge_speed_fast}\nG1 X-0.4 E{0.20 * purge_mm} F{0.40 / (0.20 * purge_mm) * purge_speed_fast}\nG1 Y1.00 E{0.18 * purge_mm} F{1.00 / (0.18 * purge_mm) * purge_speed_fast}\nG1 X0.20 E{0.05 * purge_mm} F{0.20 / (0.05 * purge_mm) * purge_speed_fast}\nG1 Y0.20 E{0.02 * purge_mm} F{0.20 / (0.02 * purge_mm) * purge_speed_slow}\n;FLUSH_END\n\nM400\nM906 P0 ; Revert extruder current\n\nG1 Y0 E-{retraction_length[initial_tool] + 0.04} F{retraction_speed[initial_tool] * 60}\n{e_retracted[initial_tool] = retraction_length[initial_tool] + retract_restart_extra_toolchange[initial_tool]}\n\nG1 Y5 F{speed_tc}\n\n{tool_init[initial_tool] = 1}\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nG12 S91 ; Exit cleaning station\nG0 Z1.2 ; Lift\nG4 S0\nM221 S100 ; set flow to 100%\n", + "machine_end_gcode": "{if layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+1, printable_height)} F720 ; Move print head up{endif}\n\n; turn off extruder heaters\n{if is_extruder_used[0]}M104 T0 S0{endif}\n{if is_extruder_used[1]}M104 T1 S0{endif}\n{if is_extruder_used[2]}M104 T2 S0{endif}\n{if is_extruder_used[3]}M104 T3 S0{endif}\n{if is_extruder_used[4]}M104 T4 S0{endif}\n{if is_extruder_used[5]}M104 T5 S0{endif}\n{if is_extruder_used[6]}M104 T6 S0{endif}\n{if is_extruder_used[7]}M104 T7 S0{endif}\n\nM140 S0 ; turn off heatbed\nM141 S0 ; disable chamber control\nM107 ; turn off fan\nM106 P6 S0 ; turn off dock fan\n\nP0 S1 ; park tool\n\nG1 X242 Y205 F10200 ; park\nG4 ; wait\nM572 S0 ; reset PA\nM221 S100 ; reset flow percentage\nM84 X Y E ; disable motors\nM77 ; stop print timer\n; max_layer_z = [max_layer_z]", + "machine_max_acceleration_retracting": [ + "2500", + "2500" + ], + "max_layer_height": [ + "0.3" + ], + "min_layer_height": [ + "0.08" + ], + "extruder_clearance_height_to_lid": "33", + "retraction_minimum_travel": [ + "1" + ], + "retract_before_wipe": [ + "70%" + ], + "retract_when_changing_layer": [ + "1" + ], + "retraction_length": [ + "0.8" + ], + "retract_length_toolchange": [ + "2" + ], + "z_hop": [ + "0.4" + ], + "z_hop_types": [ + "Normal Lift" + ], + "retraction_speed": [ + "30" + ], + "deretraction_speed": [ + "30" + ], + "change_filament_gcode": "{if not (layer_num < 0 )} \n {\n local speed_tc = min(travel_speed, 350.0) * 60;\n local deretract_length = 1.0 * retract_toolchange + retraction_length[next_extruder];\n local target_temp = nozzle_temperature[next_extruder];\n local eject_temp = max(160,target_temp - 60);\n local filament_area = 3.14 * filament_diameter[next_extruder] * filament_diameter[next_extruder] / 4.0;\n local purge_mm = max(3.0, filament_minimal_purge_on_wipe_tower[next_extruder] * 1.0 / filament_area);\n local purge_speed_fast = 60.0 * min(6,max(1.5,0.6*filament_max_volumetric_speed[next_extruder]/filament_area));\n local purge_speed_slow = 60.0 * min(3,max(1.5,0.3*filament_max_volumetric_speed[next_extruder]/filament_area));\n local tc_retract_speed = 60.0 * min(30,max(10,retraction_speed[current_extruder]));\n local tc_deretract_speed = 60.0 * min(20,max(5,deretraction_speed[next_extruder]));\n }\n\n {if filament_minimal_purge_on_wipe_tower[next_extruder] == 0}\n {purge_mm = 5.0}\n {endif}\n\n \n\n {if (filament_flush_volumetric_speed[next_extruder] / filament_area) > 0}\n {purge_speed_fast = 60.0 * min(10,max(1,(filament_flush_volumetric_speed[next_extruder] / filament_area)))}\n {purge_speed_slow = 60.0 * min(10,max(1,(filament_flush_volumetric_speed[next_extruder] / filament_area) / 2))}\n {endif}\n\n {if filament_type[current_extruder]==\"TPU\"}\n {tc_retract_speed = 60*15}\n {endif}\n\n {if filament_type[next_extruder]==\"TPU\"}\n {tc_deretract_speed = 60*10}\n {endif}\n\n {if !is_nil(filament_retract_length_toolchange[next_extruder])}\n {deretract_length = retract_toolchange + filament_retract_length_toolchange[next_extruder]}\n {endif}\n\n {if tool_init[next_extruder] == 0}\n {deretract_length = 1.6}\n {endif}\n\n {if layer_z <= (initial_layer_print_height + 0.0001)}\n {target_temp = nozzle_temperature_initial_layer[next_extruder]}\n {endif}\n\n ; Change Tool[previous_extruder] -> Tool[next_extruder] (layer [layer_num])\n M83\n\n {if e_retracted[current_extruder] < retraction_length[current_extruder]}\n G1 E-{retraction_length[current_extruder] - e_retracted[current_extruder]} F{retraction_speed[current_extruder] * 60}\n {e_retracted[current_extruder] = retraction_length[current_extruder]}\n {endif}\n\n G1 F{speed_tc}\n M204 S7000\n\n G27 W3 Z{z_hop[current_extruder]} P2 R{retract_toolchange} V{tc_retract_speed/60} A{travel_slope[current_extruder]}\n P0 S1 L0 D0\n\n\n T{next_extruder} S1 L0 D0\n\n M104 S{eject_temp+15}\n\n G12 S90 ; enter cleaner\n\n G0 Z{layer_z + 0.8} ; Lift\n\n M109 C{eject_temp} ; Skip residency\n\n M104 S{target_temp + 5}\n\n {if ((enable_prime_tower == false) or (tool_init[next_extruder] == 0))}\n ;-------Purge Station specific Gcode Start-----\n\n {if tool_init[next_extruder] == 1}\n ; INDX final lock extrusion\n G1 E1.6 F{20 * 60} ; Final lock tool\n ; End final lock extrusion\n {endif}\n\n G12 S30 ; eject poop\n\n M106 S{255 / 100 * fan_max_speed[next_extruder]}\n\n M906 P1 ; Set extruder current\n\n M109 C{target_temp}\n M104 S{target_temp}\n\n G1 E{deretract_length} F{tc_deretract_speed}\n\n G91 ; use relative coordinates\n M83 ; extruder relative mode\n M572 S0.0 ; Disable PressureAdvance\n\n ;FLUSH_START\n G1 X-0.2 E{0} F{1200}\n G1 X0.40 E{0.15 * purge_mm} F{0.40 / (0.15 * purge_mm) * purge_speed_slow}\n G1 Y-1.20 E{0.35 * purge_mm} F{1.20 / (0.35 * purge_mm) * purge_speed_fast}\n G1 X-0.4 E{0.20 * purge_mm} F{0.40 / (0.20 * purge_mm) * purge_speed_fast}\n G1 Y1.20 E{0.25 * purge_mm} F{1.20 / (0.25 * purge_mm) * purge_speed_fast}\n G1 X0.20 E{0.05 * purge_mm} F{0.20 / (0.05 * purge_mm) * purge_speed_fast}\n ;FLUSH_END\n\n M400\n M906 P0 ; Revert extruder current\n\n ; RETRACT AFTER TOOLCHANGE START\n G1 Y0 E-{retraction_length[next_extruder] + 0.04} F{retraction_speed[next_extruder] * 60}\n\n {e_retracted[next_extruder] = retraction_length[next_extruder] + retract_restart_extra_toolchange[next_extruder]}\n ; RETRACT AFTER TOOLCHANGE END\n\n G1 Y5 F{speed_tc}\n\n ;-------Purge Station specific Gcode End-----\n\n\n\n\n {else}\n ;-------Wipe Tower specific Gcode Start-----\n\n G1 E2.0 F{retraction_speed[current_extruder] * 60}\n\n G750 Y85 F21000 A\n G750 Y93 F21000 A\n G750 Y82 F21000 A\n G750 Y98.5 F21000 A\n G750 Y75 F21000 A\n G750 Y98.5 F21000 A\n\n M109 C{target_temp}\n M104 S{target_temp}\n\n G1 E{deretract_length-2.0-retraction_length[next_extruder]+1.2} F{tc_deretract_speed}\n {e_retracted[next_extruder] = retraction_length[next_extruder]}\n G1 F{speed_tc} ;revert travel speed\n\n ;-------Wipe Tower specific Gcode End-----\n {endif}\n\n {tool_init[next_extruder] = 1}\n\n G90 ; use absolute coordinates\n M83 ; extruder relative mode\n G12 S91 ; Exit cleaning station\n G0 Z{layer_z + 1.0} ; Lift\n G4 S0\n{else}\n T{next_extruder} S1 L0 D0\n{endif}", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]\n{if layer_z > 150}\nM201 X{interpolate_table(layer_z, (0,7000), (150,7000), (200,4500), (270,2000))} Y{interpolate_table(layer_z, (0,7000), (150,7000), (200,4500), (270,2000))}\n{endif}\n", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\n\n; dock fan control\n{if layer_num == 1 or layer_num == 3}\n M106 P6 S0 ; dock fan off (baseline)\n {if used_tools > 1}\n ;PET-family (PET/PETG/*-CF...)/CPE/PCTG - dock fan 100 from 3rd layer\n {if layer_num == 3 and ((is_extruder_used[0] and filament_type[0]=~/(PET|CPE|PCTG)/) or (is_extruder_used[1] and filament_type[1]=~/(PET|CPE|PCTG)/) or (is_extruder_used[2] and filament_type[2]=~/(PET|CPE|PCTG)/) or (is_extruder_used[3] and filament_type[3]=~/(PET|CPE|PCTG)/) or\n (is_extruder_used[4] and filament_type[4]=~/(PET|CPE|PCTG)/) or (is_extruder_used[5] and filament_type[5]=~/(PET|CPE|PCTG)/) or (is_extruder_used[6] and filament_type[6]=~/(PET|CPE|PCTG)/) or (is_extruder_used[7] and filament_type[7]=~/(PET|CPE|PCTG)/))}\n M106 P6 S100\n {endif}\n\n ;low-temp materials - dock fan 100% (S255) from 1st layer (uses global low_temp_types)\n {if (is_extruder_used[0] and one_of(filament_type[0], ~low_temp_types)) or (is_extruder_used[1] and one_of(filament_type[1], ~low_temp_types)) or (is_extruder_used[2] and one_of(filament_type[2], ~low_temp_types)) or (is_extruder_used[3] and one_of(filament_type[3], ~low_temp_types)) or (is_extruder_used[4] and one_of(filament_type[4], ~low_temp_types)) or (is_extruder_used[5] and one_of(filament_type[5], ~low_temp_types)) or (is_extruder_used[6] and one_of(filament_type[6], ~low_temp_types)) or (is_extruder_used[7] and one_of(filament_type[7], ~low_temp_types))}\n M106 P6 S255\n {endif} ; PLA wins by order\n {endif}\n{endif}\n", + "wipe": [ + "1" + ], + "printable_area": [ + "0x0", + "248x0", + "248x205", + "0x205" + ], + "cooling_tube_length": "20", + "cooling_tube_retraction": "45", + "extra_loading_move": "-52", + "high_current_on_filament_swap": "0", + "machine_max_junction_deviation": [ + "0.01", + "0.01" + ], + "parking_pos_retraction": "84", + "z_offset": "0", + "default_filament_profile": "Generic PLA @Prusa CORE One INDX", + "default_print_profile": "0.20mm Balanced @Prusa CORE One INDX HF 0.4", + "printer_notes": "PRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_COREONE_INDX\nPG\nINPUT_SHAPER\nPrusa INDX 2.5.10; HF 0.4 mm tools.", + "machine_load_filament_time": "9", + "machine_tool_change_time": "12.5", + "machine_unload_filament_time": "3.5", + "thumbnails": "16x16/QOI,313x173/QOI,480x240/QOI,380x285/PNG", + "thumbnails_format": "QOI", + "default_bed_type": "Textured PEI Plate", + "support_multi_bed_types": "1", + "purge_in_prime_tower": "0", + "manual_filament_change": "0" +} diff --git a/resources/profiles/Prusa/machine/fdm_machine_common_mk4_mmu3.json b/resources/profiles/Prusa/machine/fdm_machine_common_mk4_mmu3.json new file mode 100644 index 0000000000..bc8dd76f4b --- /dev/null +++ b/resources/profiles/Prusa/machine/fdm_machine_common_mk4_mmu3.json @@ -0,0 +1,132 @@ +{ + "type": "machine", + "name": "fdm_machine_common_mk4_mmu3", + "inherits": "Prusa MK4 0.4 nozzle", + "from": "system", + "instantiation": "false", + "filament_change_lift_type": "Normal Lift", + "machine_start_gcode": "M17 ; enable steppers\nM862.1 P[nozzle_diameter] A{((is_extruder_used[0] and (required_nozzle_HRC[0] > 0)) ? 1 : (is_extruder_used[1] and (required_nozzle_HRC[1] > 0)) ? 1 : (is_extruder_used[2] and (required_nozzle_HRC[2] > 0)) ? 1 : (is_extruder_used[3] and (required_nozzle_HRC[3] > 0)) ? 1 : (is_extruder_used[4] and (required_nozzle_HRC[4] > 0)) ? 1 : 0)} F{(true ? 1 : 0)} ; nozzle check\nM862.3 P \"MK4\" ; printer model check\nM862.5 P2 ; g-code level check\nM862.6 P \"Input shaper\" ; FW feature check\nM862.6 P \"MMU3\" ; FW feature check\nM115 U6.5.7+12836\n\n; setup MMU\nM708 A0x0b X5 ; extra load distance\nM708 A0x0d X140 ; unload feeedrate\nM708 A0x11 X140 ; load feedrate\nM708 A0x14 X50 ; slow feedrate\nM708 A0x1e X12 ; Pulley current to ~200mA\nM708 A0x12 X90 ; selector feedrate mm/s\nM708 A0x13 X400 ; idler feedrate deg/s\nM708 A0x0f X400 ; selector acceleration mm/s2\n\nM555 X{(min(print_bed_max[0], first_layer_print_min[0] + 32) - 32)} Y{(max(0, first_layer_print_min[1]) - 4)} W{((min(print_bed_max[0], max(first_layer_print_min[0] + 32, first_layer_print_max[0])))) - ((min(print_bed_max[0], first_layer_print_min[0] + 32) - 32))} H{((first_layer_print_max[1])) - ((max(0, first_layer_print_min[1]) - 4))}\n\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\n\nM140 S[first_layer_bed_temperature] ; set bed temp\nM104 S{((filament_notes[initial_tool]=~/.*MBL160.*/) ? 160 : (filament_notes[initial_tool]=~/.*HT_MBL10.*/) ? (nozzle_temperature_initial_layer[initial_tool] - 10) : (filament_type[initial_tool] == \"PC\" or filament_type[initial_tool] == \"PA\") ? (nozzle_temperature_initial_layer[initial_tool] - 25) : (filament_type[initial_tool] == \"TPU\") ? 210 : (filament_type[initial_tool]=~/.*PET.*/) ? 175 : 170)} ; set extruder temp for bed leveling\nM109 R{((filament_notes[initial_tool]=~/.*MBL160.*/) ? 160 : (filament_notes[initial_tool]=~/.*HT_MBL10.*/) ? (nozzle_temperature_initial_layer[initial_tool] - 10) : (filament_type[initial_tool] == \"PC\" or filament_type[initial_tool] == \"PA\") ? (nozzle_temperature_initial_layer[initial_tool] - 25) : (filament_type[initial_tool] == \"TPU\") ? 210 : (filament_type[initial_tool]=~/.*PET.*/) ? 175 : 170)} ; wait for temp\n\nM84 E ; turn off E motor\n\nG28 ; home all without mesh bed level\n\nG1 X42 Y-4 Z5 F4800\n\nM302 S155 ; lower cold extrusion limit to 155C\n\n{if filament_type[initial_tool]==\"TPU\"}\nG1 E-4 F2400 ; retraction\n{else}\nG1 E-2 F2400 ; retraction\n{endif}\n\nM84 E ; turn off E motor\n\nG29 P9 X10 Y-4 W32 H4\n\n{if first_layer_bed_temperature[initial_tool]<=60}M106 S100{endif}\n\nG0 Z40 F10000\n\nM190 S[first_layer_bed_temperature] ; wait for bed temp\n\nM107\n\n;\n; MBL\n;\nM84 E ; turn off E motor\nG29 P1 ; invalidate mbl & probe print area\nG29 P1 X0 Y0 W130 H20 C ; probe near purge place\nG29 P3.2 ; interpolate mbl probes\nG29 P3.13 ; extrapolate mbl outside probe area\nG29 A ; activate mbl\n\n; prepare for purge\nM104 S{nozzle_temperature_initial_layer[initial_tool]}\nG0 X0 Y-4 Z15 F4800 ; move away and ready for the purge\nM109 S{nozzle_temperature_initial_layer[initial_tool]}\n\nG92 E0\nM569 S0 E ; set spreadcycle mode for extruder\n\nT[initial_tool]\nG1 E{parking_pos_retraction + extra_loading_move - 15} F1000 ; load to the nozzle\n\n;\n; Extrude purge line\n;\nG92 E0 ; reset extruder position\nG1 E{(filament_type[initial_tool] == \"TPU\" ? 4 : 2)} F2400 ; deretraction after the initial one before nozzle cleaning\nG0 E7 X15 Z0.2 F500 ; purge\nG0 X105 E36 F500 ; purge\nG0 X115 E4 F650 ; purge\nG0 X125 E4 F800 ; purge\nG0 X128 Z0.05 F8000 ; wipe, move close to the bed\nG0 X131 Z0.2 F8000 ; wipe, move quickly away from the bed\n\nG92 E0\nM221 S100 ; set flow to 100%", + "machine_end_gcode": "{if layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+1, printable_height)} F720 ; Move print head up{endif}\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X241 Y170 F3600 ; park\n{if layer_z < printable_height}G1 Z{z_offset+min(max_layer_z+23, printable_height)} F300 ; Move print head up{endif}\nM702 ; unload the current filament\nG4 ; wait\nM572 S0 ; reset PA\nM593 X T2 F0 ; disable IS\nM593 Y T2 F0 ; disable IS\nM84 X Y E ; disable motors\n; max_layer_z = [max_layer_z]", + "extruder_colour": [ + "#FF8000" + ], + "machine_max_acceleration_extruding": [ + "4000", + "2500" + ], + "machine_max_acceleration_retracting": [ + "2500", + "2500" + ], + "machine_max_acceleration_travel": [ + "4000", + "2500" + ], + "machine_max_acceleration_x": [ + "4000", + "2500" + ], + "machine_max_acceleration_y": [ + "4000", + "2500" + ], + "machine_max_speed_e": [ + "100", + "100" + ], + "machine_max_speed_x": [ + "300", + "160" + ], + "machine_max_speed_y": [ + "300", + "160" + ], + "machine_max_speed_z": [ + "40", + "40" + ], + "machine_max_jerk_e": [ + "10", + "10" + ], + "machine_max_jerk_x": [ + "8", + "8" + ], + "machine_max_jerk_y": [ + "8", + "8" + ], + "machine_max_jerk_z": [ + "2", + "2" + ], + "extruder_clearance_radius": "45", + "extruder_clearance_height_to_rod": "13", + "retraction_minimum_travel": [ + "1.5" + ], + "retract_before_wipe": [ + "80" + ], + "retraction_length": [ + "0.7" + ], + "retract_length_toolchange": [ + "0" + ], + "z_hop": [ + "0.2" + ], + "z_hop_types": [ + "Normal Lift" + ], + "retraction_speed": [ + "35" + ], + "deretraction_speed": [ + "25" + ], + "change_filament_gcode": "", + "before_layer_change_gcode": ";BEFORE_LAYER_CHANGE\nG92 E0.0\n;[layer_z]\nM201 X{interpolate_table(extruded_weight_total, (0,4000), (1400,2500), (20000,2500))} Y{interpolate_table(extruded_weight_total, (0,4000), (1400,2500), (20000,2500))}\n", + "layer_change_gcode": ";AFTER_LAYER_CHANGE\n;[layer_z]\n{if ! spiral_mode}M74 W[extruded_weight_total]{endif}\n", + "machine_pause_gcode": "M400 U1\n", + "retract_lift_above": [ + "0" + ], + "retract_lift_below": [ + "219" + ], + "use_firmware_retraction": "0", + "use_relative_e_distances": "1", + "z_offset": "0", + "high_current_on_filament_swap": "0", + "travel_slope": [ + "1" + ], + "machine_max_junction_deviation": [ + "0.01", + "0.01" + ], + "cooling_tube_retraction": "45", + "cooling_tube_length": "20", + "parking_pos_retraction": "84", + "extra_loading_move": "-52", + "wipe_tower_type": "type2", + "default_bed_type": "Textured PEI Plate", + "printer_extruder_id": [ + "1" + ], + "printer_extruder_variant": [ + "Direct Drive Standard" + ], + "thumbnails": "16x16/QOI,313x173/QOI,440x240/QOI", + "thumbnails_format": "QOI", + "machine_load_filament_time": "0", + "machine_unload_filament_time": "0", + "nozzle_type": [ + "undefine" + ], + "host_type": "octoprint" +} diff --git a/resources/profiles/Prusa/machine/fdm_machine_common_mk4s.json b/resources/profiles/Prusa/machine/fdm_machine_common_mk4s.json index 0cbde13d89..1e178261c5 100644 --- a/resources/profiles/Prusa/machine/fdm_machine_common_mk4s.json +++ b/resources/profiles/Prusa/machine/fdm_machine_common_mk4s.json @@ -1,7 +1,7 @@ { "type": "machine", "name": "fdm_machine_common_mk4s", - "inherits": "fdm_machine_common", + "inherits": "fdm_machine_common_nextruder", "from": "system", "instantiation": "false", "before_layer_change_gcode": [ diff --git a/resources/profiles/Prusa/machine/fdm_machine_common_nextruder.json b/resources/profiles/Prusa/machine/fdm_machine_common_nextruder.json new file mode 100644 index 0000000000..817c497da5 --- /dev/null +++ b/resources/profiles/Prusa/machine/fdm_machine_common_nextruder.json @@ -0,0 +1,7 @@ +{ + "type": "machine", + "name": "fdm_machine_common_nextruder", + "inherits": "fdm_machine_common", + "from": "system", + "instantiation": "false" +} diff --git a/resources/profiles/Prusa/process/0.10mm Fine @Prusa CORE One INDX HF 0.4.json b/resources/profiles/Prusa/process/0.10mm Fine @Prusa CORE One INDX HF 0.4.json new file mode 100644 index 0000000000..23927f526f --- /dev/null +++ b/resources/profiles/Prusa/process/0.10mm Fine @Prusa CORE One INDX HF 0.4.json @@ -0,0 +1,58 @@ +{ + "type": "process", + "name": "0.10mm Fine @Prusa CORE One INDX HF 0.4", + "inherits": "fdm_process_coreone_indx", + "from": "system", + "setting_id": "RdgytV1O76vWmrQ8", + "instantiation": "true", + "bridge_speed": [ + "40" + ], + "compatible_printers": [ + "Prusa CORE One INDX 4T HF 0.4 nozzle", + "Prusa CORE One INDX 8T HF 0.4 nozzle" + ], + "compatible_printers_condition": "", + "inner_wall_acceleration": [ + "4000" + ], + "outer_wall_acceleration": [ + "3000" + ], + "overhang_1_4_speed": [ + "60" + ], + "overhang_2_4_speed": [ + "35" + ], + "overhang_3_4_speed": [ + "20" + ], + "support_top_z_distance": "0.17", + "support_interface_speed": [ + "80" + ], + "support_base_pattern_spacing": "2", + "support_threshold_angle": "35", + "layer_height": "0.1", + "bottom_shell_layers": "7", + "top_shell_layers": "9", + "inner_wall_speed": [ + "200" + ], + "sparse_infill_speed": [ + "200" + ], + "internal_solid_infill_speed": [ + "200" + ], + "top_surface_speed": [ + "100" + ], + "small_perimeter_speed": [ + "150" + ], + "internal_solid_infill_acceleration": [ + "6000" + ] +} diff --git a/resources/profiles/Prusa/process/0.15mm BALANCED @COREONE0.4 + MMU3.json b/resources/profiles/Prusa/process/0.15mm BALANCED @COREONE0.4 + MMU3.json index dd86f29945..5403009920 100644 --- a/resources/profiles/Prusa/process/0.15mm BALANCED @COREONE0.4 + MMU3.json +++ b/resources/profiles/Prusa/process/0.15mm BALANCED @COREONE0.4 + MMU3.json @@ -1,22 +1,41 @@ { "type": "process", "name": "0.15mm BALANCED @COREONE0.4 + MMU3", - "inherits": "0.20mm Standard @MK4", + "inherits": "0.15mm SPEED @CORE One 0.4", "from": "system", "setting_id": "gU24xfFrPejGfV1D", "instantiation": "true", - "bridge_acceleration": "1500", - "brim_type": "no_brim", - "default_acceleration": "3000", - "elefant_foot_compensation": "0.2", + "bottom_shell_thickness": "0", + "compatible_printers": [ + "Prusa CORE One MMU3 0.4 nozzle" + ], + "compatible_printers_condition": "", + "inner_wall_acceleration": "3000", + "outer_wall_acceleration": "2500", + "enable_arc_fitting": "0", + "sparse_infill_pattern": "grid", + "infill_wall_overlap": "25%", + "reduce_infill_retraction": "1", "filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[0]}-{filament_type[1]}-{filament_type[2]}-{filament_type[3]}-{filament_type[4]}_COREONE_MMU3_{print_time}.gcode", - "initial_layer_acceleration": "500", - "initial_layer_infill_speed": "100", - "initial_layer_line_width": "0.5", - "inner_wall_line_width": "0.45", - "internal_solid_infill_line_width": "0.45", - "line_width": "0.45", - "outer_wall_line_width": "0.45", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "25", + "overhang_4_4_speed": "80%", + "support_line_width": "0.4", + "minimum_sparse_infill_area": "15", + "support_bottom_z_distance": "0.17", + "support_base_pattern": "default", + "support_object_xy_distance": "0.35", + "tree_support_branch_angle": "30", + "top_shell_thickness": "0.8", + "inner_wall_speed": "150", + "sparse_infill_speed": "150", + "internal_solid_infill_speed": "150", + "travel_jerk": "9", + "outer_wall_jerk": "7", + "inner_wall_jerk": "7", + "default_jerk": "9", + "internal_bridge_speed": "45", + "brim_type": "no_brim", "prime_tower_brim_width": "2", "print_extruder_id": [ "1" @@ -25,46 +44,22 @@ "Direct Drive Standard" ], "raft_first_layer_expansion": "3", - "resolution": "0", "seam_gap": "15%", - "sparse_infill_line_width": "0.45", - "sparse_infill_pattern": "grid", - "support_base_pattern_spacing": "2", "support_bottom_interface_spacing": "0.2", - "support_interface_bottom_layers": "0", - "support_interface_spacing": "0.2", - "support_interface_top_layers": "3", - "support_line_width": "0.4", - "support_speed": "120", - "top_surface_acceleration": "2000", - "top_surface_line_width": "0.42", - "travel_acceleration": "7000", - "travel_speed": "350", - "wall_loops": "2", "wipe_tower_cone_angle": "25", "wipe_tower_extra_flow": "250%", "wipe_tower_extra_spacing": "110%", - "bridge_speed": "45", - "bottom_shell_layers": "4", - "inner_wall_acceleration": "3000", - "inner_wall_speed": "150", - "internal_bridge_speed": "45", - "internal_solid_infill_acceleration": "6000", - "internal_solid_infill_speed": "150", - "layer_height": "0.15", - "outer_wall_acceleration": "2500", - "overhang_2_4_speed": "25", - "overhang_3_4_speed": "50", - "overhang_4_4_speed": "80%", - "small_perimeter_speed": "170", "sparse_infill_acceleration": "5000", - "sparse_infill_speed": "150", - "support_bottom_z_distance": "0.17", - "support_interface_speed": "50", - "support_threshold_angle": "35", - "support_top_z_distance": "0.17", - "top_shell_layers": "6", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle" - ] + "travel_speed_z": [ + "0" + ], + "raft_first_layer_density": "90%", + "infill_anchor": "400%", + "tree_support_branch_diameter": "5", + "infill_anchor_max": "20", + "support_style": "default", + "enable_overhang_speed": [ + "1" + ], + "raft_contact_distance": "0.1" } diff --git a/resources/profiles/Prusa/process/0.15mm Detail @Prusa CORE One INDX HF 0.4.json b/resources/profiles/Prusa/process/0.15mm Detail @Prusa CORE One INDX HF 0.4.json new file mode 100644 index 0000000000..d6d2e1fd20 --- /dev/null +++ b/resources/profiles/Prusa/process/0.15mm Detail @Prusa CORE One INDX HF 0.4.json @@ -0,0 +1,27 @@ +{ + "type": "process", + "name": "0.15mm Detail @Prusa CORE One INDX HF 0.4", + "inherits": "fdm_process_coreone_indx", + "from": "system", + "setting_id": "iU2xgmcbWbMgKORV", + "instantiation": "true", + "bridge_speed": [ + "45" + ], + "compatible_printers": [ + "Prusa CORE One INDX 4T HF 0.4 nozzle", + "Prusa CORE One INDX 8T HF 0.4 nozzle" + ], + "compatible_printers_condition": "", + "support_top_z_distance": "0.17", + "support_interface_speed": [ + "80" + ], + "layer_height": "0.15", + "bottom_shell_layers": "5", + "top_shell_layers": "6", + "internal_solid_infill_acceleration": [ + "6000" + ], + "toolchange_ordering": "cyclic" +} diff --git a/resources/profiles/Prusa/process/0.20mm BALANCED @COREONE0.4 + MMU3.json b/resources/profiles/Prusa/process/0.20mm BALANCED @COREONE0.4 + MMU3.json index eba4b17a0e..fde34e9db1 100644 --- a/resources/profiles/Prusa/process/0.20mm BALANCED @COREONE0.4 + MMU3.json +++ b/resources/profiles/Prusa/process/0.20mm BALANCED @COREONE0.4 + MMU3.json @@ -1,22 +1,40 @@ { "type": "process", "name": "0.20mm BALANCED @COREONE0.4 + MMU3", - "inherits": "0.20mm Standard @MK4", + "inherits": "0.20mm SPEED @CORE One 0.4", "from": "system", "setting_id": "ZhSjwXMEOWyeWIDd", "instantiation": "true", - "bridge_acceleration": "1500", - "brim_type": "no_brim", - "default_acceleration": "3000", - "elefant_foot_compensation": "0.2", + "bottom_shell_thickness": "0", + "compatible_printers": [ + "Prusa CORE One MMU3 0.4 nozzle" + ], + "compatible_printers_condition": "", + "inner_wall_acceleration": "3000", + "outer_wall_acceleration": "2500", + "enable_arc_fitting": "0", + "sparse_infill_pattern": "grid", + "infill_wall_overlap": "25%", + "reduce_infill_retraction": "1", "filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[0]}-{filament_type[1]}-{filament_type[2]}-{filament_type[3]}-{filament_type[4]}_COREONE_MMU3_{print_time}.gcode", - "initial_layer_acceleration": "500", - "initial_layer_infill_speed": "100", - "initial_layer_line_width": "0.5", - "inner_wall_line_width": "0.45", - "internal_solid_infill_line_width": "0.45", - "line_width": "0.45", - "outer_wall_line_width": "0.45", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "25", + "overhang_4_4_speed": "80%", + "support_line_width": "0.4", + "minimum_sparse_infill_area": "15", + "support_base_pattern": "default", + "support_object_xy_distance": "0.35", + "tree_support_branch_angle": "30", + "top_shell_thickness": "0.8", + "inner_wall_speed": "150", + "sparse_infill_speed": "150", + "internal_solid_infill_speed": "150", + "travel_jerk": "9", + "outer_wall_jerk": "7", + "inner_wall_jerk": "7", + "default_jerk": "9", + "internal_bridge_speed": "50", + "brim_type": "no_brim", "prime_tower_brim_width": "2", "print_extruder_id": [ "1" @@ -25,42 +43,21 @@ "Direct Drive Standard" ], "raft_first_layer_expansion": "3", - "resolution": "0", "seam_gap": "15%", - "sparse_infill_line_width": "0.45", - "sparse_infill_pattern": "grid", - "support_base_pattern_spacing": "2", "support_bottom_interface_spacing": "0.2", - "support_interface_bottom_layers": "0", - "support_interface_spacing": "0.2", - "support_interface_top_layers": "3", - "support_line_width": "0.4", - "support_speed": "120", - "top_surface_acceleration": "2000", - "top_surface_line_width": "0.42", - "travel_acceleration": "7000", - "travel_speed": "350", - "wall_loops": "2", "wipe_tower_cone_angle": "25", "wipe_tower_extra_flow": "250%", "wipe_tower_extra_spacing": "110%", - "bridge_speed": "50", - "inner_wall_acceleration": "3000", - "inner_wall_speed": "150", - "internal_solid_infill_acceleration": "6000", - "internal_solid_infill_speed": "150", - "outer_wall_acceleration": "2500", - "overhang_2_4_speed": "25", - "overhang_3_4_speed": "50", - "overhang_4_4_speed": "80%", - "small_perimeter_speed": "170", "sparse_infill_acceleration": "5000", - "sparse_infill_speed": "150", - "support_interface_speed": "60", - "support_style": "snug", - "support_threshold_angle": "35", - "top_shell_layers": "5", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle" - ] + "travel_speed_z": [ + "0" + ], + "raft_first_layer_density": "90%", + "infill_anchor": "400%", + "tree_support_branch_diameter": "5", + "infill_anchor_max": "20", + "enable_overhang_speed": [ + "1" + ], + "raft_contact_distance": "0.1" } diff --git a/resources/profiles/Prusa/process/0.20mm Balanced @Prusa CORE One INDX HF 0.4.json b/resources/profiles/Prusa/process/0.20mm Balanced @Prusa CORE One INDX HF 0.4.json new file mode 100644 index 0000000000..380916bbb6 --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm Balanced @Prusa CORE One INDX HF 0.4.json @@ -0,0 +1,13 @@ +{ + "type": "process", + "name": "0.20mm Balanced @Prusa CORE One INDX HF 0.4", + "inherits": "fdm_process_coreone_indx", + "from": "system", + "setting_id": "BHCGt7YPhe6W9yWe", + "instantiation": "true", + "compatible_printers": [ + "Prusa CORE One INDX 4T HF 0.4 nozzle", + "Prusa CORE One INDX 8T HF 0.4 nozzle" + ], + "compatible_printers_condition": "" +} diff --git a/resources/profiles/Prusa/process/0.20mm SPEED @MK4 MMU3 0.4.json b/resources/profiles/Prusa/process/0.20mm SPEED @MK4 MMU3 0.4.json new file mode 100644 index 0000000000..eb48ecaf48 --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm SPEED @MK4 MMU3 0.4.json @@ -0,0 +1,85 @@ +{ + "type": "process", + "name": "0.20mm SPEED @MK4 MMU3 0.4", + "inherits": "fdm_process_mk4_mmu3", + "from": "system", + "setting_id": "pnuf4N5o7Voc1c7K", + "instantiation": "true", + "bridge_speed": [ + "50" + ], + "default_acceleration": [ + "4000" + ], + "outer_wall_acceleration": [ + "4000" + ], + "outer_wall_line_width": "0.45", + "outer_wall_speed": [ + "170" + ], + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "initial_layer_infill_speed": [ + "100" + ], + "gap_infill_speed": [ + "120" + ], + "resolution": "0.008", + "infill_anchor": "2", + "infill_anchor_max": "12", + "sparse_infill_line_width": "0.45", + "sparse_infill_speed": [ + "200" + ], + "overhang_3_4_speed": [ + "25" + ], + "overhang_2_4_speed": [ + "30" + ], + "overhang_1_4_speed": [ + "80%" + ], + "inner_wall_acceleration": [ + "4000" + ], + "inner_wall_line_width": "0.45", + "inner_wall_speed": [ + "170" + ], + "raft_contact_distance": "0.15", + "small_perimeter_speed": [ + "170" + ], + "internal_solid_infill_acceleration": [ + "4000" + ], + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_speed": [ + "200" + ], + "support_line_width": "0.4", + "support_interface_spacing": "0.2", + "support_interface_speed": [ + "50%" + ], + "support_speed": [ + "120" + ], + "top_surface_line_width": "0.42", + "top_surface_acceleration": [ + "1500" + ], + "top_surface_speed": [ + "100" + ], + "top_shell_layers": "5", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "wipe_tower_extra_flow": "250%", + "compatible_printers": [ + "Prusa MK4 MMU3 0.4 nozzle" + ] +} diff --git a/resources/profiles/Prusa/process/0.20mm SPEED @MK4 MMU3 HF0.4.json b/resources/profiles/Prusa/process/0.20mm SPEED @MK4 MMU3 HF0.4.json new file mode 100644 index 0000000000..3385255d56 --- /dev/null +++ b/resources/profiles/Prusa/process/0.20mm SPEED @MK4 MMU3 HF0.4.json @@ -0,0 +1,85 @@ +{ + "type": "process", + "name": "0.20mm SPEED @MK4 MMU3 HF0.4", + "inherits": "fdm_process_mk4_mmu3", + "from": "system", + "setting_id": "PlmSFc1gykexEIfc", + "instantiation": "true", + "bridge_speed": [ + "50" + ], + "default_acceleration": [ + "4000" + ], + "outer_wall_acceleration": [ + "4000" + ], + "outer_wall_line_width": "0.45", + "outer_wall_speed": [ + "200" + ], + "line_width": "0.45", + "initial_layer_line_width": "0.5", + "initial_layer_infill_speed": [ + "100" + ], + "gap_infill_speed": [ + "120" + ], + "resolution": "0.008", + "infill_anchor": "2", + "infill_anchor_max": "12", + "sparse_infill_line_width": "0.45", + "sparse_infill_speed": [ + "250" + ], + "overhang_3_4_speed": [ + "25" + ], + "overhang_2_4_speed": [ + "30" + ], + "overhang_1_4_speed": [ + "70%" + ], + "inner_wall_acceleration": [ + "4000" + ], + "inner_wall_line_width": "0.45", + "inner_wall_speed": [ + "250" + ], + "raft_contact_distance": "0.15", + "small_perimeter_speed": [ + "170" + ], + "internal_solid_infill_acceleration": [ + "4000" + ], + "internal_solid_infill_line_width": "0.45", + "internal_solid_infill_speed": [ + "250" + ], + "support_line_width": "0.4", + "support_interface_spacing": "0.2", + "support_interface_speed": [ + "50%" + ], + "support_speed": [ + "120" + ], + "top_surface_line_width": "0.42", + "top_surface_acceleration": [ + "2000" + ], + "top_surface_speed": [ + "100" + ], + "top_shell_layers": "5", + "top_shell_thickness": "0.7", + "bottom_shell_thickness": "0.5", + "wipe_tower_extra_flow": "250%", + "compatible_printers": [ + "Prusa MK4 MMU3 HF0.4 nozzle" + ] +} diff --git a/resources/profiles/Prusa/process/0.25mm BALANCED @COREONE0.4 + MMU3.json b/resources/profiles/Prusa/process/0.25mm BALANCED @COREONE0.4 + MMU3.json index 4a3343351a..5ed8b5b9be 100644 --- a/resources/profiles/Prusa/process/0.25mm BALANCED @COREONE0.4 + MMU3.json +++ b/resources/profiles/Prusa/process/0.25mm BALANCED @COREONE0.4 + MMU3.json @@ -1,22 +1,46 @@ { "type": "process", "name": "0.25mm BALANCED @COREONE0.4 + MMU3", - "inherits": "0.20mm Standard @MK4", + "inherits": "0.25mm SPEED @CORE One HF 0.4", "from": "system", "setting_id": "cEccdq6KND9xa5HS", "instantiation": "true", - "bridge_acceleration": "1500", - "brim_type": "no_brim", - "default_acceleration": "3000", - "elefant_foot_compensation": "0.2", + "bottom_shell_thickness": "0", + "compatible_printers": [ + "Prusa CORE One MMU3 0.4 nozzle" + ], + "compatible_printers_condition": "", + "inner_wall_acceleration": "3000", + "outer_wall_acceleration": "2500", + "enable_arc_fitting": "0", + "sparse_infill_pattern": "grid", + "infill_wall_overlap": "25%", + "reduce_infill_retraction": "1", "filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[0]}-{filament_type[1]}-{filament_type[2]}-{filament_type[3]}-{filament_type[4]}_COREONE_MMU3_{print_time}.gcode", - "initial_layer_acceleration": "500", - "initial_layer_infill_speed": "100", - "initial_layer_line_width": "0.5", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "15", + "overhang_3_4_speed": "25", "inner_wall_line_width": "0.45", - "internal_solid_infill_line_width": "0.45", - "line_width": "0.45", "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "support_line_width": "0.4", + "minimum_sparse_infill_area": "15", + "support_bottom_z_distance": "0.25", + "support_interface_speed": "80", + "support_object_xy_distance": "0.35", + "tree_support_branch_angle": "30", + "top_shell_thickness": "0.8", + "outer_wall_speed": "170", + "inner_wall_speed": "150", + "sparse_infill_speed": "150", + "internal_solid_infill_speed": "140", + "travel_jerk": "9", + "outer_wall_jerk": "7", + "inner_wall_jerk": "7", + "default_jerk": "9", + "internal_bridge_speed": "50", + "brim_type": "no_brim", "prime_tower_brim_width": "2", "print_extruder_id": [ "1" @@ -25,44 +49,23 @@ "Direct Drive Standard" ], "raft_first_layer_expansion": "3", - "resolution": "0", "seam_gap": "15%", - "sparse_infill_line_width": "0.45", - "sparse_infill_pattern": "grid", - "support_base_pattern_spacing": "2", "support_bottom_interface_spacing": "0.2", - "support_interface_bottom_layers": "0", - "support_interface_spacing": "0.2", - "support_interface_top_layers": "3", - "support_line_width": "0.4", - "support_speed": "120", - "top_surface_acceleration": "2000", - "top_surface_line_width": "0.42", - "travel_acceleration": "7000", - "travel_speed": "350", - "wall_loops": "2", "wipe_tower_cone_angle": "25", "wipe_tower_extra_flow": "250%", "wipe_tower_extra_spacing": "110%", - "bridge_speed": "50", - "inner_wall_acceleration": "3000", - "inner_wall_speed": "150", "internal_solid_infill_acceleration": "5000", - "internal_solid_infill_speed": "140", - "layer_height": "0.25", - "outer_wall_acceleration": "2500", - "overhang_2_4_speed": "15", - "overhang_3_4_speed": "25", - "overhang_4_4_speed": "70%", "small_perimeter_speed": "150", "sparse_infill_acceleration": "5000", - "sparse_infill_speed": "150", - "support_base_pattern": "rectilinear", - "support_bottom_z_distance": "0.25", - "support_style": "snug", - "support_threshold_angle": "35", - "support_top_z_distance": "0.25", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle" - ] + "travel_speed_z": [ + "0" + ], + "raft_first_layer_density": "90%", + "infill_anchor": "400%", + "tree_support_branch_diameter": "5", + "infill_anchor_max": "20", + "enable_overhang_speed": [ + "1" + ], + "raft_contact_distance": "0.1" } diff --git a/resources/profiles/Prusa/process/0.25mm Draft @Prusa CORE One INDX HF 0.4.json b/resources/profiles/Prusa/process/0.25mm Draft @Prusa CORE One INDX HF 0.4.json new file mode 100644 index 0000000000..ac1480e1fd --- /dev/null +++ b/resources/profiles/Prusa/process/0.25mm Draft @Prusa CORE One INDX HF 0.4.json @@ -0,0 +1,30 @@ +{ + "type": "process", + "name": "0.25mm Draft @Prusa CORE One INDX HF 0.4", + "inherits": "fdm_process_coreone_indx", + "from": "system", + "setting_id": "7qwPN6huygzcl8dp", + "instantiation": "true", + "compatible_printers": [ + "Prusa CORE One INDX 4T HF 0.4 nozzle", + "Prusa CORE One INDX 8T HF 0.4 nozzle" + ], + "compatible_printers_condition": "", + "inner_wall_acceleration": [ + "7000" + ], + "inner_wall_line_width": "0.5", + "outer_wall_line_width": "0.5", + "sparse_infill_line_width": "0.5", + "internal_solid_infill_line_width": "0.5", + "support_top_z_distance": "0.25", + "support_interface_speed": [ + "80" + ], + "layer_height": "0.25", + "top_shell_layers": "4", + "min_bead_width": "90%", + "internal_solid_infill_acceleration": [ + "6000" + ] +} diff --git a/resources/profiles/Prusa/process/0.25mm SPEED @COREONE0.4 + MMU3.json b/resources/profiles/Prusa/process/0.25mm SPEED @COREONE0.4 + MMU3.json index 869de56781..040ce8e331 100644 --- a/resources/profiles/Prusa/process/0.25mm SPEED @COREONE0.4 + MMU3.json +++ b/resources/profiles/Prusa/process/0.25mm SPEED @COREONE0.4 + MMU3.json @@ -1,22 +1,43 @@ { "type": "process", "name": "0.25mm SPEED @COREONE0.4 + MMU3", - "inherits": "0.20mm Standard @MK4", + "inherits": "0.25mm SPEED @CORE One HF 0.4", "from": "system", "setting_id": "oVLlJtwPINArAb0Y", "instantiation": "true", - "bridge_acceleration": "1500", - "brim_type": "no_brim", - "default_acceleration": "3000", - "elefant_foot_compensation": "0.2", + "bottom_shell_thickness": "0", + "compatible_printers": [ + "Prusa CORE One MMU3 0.4 nozzle" + ], + "compatible_printers_condition": "", + "enable_arc_fitting": "0", + "sparse_infill_pattern": "grid", + "infill_wall_overlap": "25%", + "reduce_infill_retraction": "1", "filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[0]}-{filament_type[1]}-{filament_type[2]}-{filament_type[3]}-{filament_type[4]}_COREONE_MMU3_{print_time}.gcode", - "initial_layer_acceleration": "500", - "initial_layer_infill_speed": "100", - "initial_layer_line_width": "0.5", + "overhang_1_4_speed": "0", + "overhang_2_4_speed": "15", + "overhang_3_4_speed": "25", "inner_wall_line_width": "0.45", - "internal_solid_infill_line_width": "0.45", - "line_width": "0.45", "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "support_line_width": "0.4", + "minimum_sparse_infill_area": "15", + "support_bottom_z_distance": "0.25", + "support_object_xy_distance": "0.35", + "tree_support_branch_angle": "30", + "top_shell_thickness": "0.8", + "outer_wall_speed": "170", + "inner_wall_speed": "170", + "sparse_infill_speed": "200", + "internal_solid_infill_speed": "200", + "travel_jerk": "9", + "outer_wall_jerk": "7", + "inner_wall_jerk": "7", + "default_jerk": "9", + "internal_bridge_speed": "50", + "brim_type": "no_brim", "prime_tower_brim_width": "2", "print_extruder_id": [ "1" @@ -25,41 +46,21 @@ "Direct Drive Standard" ], "raft_first_layer_expansion": "3", - "resolution": "0", "seam_gap": "15%", - "sparse_infill_line_width": "0.45", - "sparse_infill_pattern": "grid", - "support_base_pattern_spacing": "2", "support_bottom_interface_spacing": "0.2", - "support_interface_bottom_layers": "0", - "support_interface_spacing": "0.2", - "support_interface_top_layers": "3", - "support_line_width": "0.4", - "support_speed": "120", - "top_surface_acceleration": "2000", - "top_surface_line_width": "0.42", - "travel_acceleration": "7000", - "travel_speed": "350", - "wall_loops": "2", "wipe_tower_cone_angle": "25", "wipe_tower_extra_flow": "250%", "wipe_tower_extra_spacing": "110%", - "bridge_speed": "50", - "inner_wall_acceleration": "6000", "internal_solid_infill_acceleration": "5000", - "layer_height": "0.25", - "overhang_2_4_speed": "15", - "overhang_3_4_speed": "25", - "overhang_4_4_speed": "70%", - "small_perimeter_speed": "170", - "sparse_infill_acceleration": "7000", - "support_base_pattern": "rectilinear", - "support_bottom_z_distance": "0.25", - "support_interface_speed": "60", - "support_style": "snug", - "support_threshold_angle": "35", - "support_top_z_distance": "0.25", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle" - ] + "travel_speed_z": [ + "0" + ], + "raft_first_layer_density": "90%", + "infill_anchor": "400%", + "tree_support_branch_diameter": "5", + "infill_anchor_max": "20", + "enable_overhang_speed": [ + "1" + ], + "raft_contact_distance": "0.1" } diff --git a/resources/profiles/Prusa/process/0.25mm SPEED @MK4 MMU3 0.6.json b/resources/profiles/Prusa/process/0.25mm SPEED @MK4 MMU3 0.6.json new file mode 100644 index 0000000000..1e87d17050 --- /dev/null +++ b/resources/profiles/Prusa/process/0.25mm SPEED @MK4 MMU3 0.6.json @@ -0,0 +1,87 @@ +{ + "type": "process", + "name": "0.25mm SPEED @MK4 MMU3 0.6", + "inherits": "fdm_process_mk4_mmu3", + "from": "system", + "setting_id": "GEwr30K7NOtNyl2L", + "instantiation": "true", + "bridge_speed": [ + "40" + ], + "default_acceleration": [ + "2500" + ], + "outer_wall_acceleration": [ + "2000" + ], + "outer_wall_line_width": "0.68", + "outer_wall_speed": [ + "80" + ], + "line_width": "0.68", + "sparse_infill_density": "20%", + "initial_layer_line_width": "0.68", + "initial_layer_infill_speed": [ + "70" + ], + "gap_infill_speed": [ + "70" + ], + "resolution": "0.0125", + "infill_anchor": "2.5", + "infill_anchor_max": "20", + "sparse_infill_line_width": "0.68", + "sparse_infill_speed": [ + "140" + ], + "layer_height": "0.25", + "overhang_3_4_speed": [ + "20" + ], + "overhang_2_4_speed": [ + "25" + ], + "overhang_1_4_speed": [ + "50" + ], + "inner_wall_acceleration": [ + "3000" + ], + "inner_wall_line_width": "0.68", + "inner_wall_speed": [ + "90" + ], + "raft_contact_distance": "0.25", + "small_perimeter_speed": [ + "80" + ], + "internal_solid_infill_acceleration": [ + "3000" + ], + "internal_solid_infill_line_width": "0.68", + "internal_solid_infill_speed": [ + "90" + ], + "support_top_z_distance": "0.25", + "support_line_width": "0.5", + "support_interface_spacing": "0.25", + "support_interface_speed": [ + "75%" + ], + "support_speed": [ + "80" + ], + "top_surface_line_width": "0.55", + "top_surface_acceleration": [ + "1500" + ], + "top_surface_speed": [ + "70" + ], + "top_shell_thickness": "0.9", + "bottom_shell_thickness": "0.6", + "wipe_tower_extra_flow": "200%", + "compatible_printers": [ + "Prusa MK4 MMU3 0.6 nozzle" + ] +} diff --git a/resources/profiles/Prusa/process/0.25mm STRUCTURAL @COREONE0.4 + MMU3.json b/resources/profiles/Prusa/process/0.25mm STRUCTURAL @COREONE0.4 + MMU3.json index 87aa0f0c52..31e7244fec 100644 --- a/resources/profiles/Prusa/process/0.25mm STRUCTURAL @COREONE0.4 + MMU3.json +++ b/resources/profiles/Prusa/process/0.25mm STRUCTURAL @COREONE0.4 + MMU3.json @@ -1,22 +1,42 @@ { "type": "process", "name": "0.25mm STRUCTURAL @COREONE0.4 + MMU3", - "inherits": "0.20mm Standard @MK4", + "inherits": "0.25mm STRUCTURAL @CORE One HF 0.4", "from": "system", "setting_id": "lBGry26X4a9IihAD", "instantiation": "true", - "bridge_acceleration": "1500", - "brim_type": "no_brim", - "default_acceleration": "3000", - "elefant_foot_compensation": "0.2", + "bottom_shell_thickness": "0", + "compatible_printers": [ + "Prusa CORE One MMU3 0.4 nozzle" + ], + "compatible_printers_condition": "", + "enable_arc_fitting": "0", + "sparse_infill_pattern": "grid", + "infill_wall_overlap": "25%", + "reduce_infill_retraction": "1", "filename_format": "{input_filename_base}_{layer_height}mm_{filament_type[0]}-{filament_type[1]}-{filament_type[2]}-{filament_type[3]}-{filament_type[4]}_COREONE_MMU3_{print_time}.gcode", - "initial_layer_acceleration": "500", - "initial_layer_infill_speed": "100", - "initial_layer_line_width": "0.5", + "overhang_1_4_speed": "50%", + "overhang_2_4_speed": "15", + "overhang_4_4_speed": "90%", "inner_wall_line_width": "0.45", - "internal_solid_infill_line_width": "0.45", - "line_width": "0.45", "outer_wall_line_width": "0.45", + "sparse_infill_line_width": "0.45", + "internal_solid_infill_line_width": "0.45", + "support_line_width": "0.4", + "minimum_sparse_infill_area": "15", + "support_bottom_z_distance": "0.25", + "support_interface_speed": "80", + "support_object_xy_distance": "0.35", + "tree_support_branch_angle": "30", + "top_shell_thickness": "0.8", + "outer_wall_speed": "50", + "inner_wall_speed": "70", + "travel_jerk": "9", + "outer_wall_jerk": "7", + "inner_wall_jerk": "7", + "default_jerk": "9", + "internal_bridge_speed": "50", + "brim_type": "no_brim", "prime_tower_brim_width": "2", "print_extruder_id": [ "1" @@ -25,48 +45,21 @@ "Direct Drive Standard" ], "raft_first_layer_expansion": "3", - "resolution": "0", "seam_gap": "15%", - "sparse_infill_line_width": "0.45", - "sparse_infill_pattern": "grid", - "support_base_pattern_spacing": "2", "support_bottom_interface_spacing": "0.2", - "support_interface_bottom_layers": "0", - "support_interface_spacing": "0.2", - "support_interface_top_layers": "3", - "support_line_width": "0.4", - "support_speed": "120", - "top_surface_acceleration": "2000", - "top_surface_line_width": "0.42", - "travel_acceleration": "7000", - "travel_speed": "350", - "wall_loops": "2", "wipe_tower_cone_angle": "25", "wipe_tower_extra_flow": "250%", "wipe_tower_extra_spacing": "110%", - "bridge_speed": "50", - "gap_infill_speed": "60", - "inner_wall_acceleration": "2500", - "inner_wall_speed": "70", - "internal_solid_infill_acceleration": "4000", - "internal_solid_infill_speed": "140", - "layer_height": "0.25", - "outer_wall_acceleration": "1500", - "outer_wall_speed": "50", - "overhang_1_4_speed": "50%", - "overhang_2_4_speed": "15", - "overhang_3_4_speed": "45", - "overhang_4_4_speed": "90%", "small_perimeter_speed": "50", - "sparse_infill_acceleration": "6000", - "sparse_infill_speed": "120", - "support_base_pattern": "rectilinear", - "support_bottom_z_distance": "0.25", - "support_style": "snug", - "support_threshold_angle": "40", - "support_top_z_distance": "0.25", - "top_surface_speed": "80", - "compatible_printers": [ - "Prusa CORE One MMU3 0.4 nozzle" - ] + "travel_speed_z": [ + "0" + ], + "raft_first_layer_density": "90%", + "infill_anchor": "400%", + "tree_support_branch_diameter": "5", + "infill_anchor_max": "20", + "enable_overhang_speed": [ + "1" + ], + "raft_contact_distance": "0.1" } diff --git a/resources/profiles/Prusa/process/fdm_process_coreone_indx.json b/resources/profiles/Prusa/process/fdm_process_coreone_indx.json new file mode 100644 index 0000000000..09ec1f6c77 --- /dev/null +++ b/resources/profiles/Prusa/process/fdm_process_coreone_indx.json @@ -0,0 +1,126 @@ +{ + "type": "process", + "name": "fdm_process_coreone_indx", + "inherits": "0.20mm SPEED @CORE One HF 0.4", + "from": "system", + "instantiation": "false", + "bridge_speed": [ + "50" + ], + "brim_width": "0", + "default_acceleration": [ + "3000" + ], + "initial_layer_acceleration": [ + "500" + ], + "top_surface_acceleration": [ + "2000" + ], + "travel_acceleration": [ + "7000" + ], + "inner_wall_acceleration": [ + "6000" + ], + "outer_wall_acceleration": [ + "5000" + ], + "sparse_infill_pattern": "grid", + "filename_format": "{input_filename_base}_{layer_height}mm_{printer_model}_{print_time}.gcode", + "overhang_1_4_speed": [ + "75%" + ], + "overhang_2_4_speed": [ + "50" + ], + "overhang_3_4_speed": [ + "25" + ], + "overhang_4_4_speed": [ + "15" + ], + "support_line_width": "0.4", + "skirt_distance": "6", + "skirt_height": "1", + "enable_support": "1", + "resolution": "0.0125", + "support_type": "normal(manual)", + "support_bottom_z_distance": "0", + "support_interface_speed": [ + "60" + ], + "support_base_pattern": "default", + "support_base_pattern_spacing": "2.5", + "support_speed": [ + "120" + ], + "support_threshold_angle": "30", + "support_object_xy_distance": "0.35", + "tree_support_branch_angle": "30", + "enable_prime_tower": "0", + "initial_layer_speed": [ + "45" + ], + "initial_layer_infill_speed": [ + "100" + ], + "outer_wall_speed": [ + "200" + ], + "inner_wall_speed": [ + "250" + ], + "sparse_infill_speed": [ + "300" + ], + "internal_solid_infill_speed": [ + "250" + ], + "top_surface_speed": [ + "150" + ], + "gap_infill_speed": [ + "120" + ], + "travel_speed": [ + "350" + ], + "bridge_acceleration": [ + "1500" + ], + "bridge_angle": "0", + "brim_type": "outer_only", + "ensure_vertical_shell_thickness": "ensure_all", + "sparse_infill_acceleration": [ + "7000" + ], + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "3", + "single_extruder_multi_material_priming": "0", + "small_perimeter_speed": [ + "170" + ], + "internal_solid_infill_acceleration": [ + "7000" + ], + "travel_speed_z": [ + "12" + ], + "wall_distribution_count": "1", + "wall_transition_angle": "10", + "wall_transition_filter_deviation": "25%", + "wall_transition_length": "100%", + "max_bridge_length": "10", + "prime_tower_brim_width": "2", + "wipe_tower_cone_angle": "25", + "wipe_tower_extra_flow": "200%", + "wipe_tower_extra_spacing": "125%", + "mmu_segmented_region_max_width": "5", + "wall_sequence": "inner wall/outer wall", + "exclude_object": "0", + "tree_support_branch_diameter": "5", + "enable_overhang_speed": [ + "1" + ] +} diff --git a/resources/profiles/Prusa/process/fdm_process_mk4_mmu3.json b/resources/profiles/Prusa/process/fdm_process_mk4_mmu3.json new file mode 100644 index 0000000000..8c0da0a56d --- /dev/null +++ b/resources/profiles/Prusa/process/fdm_process_mk4_mmu3.json @@ -0,0 +1,99 @@ +{ + "type": "process", + "name": "fdm_process_mk4_mmu3", + "inherits": "0.20mm Standard @MK4", + "from": "system", + "instantiation": "false", + "bridge_speed": "50", + "compatible_printers": [], + "default_acceleration": "1000", + "initial_layer_acceleration": [ + "500" + ], + "travel_acceleration": [ + "4000" + ], + "inner_wall_acceleration": "1000", + "outer_wall_acceleration": "700", + "elefant_foot_compensation": "0.2", + "enable_arc_fitting": "1", + "sparse_infill_pattern": "grid", + "infill_wall_overlap": "15%", + "ironing_type": "top", + "filename_format": "{input_filename_base}_{layer_height}mm_{printer_model}_{print_time}.gcode", + "overhang_4_4_speed": [ + "15" + ], + "wall_loops": "2", + "minimum_sparse_infill_area": "0", + "enable_support": "1", + "support_type": "normal(manual)", + "support_bottom_z_distance": "0", + "support_interface_top_layers": "3", + "support_interface_bottom_layers": "0", + "support_base_pattern_spacing": "2", + "support_threshold_angle": "40", + "support_object_xy_distance": "80%", + "initial_layer_speed": [ + "40" + ], + "initial_layer_infill_speed": "45", + "outer_wall_speed": "45", + "inner_wall_speed": "80", + "sparse_infill_speed": "150", + "internal_solid_infill_speed": "150", + "top_surface_speed": "50", + "gap_infill_speed": "30", + "travel_speed": [ + "300" + ], + "bridge_acceleration": [ + "1500" + ], + "gcode_comments": "0", + "gcode_label_objects": "1", + "sparse_infill_acceleration": [ + "4000" + ], + "min_bead_width": "85%", + "min_feature_size": "25%", + "mmu_segmented_region_max_width": "5", + "ooze_prevention": "0", + "raft_expansion": "1.5", + "raft_first_layer_density": "90%", + "raft_first_layer_expansion": "3", + "slice_closing_radius": "0.049", + "travel_speed_z": [ + "12" + ], + "thick_bridges": "0", + "wipe_tower_extra_spacing": "110%", + "wipe_tower_cone_angle": "25", + "single_extruder_multi_material_priming": "0", + "wall_generator": "arachne", + "wall_sequence": "inner wall/outer wall", + "support_style": "snug", + "ensure_vertical_shell_thickness": "ensure_all", + "print_extruder_id": [ + "1" + ], + "print_extruder_variant": [ + "Direct Drive Standard" + ], + "travel_jerk": [ + "12" + ], + "outer_wall_jerk": [ + "9" + ], + "inner_wall_jerk": [ + "9" + ], + "default_jerk": [ + "0" + ], + "internal_bridge_speed": [ + "150%" + ], + "exclude_object": "0" +}